软件工程第八章知识点
软件工程导论课件第8章
![软件工程导论课件第8章](https://img.taocdn.com/s3/m/295c911efc4ffe473368ab3d.png)
5. 数据重构 对数据体系结构差的程序很难进行适应性和 完善性维护,因此,数据体系结构比源代码对程序 的长期生存力有更大影响。 数据重构是一种全范围的再工程活动。由于 数据重构对程序体系结构及程序中的算法有很大影 响,对数据的修改必然会导致程序体系结构或代码 层的改变。
3
2.适应性维护 为适应变化了的环境界面而修改软件的活动, 称为适应性维护。包括: (1)因硬件或支撑软件改变引起的变化; (2)将软件移植到新的机种上运行; (3)因数据环境的变化而做的变更。 这类维护大约占软件维护总工作量的25%。
4
3.完善性维护 为了满足用户要求,就得对软件进行修改和 扩充,我们称这种维护为完善性维护。完善性维护 主要包括: (1)提高处理效率; (2)提高性能。 在整个维护工作中, 完善性维护大约占50% 左右,区居第一位。
3. 逆向工程 软件的逆向工程是,分析程序以便在比源代码 更高的抽象层次上创建出程序的某种描述的过程, 也就是说,逆向工程是一个恢复设计结果的过程。 4. 代码重构 某些老程序的体系结构比较合理,但是,一些 模块的编码方式却是难于理解、测试和维护的。在 这种情况下,可以重构这些模块的代码。 通常,代码重构并不修改程序的体系结构,它 只关注个体模块的设计细节以及在模块中定义的局 部数据结构。如果重构扩展到模块边界以外并涉及 软件体系结构,则重构变成了正向工程。
13
(四)软件维护过程 维护过程的实质是对软件定义和开发过程的修 改和压缩。维护过程的主要任务是:建立维护机构, 填写维护报告和评价,为每个维护要求规定一种规 范化的处理序列,建立对维护活动的登记制度及规 定评价复审的标准。 1.维护组织 机构中有一名维护管理员总负责,每项维护要 求都通过维护管理员转交给相应的系统管理员去评 价。系统管理员对维护任务做出评价之后,由变化 授权人决定应该进行的活动,最后由系统管理员去 执行维护任务。
软件工程辅导课程八事务分析
![软件工程辅导课程八事务分析](https://img.taocdn.com/s3/m/a97fefef5acfa1c7aa00ccc7.png)
• 设计程序主要采用结构化的程序设计方 法。
2020/5/19
基本步骤
• 确定模块如何实现 • 编写详细设计说明书 • 制定单元测试计划 • 详细设计评审
2020/5/19
什么是结构程序设计
• 结构程序设计是一种设计程序的技术,它 采用自顶向下逐步求精的设计方法和单入 口单出口的控制结构。
(1)自顶向下逐步求精的方法符合人类解决复 杂问题的普遍规律,因此可以显著提高软 件开发工程的成功率和生产率。
(2)用先全局后局部、先整体后细节、先抽象 后具体的逐步求精过程开发出的程序有清 晰的层次结构,因此容易阅读和理解。
(3)不使用GO TO语句仅使用单入口单出口的控 制结构,使得程序的静态结构和它的动态 执行情况比较一致,易于阅读和理解。
2020/5/19
结构化程序设计
• 概念
– 自顶向下逐步求精的设计方法 – 单入口单出口的控制结构 – 三种基本结构
• 优点
– 符合问题分解,抽象到具体的思路 – 具有清晰的层次结构,便于阅读和理解 – 程序的静态结构与动态执行具有较高的一致性 – 程序的控制结构简单(顺序,循环和分支) – 清晰化与模块化便于代码重用 – 程序的清晰结构便于程序的正确性证明
2020/5/19
事务分析
2020/5/19
事务分析
• 事务分析的设计步骤和变换分析的设计步骤大部 分相同或类似,主要差别仅在由数据流程图到软 件结构的映射方法不同。由事务流映射成的软件 结构包括一个接收分支和一个发送分支。
• 映射出接收分支结构的方法和变换分析映射出输 入结构的方法相似,即从事务中心的边界开始, 把沿着接收流通路的处理逻辑映射成模块。
软件工程考核知识点-第8章-软件维护
![软件工程考核知识点-第8章-软件维护](https://img.taocdn.com/s3/m/4b0521fef705cc17552709d0.png)
软件工程考核知识点-第8章-软件维护第8章软件维护软件投入使用后就进入软件维护阶段。
维护阶段是软件生存周期中时间最长的一个阶段,所花费的精力和费用也是最多的一个阶段。
8.1软件维护的内容软件维护内容有四种:校正性维护,适应性维护,完善性维护和预防性维护。
1.校正性维护在软件交付使用后,由于在软件开发过程中产生的错误并没有完全彻底的在测试中发现,因此必然有一部分隐含的错误被带到维护阶段来。
这些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
校正性维护占整个维护工作的20%左右。
2.适应性维护随着计算机的飞速发展,计算机硬件和软件环境也在不断发生变化,数据环境也在不断发生变化。
为了使应用软件适应这种而修改软件的过程称为适应性维护。
这种维护活动占整个维护活动的25%。
3.完善性维护在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。
这是因为用户的业务会发生变化,组织机构也会发生变化。
为了适应这些变化,应用软件原来的功能和性能需要扩充和增强,为达到这个目的而进行的维护活动称为完善性维护,占整个维护活动的50%。
4.预防性维护为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
这是为以后进一步的运行和维护打好基础,占整个维护工作的4%。
8.2 维护的特点8.2.1非结构化维护和结构化维护软件的开发过程对软件的维护过程有较大的影响。
若不采用软件过程的方法开发软件,则软件只有程序而无文档,维护工作非常难,这就是一种非结构化的维护。
若采用软件工程的方法开发软件,则各阶段都有相应的文档,这容易进行维护工作,这是一种结构化的维护。
1.非结构化维护因为只有源程序,而文档很少或没有文档,维护活动只能从阅读、理解、分析源程序开始。
这是软件工程时代以前进行维护的情况。
2.结构化维护用软件工程思想开发的软件具有各阶段的文档,这对于理解和掌握软件功能、性能、系统结构、数据结构、系统接口和设计约束有很大作用。
四年级软件工程下册第八单元总结
![四年级软件工程下册第八单元总结](https://img.taocdn.com/s3/m/59d4974db42acfc789eb172ded630b1c59ee9b30.png)
四年级软件工程下册第八单元总结1. 单元概述四年级软件工程下册第八单元主要介绍了软件工程的核心概念和方法,旨在帮助学生深入理解软件工程的基本原则,掌握软件开发过程中的关键环节,培养良好的软件工程实践习惯。
本单元涵盖了软件需求分析、软件设计、编码、测试和维护等方面的内容,通过理论讲解、实例分析和实践操作,使学生能够全面掌握软件工程的理论和实践技能。
2. 单元知识点2.1 软件需求分析软件需求分析是软件开发过程中的首要环节,主要任务是理解和收集用户需求,形成需求文档。
本单元介绍了需求分析的基本方法,包括调查法、观察法、访谈法和原型法等,并讲解了需求分析的基本步骤,包括需求收集、需求分析、需求规格化和需求验证等。
2.2 软件设计软件设计是软件开发过程中的关键环节,主要任务是根据需求分析结果,设计软件的总体结构和具体实现方案。
本单元介绍了软件设计的基本方法,包括结构化设计、面向对象设计和敏捷设计等,并讲解了设计的基本步骤,包括问题域分析、功能分析、结构分析和详细设计等。
2.3 编码编码是软件开发过程中的实现环节,主要任务是将设计好的软件方案转化为计算机可以理解的程序代码。
本单元介绍了编码的基本规范和技巧,包括编码风格、命名规则和编程习惯等,并讲解了常见编程错误和调试方法。
2.4 测试测试是软件开发过程中的验证环节,主要任务是检查软件的功能和性能是否满足需求分析中的规定。
本单元介绍了测试的基本方法,包括黑盒测试、白盒测试和灰盒测试等,并讲解了测试的基本步骤,包括测试计划、测试用例设计和测试执行等。
2.5 维护维护是软件开发过程中的持续环节,主要任务是修复软件在使用过程中发现的问题,优化软件性能,延长软件寿命。
本单元介绍了维护的基本方法和策略,包括错误修复、性能优化和功能扩展等,并讲解了维护的基本步骤,包括维护计划、维护实施和维护评估等。
3. 单元实践本单元要求学生通过实践操作,将所学的软件工程理论和方法应用于实际的软件开发过程中。
第8章 面向对象分析-软件工程基础(第3版)-胡思康-清华大学出版社
![第8章 面向对象分析-软件工程基础(第3版)-胡思康-清华大学出版社](https://img.taocdn.com/s3/m/def5d0d290c69ec3d4bb751a.png)
第8章 面向对象分析
第 5 页5
面向对象分析概述
面向对象分析的3类模型
OOA模型由3类独立模型构成:功能模型、静态模型和动态模型。 ➢功能模型描述软件系统的用户交互和功能。 ➢静态模型描述软件系统中类与对象以及它们间的关系,也因也称 为对象模型。 ➢动态模型描述系统的控制结构,也称为交互模型。
第8章 面向对象分析
第 6 页6
面向对象分析概述
类
静态模型的5个层次 类-对象层
对象
Coad和Yourdon 提出,对于大型、复杂 性软件系统,需要建立 分析问题域的静态模型。 该模型由5个层次组成: 类-对象层、结构层、 属性层、服务层和主题 层。
结构层 属性层 服务层 主题层
泛化关系
关联关系
属性
对象连接
服务
消息连接
⑶ 用例描述:用文字信息详细描述用例的内容,它是对用 例的有益补充。
第8章 面向对象分析
第 8 页8
建立静态模型
➢用例模型分别从参与者和系统的角度描述用户需求, 依据用例模型导出静态模型。静态模型是面向对象建 模中最基本、最重要、最耗时的技术活动。 ➢静态建模的任务是构建问题域的概念模型,把问题 域中的实体转变为信息域的类与对象以及它们间的关 系,因此也被称为对象模型或领域模型。 ➢静态模型通过建立类图及关系来反映领域概念,而 面向对象设计也建立类图,但各阶段对类的抽象程度 不同。
第8章 面向对象分析
第 12 页12
建立动态模型
建立状态图
状态图描述的就是对象状态的转换过程。通过对对象状态 的分析,能够了解对象在系统流程中的变换,从而发现潜在的事 件和条件。
建立状态图的一般过程如下: ⑴ 了解系统的主要功能和性能,确定和它们有关的主要对象。 ⑵ 列出一个对象的生存期内的所有可能的状态。 ⑶ 确定对象状态改变时的触发条件或事件。 ⑷ 在一个对象中,选定一组与描述状态相关的行为属性和促使 改变状态的方法。 ⑸ 结合触发条件、事件、行为属性值改变的先后顺序,建立软 件系统的状态图。
软件工程吴迪第八章课后答案
![软件工程吴迪第八章课后答案](https://img.taocdn.com/s3/m/867303ff51e2524de518964bcf84b9d528ea2cc2.png)
软件工程吴迪第八章课后答案HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】软件工程课后答案《软件工程》作业及答案1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
1-2假设你是一家软件公司的总工程师,当你把图给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
《软件工程(第二版)》 第八章
![《软件工程(第二版)》 第八章](https://img.taocdn.com/s3/m/dd8e22c9524de518964b7d7a.png)
黑盒测试时完全不考虑程序内部的结构和处理过程, 只按照规格说明书的规定来检查程序是否符合它的功能 要求。黑盒测试是在程序接口进行的测试,又称为功能 测试。
黑盒测试检查的主要方面有: 程序的功能是否正确或完善; 数据的输入能否正确接收,输出是否正确; 是否能保证外部信息(如数据文件)的完整性等。
用黑盒法设计测试用例时,必须用所有可能的输入数 据来检查程序是否都能产生正确的输出。
1.单元测试 又称模块测试。每个程序模块完成一个相对独 立的子功能,所以可以对该模块进行单独的测试。 由于每个模块都有清晰定义的功能,所以通常比较 容易设计相应的测试方案,以检验每个模块的正确 性。 2.集成测试 在单元测试完成后,要考虑将模块集成为系统 的过程中可能出现的问题,例如,模块之间的通信 和协调问题,所以在单元测试结束之后还要进行集 成测试。这个步骤着重测试模块间的接口,子功能 的组合是否达到了预期要求的功能,全程数据结构 是否有问题等。
1、语句覆盖
语句覆盖就是设计足够的调试用例,使得程序中的每个 语句至少执行一次。
左 图 程 序 段 中 共 有 4 条 路 径 : P1 ( ace ) 、 P2 (abd)、P3(abe)、P4(acd)。 P1正好满足语句覆盖的条件。可以设计如下的 输入数据: A=2,B=0,x=4 语句覆盖不能发现判断中的逻辑运算中的错误。 第一个判断中的逻辑运算符“&&”若错写成了“||”, 利用上面的输入数据则检查不出这个错误。
5、条件组合覆盖 条件组合覆盖就是设计足够的测试用例,使得每个判定 中的条件的各种可能组合都至少出现一次。 可能的条件组合: 相应的输入数据: (1)A>1,B=0 A=2,B=0,x=4 (2)A>1,B≠0 满足(1)和(5) (3)A≤1,B=0 A=2,B=1,x=1 (4)A≤1,B≠0 满足(2)和(6) (5)A=2,x>1 A=1,B=0,x=2 (6)A=2,x≤1 满足(3)和(7) (7)A≠2,x>1 A=1,B=1,x=1 (8)A≠2,x≤1 满足(4)和(8) 显然,满足条件组合覆盖的测试数据,也一定满足判定 覆盖、条件覆盖和判定/条件覆盖标准。但是,满足条件组 合覆盖标准的测试数据并不一定覆盖了程序中的每条路径, 例如,利用上述四组测试数据就遗漏了路径P4(acd)。
软 件 工 程(8-n)
![软 件 工 程(8-n)](https://img.taocdn.com/s3/m/a1b47888680203d8ce2f2450.png)
结构化软件设计
阳王东
回答问题
什么是软件设计?有哪些阶段和任务? 什么是模块化设计?有哪些原理? 什么是软件结构和体系结构?二者有什么区别? 数据流有哪些类型?如何区分?
数据流映射的步骤是什么?
什么是结构化程序设计?有哪些工具? 什么是JSD方法?具体步骤是什么?
重构
重构是一种重新组织的技术,可以简化构件或模块的
设计或编码而无需改变其功能或行为。
重构是一种改进程序内部结构但不改变代码或设计的
外部行为。 “先使它转起来,再使它快起来”。
小结
设计的基本原理和概念包括模块化、抽象、体系结构、
信息隐蔽、模块独立、逐步求精和重构等。
软件体系结构提供了待建系统的整体视图,它描述软
本质,才能准确分析和处理问题,找到合理的解决方 案。
逐步求精
逐步求精,或称逐步细化,是一种自顶向下的设计策
略。
逐步求精是人类采用抽象到具体的过程把一个复杂问
题趋于简单化控制和管理的有效策略。 抽象和精化是互补的概念。
信息隐藏
信息隐蔽原则建议模块应该具有的特征是:每个模块
对其他所有模块都隐蔽自己的设计决策。
口的数据类型和数目。 分类:
非直接耦合 数据耦合 控制耦合 外部耦合
公共耦合
内容耦合
耦合性分类
弱 强
非直接耦 数据耦合 特征耦合 控制耦合 外部耦合 公共耦合 内容耦合 合 弱耦合 中耦合 较强耦合 强耦合
模块化设计的优化
改进软件结构提高模块独立性 在满足模块化要求的前提下尽量减少模块数量,在满
模块独立性由两个定性标准度量: 模块自身的内聚(Cohesion)),也称为块内联系或 模块强度, 模块之间的耦合(Coupling),也称为块间联系。 模块独立性愈高,则块内联系越强,块间联系越弱。
软件工程第八章课后题
![软件工程第八章课后题](https://img.taocdn.com/s3/m/303169864afe04a1b071deed.png)
一、选择题1.下列耦合度表示中,最弱的耦合形式是( )。
A.特征耦合 B.公共耦合 C.数据耦合 D.数据结构2.一个模块传送给另一模块的参数是由单个数据项组成的数组,它属于( )耦合。
A.数据型B、复合型C、内容型D、公共型3.PAD(Problem Analysis Diagram)图是一种( )工具。
A.系统描述 B.详细设计 C.测试 D.编程辅助4.下列系统设计工具中,( )不属于详细设计工具。
A.N—S图 B.数据流图 C.程序流程图 D.PAD 5.程序流程图、N-S图和PAD图是( )使用的表达工具。
A.设计阶段的概要设计B.设计阶段的详细设计C.编码阶段D.测试阶段二、填空题1.详细设计的任务是确定每个模块的内部特性,即模块的算法、。
2.是对软件结构中模快间关联程度的一种度量。
3.独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条的边的路径。
4.成本效益分析的目的是从角度评价开发一个项目是否可行。
三、应用题1.系统设计的内容是什么?答案:一、1.C 2.A 3.B 4.B 5.B二、1.使用的数据2.耦合度3.在其他独立路径中未有过4.经济三、1.系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
软件工程8_2
![软件工程8_2](https://img.taocdn.com/s3/m/b5bb59d97f1922791688e8a4.png)
使用类图的几个建议
把精力放在关键的环节,最好只画几张较为 关键的图,并且不断更新细化。使用类图 的最大危险是过早地陷入实现细节。
Байду номын сангаас
8.9 配置图
• 配置图表示该软件系统如何部署到硬件环 境中。 • 它的用途是显示该系统不同的组件将在何 处物理地运行,以及它们将如何彼此通信。 • 因为配置(部署图)是对物理运行情况进 行建模,系统的生产人员就可以很好地利 用这种图。
8.8.1 类的表示和获取
• 类是包含信息和影响信息行为的逻辑元素。 类的符号是由三个格子的长方形组成,有 时下面两个格子可以省略。 • 最顶部的格子包含类的名字,类的命名应 尽量用应用领域中的术语,有明确的含义, 以利于开发人员与用户的理解和交流。中 间的格子说明类的属性。最下面的格子是 类的操作行为。
接口
• 接口和组件之间的关系分为两种:实现关 系(Realization)和依赖关系(Dependency)。 接口和组件之间用实线连接表示实现关系, 用虚线连接表示依赖关系。
组件如何依赖于其他组件
• 显示Order系统组件如何依赖于其他组件的 组件图 • 下图 显示,Order系统组件依赖于客户资 源库和库存系统组件。注意在图 中复制出 的接口名 CustomerLookup 和 ProductAccessor。
类图
借还书纪录
类名
属性 行为
读者编号 图书编号 借出时间 还书时间 预定纪录 创建纪录() 读取纪录() 保存纪录() 删除纪录()
• 类的获取是一个依赖于人的创造力的过 程。 • 实践中,寻找类有两种办法:一种是从 用例的描述开始,检查用况描述中的每 个名词。 • 另一种是检查顺序图中的对象,研究对 象具有的共同属性和操作来发现类。 • 注意,并不是所有的类都能够从工作 流和交互图中找到。
软件工程导论第8章
![软件工程导论第8章](https://img.taocdn.com/s3/m/6eb43cda33d4b14e85246840.png)
配臵
代码 评价代码 ? 重编程序
非结构 化维护
复查
结构化维护与非结构化维护比较示意图
5
1. 非结构化维护 如果软件配臵的惟一成分是程序代码,那么维护活动从艰苦地评价程序代码开始,而且 常常由于程序内部文档不足而使评价更困难,对于软件结构、全程数据结构、系统接口、性 能和(或)设计约束等经常会产生误解,而且对程序代码所做的改动的后果也是难于估量的: 因为没有测试方面的文档,所以不可能进行回归测试(即指为了保证所做的修改没有在以前 可以正常使用的软件功能中引入错误而重复过去做过的测试)。非结构化维护需要付出很大 代价(浪费精力并且遭受挫折的打击),这种维护方式是没有使用良好定义的方法学开发出来 的软件的必然结果。 2. 结构化维护 如果有一个完整的软件配臵存在,那么维护工作从评价设计文档开始,确定软件重要的 结构特点、性能特点以及接口特点;估量要求的改动将带来的影响,并且计划实施途径。然 后首先修改设计并且对所做的修改进行仔细复查。接下来编写相应的源程序代码;使用在测 试说明书中包含的信息进行回归测试;最后,把修改后的软件再次交付使用。
19
4. 保存维护记录 对于软件生命周期的所有阶段而言,以前记录保存都是不充分的,而 软件维护则根本没有记录保存下来。由于这个原因,往往不能估价维护技 术的有效性,不能确定一个产品程序的“优良”程度,而且很难确定维护 的实际代价是什么。 保存维护记录遇到的第一个问题就是,哪些数据是值得记录 的?Swanson提出了下述内容: ①程序标识; ②源语句数; ③机器指令条 数; ④使用的程序设计语言; ⑤程序安装的日期; ⑥自从安装以来程序 运行的次数; ⑦自从安装以来程序失效的次数; ⑧程序变动的层次和标 识; ⑨因程序变动而增加的源语句数; 因程序变动而删除的源语句数; 每个改动耗费的人时数; 程序改动的日期; 软件工程师的名字; 维护要 求表的标识; 维护类型; 维护开始和完成的日期; 累计用于维护的人时 数; 与完成的维护相联系的纯效益。 应该为每项维护工作都收集上述数据。可以利用这些数据构成一个维 护数据库的基础,并且像下面介绍的那样对它们进行评价。
软工各章复习知识点
![软工各章复习知识点](https://img.taocdn.com/s3/m/2670a655b307e87101f69664.png)
第4 章
1.学会使用有穷状态机描述一个系统。
2.应用形式化方法的准则。
第5 章
1.总体设计主要完成哪两项任务?每项任务主要 完成什么?
3.什么是软件生命周期?划分为哪些几个阶段?
解:(1)软件生命周期有软件定义、软件开发和运行维护三个时期组成,每个时期又进一步划分成若干个阶段。 (2)阶段:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护。 4.软件工程方法学的3个要素;目前使用最广泛的软件工程方法学是什么?有哪些特点? 解:(1)工具,方法和过程。(2)传统方法学和面向对象方法学(3)特点: 传统方法学也称为生命周期方法学或结构化范型。它采用结构化 技术(结构化分析、结构化设计、结构程序设计和结构化测试)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支
3.单元测试的重点(5个方面)
4.什么是存根程序?什么是驱动程序?什么是回归 测试?什么是α测试?什么是β测试? 5.什么是白盒测试技术?在白盒法中典型的技术有 哪些?在实际中要会熟练应用。
6.什么是黑盒测试技术?在黑盒法中典型的技术有
哪些?在实际中要会熟练应用。
第8 章
1.什么是软件维护?它包括哪四项活动?
持结构化技术的运用。面向对象方法学: 当软件规模较大,或者对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往
往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很困难。 5.典型的生命周期模型(或软件开发模型、过程模型)有哪些?说明其优缺点及适用范围。
软件工程各章节重要知识点按考试大纲总结
![软件工程各章节重要知识点按考试大纲总结](https://img.taocdn.com/s3/m/f3e1fce8e2bd960590c677d6.png)
软件工程各章节重要知识点按考试大纲总结LELE was finally revised on the morning of December 16, 20202014软件工程各章节重点知识点(按考试大纲总结)第1章:软件工程的范畴THE SCOPE OF SOFTWARE ENGINEERING1掌握软件工程、软件危机、生命周期的概念 1%Software engineering is a discipline学科 aim is the production生产 of software.fault-free;delivered on time ;within budget;satisfies the client’s needs;be easy to modify when the needs changeSoftware crisis:the quality of software was unacceptably low,deadlines and budgets were not being met.Life-cycle model:The steps to follow遵循 when building构建 software,A theoretical description理论描述 of what should be done.Life cycle:The actual steps实际步骤 performed执行 on a specific具体 product.2掌握维护的3种分类并能够结合具体例子进行判断 1%Postdelivery maintenance:Corrective纠错性 maintenance;Perfective完善性maintenance;Adaptive适应性 maintenanceCorrective纠错性 maintenance:removal去除 of residual faults残留错误 ;leaving the specifications规格说明文档 unchangedPerfective完善性 maintenance:additional functionality额外功能;decreased response time减少响应时间Adaptive适应性 maintenance:changes made in response to changes in the environment3掌握为什么没有计划、文档和测试阶段 1%Why There Is No Planning Phase计划阶段, Testing Phase测试阶段 or Documentation Phase文档阶段?Planning, continual持续的 testing and documentation activities活动 are carried out执行throughout贯穿于 the life cycle.There is no separate独立的 planning, testing or documentation phase.This testing is the responsibility职责 ofEvery software professional专业人员, and The software quality assurance group软件质量保证小组(SQA group)Documentation Must Always be Current:Key individuals may leave before the documentation is complete.We cannot perform a phase without having the documentation of the previous phase.We cannot test without documentation.We cannot maintain without documentation.4掌握软件工程的传统生命周期模型(瀑布模型)的阶段划分和各阶段的主要任务1%Classical(Waterfall瀑布) Life-Cycle Model1. Requirements phaseExplore研究 the concept概念;Elicit提取 the client’s requirements客户需求2. Analysis (specification) phaseAnalyze分析 the client’s requirements;Draw up制定 the specification document规格说明文档(specifications);Draw up the software project management plan软件项目管理计划(SPMP);“What the product is supposed期望 to do”3. Design phaseArchitectural design结构设计, followed by;Detailed design详细设计;“How the product does it”4. Implementation phaseCoding编码;Unit testing单元测试;Integration集成;Acceptance testing验收测试5. Postdelivery maintenanceCorrective纠错性 maintenance;Perfective完善性 maintenance;Adaptive适应性 maintenance6. Retirement5掌握传统的维护观念与现代的维护观念之间的区别1%Classical maintenance is Development-then-maintenance model开发-维护模型This is a temporal时间性 definition,Classification归类 as development or maintenance depends on取决于 when an activity is performed.Modern Maintenance is nowadays defined as:The process过程 that occurs when a software artifact软件制品 is modified被修改 because of a problem or because of a need for improvement改善 or adaptation适应.Maintenance occurs whenever software is modified修改.Regardless of不管 whether this takes place before or after installation of the software product.Modern maintenance is corrective, perfective, or adaptive maintenance performed at any time.第2章:软件生命周期模型SOFTWARE LIFE-CYCLE MODELS1 掌握编码-修补模型、瀑布模型、快速原型开发模型、开源模型、敏捷过程模型、同步-稳定模型、螺旋模型等这些模型的模型图(如果有图的话)以及优缺点和适用场合,并能绘制。
软件工程第08章
![软件工程第08章](https://img.taocdn.com/s3/m/b4c04047fbd6195f312b3169a45177232f60e4c0.png)
软件工程第08章在软件工程的领域中,每一个章节都像是一座知识的宝库,而这第08 章,则聚焦于软件的测试与维护。
软件测试,这可不是一项轻松的任务。
想象一下,我们精心打造了一个软件,就好像建造了一座高楼大厦。
在交付给用户使用之前,必须要进行全面而细致的检查,确保每一个角落都没有问题,每一个功能都能正常运行。
这就是软件测试的重要使命。
测试的类型多种多样。
有单元测试,就像是检查大楼的每一块砖头是否坚固;有集成测试,好比查看各个房间之间的连接是否顺畅;还有系统测试,如同审视整座大楼的整体性能和安全性。
每一种测试都有着独特的方法和重点。
单元测试,通常由开发人员自己来完成。
他们会针对软件中的最小单元——函数、模块等进行测试,确保这些基础部分的正确性。
通过编写测试用例,输入各种可能的数据,然后检查输出是否符合预期。
这就像是给每一块砖头都做了严格的质量检测。
集成测试则是将多个单元组合在一起进行测试。
它要检查这些单元之间的接口是否匹配,数据的传递是否准确无误。
比如说,一个房间的门能否顺利地打开和关闭,与其他房间的通道是否畅通无阻。
系统测试则是站在用户的角度,对整个软件系统进行全面的测试。
包括功能测试,看看软件是否满足了用户的需求;性能测试,检测软件在不同负载下的运行速度和稳定性;兼容性测试,确保软件能够在各种不同的操作系统、浏览器和硬件环境下正常工作。
软件测试不仅仅是找出错误,更重要的是预防错误的发生。
通过在开发过程中早期介入测试,可以及时发现和解决问题,避免问题在后期积累,导致修复成本的大幅增加。
然而,即使经过了严格的测试,软件在投入使用后仍然可能会出现问题。
这就引出了软件维护这个重要的环节。
软件维护可不是简单地修修补补,它包括了纠错性维护、适应性维护、完善性维护和预防性维护。
纠错性维护,就是当软件出现故障时,迅速定位并修复问题,让软件能够恢复正常运行。
这就好像大楼里的某个管道漏水了,需要赶紧找到漏点并修好。
适应性维护则是为了让软件能够适应新的运行环境,比如操作系统的升级、硬件的更新等。
软件工程第八章课后题
![软件工程第八章课后题](https://img.taocdn.com/s3/m/303169864afe04a1b071deed.png)
一、选择题1.下列耦合度表示中,最弱的耦合形式是( )。
A.特征耦合 B.公共耦合 C.数据耦合 D.数据结构2.一个模块传送给另一模块的参数是由单个数据项组成的数组,它属于( )耦合。
A.数据型B、复合型C、内容型D、公共型3.PAD(Problem Analysis Diagram)图是一种( )工具。
A.系统描述 B.详细设计 C.测试 D.编程辅助4.下列系统设计工具中,( )不属于详细设计工具。
A.N—S图 B.数据流图 C.程序流程图 D.PAD 5.程序流程图、N-S图和PAD图是( )使用的表达工具。
A.设计阶段的概要设计B.设计阶段的详细设计C.编码阶段D.测试阶段二、填空题1.详细设计的任务是确定每个模块的内部特性,即模块的算法、。
2.是对软件结构中模快间关联程度的一种度量。
3.独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条的边的路径。
4.成本效益分析的目的是从角度评价开发一个项目是否可行。
三、应用题1.系统设计的内容是什么?答案:一、1.C 2.A 3.B 4.B 5.B二、1.使用的数据2.耦合度3.在其他独立路径中未有过4.经济三、1.系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择
1、软件维护工作的最主要部分是(A )
A.改正性维护B.适应性维护
C.完善性维护D.预防性维护
2、软件维护工作中大部分的工作是由于(D )而引起的。
A.程序的可靠性 B.适应新的硬件环境
C.适应新的软件环境 D.用户的需求改变
3、在软件生存周期中,时间最长,所花费的精力和费用也最多的阶段是 B 。
A.详细设计 B.维护
C.概要设计 D.测试
4、修改软件以适应外部环境(新的硬件、软件配置)或数据环境(数据库、数据格式、数据输出/输入方式、数据存储介质)发生变化是指?( B )
A.改正性维护B.适应性维护
C.完善性维护D.预防性维护
5、软件的可维护性是评价软件质量的一个重要标准,下面关于提高软件可维护性的措施描述正确的有 A 。
(A)在进行需求分析的同时考虑维护问题
(B)设计时选择时间效率和空间效率尽可能高的算法
(C)提高程序可读性,尽量使用高级语言编程
(D)测试结束时,删除程序中的注解以缩短源程序长度
6、可维护性的特性中,相互矛盾的是 B 。
A.可理解性与可测试性 B.效率性和可修改性
C.可修改性和可理解性
D. 可理解性与可读性
7、各种软件维护的类型中最重要的是 A .
A.完善性维护 B.纠错性维护
C.适应性维护
D.预防性维护
8、软件维护困难的主要原因是 C 。
A.费用低 B.人员少
C.开发方法的缺陷
D.维护难
9、维护阶段的文档是 C 。
A.软件需求说明 B.操作手册
C.软件问题报告
D.测试分析
10、产生软件维护的副作用,是指 C 。
A.开发时的错误 B.隐含的挫样
C.因修改软件而造成的错误
D.运行时误操作
二、填空
1、在软件产品被开发出来并交付用户使用之后,就进入了软件的阶段。
(运行维护)3、软件生命周期的最后一个阶段是软件的阶段,也是持续时间最长、代价最大的一个阶段。
(维护)
2、软件工程的主要目的就是要提高软件的可性,减少软件所需要的工作量,降低软件系统的。
(维护,维护,总成本)
4、是影响软件可维护性的决定因素。
(文档)
5、实质上是软件再工程。
(预防性维护)
6、维护可分为____,____,____,____四类。
(改正性维护;适应性维护;完善性维护;预防性维护)
三、简答
1、决定软件可维护性的因素有哪些?
答:(1)可理解性
(2)可测试性
(3)可修改性
(4)可移植性
(5)可重用性
2、软件维护过程包括哪些方面?
答:(1)维护组织
(2)维护报告
(3)维护事件流
(4)保护维护记录
(5)评价维护活动
3、软件维护的定义和特点?
答:定义:所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
特点:(1)结构化维护与非结构化维护差别巨大
(2)维护的代价高昂
(3)维护的问题很多
4、修改性维护与排错是否是一回事?为什么?
答案:修改性维护与排错不是一回事,改正性维护是对软件投入运行后,暴露出的一部分在测试阶段没有发现的错误,对软件进行的修改的过程。
排错是错误发现后,对错误定位,然后修改程序的过程。
前者是一种维护过程,而后者是维护过程中的一个步骤。
5、影响软件可维护性的主要因素有哪些?你认为的途径是什么?
答案:软件系统的维护,必须是软件是可以维护的,要使得软件可以维护,必须保证软件的可维护性。
软件的可维护性是指理解,改正,改动,改进软件的难易程度。
它受三各方面的影响:即软件的可理解性,可测试性,可修改性。
解决软件可维护性还有两个关键的问题:软件系统必须要有完整,详细的文档资料;并且要在系统开发中采用软件模块化,结构化设计,使用合适的程序语言,注意程序风格等。