软件工程期末考试资料
- 格式:doc
- 大小:42.50 KB
- 文档页数:7
软件工程期末考试参考题及答案1. 考试题目:软件需求工程考试要求:根据给定的需求文档,完成以下题目。
题目一:根据给定的需求文档,设计一个在线购物系统。
请根据以下要求完成系统设计:(1)使用UML类图绘制系统的类结构;(2)使用UML时序图描述用户登录和浏览商品的流程;(3)使用UML活动图描述用户下订单的流程。
答案:(1)类图如下所示:[在这里插入UML类图图片](2)时序图如下所示:[在这里插入UML时序图图片](3)活动图如下所示:[在这里插入UML活动图图片]题目二:根据给定的需求文档,设计一个在线学习系统。
请根据以下要求完成系统设计:(1)使用UML用例图描述系统的功能需求;(2)使用UML活动图描述学生完成在线学习的流程;(3)使用UML状态图描述学生的学习状态变化。
答案:(1)用例图如下所示:[在这里插入UML用例图图片](2)活动图如下所示:[在这里插入UML活动图图片](3)状态图如下所示:[在这里插入UML状态图图片]2. 考试题目:软件设计模式考试要求:根据给定的题目,选择并解答以下问题。
题目一:分析以下代码,判断其使用了哪种设计模式,并阐述该设计模式的作用和优势。
```javapublic interface Car {void drive();}public class Sedan implements Car {@Overridepublic void drive() {System.out.println("Driving a sedan car."); }}public class SUV implements Car {@Overridepublic void drive() {System.out.println("Driving an SUV car."); }}public class CarFactory {public Car createCar(String type) {if (type.equals("sedan")) {return new Sedan();} else if (type.equals("suv")) {return new SUV();} else {throw new IllegalArgumentException("Invalid car type: " + type);}}}```答案:该代码使用了工厂模式。
可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。
(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。
(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。
(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。
(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。
(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。
(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。
《软件工程》期末试卷(一)(满分100分)考试时间:120分钟(可根据具体情况适当调整)1.单项选择题(每题2分,共20分)(1)以下哪一项不属于软件工程三要素()。
A.过程B. 方法C. 工具D. 计划(2)以下哪一项不属于软件管理过程()。
A. ISO9000B. CMMC. IEEED. 软件企业文化(3)对安全性要求极高的开发方法是()。
A. 面向过程的方法B. 面向对象的方法C. 面向数据的方法D. 形式化方法(4)在软件的生命周期中,位于需求分析和单元测试之间的是()。
A.详细设计B. 集成测试C. 立项D. 维护(5)以下对于喷泉模型的说法正确的是()。
A.需要分析结束后才开始设计B. 开发人员可以同步开发C. 不需要大量的开发人员D. 审核简单(6)软件设计的三层体系结构是()。
A.表示、中间、数据B. 表示、客户、逻辑C. 表示、业务、逻辑D. 前端、表示、数据(7)活动图是()。
A. 表达系统静态特性的图B. 展现数据之间转移的控制流C. 着重逻辑过程D. 一种分组机制(8)采用黑盒测试()。
A. 低成本见效快B. 用户需求报告复杂C. 准备工作时间长D. 定位准确(9)动态模型不包括()。
A. 状态模型B. 对象模型C. 交互模型D. 活动模型(10)用例之间的关系有()。
A. 扩展关系、协助关系B. 异步关系、同步关系C. 顺序关系、结构关系D. 包含关系、扩展关系2.填空题(每题2分,共20分)(1)需求分析员参与客户需求调研,撰写________________。
(2)_______________是软件策划的核心、重点与难点。
(3)软件由程序、数据和______________组成。
(4)______________是软件设计的基础,______________是软件开发的核心。
(5)需求分析分为两个阶段,_______________阶段和需求规约阶段。
(6)对象图的组成元素包括对象和______________。
1、下列哪一模型是软件的基础模型A.瀑布模型B.快速原型C.增量模型D.螺旋模型2、划分软件生存周期的阶段时所应遵循的基本原则是A.各阶段的任务尽可能相对独立B.各阶段的任务在时间上连续C.各阶段的任务尽可能相关性D.各阶段的任务在时间上相对独立3、下列哪个办法不属于解决软件危机的途径之一A.采用软件工程的解决途径B.研制新一代智能计算机C.采用面向对象的软件设计方法D.大力扶持软件企业4、下列哪个不属于软件工程的内涵之一A.扶持培养软件高手的学院B.开发既可靠又能有效运行的软件C.应用完善的科学与工程原理D.经济地开发软件5.造成大型软件开发困难的根本原因在于A.开发人员缺乏足够的开发经验B.项目开发进度不合理C.软件系统的复杂性D.对软件开发的资金投入不足6.软件会逐渐退化而不会磨损,其原因在于A.软件备件很难订购B.不断的变更使组件接口之间引起错误C.软件错误在经常使用之后会逐渐增加D.软件通常暴露在恶劣的环境下7.下面说法正确的是A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功D.购买大多数计算机系统所需的硬件比软件更昂贵8.Ariane 5火箭发射失败的事例告诉我们A.(2)软件后备系统可以通过复制生成B.(3)软件重用必须重新进行系统论证和系统测试C. 选项(1)和(3)D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制9.软件危机的主要原因是A.软件本身的特点及开发方法。
B.软件工具落后。
C.软件生产能力不足。
D.对软件的认识不够。
10.下面的描述正确的是A.软件质量是在开发过程中逐渐构建起来的。
B.软件质量是由产品的功能、性能、易用性等外在特性决定的。
C.运行正确的软件就是高质量的软件。
D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。
《软件工程》期末考试试卷附答案一、选择题(每小题3分,共10小题,共30分)1. 软件需求规格说明的内容不应包括()。
A.主要功能B.算法的详细描述C.用户界面及运行环境D.软件的性能2. 程序的三种基本控制结构是()。
A.过程、子程序和分程序B.顺序、选择和重复C.递归、迭代和回溯D.调用、返回和转移3. 在E-R模型中,包含以下基本成分()。
A.数据、对象、实体B.控制、联系、对象C.实体、联系、属性D.实体、属性、操作4.软件测试的目标是()。
A.证明软件是正确的B.发现错误、降低错误带来的风险C.排除软件中所有的错误D.与软件调试相同5.软件是()。
A.处理对象和处理规则的描述B.程序C.程序及其文档D.计算机系统6. <!--[endif]-->面向对象的分析方法主要是建立三类模型,即()。
A.系统模型、ER模型、应用模型B.对象模型、动态模型、应用模型C.E-R模型、对象模型、功能模型D.对象模型、动态模型、功能模型7. <!--[endif]-->各种软件维护的类型中最重要的是( )。
A.完善性维护B.纠错性维护C.适应性维护D.预防性维护8.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法9.在软件开发模型中,提出最早,应用最广泛的模型是()A,瀑布B,螺旋C,演化D,智能10.软件工程方法是在实践中不断发展着的,而早期的软件工程方法一般是()A,原型化方法B,结构化方法C,面向对象方法D,功能分解法二、判断题(每小题3分,共10小题,共30分)()1、开发软件就是编写程序。
()2、系统测试的主要方法是白盒法和黑盒法。
()3、编程序时应尽可能利用硬件特点以提高程序效率.()4、软件需求分析的任务是建立软件模块结构图。
一、填空题(每空1分, 共20分)1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件旳功能进行划分, 软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究重要集中在如下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.顾客界面旳可使用性是顾客界面设计最重要旳也是最基本旳目旳。
5.常见旳软件概要设计措施有3大类: 以数据流图为基础构造模块构造旳___构造化设计措施_________, 以数据构造为基础构造模块旳__jackson措施__________, 以对象、类、继承和通信为基础旳__面向对象设计措施__________。
6.__数据流图________和__数据字典___共同构成系统旳逻辑模型。
7.软件测试旳措施有__分析措施________和___非分析措施_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主, ___黑盒______测试为辅。
9.成本估计措施重要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
二、单项选择题(每题2分, 共10分)1.下列哪个阶段不属于软件生存周期旳三大阶段( C )。
A.计划阶段B.开发阶段2. C.编码阶段 D.维护阶段3.需求分析是(A )。
A. 软件开发工作旳基础B. 软件生存周期旳开始C. 由系统分析员单独完毕旳D. 由顾客自己单独完毕旳原型化措施是软件开发中一类常用旳措施, 它与构造化措施相比较, 更需要( B )。
A. 明确旳需求定义B.完整旳生命周期C、较长旳开发时间D、纯熟旳开发人员软件维护时, 对测试阶段未发现旳错误进行测试、诊断、定位、纠错, 直至修改旳回归测试过程称为( A )。
A、改正性维护B、适应性维护C、完善性维护D、防止性维护一般说来, 投入运行旳软件系统中有错误(A )。
软件工程试题及答案第一部分选择题一、单项选择题每小题1分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASEB.人工智能CASEC.结构的基于图形CASED.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量B.动态单变量C.静态多变量D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性B.可重用性C.适应性D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()A.效率B.规模C.完整性D.容错性6.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合B.隐藏C.封装D.抽象7.软件调试技术包括()A.边界值分析B.演绎法C.循环覆盖D.集成测试8.瀑布模型的存在问题是()A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求9.软件测试方法中的静态测试方法之一为()A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析10.软件生命周期中所花费用最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护11.第一个体现结构化编程思想的程序设计语言是()A.FORTRAN语言B.Pascal语言C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD 14.详细设计的结果基本决定了最终程序的()A.代码的规模B.运行速度C.质量D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么B.用户使用界面C.输入的信息D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
软件工程期末考试试题一、选择题(每题2分,共20分)1. 在软件开发过程中,哪个阶段是设计阶段的前一个阶段?A. 需求分析B. 测试C. 维护D. 实施2. 敏捷开发方法论中,哪个是其核心实践之一?A. 详细文档B. 持续集成C. 长期规划D. 严格的需求定义3. 在面向对象编程中,封装的主要目的是什么?A. 代码重用B. 隐藏实现细节C. 增加函数数量D. 提高执行速度4. 在软件测试中,单元测试主要关注什么?A. 系统的整体功能B. 单个模块的功能C. 系统的性能D. 系统的安全性5. 软件项目管理中,哪个工具用于帮助项目经理跟踪项目进度?A. 甘特图B. 流程图C. 思维导图D. 状态图二、简答题(每题10分,共30分)1. 解释什么是软件危机,并简述其产生的原因。
2. 描述软件开发生命周期(SDLC)的主要阶段。
3. 解释什么是软件架构,并简述其在软件开发中的作用。
三、应用题(每题25分,共50分)1. 假设你是一个软件开发团队的项目经理,你的团队正在开发一个电子商务网站。
请描述你将如何使用敏捷开发方法来管理这个项目,并列出至少三个关键的敏捷实践。
2. 给定一个场景:一个软件产品在发布后发现存在性能问题,用户报告响应时间缓慢。
作为软件工程师,你需要设计一个性能测试计划来诊断问题。
请列出你的测试计划的主要步骤,并解释你将如何使用这些步骤来识别和解决问题。
四、案例分析题(共30分)阅读以下案例,并回答相关问题:某软件公司开发了一个在线预订系统,但在用户使用过程中频繁出现系统崩溃的问题。
经过初步调查,开发团队怀疑是数据库连接问题。
请分析可能的原因,并提出解决方案。
请根据上述案例,回答以下问题:1. 系统崩溃可能与哪些数据库连接问题有关?2. 如何设计测试来验证这些假设?3. 如果测试结果证实了问题,你将如何优化数据库连接以提高系统稳定性?。
一、选择题:1、用例图中,用来表示用例的符号为( B ) 。
2、协作图中包含的元素包括(A ) 。
A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。
A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。
A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。
A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。
A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。
A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。
A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。
A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。
A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。
A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。
A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。
《软件工程》得分评卷人二、填空题(每空2分,共20分)期末考试一试卷1.在软件开发过程中要产生大批的信息,要进行大批的改正,能协调软件开发,并使:号位座考生注意:1.本试卷共有五道大题,满分100分。
杂乱减到最低程度。
2.考试时间90分钟。
2.规定功能的软件,在必定程度上对自己错误的作用拥有障蔽能力,则称此3.卷面整齐,笔迹工整。
软件。
4.填写内容不得高出密封线。
3.McCall提出的软件质量模型包含个软件质量特征。
密总分题号一二三四五核分人题分1520203015复查人得分得分评卷人一、名词解说题(每题3分,共15分):号学 1.软件生计周期模型封数据词典DD:业专内聚性:名姓方法线4.软件可保护性胸怀的七个质量特征是可理解性、可测试性、可改正性、靠使用性和效率。
5.为了便于比较检查,测试用例应由输入数据和预期的6.程序设计语言的心理特征主要表此刻、简短性、传统7.软件构造是以为基础而构成的一种控制层次构造。
8.使用类创立对象的过程其实是类的过程。
9.构造化语言是介于自然语言和之间的一种半形式语10.若年利率为i,不计复利,n年后可得钱数为F,则此刻的价值得分评卷人三、简答题(每题5分,共20分)1.简述容错技术的四种主要手段,并解说。
2.以的看法,简述对软件测试的目的。
5.多态性:站授函就程序设计语言的工程特征而言,对程序编码有哪些要求?模块的内聚性包含哪些种类?得分评卷人四、理论应用题(每题15分,共30分)请使用PAD图和PDL语言描绘在数组A(1)~A(10)中找最大数的算法。
2.依据以下条件使用等价类区分法设计测试用例。
某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065。
得分评卷人五、实践应用题(每题15分,共15分)1.某电器公司公司部下的厂包含技术科、生产科等基层单位。
此刻想成立一个计算机协助公司管理系统生产科的任务是:1)依据销售公司转来的内部合同(产品型号、规格、数目、交获日期)拟订车间月生产计划。
软件工程第一章:1.软件的组成不仅是程序、数据和文档,而且还有完成一定功能和性能所蕴含的知识和经验。
2.领域知识是基于计算机的系统的设计、软件需求获取和系统测试不可或缺的。
3.软件发展的历史给我们的启发是社会需求和硬件进步是软件技术发展的基础。
4.软件的进步和成就促进了信息社会和知识经济的发展。
5.按照应用领域、基本属性和特点研究软件有助于对软件的理解,提高了软件开发、使用和维护的针对性。
6.软件工程学科具有鲜明的工程特性。
第二章:1.面向对象方法是现代软件工程技术体系的基石,它以分类、继承、聚合、封装、多态和消息传递等贴近人类思维习惯的概念。
2.因面向对象与生俱来的自然性、直观性,以及支持软件复用、改善软件结构等许多优势,面向对象方法后来居上,迅速取代结构化方法而成为当前主流的软件开发方法学。
3.UML通过图形化的表示机制从多个侧面表示软件系统的分析和设计模型。
4.UML定义了5类图形机制:用例视图,包括用例描述和用例图;结构视图,包括视图,包括包图、类图和对象图;行为视图,包括交互图、状态图与活动图;构件视图和部署视图。
5.RUP将软件生存周期(即软件制品的进化状态)划分为初始、细化、构造、移交、生产5个阶段。
6.RUP将软件开发过程分解为业务建模、需求、设计、实现、V&V、部署、配置和变更管理、项目管理、环境9个工作流。
7.软件项目团队可利用5个阶段、9个工作流组织管理软件项目的开发活动。
RUP 过程中生成的各类制品通常以UML表示。
8.软件开发过程是基于面向对象方法学的,包括需求获取、需求分析、体系结构设计、人机交互设计、详细设计、实现、测试、维护与进化等重要的软件开发阶段。
第三章:1.软件需求是指利益相关方对目标软件系统在功能、性能和质量等方面的期望,以及对目标软件系统在运行环境、资源消耗等方面的约束。
2.软件需求可划分为功能需求、质量需求和约束性需求3种类型,其中质量需求和约束性需求统称为非功能需求。
3.软件需求的质量要素包括正确性、完全性和可行性。
4.需求调查包括:访谈和会议、调查问卷、业务文档分析、现场观摩。
5.需求建模包括:抽象、分解和多视点分析。
6.需求模型包括:策划、需求获取、需求分析、需求规范化、需求验证和总结等活动。
7.对大中型软件项目以及初期初期需求不明朗的软件项目,需求工程过程采用迭代方式。
第四章1.需求获取是需求工程中后续活动的基础,需求工程又是后续软件开发活动的基础。
需求获取对于软件项目的成就具有决定性影响。
2.UML的用例、用例图、类图、活动图等是记录、表示需求获取结果的合适工具。
用例驱动的过程模型可用于知道需求获取活动。
3.用例驱动的过程模型包括4大步骤:定义软件问题、创建框架用例、精化用例、评审用例模型。
4.需求获取阶段的主要输出制品包括经评审通过的软件问题定义、领域概念模型、业务流程模型、用例模型、业务规则和非功能需求说明。
第五章1.需求分析的主要工作是对需求获取阶段得到的需求模型进行需求项的优先级分析、基于用例模型构建以分析类图和交互图为主题的分析模型。
2.相对于需求获取阶段获得的用例模型,分析模型更加精确、全面、完整,业务逻辑线索更加鲜明,从而为软件设计和实现奠定了更好的基础,提供了更多的支持。
3.用例驱动的过程模型可用于指导需求分析活动,该过程包含的三大步骤:需求优先级分析、用例分析、分析模型评审。
4.需求分析阶段的主要输出制品为需求规约,其主体内容是软件需求的用例模型、分析模型及非功能需求的描述。
5.需求分析过程中,软件质量保证工程师应当并行地检查、审查需求分析的过程和输出制品,以便及时发现过程与输出制品中可能存在的质量缺陷。
第六章1.软甲设计的主要任务是根据软件需求模型导出软件的实现方案,这种方案表现为设计模型。
2.典型的软件设计模型一般包括体系结构模型、用户界面模型、用例设计模型、数据模型、子系统/构件/类设计模型。
3.设计模型的质量要素包括正确性、充分性、优化性和简单性4方面。
4.为了获得高质量的设计模型,软件设计必须遵循一些基本的设计原则,包括抽象与逐步求精、强内聚及松耦合、信息隐藏和关注点分离原则。
5.为了获得高质量的需求模型,软件设计还必须遵循系统化的过程模型,它通常包括策划、体系结构设计、人机交互设计、详细设计和总结等活动。
第七章1.软件体系结构从高层抽象的角度刻画组成目标软件系统的设计元素以及它们之间的逻辑关联。
2.按照自顶下向、逐步求精的设计原则,软件设计往往始于体系结构设计,其设计成果构成后续的详细设计和软件实现的主要工作基础。
3.与详细设计相比,体系结构设计对灵活性、可修改性、可扩充性等质量需求的影响是全局性的、决定性的。
4.一个完整的软件体系结构通常包含逻辑视图、开发视图、物理视图、运行视图和数据视图。
5.用于表示体系结构的逻辑视图的UML图形机制主要是包图和构件图,有时还辅以类图;开发视图的表示可能会用到UML包图;物理视图显然应表示为UML部署图;运行视图通常表示为UML 活动图,有时还辅以对象图;数据视图一般表示为UML类图或实体——关系图。
6.软件体系结构的设计过程一般那依序包括概念设计、精化和验证。
第八章1.软件产品其成败最终取决于用户的满意程度。
2.在软件设计,尤其是用户界面设计的过程中,遵循以用户为中心的设计理念是至关重要的。
3.以用户为中心的理念包括:对用户特征的研究和理解应该作为软件设计决策的主要依据,在软件开发的各个阶段尽可能获得来自用户的反馈并利用用户反馈改进或优化设计。
4.基于以用户为总新的设计理念,软件产品的用户界面设计必须遵循易理解性、易操作性、灵敏性、一致性、容错性、人性化等原则。
5.用户界面的设计过程主要包括用户及任务分析、概念设计、界面流设计和界面精化。
6.在界面设计的整个过程中均必须给予用户分析的成果进行设计决策,这是提高用户满意度的关键之一。
第九章1.详细设计是软件体系结构与软件实现之间的桥梁,是确保体系结构设计成果得以落地的关键环节。
2.详细设计主要任务是对体系结构模型和界面设计模型进行细化和精化,最终获得高质量的详细设计模型。
3.详细设计模型的主要质量要素包括正确性、优化性和设计充分性。
4、一个完整的详细设计过程通常包括用例设计、子系统设计、构件设计、类设计、数据模型设计、设计整合和设计验证等活动。
5.用例设计的目标是确保体系结构模型、界面设计模型与需求工程阶段获得的用例模型的符合型。
6.用例设计的关键步骤包括:针对每个用例给出以UML交互图表示的软件实现方案,据此构造设计类图,从全局和整体的高度整合所有的用例实现方案7.子系统设计的任务是确定子系统内部的结构。
8.子系统设计的关键步骤包括:确立子系统内部的设计元素并将子系统的服务提供接口中规定的职责分配给这些设计元素,构造子系统的设计类图,必要时构造子系统的状态图和相关的状态图。
9.构件设计与子系统设计非常类似,但是构件设计非常强调接口与实现相分离、为复用而设计。
10.类设计的任务是对体系结构模型中出现的关键设计类,以及界面设计模型、子系统设计模型和构件设计模型中出现的类进行细化设计。
11.类设计的关键步骤包括:精化类之间的关系,精化类的操作和属性,必要时构造类的典型对象的状态图和与类相关的活动图。
12.数据模型设计的任务是确定设计模型中需要持久保存的数据条目。
13.数据模型的关键步骤包括:确定设计模型中需要持久保存的类的对象及其属性,确定持久数据的组织方式,确定数据模型中的操作行为,通过合适的索引、反规范化等手段优化持久数据操作的性能。
14.设计整合的任务是整合前面获得的所有设计模型,检查并消解它们之间的不一致性,剔除冗余性,最终形成正式的设计规约。
15.设计规约必须遵循规范的格式,能够直接成为软件编码实现的基础。
16.设计验证的目标是确保设计规约能够以足够优化的方式实现所有的软件需求,确保设计模型已经精化到合格的软件实现工程师能够构造出符合软件设计者期望的目标软件系统。
17.软件设计是迈向最终软件解的漫长征途中的非常关键的一程。
第十章1.软件实现是软件开发过程的重要组成部分,其任务是把软件详细设计翻译为计算机可以“理解”、最终可运行的代码。
2.软件实现涉及编写模块代码、单元测试、集成测试、调试和确认等多项活动,是一个迭代过程。
3.编写代码需借助某种程序设计语言的帮助。
4.程序设计若根据其语言基本机制的不同又可分为过程式、函数式、逻辑程序设计语言和面向对象程设计语言4类。
5.编程准则和编程风格也对编码质量产生深远的影响。
6.调试针对软件缺陷的表征确定引起缺陷的代码。
第十一章1.面向数据流的分析与设计技术在软件工程发展史上具有重要地位,特别是实时嵌入式系统。
2.数据流图、数据字典和实体——关系图是面向数据流分析的基本机制。
3.基于数据流图进行需求分析的大致过程为:创建数据流模型、创建控制流模型、针对原子级处理功能给出过程规约。
维持数据流图各层次平衡、保证需求和设计模型的一致性是非常重要的原则。
4.基于数据流图进行软件设计的大致过程如下:(1)确定信息流的类型(2)划定流界(3)将DFD映射为程序结构。
(4)提取层次控制结构。
(5)通过设计复审和使用启发式策略进一步精化模型结构。
第十二章1.软件测试时软件质量保证的关键。
2.软件测试的任务是检查软件是否满足规约,并在软件制品交付前尽可能发现软件中潜伏的缺陷,减轻交付后软件改正性维护的开销。
3.软件测试需要程序运行,为测试专门设计的输入数据成为测试用例。
4.软件测试分黑盒测试和白盒测试两种方法。
5.黑盒测试用例检验软件功能是否正确,白盒测试用例则测试程序中的重要逻辑路径。
6.在测试资源有限的情况下,用白盒测试方法测试程序所有的逻辑路径是不现实的。
白盒测试技术包括基本路径测试、条件测试、数据流测试和循环测试等。
7.黑盒测试技术包括等价分类、边界值分析和对比测试等。
8.软件测试需制定测试规划,包括测试策略、测试用例集设计、测试步骤、测试实施和测试结果收集评估等。
9.测试步骤包括单元测试、集成测试、确认测试和系统测试。
10.单元测试针对单个模块,模块组装后进行集成测试,软件系统交付前,请客户和专家参加进行确认测试。
5第十三章1.软件系统交付后即进入维护阶段。
软件维护是软件的进化。
2.软件可维护性是软件质量标准的重要要素,是软件开发过程努力追求的一个目标。
3.软件维护分为纠错性维护、适应性维护、完善性维护和预防性维护4类。
4.软件重构是目前预防性维护采用的主要技术,是目前对遗留系统或未按软件工程标准开发的软件实施维护的主要手段。
5.软件重构分为文档重构、重组、逆向工程和再工程,重构需要软件工具和环境的支持。
6.软件维护经常遇到的问题与软件规划和开发方法有关。