软件工程(pankaj jalote版)第7章编码(中)

合集下载

软件与微电子学院0910学年第二学期本科课程参考教材

软件与微电子学院0910学年第二学期本科课程参考教材
2、《ERP---从内部集成起步》,陈启申编著,电子工业出版社
网络协议与组网技术
1、《计算机网络(第四版)》,Andrew S. Tanenbaum著,潘爱民译,清华大学出版社,2004
2、思科网络技术学院教程,CCNA 1,网络基础,人民邮电出版社,2008
3、思科网络技术学院教程,CCNA 2,路由器与路由基础,人民邮电出版社,2008
面向服务架构SOA
1.《面向服务的计算:原理与应用》,喻坚等主编,清华大学出版社,2006
2.《Understanding SOA with Web Services 中文版》,Eric Newcomer等著,徐涵等译,电子工业出版社,2006
企业信息系统
1、《ERP原理、设计、实施(第三版)》,罗鸿编著,电子工业出版社
软件与微电子学院0910学年第二学期本科课程参考教材
课程名称
开课年级
参考教材
日语
09级本科
新版《标准日本语》初级上、下册
数字逻辑
08级本科
《数字电路与数字电子技术》岳怡编,西工大出版社
计算方法
08级本科
《计算方法》,聂玉峰 王振海主编,西北工业大学出版社
信号与系统
08级本科
《信号与系统(第三版)》段哲民等编,电子工业出版社,2008年
(2)Richard J. Roiger, Michael W. Geatz, Data Mining–A Tutorial-Based Primer,数据挖掘基础教程,清华大学出版社,2003.
(3)Michael J.ABerry, Gordon S. Linoff, Data Mining Techniques for Marketing, Sales, and Customer Relationship Management (Second Edition),数据挖掘技术,市场营销,销售与客户关系管理领域应用。机械工业出版社,2006.7.1

软件工程课程目录

软件工程课程目录

软件工程课程目录第一章:导论
1.1 软件工程概述
1.2 软件工程的定义和特点
1.3 软件工程的发展历程
第二章:软件开发过程模型
2.1 瀑布模型
2.2 增量模型
2.3 螺旋模型
2.4 敏捷开发模型
2.5 DevOps模型
第三章:需求工程
3.1 需求获取与分析
3.2 需求规格说明
3.3 需求验证与确认
3.4 变更管理
第四章:软件设计与实现
4.1 结构化设计
4.2 面向对象设计
4.3 软件架构设计
4.4 系统建模
4.5 设计原则和模式
第五章:软件测试与维护5.1 测试基础知识
5.2 测试设计技术
5.3 测试用例编写
5.4 软件维护流程及策略5.5 缺陷管理
第六章:软件项目管理6.1 项目启动与规划
6.2 项目进度管理
6.3 资源管理
6.4 风险管理
6.5 团队协作与沟通
第七章:软件质量保证和评估
7.1 质量保证概述
7.2 质量标准与度量
7.3 代码审查
7.4 归纳测试
7.5 质量评估与改进
第八章:软件工程伦理与职业道德
8.1 软件工程伦理概述
8.2 软件专业人员责任
8.3 知识产权保护
8.4 软件工程师的职业道德
结语:
软件工程课程目录涵盖了软件工程学科的基本知识和方法,帮助学生全面了解软件开发的过程和要素。

通过学习本课程,学生可以系统学习软件工程的理论和实践知识,培养良好的软件开发习惯和职业道德意识,为将来的软件开发工作奠定坚实的基础。

软件工程(自编教材)习题答案

软件工程(自编教材)习题答案

《软件工程》习题参考答案周兵1.1教材:《软件工程》方木云主编,清华大学出版社,2016 1.2参考书目:1.《Software engineering》8th Edition Ian Sommervile,PearsonEducation, 机械工业出版社,20062. 《软件工程》,王忠群主编,中国科学技术大学出版社,20093. 《软件工程导论》(第4版), 张海藩编著, 清华大学出版社, 20074、《Software engineering : a practitioner's approach》 RogerS. Pressman. 6th ed. Pressman, Roger S. China MachinePress, 20081.3说明:斜体部分是可选讲授内容, 带星号的习题为可选。

第1章软件工程学概述1.1习题A.1什么是软件?软件可以分为哪些类?p11答:软件是程序、数据及相关文档的完整集合。

软件可分为通用软件和定制软件。

A.2 *什么是软件危机及其表现?p11答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

具体地说,软件危机主要有以下一些典型表现。

(1) 对软件开发成本和进度的估计常常很不准确。

(2) 用户对“已完成的”软件系统不满意的现象经常发生。

(3) 软件产品的质量往往靠不住。

(4) 软件常常是不可维护的。

(5) 软件通常没有适当的文档资料。

(6) 软件成本在计算机系统总成本中所占的比例逐年上升。

(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

A.3什么是软件工程?p11答:软件工程是指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程导论课件(第六版)(张海潘编著)(1-13章)

软件工程导论课件(第六版)(张海潘编著)(1-13章)

13
件,把经过时间考验而证明正确的管理技术和当前能够得 到的最好的技术方法结合起来,以经济地开发出高质量的 软件并有效地维护它,这就是软件工程。
第1章 软件工程学概述
1.2.1
软件工程的介绍
1.2 软件工程
1968年在第一届NATO会议上曾经给出了软件工程的一个
14
早期定义:“软件工程就是为了经济地获得可靠的且能在 实际机器上有效地运行的软件,而建立和使用完善的工程 原理。” 1993年IEEE进一步给出了一个更全面更具体的定义: “软件工程是: ①把系统的、规范的、可度量的途径应用 于软件开发、运行和维护过程,也就是把工程应用于软件; ②研究①中提到的途径。
第1章 软件工程学概述
1.2.1
软件工程的介绍
1.2 软件工程
软件具有的本质特性
软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 必须有效地支持它的用户 两种背景的人创造产品这个特性与前两个特性紧密相关
15
第1章 软件工程学概述
充分认识到软 2件开发不是某 种个体劳动的 神秘技巧 , 而应该是各类 人员协同配合, 共同完成的工 程项目。 推广使用在实 3践中总结出来 的开发软件的 成功的技术和 方法,并且研 究探索更好更 有效的技术和 方法。
11
首先应该对计 1算机软件有一 个正确的认识。
应该开发和使 4用更好的软件 工具。
1.4 软件过程
1.4 软件过程
1.4.1 瀑布模型
34
瀑布模型一直是唯一被广泛采用的生命周期模型,现在它 仍然是软件工程中应用得最广泛的过程模型。如下图所示为 传统的瀑布模型
图1.2传统的瀑布模型如图1.2所示为传统的瀑布模型。

软件工程-课程目录-大纲视图(全国高等教育自学考试指定教材-计算机网络专业-独立本科)

软件工程-课程目录-大纲视图(全国高等教育自学考试指定教材-计算机网络专业-独立本科)

第一章绪论1.1 软件工程概念的提出与发展1.2 软件开发的本质1.3 本章小结第二章软件需求与软件需求规约2.1 需求与需求获取2.1.1需求定义2.1.2 需求分类2.1.3 需求发现技术2.2 需求规约2.2.1 需求规约定义2.2.2 需求规约(草案)格式2.2.3 需求规约(规格说明书)的表达2.2.4 需求规约的作用2.3 本章小结第三章结构化方法3.1 结构化需求分析3.1.1 基本术语1.数据流2.数据存储3.数据源和数据谭3.1.2 系统功能模型表示数据流图(Dataflow Diagram)3.1.3 建模过程1.建立系统环境图, 确定系统语境2.自顶向下, 逐步求精, 建立系统的层次数据流图3.定义数据字典数据流条目给出所有数据流的结构定义数据存储条目给出所有数据存储的结构定义数据项条目给出所有数据项的类型定义4.描述加工(1)结构化自然语言(2)判定表(3)判定树3.1.4 应用中注意的问题(1)模型平衡问题(2)信息复杂性控制问题3.1.5 需求验证3.2 结构化设计3.2.1 总体设计1.总体设计的目标及其表示(1)Yourdon提出的模块结构图(2)层次图(3)HIPO图2.总体设计步骤(1)变换型数据流图——变换设计(2)事物型数据流图——事物设计3.模块化及启发式规则(1)模块化1)耦合①内容耦合②公共耦合③控制耦合④标记耦合⑤数据耦合2)内聚①偶然内聚②逻辑内聚③时间内聚④过程内聚⑤通信内聚⑥顺序内聚⑦功能内聚(2)启发式规则1)改进软件结构, 提高模块独立性2)力求模块规模适中3)力求深度、宽度、扇出和扇入适中4)尽力使模块的作用域在其控制域之内5)尽力降低模块接口的复杂度6)力求模块功能可以预测3.2.2 详细设计1.结构化程序设计2.详细设计工具(1)程序流程图(2)盒图(N-S图)(3)PAD图(Problem Analysis Diagram)(4)类程序设计语言IPO图、判定树和判定表等也可以作为详细设计工具3.3 本章小结第四章面向对象方法——UML 4.1 UML术语表4.1.1 表达客观事物的术语1.类与对象1)类的属性(Attribute)2)类的操作3)关于类语义的进一步表达①详细叙述类的职责(Responsibility)②通过类的注解和/或操作的注解, 以结构化文本的形式和/编程语言, 详述注释整个类的语义和/或各个方法③通过类的注解或操作的注解, 以结构化文本形式, 详述注释各个操作的前置条件和后置条件, 甚至注释整个类的不变式④详述类的状态机⑤详述类的内部结构⑥类与其他类的协作4)类在建模中的主要用途①模型化问题域中的概念(词汇)②建立系统的职责分布模型③模型化建模中使用的基本类型2.接口(Interface)(1)采用具有分栏和关键字《interface》的矩形符号来表示(2)采用小圆圈和半圆圈来表示3.协作(Collaboration)4.用况(Use Case)5.主动类(Action Class)6.构件(Component)7.制品(Artifact)8.节点(Node)4.1.2 表达关系的术语1.关联(Association)(1)关联名(Name)(2)导航(3)角色(Role)(4)可见性(5)多重性(Multiplicity)(6)限定符(Qualifier)(7)聚合(Aggregation)(8)组合(Composition)(9)关联类(10)约束①有序(ordered)②无重复对象(set)③有重复对象(bag)④列表(list)或序列(sequence)⑤只读(readonly)2.泛化(Generalization)①完整(Complete)②不完整(Incomplete)③互斥(Disjoint)④重叠(Overlapping)3.细化(Realization)4.依赖①绑定(Bind)②导出(Derive)③允许(Permit)④实例(InstanceOf)⑤实例化(Instantiate)⑥幂类型(Powertype)⑦精化(Refine)⑧使用(Use)可模型化以下各种关系(1)结构关系1)以数据驱动2)以行为驱动(2)继承关系(3)精化关系(4)依赖关系4.1.3 表达组合信息的术语——包1)访问(Access)2)引入(Import)4.2 UML模型表达格式1.类图(Class Diagram)(1)模型化待建系统的概念(词汇), 形成类图的基本元素(2)模型化待建系统的各种关系, 形成该系统的初始类图(3)模型化系统中的协作, 给出该系统的最终类图(4)模型化逻辑数据库模式2.用况图(Use Case Diagram)所包含的内容(1)主题(Subject)(2)用况(Use Case)(3)参与者(Actor)(4)关联、泛化与依赖模型化工作1)关于系统/业务语境的模型化①系统边界的确定②参与者与用况的交互③参与者的语义表达④参与者的结构化处理2)关于系统/业务需求的模型化①确定系统/业务的基本用况②用况的结构化处理③用况的语义表达3.状态图(1)状态1)名字2)进入/退出效应(Effect)①entry②exit③状态内部转移3)do动作或活动4)被延迟的事件(2)事件1)信号(Signal)事件2)调用(Call)事件3)时间事件4)变化事件(3)状态转移①源状态②转移触发器③监护(guard)条件④效应(effect)⑤目标状态实际应用中, 使用状态图的作用①创建一个系统的动态模型②创建一个场景的模型4.顺序图(1)术语解析1)消息2)对象生命线3)聚焦控制(the Focus of Control)(2)控制操作子1)选择执行操作子(Operator for Optional Execution)2)条件执行操作子(Operator for Conditional Execution)3)并发执行操作子(Operator for Parallel Execution)4)迭代执行操作子(Operator for Iterative Execution)4.3 本章小结第五章面向对象方法——RUP5.1 RUP特点1.以用况为驱动2.以体系结构为中心3.迭代增量式开发5.2 核心工作流5.2.1 需求获取1.列出候选需求2.理解系统语境(1)业务用况模型(2)业务对象模型3.捕获系统功能需求(1)活动1: 发现并描述参与者(2)活动2: 发现并描述用况(3)活动3: 确定用况的优先级(Priority)(4)活动4: 精化用况(5)活动5: 构造用户界面原型1)用户界面的逻辑设计2)物理用户界面的设计3)开发用户界面原型并演示为了执行该用况, 用户怎样使用该系统(6)活动6: 用况模型的结构化5.2.2 需求分析1.基本术语(1)分析类(Analysis Class)1)边界类(Boundary Classes)2)实体类(Entity Classes)3)控制类(Control Classes)(2)用况细化(Use Case Realization)(3)分析包(Analysis Package)2.分析模型的表达3.分析的主要活动(1)活动1: 体系结构分析(Architectural Analysis)1)任务1: 标识分析包2)任务2: 处理分析包之间的共性3)任务3: 标识服务包4)任务4: 定义分析包的依赖5)任务5: 标识重要的实体类6)任务6: 标识分析包和重要实体类的公共特性需求(2)活动2: 用况分析1)任务1: 标识分析类①标识实体类②标识边界类③标识控制类2)任务2: 描述分析(类)对象之间的交互(3)活动3: 类的分析1)任务1: 标识责任2)任务2: 标识属性①关于实体类属性的标识②关于边界类属性的标识③关于控制类属性的标识3)任务3: 标识关联和聚合①关于关联的标识②关于聚合的标识③关于泛化的标识(4)活动4: 包的分析4.小结(1)关于分析模型1)分析包2)分析类3)用况细化(2)关于分析模型视角下的体系结构描述(3)用况模型和分析模型比较(4)分析模型对以后工作的影响1)对设计中子系统的影响2)对设计类的影响3)对用况细化[设计]的影响5.2.3 设计1.设计层的术语(1)设计类(Design Class)(2)用况细化[设计](3)设计子系统(4)接口(Interface)2.设计模型、部署模型以及相关视角下的体系结构描述(1)设计模型及其视角下的体系结构描述1)子系统结构2)对体系结构有意义的设计类3)对体系结构有意义的用况细化[设计](2)部署模型及该模型视角下的体系结构描述3设计的主要活动(1)活动1: 体系结构的设计1)任务1: 标识节点和它们的网络配置2)任务2: 标识子系统和它们的接口①标识应用子系统②标识中间件和系统软件子系统③定义子系统依赖④标识子系统接口3)任务3: 标识在体系结构方面有意义的设计类和它们的接口4)任务4: 标识一般性的设计机制①标识处理透明对象分布的设计机制②标识事务管理的设计机制(2)活动2: 用况的设计1)标识参与用况细化的设计类2)标识参与用况细化的子系统和接口(3)活动3: 类的设计1)任务1: 概括描述设计类2)任务2: 标识操作3)任务3: 标识属性4)任务4: 标识关联和聚合5)任务5: 标识泛化6)任务6: 描述方法7)任务7: 描述状态(4)活动4: 子系统的设计1)任务1: 维护子系统依赖2)任务2: 维护子系统所提供的接口3)任务3: 维护子系统内容4.RUP设计小结1)RUP设计的突出特点2)关于RUP的设计方法①给出用于表达设计模型中基本成分的4个术语, 包括子系统, 设计类, 接口, 用况细化[设计]②规约了设计模型的语法, 指导模型的表达③给出了创建设计模型的过程以及相应的指导3)RUP的设计模型①设计子系统和服务子系统②设计类(其中包括一些主动类), 以及他们具有的操作、属性、关系及其实现需求。

软件工程(第4版)

软件工程(第4版)
全书共16章,包括软件与软件工程、UML与RUP统一过程、需求工程概论、需求获取、需求分析与验证等章节。
成书过程
修订情况
出版工作
《软件工程(第4版)》是在《软件工程(第3版)》的基础上修改而成的,第4版简化了前版中结构化软件 开发方法的相关内容,充实了常用的基于构件的软件开发、持续集成(CI)等方面的内容,对书中部分词汇、疏 漏、错误进行了修订,并且引入持续集成的相关内容。
3、该教材是软件工程的综合性教材,借监软件工程知识体SWEBOK和SEEK的内容,针对中国高校本科软件工 程教育的实际情况对内容进行选择和组织。
4、该教材强调软件中蕴含的领域知识和经验:软件生存周期的阶段划分与软件开发过程分解分开用统一建模 描述语言UML描述RUP过程中的制品;验证与确认贯穿RUP过程的始终,变更管理和配置管理等若干软件工程相关 的重要问题,以实例贯穿始终,强调理论与实践相结合。
《软件工程(第4版)》的第1、15、16章由齐治昌教授编写,第2、3、4、5、7、8、9、14章由谭庆平教授 编写。第6、10、11、12、13章由宁洪教授编写。全部书稿由复旦大学的钱乐秋教授审阅完成。
2019年3月,《软件工程(第4版)》由高等教育出版社出版。
内容简介
ቤተ መጻሕፍቲ ባይዱ
《软件工程(第4版)》阐述了信息时代软件、软件工程及软件工程教育的地位和作用,基于计算机的系统和 业务过程建模,书中分析了传统软件开发过程向统一过程RUP的进化,系统地介绍了RUP、UML和面向对象的软件 开发方法,以及软件开发的需求、设计、实现、测试、交付、维护、软件度量、软件项目管理和软件开发组织的 过程改进等专题,且书中含有丰富的例题、习题和参考文献。
作者简介
齐治昌,国防科技大学教授,曾获2014年度“CCF杰出教育奖”。 谭庆平,男,国防科技大学计算机学院教授、博士生导师。 宁洪,广州大学计算机科学与网络工程学院教授。

软件工程(第四版)习题及解答1-7

软件工程(第四版)习题及解答1-7

软件工程(第四版)习题及解答1-7软件工程(第四版)习题及解答1-7软件工程一直是信息技术领域中一门重要的学科,它涉及到软件设计、开发、测试和维护等多个方面。

对于学习软件工程的学生来说,练习和解答一些相关习题是非常重要的。

本文将为大家提供《软件工程(第四版)》中的习题1-7的解答和详细讨论。

1. 习题1题目描述:什么是软件工程?为什么软件工程如此重要?解答:软件工程是一门学科,涵盖了软件开发的所有阶段,包括需求分析、软件设计、编码、测试和维护等。

软件工程关注如何以系统化的、规范的方法来开发高质量的软件。

软件工程之所以如此重要,原因有以下几点:首先,软件工程能够提供一个结构化的方法来开发软件,保证开发流程可控、可预测。

通过规范的过程和方法,可以减少软件开发过程中的风险和错误。

其次,软件工程将软件开发过程分解为不同的阶段,并引入了各种工具和技术来支持这些阶段的开发工作。

这些工具和技术能够提高开发效率,减少开发成本。

此外,软件工程还注重软件质量管理,包括软件测试、验证和验证等方面,以确保最终交付给用户的软件是高质量可靠的。

最后,软件工程也关注软件的维护和更新。

由于软件在使用过程中会面临各种问题和需求变化,软件工程可以帮助开发人员及时响应和解决这些问题,提供更好的用户体验。

2. 习题2题目描述:简要解释软件需求分析的目标和过程。

解答:软件需求分析的目标是识别和规范用户对软件系统的需求,确保开发人员和用户对软件系统的期望一致,并将这些需求转化为可行的系统规格说明。

软件需求分析的过程包括以下几个步骤:1) 需求收集:通过与用户沟通、调研等方式,收集用户对软件系统的需求。

可以采用面谈、问卷调查、观察等方法。

2) 需求分析和整理:对收集到的需求进行分析和整理,将其转化为可理解的形式。

可以使用需求建模工具和技术,如用例图、数据流图等。

3) 需求规格说明:在此阶段,将需求转化为详细的规格说明,包括功能需求、性能需求、质量需求等。

软件工程_张海蕃

软件工程_张海蕃

应该推广使用在实践中总结出来的开发软件的成功 的技术和方法,并且研究探索更好更有效的技术和 方法,尽快消除在计算机系统早期发展阶段形成的 一些错误概念和做法。 应该开发和使用更好的软件工具。正如机械工具可 以“放大”人类的体力一样,软件工具可以“放大” 人类的智力。在软件开发的每个阶段都有许多繁琐 重复的工作需要做,在适当的软件工具辅助下,开 发人员可以把这类工作做得既快又好。如果把各个 阶段使用的软件工具有机地集合成一个整体,支持 软件开发的全过程,则称为软件工程支撑环境。
与软件开发和维护有关的许多错误认识和作法的形 成,可以归因于在计算机系统发展的早期阶段软件 开发的个体化特点。错误的认识和作法主要表现为 忽视软件需求分析的重要性,认为软件开发就是写 程序并设法使之运行,轻视软件维护等。
事实上,对用户要求没有完整准确的认识就匆忙着 手编写程序是许多软件开发工程失败的主要原因之 一。只有用户才真正了解他们自己的需要,但是许 多用户在开始时并不能准确具体地叙述他们的需要, 软件开发人员需要做大量深入细致的调查研究工作, 反复多次地和用户交流信息,才能真正全面、准确、 具体地了解用户的要求。对问题和目标的正确认识 是解决任何问题的前提和出发点,软件开发同样也 不例外。急于求成,仓促上阵,对用户要求没有正 确认识就匆忙着手编写程序,这就如同不打好地基 就盖高楼一样,最终必然垮台。事实上,越早开始 写程序,完成它所需要用的时间往往越长。
另一方面还必须认识到程序只是完整的软件产品的 一个组成部分,在上述软件生命周期的每个阶段都 要得出最终产品的一个或几个组成部分(这些组成 部分通常以文档资料的形式存在)。也就是说,一 个软件产品必须由一个完整的配置组成,软件配置 主要包括程序、文档和数据等成分。必须清除只重 视程序而忽视软件配置其余成分的糊涂观念。 作好软件定义时期的工作,是降低软件成本提高软 件质量的关键。如果软件开发人员在定义时期没有 正确全面地理解用户需求,直到测试阶段或软件交 付使用后才发现“已完成的”软件不完全符合用户 的需要,这时再修改就为时已晚了。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小组会议
3
3
版本控制
1
7.3
代码 演化
7.6
度量 代码
1
代码规模
重构技术
2
2
复杂度量
7.3.1 源代码控制、生成
7.3.1 源代码控制、生成
文件 管理 系统
原理
仓库
功能
常见 软件
7.3.1 源代码控制、生成 :
0/4
什么是源代码控制系统?
它是一个软件。 它是一个管理源代码的软件。
7.3.1 源代码控制、生成 : 代码管理系统的 原理
7.1.1结构化编程 分三个部分讲解结构化编程。
结构化编 程
动态结构与静态 结构一致
形式化验证
单出口单入口 的模块
含义
作用
含义
作用
含义
作用
7.1.1结构化编程(2) 形式化验证是结构化编程的真正动机
前置条件P
程序S
后置条件Q
P1 P2
S1
S2
Q1 Q2
==>
P1
S1;S2
Q2
Q1==>P2
7.1.1结构化编程(2) 下边举出形式化验证的一个例子
重构
含义
功能
黄金 法则
何时 重构
7.3.1 重构:什么是重构? 1/4 重构是重新设计程序的结构。提高效率。
在编码过程 不修改功 能 中完成
修改内部结构
7.3.1 重构
:功能 2/4 重构是重新设计程序的结构。提高效率
藏宝图
数据隐藏 1 编码原则
1
过程测试
2
3
实践经验
7.1
原则 指南
4 1
编码标准
7.4
第七章
单元 测试
2
测类单元
一个例子
1
计划
测试优先
7.2
增量 开发
2
结队编程
编码
单元 测试
7.5
检查 代码
代码自查
2
小组会议
3
3
版本控制
1
7.3
代码 演化
7.6
度量 代码
1
代码规模
重构技术
2
2
复杂度量
7.1 编程的指南
不要嵌套太深
Switch语句
最后要写default语句
Goto语句
万不得已时再用
7.1.3程序设计实践经验
4/4
实践经验
数据类型
参数检查
语句
鲁棒性
7.1.3程序设计实践经验 鲁棒性:在异常情况也能运行。
容忍非法输入 容忍错误系统状态
系统坚决不崩溃
藏宝图
数据隐藏 1 编码原则
1
过程测试
2
3
实践经验
7.1 编程原则、指南(绪论) 编程指南让编程者如虎添翼。
编程 指南
高质量
编程 的人
创造
程序
自己 练习
易理解
藏宝图
数据隐藏 1 编码原则
1
过程测试
2
3
实践经验
7.1
原则 指南
4 1
编码标准
7.4 第七章
单元 测试
2
测类单元
一个例子
1
计划
测试优先
7.2
增量 开发
2
结队编程
编码
单元 测试
7.5
检查 代码
7.1.2 数据隐藏(绪论) 数据隐藏有利于编程和测试。
信息隐藏
什么是信 息隐藏?
有什么用 处?
与语言有 关系吗?
7.1.2 数据隐藏(绪论) 数据隐藏有利于编程和测试。
信息隐藏
什么是信 息隐藏?
有什么用 处?
与语言有 关系吗?
7.1.2 数据隐藏(1) 什么是信息隐藏?
真实世界
信息
数据
隐藏
函数 其他函数
代码规模
重构技术
2
2
复杂度量
第7章 编码和单元测试
第7章 编码和单元测试 编码重点是易于阅读和理解。
维 维 护 护
易读
易读
易读
测 试
易读
易读
易读
编码
设计
第7章 编码和单元测试 为什么代码易于理解很重要?表中有答案。
排名 工作量 语句 工作 量少 语句 最少 内存 最小 1 2.5 5 4 1 2 可理解 内存 清晰度平均分 性 4 2 1 5 3 4 5 5 4 3.8 2.7 3.2 方差 2.16 1.76 2.16 标准差 1.47 1.33 1.47
在完成功能计算机(12+12)*12+12
…… 如此每次增强一点点功能
7.2.1增量开发方法
增量开发方法,功能随着时间在不断增强。
7.2.1增量开发方法 增量开发方法模型图
模块 规范
写一些 1 代码
再次循 环
改善测 试脚本
准备新 增加新 功能
修 改
执行测 试脚本
出 错 了 吗
不齐全
功 能 齐 全 吗
7.1.2 数据隐藏(绪论) 数据隐藏有利于编程和测试。
信息隐藏
什么是信 息隐藏?
有什么用 处?
与语言有 关系吗?
7.1.2 数据隐藏(2) 有什么用处?
作用 减少模块之 间的耦合 降低软件的 复杂性
7.1.2 数据隐藏(绪论) 数据隐藏有利于编程和测试。
信息隐藏
什么是信 息隐藏?
有什么用 处?
7.2.1代码演化的管理
代码变化的原因是什么?
演化原因
正常开发
需求发生变 化,
模块规范变 化,
藏宝图
数据隐藏 1 编码原则
1
过程测试
2
3
实践经验
7.1
原则 指南
4 1
编码标准
7.4 第七章
单元 测试
2
测类单元
一个例子
1
计划
测试优先
7.2
增量 开发
2
结队编程
编码
单元 测试
7.5
检查 代码
代码自查
2
1
计划
测试优先
7.2
增量 开发
2
结队编程
编码
单元 测试
7.5
检查 代码
代码自查
2
小组会议
3
3
版本控制
1
7.3
代码 演化
7.6
度量 代码
1
代码规模
重构技术
2
2
复杂度量
7.1.3程序设计实践经验
7.1.3程序设计实践经验 本小节分四个部分。
实践经验
数据类型
参数检查
语句
鲁棒性
7.1.3程序设计实践经验
P1:输入一正整数 S1:开 平方
Q1:输出为一个正数
P2:输入一个非零数 S2:求 Q2:输出为一个非零实数 倒数
数学推导 Q1:输出为一个正数 ==> P2:输入一个非零数
==>
P1
S1开方 S2求倒数
Q2
7.1.1结构化编程 分三个部分讲解结构化编程。
结构化编 程
动态结构与静态 结构一致
形式化验证
不编程,你就废了
——第7章编码和单元测试
藏宝图
数据隐藏 1 编码原则
1
过程测试
2
3
实践经验
7.1
原则 指南
4 1
编码标准
7.4 第七章
单元 测试
2
测类单元
一个例子
1
计划
测试优先
7.2
增量 开发
2
结队编程
编码
单元 测试
7.5
检查 代码
代码自查
2
小组会议
3
3
版本控制
1
7.3
代码
1
1
藏宝图
数据隐藏 1 编码原则
1
过程测试
2
3
实践经验
7.1
原则 指南
4 1
编码标准
7.4 第七章
单元 测试
2
测类单元
一个例子
1
计划
测试优先
7.2
增量 开发
2
结队编程
编码
单元 测试
7.5
检查 代码
代码自查
2
小组会议
3
3
版本控制
1
7.3
代码 演化
7.6
度量 代码
1
代码规模
重构技术
2
2
复杂度量
7.1.2 数据隐藏
功能
描述程序的总功能 方便别人理解
什么地方加注释?
模块开头 为主要变量加注释 为难理解的语句加注释
7.1.4 编码标准:
布局
5/5
注意缩进
注意空格
藏宝图
数据隐藏 1 编码原则
1
过程测试
2
3
实践经验
7.1
原则 指南
4 1
编码标准
7.4 第七章
单元 测试
2
测类单元
一个例子
1
计划
测试优先
7.2
增量 开发
出 错
没出 错
齐全了
退出
7.2.3 结队编程 主要思想:两个人一起编程和检查代码。
张三丰
编程
李四强
阅读并检查代 码 寻找错误
7.2.3 结队编程 主要思想:两个人一起编程和检查代码。
优点 :以增量方式评 审,代码质量提高 缺点:成本升高。
藏宝图
数据隐藏 1 编码原则
1
相关文档
最新文档