作业次数: 软件工程第五次作业
作业范围: 第一章至第十三章(复习)
第一题:名词解释
1.极限编程 (Extreme programming)。
答:把好的开发实践运用到极致,是一种典型的开发方式。
2.状态转换图。
答:状态转换图(简称为状态图)通过描绘系统状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作。因此,可以用状态图建立软件系统的行为模型。
3.软件生命周期(Software Life Cycle,SLC)。
答:由软件定义,软件开发和运行和维护3个时期组成,每个时期又进一步划分成若干个阶段。
4.问题域(Problem Domain)。
答:面向对象方法学的要点面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。
5.PAD图。
答:PAD是问题分析图(problem analysis diagram)的英文缩写,它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。
6.实体-关联图(Entity Relationship Diagram)。
答:包含3种相互关联的信息:数据对象,数据对象的属性和数据对象间的联系。
7.软件危机(Software Crisis)。
答:软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
8.软件质量保证(Software Quality)。
答:软件质量保证(software quality assurance, SQA)的措施主要有:基于非执行的测试(也称为复审或评审),基于执行的测试(即以前讲过的软件测试)和程序正确性证明。
9.IPO图。
答:IPO图是输入、处理、输出图的简称,它能够方便地描绘输入数据、对数据的处理和输出数据之间的关系,可以用来描述数据流图中处理框的功能,也可以描述程序模块的功能或实现算法。
10.面向对象的高内聚低耦合。
答:(1)耦合:一个软件结构内不同模块之间互连的紧密程度
(2)弱耦合:系统中某一部分的变化对其他部分的影响降到最低程度
(3)对象之间的耦合:交互耦合&继承耦合
(4)内聚衡量一个模块内各个元素彼此结合的紧密程度
(5)在设计时应该力求做到高内聚
(6)面向对象设计的3种内聚: 服务内聚、类内聚、一般特殊内聚
11.数据流图 (DFD) 。
答:DFD是一种图形化技术, 它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
12.功能点技术(Function Point) 。
答:依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点(FP)为单位度量软件规模。
13.功能模型。
答:功能模型表示变化的系统的“功能”性质,它指明系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。
功能模型由一组数据流图组成。建立功能模型有助于软件开发人员更深入地理解问题域,改进和完善自己的设计。
14.数据规范化。
答:软件系统经常使用各种长期保存的信息,这些信息通常以一定的方式组织并存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异常,简化数据修改的过程, 通常需要把数据结构规范化。
15.软件工程方法学。
答:软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。软件过程是软件工程方法学的3个重要组成部分之一。
16.软件质量。
答:软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征一致的程度。
17.敏捷过程。
答:为了使软件开发团队具有高效工作和快速响应变化的能力。
18.软件生命周期。
答:由软件定义,软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
19.工程 络图。
答:工程 络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,此外,它还显式地描绘各个作业彼此间的依赖关系。因此,工程 络是系统分析和系统设计的强有力的工具。
20.动态联编。
答:虚函数机制使得程序员能在一个类等级中使用相同函数的多个不同版本,在运行时刻才根据接收消息的对象所属于的类,决定到底执行哪个特定的版本,这称为动态联编,也叫滞后联编。
21.系统流程图。
答:系统流程图是概括地描绘物理系统的传统工具,它用图形符 以黑盒子形式描绘组成系统的每个具体部件。 系统流程图表达的是,数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此,它是物理数据流图而不是程序流程图。
22.HIPO图。
答:HIPO 图是“层次图加输入/处理/输出图”的英文缩写 。 它用层次图描绘软件结构,和层次图中每个方框相对应,有一张 IPO 图(或表)描绘这个方框代表的模块的处理过程。
23.软件重用。
答:重用也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。
广义地说,软件重用可分为以下3个层次:
(1)知识重用
(2)方法和标准的重用
(3)软件成分的重用
上述前两个重用层次属于知识工程研究的范畴,本节仅讨论软件成分重用问题。
24.数字字典(Digital Dictionary)。
答:数据字典是关于数据的信息的集合,也就是对数据流图中包含的元素的定义的集合。它的作用是在软件分析和设计的过程中提供关于数据的描述信息。
25.判定树。
答:判定树是判定表的变种,它也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。
26.过程设计语言(PDL)
答:过程设计语言(PDL)也称为伪码。是用正文形式表示数据和处理过程的设计工具。
27.代码的健壮性(Robust)。
答:所谓健壮性就是在硬件故障、输入的数据无效或操作错误等意外环境下,系统能做出适当响应的程度。
第二题: 说明典型的可重用软件成分,主要有哪十种/strong>
答:(1)项目计划
(2)成本估计
(3)体系结构
(4)需求模型和规格说明
(5)设计结果
(6)源代码
(7)用户文档和技术文档
(8)用户界面
(9)数据
(10)测试用例
第三题: 说明软件维护的定义及通过描述软件交付使用后可能进行的4项活动/strong>
答:概括地说,软件维护就是在软件已经交付用户使用之后,为了改正软 件中的错误或使软件满足新的需求而修改软件的过程。更具体地说,软件维护包括下述4项活动。
(1) 改正性维护
(2) 适应性维护
(3) 完善性维护
(4) 预防性维护
第四题:功能需求是对软件系统的一项基本需求,试问通常对软件系统有哪几方面的综合要求/strong>
答:(1)功能需求
(2)接口需求
(3)性能需求
(4)约束
(5)可靠性和可用性需求
(6)逆向需求
(7)出错处理需求
(8)将来可能提出的要求
第五题: 试问试述面向对象的封装(encapsulation)、继承(inheritance)、多态性(polymorphism)和重载(overloading)/strong>
答:封装是指把数据和实现操作的代码集中起来放在对象内部。
继承是子类自动地共享基类中定义的数据和方法的机制。
多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。
有两种重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。
重载进一步提高了面向对象系统的灵活性和可读性。
第六题: 试绘出自动售货机系统的用例图并说明。

第三十四题: 请简述说明软件的可维护性与哪些因素有关软件开发过程中应该采取哪些措施来提高软件产品的可维护/strong>
答:因素:
1.可理解性
2.可测试性
3.可修改性
4.可移植性
5.可重用性
-
可维护性是所有软件都应该具备的基本特点,必须在开发阶段保证软件具有8.4.1节中提到的那些可维护因素。
-
在完成了每项维护工作之后,都应该对软件维护本身进行仔细认真的复审。 不能准确反映软件当前状态的设计文档可能比完全没有文档更坏。
-
如果对软件的可执行部分的修改没有及时反映在用户文档中,则必然会使用户因为受挫折而产生不满。
-
在软件再次交付使用之前,对软件配置进行严格的复审,则可大大减少文档的问题。
-
在需求分析阶段的复审过程中,应该对将来要改进的部分和可能会修改的部分加以注意并指明;应该讨论软件的可移植性问题,并且考虑可能影响软件维护的系统界面。
-
在正式的和非正式的设计复审期间,应该从容易修改、模块化和功能独立的目标出发,评价软件的结构和过程;设计中应该对将来可能修改的部分预作准备。
-
代码复审应该强调编码风格和内部说明文档这两个影响可维护性的因素。
-
在设计和编码过程中应该尽量使用可重用的软件构件,如果需要开发新的构件,也应该注意提高构件的可重用性。
-
在测试结束时进行最正式的可维护性复审,这个复审称为配置复审。配置复审的目的是保证软件配置的所有成分是完整的、一致的和可理解的,而且为了便于修改和管理已经编目归档了。
第三十五题: 请说明在软件开发的早期阶段为什么要进行可行性研究该从哪些方面研究目标系统的可行性/strong>
答:因为并非任何问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模或时间期限之内解决;如果问题没有可行的解,那么花费在这项工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费;可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
应该从以下方面研究:
(1)技术可行性使用现有的技术能实现这个系统吗br> (2)经济可行性这个系统的经济效益能超过它的开发成本吗br> (3)操作可行性系统的操作方式在这个用户组织内行得通吗/p>
第三十六题: 请简述说明模块耦合和模块内聚的类型和关系。
答:模块耦合分为数据耦合、控制耦合、特征耦合、公共环境耦合和内容耦合
模块内聚分为三大类低内聚、中内聚和高内聚
关系:重要的是设计时高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立性。
第三十七题: 请说明未来毕业设计论文的内容若依照面向对向(OO)范式开发软件需要呈现哪些具体内容以及对应的图有哪些种类/strong>
答:内容:
1.类
2.实例
3.消息
4.方法
5.属性
6.封装
7.继承
8.多态性
9.重载
图:数据流程图,结构图,类图,UML图
第三十八题: 请说明未来毕业设计论文的内容若依照结构化范式开发软件需要呈现哪些具体内容以及对应的图有哪些种类/strong>
答:1. 问题定义 2. 可行性研究 3.需求分析 4.总体设计5. 详细设计6. 编码和单元测试 7.人机界面 8.数据库设计
E-R图、数据流图、盒图、用例图、系统架构图
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!