60多道题总复习题(含参考答案),希望对大家的软件工程期末复习有帮助,你值得收藏!(#^.^#)
答:极限编程,把好的开发实践运用到极致,是一种典型的开发方式。 |
答:状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。 |
答:由软件定义、软件开发和运行维护这3个时期组成,每个时期又进一步划分成若干个阶段。 |
答:问题域:描述问题的问题空间。 面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也即让描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。 |
答:PAD图:Problem Analysis Diagram,即问题分析图,PAD用二维树形结构的图来表示程序的控制流。 |
答:为了把用户的数据要求清楚并准确地描述出来,系统分析员通常建立一个概念性的数据模型即实体关联图(ER图)。 |
答:软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:
|
答:软件质量保证的措施主要有:基于非执行的测试(也称为复审或评审),基于执行的测试(即以前讲过的软件测试)和程序正确性证明。 |
答:IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。 |
答: • 耦合:一个软件结构内不同模块之间互连的紧密程度 • 低耦合:系统中某一部分的变化对其他部分的影响降到最低程度 • 对象之间的耦合:交互耦合&继承耦合
• 内聚衡量一个模块内各个元素彼此结合的紧密程度 • 在设计时应该力求做到高内聚低耦合 • 面向对象设计的3种内聚:服务内聚、类内聚、一般\特殊内聚 |
答:DFD是一种图形化技术, 它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 |
答:依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点(FP)为单位度量软件规模。 |
答:功能模型表示变化的系统的“功能”性质,它指明系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。 功能模型由一组数据流图组成。建立功能模型有助于软件开发人员更深入地理解问题域,改进和完善自己的设计。 |
答:软件系统经常使用各种长期保存的信息,这些信息通常以一定的方式组织并存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异常,简化数据修改的过程,通常需要把数据结构规范化 |
软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。 软件过程是软件工程方法学的3个重要组成部分之一。 |
概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。 更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。 |
答:敏捷过程:为了使软件开发团队具有高效工作和快速响应变化的能力 |
答:工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间。此外,它还显式地描绘各个作业彼此间的依赖关系。因此,工程网络图是系统分析和系统设计的强有力的工具。 |
答:动态联编指应用系统在运行过程中,当需要执行一个特定服务的时候,选择(或联编)实现该服务的适当算法的能力。 |
答:一个概括地描绘物理系统的传统工具,表达了数据在系统各部件之间流动的情况。 |
答:HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”,即Hierarchical diagram plus input / processing / output,简称HIPO。 |
软件重用也叫软件再用或复用,是指同一个软件部分不作修改或稍加改动就多次重复使用。 广义地说,软件重用可分为以下3个层次: (1) 知识重用 (2) 方法和标准的重用 (3) 软件成分的重用 |
答:是关于数据的信息的集合, 也就是对数据流图中包含的所有元素的定义的集合。 |
答:判定树是判定表的变种,它也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。 |
答:过程设计语言(PDL)也称为伪码。是用正文形式表示数据和处理过程的设计工具。 |
答:健壮性就是在硬件故障、输入的数据无效或操作错误等意外环境下,系统能做出适当响应的程度。 |
答:典型的可重用软件成分:
|
(1)软件维护:在软件已经交付使用之后,为改正错误或满足新的需要而修改软件的过程。 (2)软件交付使用后可能进行的4项活动: 1.改正性维护 2.适应性维护 3.完善性维护 4.预防性维护 |
答:对软件系统8个方面的综合要求:
|
答:
|
在上面自动售货机系统的用例图中:
|
答: 3个模型:对象模型、动态模型和功能模型。 模型包含系统的3个要素:静态结构(对象模型)、交互次序(动态模型)和数据变换(功能模型) 5个层次:
|
|
答:模块独立性的重要性:
|
|
|
答:
|
|
(1)面向对象方法的四个要点
(2)面向对象的方法学可以用下列方程来概括: OO = objects + classes + Inheritance + communication with messages 既使用对象,又使用类和继承等机制,且对象之间仅能通过传递消息实现彼此通信。 |
|
|
类与类之间的四种关系:关联、泛化(继承)、依赖和细化。
|
|
(1)反复多次地做修改程序的尝试,与不可见的设计及源代码“顽强战斗”,以实现所要求的修改。 (2)通过仔细分析程序尽可能多地掌握程序的内部工作细节,以便更有效地修改它。 (3)在深入理解原有设计的基础上,用软件工程方法重新设计、重新编码和测试那些需要变更的软件部分。 (4)以软件工程方法学为指导,对程序全部重新设计、重新编码和测试,为此可以使用CASE工具(逆向工程和再工程工具)来帮助理解原有的设计 |
答:可靠性和可用性之间的主要差别是:可靠性意味着在0到τ这段时间间隔内系统没有失效,而可用性只意味着在这段时间内系统是正常运行的。 |
寻找类与对象,识别结构,识别主题,定义属性,建立动态模型,建立功能模型,定义服务。 |
|
优点 |
缺点 |
---|---|---|
瀑布模型 使用范围:
|
它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。 |
(1)实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。 |
(2)客户通常难以表达真正的需求,而该模型却要求如此,是不欢迎具有二义性问题存在的。
|
||
(3) 客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾难性的。 |
||
快速原型模型 使用范围:
|
使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。 |
产品的先天性不足。因为开发者常常需要做实现上的折中,可能要采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。 |
增量模型 (具有一定的市场)
使用范围:
|
(1) 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。 |
(1) 至始至终开发者和客户纠缠在一起,直到完全版本出来。 |
(2) 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 |
(2) 适合于软件需求不明确、设计方案有一定风险的软件项目。 |
|
螺旋模型 (使用范围:适合于大型软件的开发) |
对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。 |
(1) 需要相当的风险分析评估的专门技术,且成功依赖于这种技术。 |
(2)将导致风险问题的发生,可能导致演化的方法失去控制。 |
||
(3) 这种模型相对比较新,应用不广泛,其功效需要进一步的验证。 |
概括地说,软件质量,即“软件与明确地和隐含地定义的需求相一致的程度”。 更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。 |
(1)Petri网:用于确定系统中隐含的定时问题的一种有效技术。 Petri网结构是一个四元组C=(P,T,I,O) P:{P1,,..,Pn}是一个有穷位置集 T:{t1,..,tm}是一个有穷转换集(T和P不相交) I:输入函数,由转换到位置无序单位组的映射。 O:输出函数,由转换到位置无序单位组的映射。 Petri网例子: 位置集P: {P1, P2, P3, P4} 转换集T: { t1, t2} 输入函数集I: I(t1) ={P2, P4} I (t2)= {P2} 输出函数集O: O(t1) ={P1} O(t2)={P3} (2)有穷状态机包括状态集J、输入集K、由当前状态和当前输入确定次态的转换函数T、初始态S和终态集F这5个部分。 有穷状态机例子: 根据转换图,可以写出该有穷状态机:
两种技术的评价: 1)Petri网适于说明并发系统中的定时问题(如同步问题、竞争条件以及死锁问题等)。 2)有穷状态机采用了一种简单的格式来描述规格说明: 当前状态+事件+谓词=>下个状态 这种形式的规格说明易于书写、易于验证,且能较容易地把它转变成设计或程序代码(可开发一个CASE工具将有穷状态机规格说明直接转变为源代码) |
1. 设想供选择的方案 2. 选取合理的方案 3. 推荐最佳方案 4. 功能分解 5. 设计软件结构 6. 设计数据库 7. 制定测试计划 8. 书写文档 9. 审查和复审 |
答:以上模型需要产生出的图有四种:UML类图、UML状态图、UML用例图和数据流图。
|
(1)用非形式化的方式描述时,存在矛盾、二义性、含糊性或不完整性级抽象层次混乱等问题时应该使用形式化说明技术。 (2)使用形式化方法应遵循的准则:
|
答:决定软件可维护性的因素主要有下述5个。
|
1,设计结果应该清晰易懂; 2,一般-特殊结构的深度应适当; 3,设计简单的类; 4,使用简单的协议; 5,使用简单的服务; 6,把设计变动减至最小。 |
对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960)
存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位)
如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字)
在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:
(1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?
(2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。
(1) 1、1985年对计算机存储容量的需求估计:M=4080e0.28(1985-1960)=4474263(字) 2、当字长为16位,存储器价格:P=0.048*0.72(1985-1974)*4474263=5789美元
(2) 需要工作量=4474263/200=22371(人/月) 指令成本=22371*4000=89484000美元
(3) 1、需求估计M=4080e0.28(1995-1960)=73577679字 2、存储器价格P=0.003*32*0.72(1995-1974)*73577679=7127美元 3、工作量=73577679/600=122629(人/月) 成本=122629*6000=735776790美元 |
(1)软件的可维护性与以下因素有关:
(2)提高软件产品的可维护的措施: 在每个阶段结束前的技术审查和管理复查中,对可维护性进行复审过程中,应该着重对将来要改进的部分和可能要改的部分加以注意指明,应该讨论软件的可移植性问题,考虑可能影响软件维护的系统界面。 在设计和编码过程中应该尽量使用可重用的软件构件,每个测试步骤都可以暗示在软件正式交付使用之前,程序中可能需要做预防性维护的部分。 在完成每项维护工作之后,都应该对软件维护本身仔细认真地复审。 |
(1)开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,否则花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。 可行性研究实质是在较高层次上以较抽象的方式进行系统分析和设计的过程。因此需要在软件开发的早期阶段进行可行性研究用最小的代价确定问题是否能够解决,从而以避免无谓的浪费。 (2)一般说来,至少应该从以下三个方面研究每种解法的可行性: a. 技术可行性。对要开发项目的功能、 性能和限制条件进行分析, 确定在现有的资源条件下,技术风险有多大,项目是否能实现。这里的“资源”包括已有的或可以搞到的硬件、软件资源,现有技术人员的技术水平和已有的工作基础。 b. 经济可行性。进行开发成本的估算以及了解取得效益的评估, 确定要开发的项目是否值得投资开发,对于大多数系统,一般衡量经济上是否合算,包括成本—效益分析、长期公司经营策略、开发所需的成本和资源和潜在的市场前景。 c. 操作可行性。有时还要研究社会可行性问题,研究要开发的项目是否存在任何侵犯、妨碍等责任问题。社会可行性所涉及的范围也比较广,它包括合同、责任、 侵权和其他一些技术人员常常不了解的陷阱等。 必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。 |
(1)耦合式对一个软件结构内不同模块之间互联程度的度量。耦合强弱取决于接口的复杂度,进入或访问某一模块的点,以及通过接口的数据。一般模块之间的可能的连接方式有七种,构成耦合的七种类型,它们的关系为:
(2)内聚标志着一个模块内各个元素之间彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。 ①低内聚:
②中内聚:
③ 高内聚:
|
(1)若根据面向对象范式开发软件,需要呈现的具体内容:
(2)对应的图,种类有:类图、事件追踪图、人机界面图、状态图、基本系统模型图、数据流图。 |
答:若依照结构化范式开发软件,需要呈现的具体内容:
对应的图有5种: E-R图、数据流图、盒图、用例图、系统架构图 |