前言
此笔记首要目标是通过学校软件工程课程的考试,其次才是学习软件工程当中比较抽象的概念,想要真正学习软件工程的精髓还是得靠工程实践,实践的次数多了,才能体会到这些抽象的概念或者原则真正的作用。不然就是一座空中阁楼,例如SOLID 原则,在开发中的应用
本笔记以解决问题为导向,即解决之前发布过的这些作业,只是将解决问题的过程记录下来,记录来源
正片
第一章 软件与软件工程
1.计算机科学对软件的定义是什么? 软件=知识+程序+数据+文档 第一章 软件与软件工程, 页面 3 2.软件生存周期包括哪几个阶段,各个阶段的制品分别包括哪些?
| 软件需求 | 设计 | 编码 | 测试 | 运行和维护 | 退役 |
|---|---|---|---|---|---|
| [[第一章 软件与软件工程.pdf#page=4&selection=21,0,38,2 | 第一章 软件与软件工程, 页面 4]] | ||||
| 3.软件工程常用的八个质量要素的定义和解释? | |||||
| 正确性、可靠性、安全性、有效性(有限资源)、可使用性(易操作)、可维护性、可移植性、可复用性 |
正可安效、使维复移
4.EE93给出的软件工程的定义是什么?软件工程的五要素? (1)将系统的、规范的、可量化 的方法应用于软件的开发、运行和维护的过程;(2)及上述方法的研究。 软件工程的五要素:人、项目、过程、方法、工具。
人确定项目过后,经历种种过程,利用各种方法工具来制定软件制品
5.软件工程的目标是什么?软件工程遵循的原则有哪些,以及各个原则的含义? 软件工程的目标是在给定成本、进度的前提下,开发出满足用户或市场需要的高质量 的软件产品 遵循的原则:抽象、信息隐藏、模块化、局部化、一致性、完全性和可验证性。
- 抽象:抽取事物的基本特征行为,忽略细节
- 信息隐藏:将模块设计为黑箱,使用模块只能用接口说明的信息,数据类型等
- 模块化:一个模块只负责解决一个问题,模块内部需要高内聚,模块之间需要低耦合
- 局部化:在一个物理模块内集中逻辑上相互关联的计算资源
- 一致性:各模块之间使用一致的概念,内部接口,系统规约等等
- 完全性:完全实现系统所需功能
- 可验证性:容易审查,测试
抽藏 模局 致全证
第一章 软件与软件工程, 页面 34 6.简述软件工程遵循的原则与软件质量要素之间的联系?
-
抽象和信息隐藏、模块化和局部化的原则支持软件工程的可理解性、可修改性和可靠性,有助于提高软件产品的质量和开发效率
-
一致性原则支持正确性、可靠性
-
分解系统遵循可验证性,以支持系统的正确性
-
使用一致性、完全性、可验证性的原则可以帮助人们实现一个正确的系统。
7.软件开发的主要方法有哪些,各个方法的特点是什么?
1)结构化方法:利用分层的数据流图和控制留图开发系统的功能模型和数据模型,自顶向下,逐步求精,最终得到组成系统的模块及它们之间的控制关系 2)面向对象方法:是以对象、对象关系构建软件系统的方法,将对象的属性和操作封装在一起,支持软件开发的模块化、 可复用、信息隐藏 3)形式化开发方法。以软件开发的正确性为目标,软件需求规约 用形式化需求规约语言描述,如VDM的META-IV,CSP,Z语言等 第一章 软件与软件工程, 页面 42 8.什么是软件过程和软件过程模型? 软件过程模型:软件过程(Process)是描述、开发、维护软件制品,创建、管理和支持软件项目的一系列活动
软件过程模型:对软件开发过程的结构和属性进行抽象 1)瀑布模型及其变形:将软件开发过程的分解与软件生存周期划分绑定在一起 2)通用过程模型 : 软件开发过程的分解与软件生存周期划分相对独立 3)专用模型: 包括基于构件的软件过程模型、Web应用软件过程模型、面向方面AOP的软件过程模型。 第一章 软件与软件工程, 页面 50
9.软件生存周期分为哪几个阶段,瀑布模型是什么,分析瀑布模型的优缺点。举例说明哪些软件项目的开发可以采用瀑布模型,哪些不适合? 软件开发过程模型=瀑布模型:可行性研究→软件需求→设计→编码→测试→运行与维护→退役 优点: 思路清晰,保证软件开发正确性,流开发人员组织管理 缺点: 确定所有需求是不现实的 软件开发周期长,时间成本高 上游出现过失,下游会出现系统故障 适合:第一章 软件与软件工程, 页面 59
10.增量模型是什么,分析增量模型的优缺点。增量模型主要是克服瀑布模型的 什么缺点而产生的。 为解决瀑布模型的开发周期长等问题,出现了增量模型 增量模型:将需求分解,为每个需求划分为一个个增量,并为每个增量设置优先级,优先级高的放在前面开发,反之在后面再开发
优点: 开发周期短,能及时获得客户反馈 缺点 增量规模不能大 需要对系统需求十分了解,有过顶层设计经验
11.原型是什么?在软件工程中发挥什么作用? 原型建造模型:快速开发一个具有系统全部或者部分功能的原形,向客户展示,征求客户意见后再进一步修改完善。这样可以统一客户和软件开发人员对软件项目需求的理解
12.什么是螺旋模型?分析螺旋模型和瀑布模型的关系? 螺旋模型=迭代模型:螺旋线每个回路由四个阶段组成:
- 定义目标,
- 风险分析,
- 开发和验证,
- 制定规划

13.阐述通用软件开发过程的五项活动,分析通用软件过程的优点
通用软件开发过程划分为沟通、策划、建模、构建、部署。
5项活动构建软件过程模型,在软件项目管理等普适性活动的支持下进行软甲开发,增强了软件开发能力,突出了软件工程特色,具有较大的灵活性和适应性。
第二章 UML与RUP统一过程
1.简述敏捷开发过程模型的特点以及使用场合? 敏捷开发过程过程提倡客户全过程参与,利于深入理解客户需求 使用场合:建造原型,开发需求不确定的业务
2.简述面向对象方法学包含的6个核心概念的涵义。相对于传统的结构化方法和面向数据 的方法,结合面向对象方法的核心概念说明面向对象方法的优势。
面向对象方法的六个核心概念:对象,类,继承,聚合,多态,消息 第二章 UML与RUP统一过程, 页面 11 类:多个具有相似实体的统一抽象,例如成千上万个人,抽象成了”人类“这个类的概念 对象:类的具体实现,例如人这个类,具体到每个人身上就是一个个对象 继承:某些类会”遗传“某些类的属性,例如男人这个类,遗传了人类这个类的属性 聚合:一个类可能有很多个单独的类所组成,例如电脑这个类,由显示器,主机..等等类组成,且这 些单独的类可以独立存在,不像一个类中的某些属性不能单独存在 多态:在父类及其子类中,对外接口的定义形式相同,却可以对应多种接口的实现形态。 消息:消息传递是对象与其外部世界相互关联的唯一途径
优势: • 1.简化软件开发过程 面向对象方法-需求、设计、实现和测试 • 2.支持软件复用 继承 • 3.改善软件结构 封装 隐藏
3.UML(统一建模语言)是通过图形化的表示机制从多个侧面对系统的分析和设计模型进行 刻画,它定义了5类图形机制,请分别说明每一种图形机制分别是从哪些侧面对系统进行 分析或设计以及作用,以及每一种图形机制包含的图形类型。
面向对象方法这个方法运用UML这个统一的图形化工具,来对系统进行描述。而UML统一建模语言有五种图形机制,从多个”侧面“来对系统进行设计与描述
UML的五种图形机制有: 用例视图:从用户的角度描述系统功能 结构视图:从包图,类图,对象图来表示系统的静态结构 行为视图:从交互图,状态图,活动图、顺序图/时序图来侧面刻画系统的动态行为 构件视图:描述系统中各个组成构件之间的结构与依赖关系 部署视图:描述系统在屋里运行环境的分布情况 第二章 UML与RUP统一过程, 页面 20
• 第四章结合需求获取过程具体介绍UML用例、用例图、类图和活动图 • 第五章结合需求分析过程介绍顺序图、通信图和状态图, • 第七章结合软件体系结构的设计过程介绍包图、构件图、部署图 和对象图
4.[RUP]是用UML开发软件的统一过程,RUP把软件生存周期,也即软件制品的进化状态划分为初始、细化、构造、移交、生产5个阶段,将软件开发过程分解为业务建模需求、设计、实现、验证与确认、部署、配置和变更管理、项目管理、环境9个工作流,分别说明5个阶段所包含的软件制品,以及分别说明9个工作流的主要任务。

第三章 需求工程概论
1.什么叫软件需求?软件需求分为哪三个方面,举例说明每种需求的含义?为什么说在某 种程度上质量需求和约束需求比功能需求更为重要?
功能需求、 质量需求、约束性需求 在质量需求得不到满足的情况下,功能需求的实现对用户并无价值 第三章 需求工程概论, 页面 8
2.软件需求的质量要素包括正确性、完全性、可行性和可验证性,分别说明各个要素的含 义?
- 正确性—包含真实性、一致性、精确性和无冗余4个质量指标。 • 真实性指,每个需求项能真实反映利益相关方的需求; • 一致性指,需求项内部、需求项之间没有逻辑冲突; • 精确性指,需求项的表述不至引起二义或多义理解; • 无冗余指,每项需求在软件需求模型中仅出现一次,多项需求之间不存在语义重叠。
- 完全性:完全实现所有需求
- 可行性:在资源被约束的情况下,需求能被完整实现的可能性 第三章 需求工程概论, 页面 10
3.何谓需求建模?为什么说建立软件的需求模型是需求工程活动的焦点?抽象、分解与多 视点分析方法在需求建模过程中可分别发挥哪些作用?
需求建模的基本方法:抽象、分解、多视点分析
需求建模就是关于问题及需求的一种知识结构,用于发现用户需求中的不一致性,剔除不合理的部分 第三章 需求工程概论, 页面 23
4.一个完整的需求工程过程一般包括哪些活动,每一个活动的作用是什么? 第三章 需求工程概论, 页面 32 需求工程策划 需求获取 需求分析 需求规范化 需求验证 总结
5.第三章习题3.1 以下陈述哪些是有效的用户需求?请说明理由。 (1)目标软件应该用Java语言实现 是,约束性需求 (2)软件系统必须在5s内响应并处理外部事件。 是,约束性需求 (3)目标软件应该由一些特定的模块构成。 不是,描述不清晰 (4)当目标软件与用户交互时,必须使用某些特定的菜单和对话框。 不是,描述不清晰 (目前还没有答案验证)
6.第三章习题3.2 下述语句哪些属于不精确的用户需求?对于不精确的需求描述,请给出相应的需求分析对策 (1)系统应表现出良好的响应速度 (2)系统必须用菜单驱动。 (3)在数据录入画面应该有10个按钮。 (4)系统运行时占用的内存不得超过128KB (5)电梯应平稳运行 (6)即使系统崩溃,也不能损坏用户数据
1、5属于不精确的用户需求
7.抽象、分解与多视点分析方法在需求建模过程中可分别发挥哪些作用? 抽象:聚焦于当前重要的软件需求项、暂时忽略细节性或不太重要的需求项 分解:将应用问题分解为数个子问题,并分别针对子问题展开需求建模活动 多视点分析:系统观点与用户观点,信息观点,功能观点与行为观点 第三章 需求工程概论, 页面 28
8.需求工程中的活动包括哪些?为什么需求策划和总结活动是必要的? 同问题4 根据策划活动中确定的结果认可准则决定后续行动计划。
9.你认为需求工程过程中最困难的活动是什么?为什么? 10.针对于课后习题3.13问题A图书馆管理这个软件问题,规划问题A的需求工程过程并 说明规划的理由。(可参照P77应用场景2)
3.13下面4个著名的软件问题将作为实习题贯穿本书的需求分析和软件设计部分。请以3~4人为一组, 将3.3节所述的需求工程过程模型及其裁剪方法应用于这些问题,规划它们的需求工程过程并说明规划的理由
问题A图书馆管理(R.A.Kemmerer】 一个小型图书馆管理系统需完成以下工作: (1)借书还书 (2)在图书馆中增加/删除一本书 (3)按照作者名或专业领域检索一批书。 (4)找出被某位读者借出的一批书。 (5)找出最近借走某本图书的读者 该系统有两类用户:图书管理员与普通读者。功能(4)可供普通读者查找他们自己借出的书目。功能(1)、(2)、(5)只供图书管理员使用。 该系统必须满足以下限制: (1)馆中所有未借出的书籍能够供读者随时借阅。 (2)在同一时刻,一本书不能既被借出,又可供借阅。 (3)一个读者一次借出的书籍数目不能超过预定值
第四章 需求获取
1.何谓用例?用例的特性是什么?用例与软件需求之间的关系是什么? 用例即外部用户与软件之间的交互作用。具有相对独立性与完整性。用例是功能性软件需求的主体部分 第四章 需求获取, 页面 11
2.何谓用例图?用例图中的节点有哪两种?执行者有哪些类型?用例与用例之间的关系有哪些? UML用例图的三种基本元素:执行者,用例,关联 第四章 需求获取, 页面 13 节点有执行者与用例两种,执行者有主动执行者与被动执行者之分,有包含,扩展,和继承这三种关系,即三种关联
3.请使用UML工具软件(例如Enterprise Architect软件)绘制课程注册管理系统的用例图(参照图4.1)
4.类图的作用是什么?类与类之间的关系有哪些?
类图描述面向对象软件系统的静态结构,可用于表达领域概念模型
第四章 需求获取, 页面 26
关系有:
关联:一条实线,可以是单向也可以是双向,实线两段的数字体现多重性
聚合:空心菱形,靠近菱形的一段为整体。
组合:实心菱形,靠近菱形的一段为整体
依赖:虚线有向线段,箭头那段为被依赖的实体
实现:虚线有向线段,箭头为空心三角形,箭头那段为被实现的类
继承:实线有向线段,箭头为空心三角形,箭头那段为被继承的类

聚合与组合的区别,聚合与组合都是表示整体与部分的关系,但聚合的话部分可以独立于整体存在,而组合中部分不可以独立于整体存在
5.请使用UML工具软件(例如Enterprise Architect软件)绘制课程注册管理系统的概念类图(参照图4.2).

关联:例如Teacher与Course Offering,一位教师可以教授多门开课(*),而一门开课必须由至少一位教师(1..*)教授
聚合:Curriculum 和 Course Offering 之间。每个Course Offering可以独立于整体课程列表单独存在
组合:Course这个整体一旦删除,Course Offering中包含某个课程的开课都会被删除,不能独立存在
继承:Teacher Register Student 都继承了 User 的属性与方法
6.活动图的作用是什么?请使用UML工具软件(例如Enterprise Architect软件)绘制课程注册管理系统的制订课表用例的活动图(参照图4.5)。
活动图描述实体为完成某项功能而执行的操作序列

7.案例:课程注册管理系统- 为某学校的教务管理部门开发一个课程注册管理系统。 该校实施学分制,每学期开学前,教务管理人员利用该系统输入本学期开设的全部课程及相 关信息,提供课程总表(所有课程的任课教师、每门课程的上课时间和地点), 开学后,学生利用该系统查询课程和课表信息,在第一周注册课程或撤销对课程的注册. 软件系统为任课教师在学期内提供随时查询选修其所开课程的学生信息。学生可随时查询课 程信息、本人所选课程及课程表,教务管理人员可随时查询所有收录的课程信息。 根据案例的情况,完成如下需求建模: 1.请绘制课程注册管理系统的用例图(参照P86图4.1). 2.请绘制课程注册管理系统的概念类图(参照P90图4.2) 3.请设计出制订选课计划用例的操作界面草图。 4.请按照设想的操作界面,使用规范的结构语言对制订选课计划用例进行表示。 格式如下: 用例名称:制订选课计划 执行者:学生 基本动作序列: 1) 2)… 3). 5.请绘制课程注册管理系统的制订选课计划用例的活动图(参考P95图4.5)。
8.案例说明 一个小型图书馆管理系统,需要完成如下工作: (1)借书,还书 (2)在图书馆中增加/删除一本书 (3)按照作者名或专业领域检索一批书 (4)找出被某位读者借出的一批书 (5)找出最近借走某本图书的读者 该系统有两类用户:图书管理员与普通读者。 功能(4)可供普通读者查找他们自己借出的书目。功能(1),(2),(5)只供图书管理员使用. 该系统必须满足如下限制: (1)馆中所有未借出的书籍能够供读者随时借阅 (2)在同一时刻,一本书不能既被借出,又可供借阅 (3)一个读者一次借出的书籍数目不能超过预订值 根据案例的情况,完成如下需求建模: 1.根据小型图书馆管理系统的需求情况,从概念信息视点分析绘制小型图书馆管理系统的 概念模型类图。 2.根据小型图书馆管理系统功能需求情况,从用户视点分析绘制小型图书馆管理系统的用 例图. 3.设计一个”借阅图书”操作的界面草图,结合”借阅图书”操作界面的情况,给出”借阅图书” 用例的描述。 4.根据图书管理员的使用情况,绘制图书管理员的业务操作流程活动图。
第五章 需求分析与验证
1.说说需求分析建模的重要性的理由以及任务? 理由:分析模型是在用例模型的基础之上,更加结构化,清晰直观。是用例模型与软件设计模型之间的桥梁 第五章 需求分析与验证, 页面 5
2.为什么要进行需求优先级的分析?需求优先级有哪三种含义?需求优先级取决于哪三个因素?优先级计算公式是什么?
3.UML中有哪四种特殊的消息,说明这四种消息的特点? 自消息、返回消息、 创建(create)消息、销毁(destroy)消息
4.分别说明顺序图中的控制类、边界类、实体类、辅助类的任务和职责
5.使用UML软件绘制课程注册管理系统的”制订选课计划”用例的顺序图。(参见书本的P120图5.1)
6.案例说明
一个小型图书馆管理系统,需要完成如下工作:
(1)借书,还书
(2)在图书馆中增加/删除一本书
(3)按照作者名或专业领域检索一批书
(4)找出被某位读者借出的一批书
(5)找出最近借走某本图书的读者
该系统有两类用户:图书管理员与普通读者。 功能(4)可供普通读者查找他们自己借出的书目。功能(1),(2),(5)只供图书管理员使用。 该系统必须满足如下限制: (1)馆中所有未借出的书籍能够供读者随时借阅 (2)在同一时刻,一本书不能既被借出,又可供借阅 (3)一个读者一次借出的书籍数目不能超过预订值 作业要求 1.接续第四章作业,对”还书”用例进行用例描述 2.按照第四章作业的“借书”用例的描述情况,对该用例进行顺序图的分析,涉及的分析 类名称根据需要确定。 3.对””还书”用例进行顺序图的分析,涉及的分析类名称与”借书”用例顺序图名称保持一致。 4.分别对”图书”对象和”借阅记录”对象进行状态图分析 5.根据”借书”用例的顺序图、”还书”用例的顺序图,结合”图书”对象和”借阅记录”对象状态图分析的情况,绘制分析类图(局部):
第六章 软件设计概论
1.什么叫设计元素?设计元素的表现形式主要包括哪几种? 设计元素即设计模型中的模块,包括子系统、构件和类
2.何谓设计模型?典型的软件设计模型一般包括哪些? 设计模型是软件问题解决方案的逻辑表示 一般包括: 体系结构模型、用户界面模型(第七八章) 用例设计模型、数据模型、子系统/构件/类设 计模型(第九章) 第六章 软件设计概论, 页面 13
3.设计模型的质量要素包括哪几个方面? 正确性、充分性、 优化性和简单性
4.软件设计原则包括哪几种方法?各种方法的含义是什么? 抽象与逐步求精、强内聚及松耦合、信息隐藏及关注点分离 抽象与逐步求精:考虑高层次问题,暂时忽略底层细节,自顶向下进行抽象 强内聚及松耦合:针对模块而言 信息隐藏:隐藏哪些不需要输出的变量,将其设置为不可访问 关注点分离:关注某个模块,通过职责划分来分离关注点
5.完整软件设计过程的活动的包括哪几项? 设计策划 体系结构设计 人机交互设计 详细设计 设计整合与验证 设计总结 6.观察你所在的房间,找出一个熟悉的对象,例如:椅子、课桌或电话机的逐级抽象,至少要有三个层次。
第七章 软件体系结构设计
1.什么叫做软件体系结构?软件体系结构包括哪三大要素? 软件体系结构(architecture,也称“架构”)从 高层抽象的角度刻画组成目标软件系统的设计元素 (包括子系统、构件及类)以及它们之间的逻辑关联 第七章 软件体系结构设计, 页面 3
三大要素:组件,连接件,约束 第七章 软件体系结构设计, 页面 9 2.通常一个完整的软件体系结构应该包含哪些视图?各种类型的视图分别使用的UML图形模型有哪些? 第七章 软件体系结构设计, 页面 14 需要包括的视图:逻辑视图,开发视图,物理视图,运行视图,数据视图。 各个视图用到的UML模型 逻辑视图:包图,构件图,类图 开发视图:包图 物理视图:部署图 运行视图:活动图,对象图 数据视图:类图,E-R图
3.体系结构设计过程的主要活动包括哪些? 概念设计 体系结构精化 体系结构验证
第七章 软件体系结构设计, 页面 53 4.什么叫做设计模式?何为软件体系结构设计模式? 设计模式:以设计复用为目的,采用一种良好定义的、 正规的、一致的方式记录的软件设计经验 软件体系结构设计模式:以标准并且规范的方式记录软件设计经验,支持软件设计级复用
5.分别介绍分层模式、管道过滤模式、黑板模式的特点以及典型应用情景?
(一)分层模式:将软件系统按照抽象级别逐次递增或递减的顺序划 分为若干层次,每层由一些抽象级别相同的构件组成 (二)管道与过滤器模式:将软件系统的功能实现为一系列 处理步骤,每个步骤封装在一个过滤器构件中。仅适合采用批处理方式的软件系统,不 适合交互式、事件驱动式系统 (三)黑板模式:黑板模式将软件系统划分为黑板、知识源和控制器三类构件。适合于没有确定的求解方法的复杂问题 第七章 软件体系结构设计, 页面 77
6.对小型图书馆管理系统进行软件体系结构设计 1.逻辑视图 (说明采用的体系结构模式的理由,根据需求分析进行体系结构逻辑图的绘制,以及包含的各个组件的职责说明) 2.开发视图 (根据逻辑视图包含的组件,结合编程实现,绘制各个包形成的树形结构图) 3.物理视图 (根据逻辑图包含的组件,绘制这些组件运行时的物理分布描述) 4.数据视图 (以数据类图或E-R图形式对数据库的各个数据表进行描述) 5.前后端的Restful API接口定义 (根据各个控制器类的情况进行RESTFul接口定义)
| 序号 | URL地址 | 参数 | 作用 |
| 1 | auth/login | 用户账号和密码 | 系统登录 |
| 2 | auth/add/user | 用户信息对象 | 用户注册 |
| 3 | … |
第八章 人机交互设计
1.用户界面设计的基本原则。 易理解性,易操作性,灵敏性,一致性,容错性,人性化
2.屏幕中的界面元素有哪几种。采用UML类来表示屏幕,屏幕中的哪些元素体现为屏幕类的属性,哪些元素对应类的操作.
界面元素:静态元素,动态元素,用户输入元素,用户命令元素。
- 动态元素体现为类的属性;
- 命令元素对应的动作体现为类的操作 第八章 人机交互设计, 页面 20
3.用户界面设计过程的主要活动包括哪些,
用户分析、任务分析及建模; 概念设计; 界面流设计;界面精化。 第八章 人机交互设计, 页面 26
4.对小型图书馆管理系统的“用户信息管理”进行界面设计,包括屏幕的布局,屏幕类的设计,以及界面流的设计
第九章 软件详细设计
1.详细设计的任务? 对体系结构设计和界面设计的成果进行细化和 精化,最终获得高质量的详细设计模型
2.详细设计模型的质量要素? ⑴正确性――模型中若干设计元素通过模型指定的 协作方式能够实现所有的软件需求; ⑵优化性――模型以充分优化的方式实现所有的软 件需求; ⑶设计充分性――模型的细化和精确程度足以作为 软件编程人员的全部工作基础,没有含混、笼 统和歧义之处。 第九章 软件详细设计, 页面 5
3.详细设计过程的主要活动包括哪六个方面? 5. 用例设计 6. 子系统设计 7. 构件设计 8. 类设计 9. 数据模型设计 10. 设计整合与验证
4.用例设计的子活动归纳如下:(1)设计用例实现方案;(2)导出设计类图;(3)整合并优化用例实现方案。其中设计用例实现方案是按照用例逐个给出用UML交互图表的软件实现方案,研究分析模型中该用例的UML交互图表示,它是生成基于设计元素的用例实现方案的主要基础。试根据小型图书馆管理系统的图书管理用例分析模型,给出该用例的实现方案(顺序图)和设计类图. 5.简述子系统设计与构件设计的异同?
第十章 软件实现
1.软件实现包括哪些活动? 编写代码、 单元测试、集成测试、调试、确认等多项 活动,是一个迭代过程 第十章 软件实现, 页面 3 2.编码标准包括哪些原则? (1)编制易于修改、维护的代码 (2)编制易于测试的代码 (3)必须将编程与编文档的工作统一起来 (4)编程中采用统一的标准和约定,降低程序复杂性 (5)限定每一层的副作用,减少耦合度 (6)尽可能地复用
3.编码风格包括哪些规则? 11. 节俭化 12. 模块化 13. 简单化 14. 结构化 15. 文档化 16. 格式化
4.测试和调试的区别? 测试的目的是找出系统是否发生故障 调试的目的是找出这些故障的原因与具体位置,并加以修正 第十章 软件实现, 页面 58
5.调试过程包括哪些活动? 17. 识别问题 18. 收集信息 19. 假设缺陷原因 20. 追加测试 21. 重复进行其他假设并验证 6.软件缺陷包括哪些类别? (1)内存资源泄漏 (2)逻辑错误 (3)访问越界 (4)循环错误 (5)条件错误 (6)指针错误 (7)分配/释放错误 (8)多线程错误 (9)存储错误 (10)集成错误 (11)转换错误 (12)版本和复用错误
7.调试测试包括哪几种?
- 原始类
- 回溯类
- 排除类*
8.调试技术包括哪几种? (1)记录和查看日志 (2)查找类似代码和问题 (3)代码消去法 (4)简化重现过程 (5)缩小目标法 (6)植错法 (7)编译检测法 (8)更换编译器 (9)每次改变一个因素 (11)检查最近修改 (12)删除假设法 (13)检查未被测试的代码 (14)不变式和断言 (15)跟踪系统运行情况 (16)深入理解算法 (17)检查链接 (18)增加重放能力
第十二章 软件测试
1.何谓软件测试? 2.测试用例包括哪些内容? 3.黑盒测试与白盒测试的区别? 4.分别简要的说明单元测试、集成测试、确认测试、系统测试的目的以及使用的测试方法? 5.设计白盒测试的测试用例的原则包括哪些?白盒测试主要包括基本路径测试技术和控制结构测试技术,控制结构测试技术又包括哪些测试方法? 6.单元测试任务包括哪些? 7.测试过程中应设计驱动模块和桩模块,驱动模块和桩模块的作用是什么? 8.集成测试包括两种增量式的集成方法,分别是自顶向下集成和自底向上集成。分别说明这两种集成测试方法的步骤以及优缺点? 9.a、β测试两者的区别? 10.系统测试包括哪些类别?
第十三章
1.软件维护根据原因可以分为哪四类? 2.简述维护工作量的估算模型? 3.何谓软件可维护性?影响软件可维护性的因素有哪些? 4.何谓软件重构?涉及哪四个层次的工作?