软件工程复习——第9章

本文总结于《软件工程——原理、方法与应用》第三版


第九章 软件维护

软件维护的种类:
完善性维护、适应性维护、纠错性维护、预防性维护

软件的可维护性:是衡量维护容易程度的一种软件属性。定性的说,可维护性取决于软件的可理解性、可修改性与可测试性,三者一起构成软件的质量属性。

软件维护的副作用:因修改而引起副作用
三类:
修改编码的副作用;
修改数据的副作用;
修改文档的副作用

复习问答题

1、为什么事务型软件的结构常常具有中间大两头小的形状?
答:扇入高则上级模块多,能够增加模块的利用率;扇入低则表示下级模块的复杂性。
事务型软件常常具有中间大两头小的形状,具有良好的软件设计结构,瓮型结构。表明它在底层模式中使用了较多高扇入共享模块。
2、什么是软件需求,可以从哪些方面描述软件需求?
答:软件需求是指一个软件系统必须遵循的条件或具备的能力。
条件与能力:①系统为了解决问题或达到目的所具备的条件或能力,即系统的外部特性;
②系统为了满足合同,规范或其他规定文档所具备的条件或能力,即系统的内部特性。
软件需求一般包括三个不同的层次:业务需求,用户需求,功能需求
软件需求的特性:①功能性②可用性③可靠性④性能⑤可支持性⑥设计约束

3、面向对象设计模型包含哪几个层次?主要内容?
答:面向对象设计模型包含:
①系统架构层。描述整个系统的总体架构,使所设计的软件能够满足客户定义的需求,并实现支持客户需求的技术基础设施;
②类和对象层。使系统能从通用的方式创建并不断逼近特殊需求,该层同时包含了每个对象的设计表示。
③消息层。描述对象间的消息模型,它建立了系统的内部和外部接口,包含使得每个对象能够和其协作者通信的细节。
④责任层。包含针对每个对象的所有属性和操作的数据结构和算法的设计。

4、多模块程序的测试有哪些层次?各层次主要解决什么问题?
答:多模块测试有4个层次
①单元测试:通过对象模块的静态分析和动态测试,使其代码达到模块说明的要求;
②集成测试:把经过单元测试的模块逐步组成具有良好一致性的完整程序;
③确认测试:确认组装完毕的程序是否满足软件需求规格说明书的要求;
④系统测试:检查把确认测试合格的软件安装到系统之后,能否与系统中其余部分协调运行,并实现SRS的需求。

5、瀑布开发模式有哪些特点?存在的主要问题?如何改进?
答:瀑布开发模型是一种基于软件生存周期的线性开发模型
主要特点:
①阶段间的顺序和依赖性;
②推迟实现的观点;
③保证质量的观点
每个阶段都必须完成规定的文档,每个阶段都要对完成的文档进行复审,以便尽快发现问题,消除隐患。
存在的问题:按照瀑布模型来开发软件,只有当分析员能够做出准确的需求分析时,才能得到预期的结果,不幸的是,由于多数用户不熟悉计算机,系统分析员对用户的专业也往往了解不深,因此很难在开发的初始阶段彻底弄清楚软件的需求。为了解决这个问题,人们提出了“快速原型模型”
阶段:用户需求、需求分析、概要设计、详细设计、编码、测试、运行维护
不足:缺乏灵活性,无法解决需求不明确或不准确的问题。由于用户不可能一次性提出所有的需求,而瀑布模型是一种线性开发模型,因此瀑布模型不能适应用户在开发后期提出的需求变更。

6、什么是软件危机?软件危机有什么表现?软件危机产生的原因?如何解决软件危机?
软件危机是计算机软件开发、使用和维护过程所遇到的一系列严重问题和难题,它包含两个部分:如何开发软件,以解决软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机的表现:
①对软件的开发成本和进度的估算很不准确,常常出现实际成本比估算成本高出一个数量级,实际进度比计划进度拖延几个月甚至几年的时间,这些都降低了开发商的信誉,引起用户的不满。
②用户对已完成的软件不满意的情况时有发生;
③软件产品的质量往往是不可靠的;
④软件常常是不可维护的;
⑤软件通常没有适当的文档资料,文档资料不全或不准确,使得软件开发和维护产生难以想象的问题和难以解决的难题;
⑥软件开发和维护产生的费用占计算机系统总成本的比例逐年上升;
⑦开发软件的生产率往往跟不上计算机应用的普及速度。
软件危机的原因:
①软件自身的原因:是逻辑部件,缺乏可见性。规模庞大、复杂,修改、维护苦难;
②软件开发和维护的方法不当,忽视需求分析,认为软件开发就是程序编写,轻视软件维护;
③供求矛盾将是永恒的主题,面对日益增长的软件需求,人们显得力不从心。

7、什么是软件工程?
软件工程是运用工程、科学和数学的原理和方法研制的、维护计算机软件和有关技术及管理方法。
把系统的、规范的、可度量的途径应用到软件开发、运行和维护的过程,也就是把工程应用于软件。
软件工程包括技术和管理两方面的内容,是技术和管理紧密结合形成的工程学科。
中心思想:是把软件当作一种工程化的方法和原理对软件进行计划、开发和维护

个性化方法 结构化方法 面向对象方法 软件复用

过程式编程范型、面向对象编程范型、基于构件技术的编程范型

8、什么是软件生存周期?
软件生存周期是指一个软件从立项起,到废弃不用止,统称为软件的生存周期。
软件生存周期分为计划、开发和运行三个阶段
由于软件生存周期被划分为多个较小的阶段,使得因为软件规模增长而大大增加的复杂性变得较易控制和管理。

典型的软件生存周期:计划、需求分析、软件分析、软件设计、编码、软件测试、运行维护

9、软件测试方法:
软件测试方法分为静态测试和动态测试,静态测试是被测试程序不在机器上执行而采用人工检测和计算机辅助静态分析手段对程序进行检测。动态测试是通过运行程序发现错误,对软件产品进行动态测试时可以采用黑盒测试和白盒测试法。黑盒测试法在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。白盒测试法在不考虑软件的功能特性情况下进行测试。
软件测试目的:为了寻找软件错误而运行程序的过程,目的是为了发现程序中的错误。任务是在计算机上运行程序,暴露出程序中潜在的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例,一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

10、衡量模块独立性的两个定性指标是什么?这两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么?
内聚和耦合。耦合是指不同模块之间相互依赖的紧密程度,内聚标志同一模块不同元素之间互相依存的紧密程度。高内聚低耦合。

11、软件设计各层次功能?
系统架构层:描述整个系统的整体架构。使所设计的软件满足客户定义的需求,并实现支持用户需求的技术基础设施。
类和对象层:使系统能从通用的方式创建并不断逼近特殊需求,同时包含了各对象的设计表示
消息层:表示对象间的消息模型。建立了系统的内部和外部接口,使得每个对象可以与其协作者通信。包含针对每个对象的属性和操作的数据结构和算法的设计。

12、几个模型的特点

  • 传统的软件开发:瀑布和快速原型

瀑布模型特点:阶段的顺序性和依赖性,推迟实现的观点,质量保证的观点
快速原型特点:“逼真”的原型能使用户迅速做出反应

  • 软件演化模型:增量、螺旋、构件集成

增量模型特点:将软件看作一系列相关联系的增量,每一次迭代完成一个增量
增量:小而可用的软件,第一个增量常常是软件的核心
特点:前一个增量的基础上开发后面的增量
每一个增量可采用瀑布模型或快速原型模型来实现
增量的顺序性和总体的迭代性相结合
有利于控制技术风险
螺旋模型特点:瀑布模型(顺序性,边开发边复审)+快速原型(迭代性)
风险分析
一个螺旋周期、

迭代和瀑布的区别:
迭代和瀑布的区别主要在风险的暴露时间上
瀑布(文档是主体),问题往往在最后才暴露出来
迭代根据风险列表选择在迭代开发新的增量,每次迭代都会产生一个经过测试的可执行文件,以测试是否降低了目标风险

统一过程:用例驱动,以架构为中心和受控的迭代式增量开发方法
敏捷过程:以人为核心,迭代,循序渐进的开发方法
价值观:
个人和交互胜过过程和工具
可以运行的软件胜过面面俱到的文档
客户合作胜过合同谈判
响应变化胜过遵循计划

极限过程:轻量级、敏捷的开发方法
四个价值观:交流、简单、反馈和勇气

例1、某工厂制造企业为了开发软件智能检测以有效提升检测效率,节约人力资源,该系统的主要功能是:
(1)基础信息管理。管理员对检测标准和检测规则等基础信息设置。
(2)检测模型部署。 管理员对常用机器学习方法建立的检测模型分布。
(3)图像采集。实时将检测多样的产品待检测建分存储,包括产品结构,生产时间,图像信号和产品图像。
(4)缺陷检测。根据检测模型和检测质量标准对图像采集所收到的产品检测信息中所有图像进行检测或所有图像检测合格。若一个产品出现一张图像检测不合格,就表示该产品不合格,对不合格产品,其检测结果包括,产品型号和不合格类型。
(5)质量检测。根据监控规则对产品质量进行监控将检测情况展示给检测业务员,若满足条件。向检测业务员发送质量检测,检测是质量发起远程控制部分,检测设备发送控制指令进行处理。
(6)模型监控。在系统中部署的模型、产品的检测信息结合基础信息进行监测分析,将模型运行情况发给监控人员。
现采用结构化方法对智能检测系统,进行分析与设计,获得如图1-1的上下文数据流图和图1-2的数据流图。

在这里插入图片描述
[问题1]使用说明中的语句对图1-1中的实体E1~ E4的名称。
[问题2]使用说明中的语句对图1-2中的数据存储D1~D3的名称
[问题3]根据注明和图中术语,补齐图1-2中缺失的数据及起点和终点。
[问题4]根据说明,采用结构化语言对缺陷检测的加工逻辑进行描述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来lai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值