软件工程导论第五章课后答案
软件工程导论(第六版)课后习题答案之欧阳法创编
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
软件工程导论第六版课后习题答案完整版
软件工程导论第六版课后习题答案完整版首先,感谢您对软件工程导论课后习题答案的需求。
以下是软件工程导论第六版课后习题的完整答案。
第一章:软件工程概述1.1 问题1. 什么是软件工程?答:软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的学科。
1.2 问题1. 什么是软件?答:软件是一系列按照特定顺序组织的计算机数据和指令。
第二章:软件过程模型2.1 问题1. 软件过程模型有哪些类型?答:常见的软件过程模型包括瀑布模型、迭代模型、螺旋模型和敏捷开发模型等。
2.2 问题1. 瀑布模型的特点是什么?答:瀑布模型是一种线性顺序模型,以阶段划分为基础,每个阶段的任务在进入下一个阶段前必须完成。
第三章:需求分析与规格说明3.1 问题1. 软件需求描述包括哪些方面的内容?答:软件需求描述需要包括功能性需求、非功能性需求、用户需求和系统需求等。
3.2 问题1. 什么是需求跟踪?答:需求跟踪是指在软件开发过程中,通过建立需求和软件项目中其他相关工件之间的关联,确保需求的准确实现和变更的有效管理。
第四章:软件设计4.1 问题1. 软件设计的目标是什么?答:软件设计的目标是通过确定软件的整体结构和组成部分,确保软件满足需求并具有良好的可维护性和可重用性。
第五章:软件测试与维护5.1 问题1. 什么是软件测试?答:软件测试是一种评估和改进软件质量的过程,目的是发现错误并提高软件的可靠性和可用性。
5.2 问题1. 什么是软件维护?答:软件维护是指在软件交付后的整个生命周期中对软件进行修改和改进,以满足用户需求和修复错误。
第六章:软件配置管理6.1 问题1. 软件配置管理的目标是什么?答:软件配置管理的目标是确保软件在开发和维护过程中的可控性和可追踪性,以及保持软件配置的稳定性和一致性。
6.2 问题1. 软件版本控制是什么?答:软件版本控制是指对软件的不同版本进行管理,包括版本的创建、检出、合并和更新等操作。
至此,我们完成了软件工程导论第六版课后习题的完整答案。
《软件工程导论》课后习题详细答案
《软件工程导论》课后习题详细答案第一章软件工程概论1.什么是软件危机?软件危机是指在运算机软件的开发和爱护过程中所遇到的一系列严峻咨询题。
这些咨询题表现在以下几个方面:(1)用户对开发出的软件专门难中意。
(2)软件产品的质量往往靠不住。
(3)一样软件专门难爱护。
(4)软件生产效率专门低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估量。
(7)软件技术的进展远远满足不了运算机应用的普及与深入的需要。
2.什么缘故会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正明白得软件产品是一个完整的配置组成。
造成开发中制定打算盲目、编程草率,不考虑爱护工作的必要性。
(2) 软件本身方面,关于运算机系统来讲,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件爱护困难。
(3) 专门是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估量、爱护困难等一系列咨询题更为突出,技术的进展差不多远远不能适应社会需求。
3.如何样克服软件危机?(1) 充分吸取和借鉴人类长期以来从事各种工程项目中积存的行之有效的有效原理、概念、技术与方法,专门是吸取几十年来人类从事运算机硬件研究和开发的体会教训。
在开发软件的过程中努力作到良好的组织,严格的治理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在运算机系统早期进展时期形成的一些错误概念和作法。
(3) 按照不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个时期使用的软件工具集合成一个整体,形成一个专门好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织治理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、爱护到剔除的全过程。
软件工程 第五章(总结和课后习题)
出:分析类[完成];4、对包进行分析: 输入:系统体系结构描述[分析]、分析 包[概述]输出:分析类[完成]。 � (18)创建系统的分析模型,一般应进 行体系结构分析、用况分析、类的分析 以及包的分析 4 项活动。 � (19)用况分析[分析]的目标:1、标识 那些在用况事件流执行中所需要的分析 类和对象;2、将用况的行为,分布到参 与交互的各个分析对象;3、捕获用况细 化上的特定需求。 � (20)用况分析[分析]开展的活动包括: 1、标识分析类,标识在细化一个用况中 所需要的实体类、控制类和边界类,给 出它们的名字、责任、属性和关系;2、 描述分析(类)对象之间的交互,通常 使用交互图来描述。 � (21)类的分析[分析]的目标:1、标识 并维护分析类的责任;2、基于它们在用 况细化中的角色,标识并维护分析类的 属性和关系;3、捕获分析类细化中的特 定需求。 � (22)类的分析[分析] 开展的活动包 括:1、标识责任;2、标识属性;3 标识 关联与聚合; � (23)需求分析模型对以后开发工作的 影响?1、对设计中子系统的影响。分析 包一般将影响设计子系统的结构;2、对 设计类的影响。分析包可以作为类设计 时的规格说明;3、对用况细化[设计]的 影响。用况细分[分析]对用况细化[设计] 有两方面影响,一个是它们有乃至于为 用况创建更精确的规格说明,另一个是 当对用况进行设计时,用况细化[分析] 可作为其输入。 (24)需求获取模型与需求分析模型之
第五章 RUP
[概述];输出:子系统[完成]、接口[完 成]。 � (29)用况的设计包括以下任务:1、标 识参与用况细化的设计类;2、标识参与 用况细化的子系统的接口。 � (30)类的设计包括以下任务:1、概括 描述设计类;2、标识操作;3、标识属 性;4、标识关联、聚合;5、标识泛化; 6、描述方法; � � � (31)RUP 设计的突出优点:P165 页 (32)RUP 的设计系统生成构件;对构件进行测试,进行 集成测试和连接;把可执行的构件映射 到部署模型。 � (34)RUP 实现包括以下活动:1、实现 模型;2、实现子系统;3、实现模型视 角下的体系结构描述;4、实现类; � � (35)RUP 测试包括内部测试、中间测试 和最终测试。 (36)RUP 测试的主要活动:1、计划测 试;2、设计测试;3、实现测试;4、执 行集成测试;5、执行系统测试;6、评 价测试。
软件工程导论(第六版)课后习题答案之欧阳体创编
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
软件工程课后习题答案2-12章
D3生理信息 定时的生理信号
F2生理信号 P1 接收信号 F2生理信号 定时的 生理信号
F6日志 E3 时钟 F3日前、时间 P4 定时取样 生理信号 F6日志 E1 护士 F1要求报告 P6 产生病情报告 D1患者日志
范
信
理
生
患者生理信 号获取
生理信号
定
时
生
理
生
号
理
信
信
围
号
号
患者监护系 统
危 日志 机信息
安排航班
预 定 信 息
机票 信息
交款
打印取票单 据
打印及发放 机票
有
航班
通 效 知
设置航班
录入预定信 息
录入取票凭 证
核对取票凭 证
P2 分析信号 E2 病人 F2生理信号
危及病人信息 F2生理信号 D2患者安全范围 P7制定安 全范围 P5 更新日志
P3 产生警告信息 F4警告信息 E1 护士
F5安全范围
监护处理
志 日 定时生理信号
号 生理信
监护信息输 出
息
生
理
制定生理信 号安全范围
接收信号
定时取样 生理信号
时间
分析信号
更新日志
报警
危机信
信
号
范
围
信息 危机
生
信 理 生 时 定 号 信 理
日 志
取得时间
号
病情报告
• P104:4 • 美国某大学有200名教师,校方与教师工会刚刚签订一项协议。 按照协议,所有年工资超过$26000(含$26000 )的教师工 资将保持不变,年工资少于$26000的教师将增加工资,所增 加工资数额按下述方法计算:给每位教师所赡养的人(包括 教师本人)每年补助$100,此外,教师有一年工龄每年再多 补助¥50,但是,增加后的年工资总额不能多于$26000。 • 教师工资档案存储在行政办公室的磁带上,档案中有目前的 年工资、赡养的人数、雇佣日期等信息。需要写一个程序计 算并印出每名教师的原工资和调整后的新工资。 • 要求:(1)画出此系统的数据流图;(2)写出需求说明; • (3)设计上述的工资调整程序(要求用HIPO图描绘设计结果), 设计时分别采用两种算法,并比较两种算法的优缺点: – (a)搜索工资档案数据,找出年工资少于$26000的人, 计算新工资,校核是否超过$26000,存储新工资,印出新 旧工资对照表; – (b)把工资档案数据按工资从最低到最高的次序排序,当 工资数额超过$26000时即停止排序,计算新工资,校核是 否超过限额,存储新工资,印出结果。 • (4)你所画出的数据流图适应用那种算法?
软件工程第五版课后习题答案第五章
习题5
3(1)数据流图如下:
对数据流图划分边界,如下所示:
按照以上数据流图设计软件结构,如下所示:
4(1)数据流图如下:
(2)需求说明:
功能需求:系统需要能查出教师的原有工资,计算出教师的现有工资,并打印相关信息。
数据需求:教师的原有工资信息,教师赡养的人数,教师的工龄
行为需求:系统要能判断原有工资是否符合涨工资要求,要精确计算现有工资,要提供给用户调查信息的借口与界面。
(3)用a 算法的HIPO 图:
教师档案
办公室磁带 打印原有工资和新工资信息 提取原工资
信息
计算新工资 办公室磁带
年工资大于等于$26000 年工资小于$26000
用b算法的HIPO图:
对于算法(a):优点:这样设置符合常规思路,容易让人理解
缺点:计算的次数较多。
检索效率低。
对于算法(b):优点:计算的次数较少,效率高
缺点:该算法不易于理解。
涉及到排序算法的设计。
(4)所画的数据流图更符合a算法。
5.答:需求分析:要实现三大功能,发牌;确定获胜方和牌型;模拟多次游戏,计算牌型的获胜和平局的概率。
分析后,设计的HIPO图如下:流程图在下页:
控制流程图如下:。
软件工程课后习题答案2-12章
书状态为S2&终端 输入“H=”加书名 管理员设置状 态 管理员删除 管理员添加
预约
书出库(删除) 书入库
图4.4.2
(三)图书馆终端用户模式的有穷状态机描述 • 状态机J:{读者查询状态,查询结果} • 输入集K:{终端输入用户查询命令,书的各种 状态(S1,S2,S3)} • 转换函数T:如图4.4.3所示 • 初始态S:{读者查询状态} • 终态集F:{查询结果}
取票通知 账单 机票 账单
P3.1 核对取票凭证 顾客 取票通知 P3.2 交款 机票 P3.3 打印机票
机票预定系 统
信 息 通 知 单 机 票
账
单
信息
机票
通
预定信息处 理
信息
知
账
通
单
有
单
取票凭证处 理
通知 账单 单
账单
信 息 定 预 航班信
息
机票预定子 系统
单 知
机票发放子 系统
效 通 知
机
票
取款单
P3.1输入取款 信息
取款信息 E1储 户 密码 P3.2 密码校验
P4 计算利息
利息 利息 P5 打印利息 清单
密码正确信息
E2业 务员
利率
P6设置利 率
利率
不能是两个分开的子系统,是相同的前台单个处理
银行储蓄系 统
存 款 单 款
率 利
利 存单 息清单
密 码
业务单据录 入
利 率
存款单
取
单
储蓄业务处理
(一)图书状态的有穷状态机描述 • 状态机J:{书在图书馆S1,书被借出S2, 书被预约S3} • 输入集K:{书上条形码,借阅卡条形码, 终端输入各种命令} • 转换函数T:如图4.4.1所示 • 初始态S:{书在图书馆S1,书被借出S2} • 终态集F:{书被借出S2,书被预约S3}
《软件工程导论》课后习题答案
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
+ 软件工程方法学5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.软件生存周期为什么划分成阶段?(1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
(2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
(3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。
7.应该怎样来划分阶段?(1)每一个阶段的任务尽可能独立;(2)同一阶段内的任务性质尽可能相同;(3)每一个阶段任务的开始和结束有严格的标准。
8.软件开发模型有几种?它们的开发方法有可特点?软件开发模型有瀑布型、渐增型和变换型。
瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务。
软件工程导论(第五版)_(张海藩_著)_清华大学出版社_课后习题答案
来; (3) 它强调使用生存周期方法学和结构分析和结构技术; (4) 经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术
的单位面积及房租等信息。房产科可以要求系统打印住房情况的统计表,或更改某 类房屋的居住条件、单位面积和房租等。
用数据流图描绘该系统的功能需求;在数据字典中给出主要的数据流、文件和 加工说明。
参考第四章 4.5 应用举例教案之二分析。
第四章 总体设计 习题答案
1. 系统设计包括哪两个阶段? 系统设计包括总体设计与详细设计两个阶段。
(2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。 (3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认 识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完 善系统。多数研究性质的试验软件,一般采用此方法。 变换型开发方法及特点: (1)从软件需求的形式化规格说明出发,经过一系列的程序变换,得到最终的 程序系统。 (2)该方法必须有严格的数学理论和形式化技术的支持。
算出的房租写到房租文件中。 (2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号
的信息写到空房文件中。 (3) 如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件
中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。 (4) 住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号
图:
4.什么是结构化分析?它的结构化体现在哪里? 结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,
软件工程导论张海藩第五版课后习题答案
D2存款利率
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
17
作业及解答(第3章)
E1 储户
F7密码
F2取款单
P3.1 输入取款信息
无效取款信息
F5存款信息 D1存款信息
P3.2 密码校验
F7密码
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
8
E2 病人
F2生理信号
F5安全范围 D2患者安全范围
P2 分析信号
危及病人信息
P3 产生警告信息
F2生理信号
F4警告信息
P1 接收信号
F2生理信号
E1 护士
E3 时钟
F3日前、时间
P4 定时取样 生理信号
2-4 目前住院病人主要由护士护理,这样做不仅需要大量护 士,而且由于不能随时观察危重病人的病情变化,还会延 误抢救时机。某医院打算开发一个以计算机为中心的患者 监护系统,请分层次地画出描述本系统功能的数据流图。
医院对患者6监护系统的基本要求是随时接收每个病人的 生理信号(脉搏、体温、血压、心电图等),定时记录病人 情况以形成患者日志,当某个病人的生理信号超出医生规 定的安全范围时向值班护士发出警告信息,此外,护士在 需要时还可以要求系统印出某个指定病人的病情报告。
10
E2 病人
P2
分析信号
危及病人信息
F2生理信号
F5安全范围
D2患者安全范围
F2生理信号
D3生理信息
P7制定安 全范围
F2生理信号
P1 接收信号
软件工程导论习题答案
2.需求分析的基本任务是什么?
准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?
建立目标系统的逻辑模型的过程也就是数据流图的分解过程。它的导出过程如图:
Hale Waihona Puke 4.什么是结构化分析?它的结构化体现在哪里?
结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
4.构成软件项目的最终产品:
应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?
软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.软件生存周期为什么划分成阶段?
(1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
(2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
(3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。
结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。
5.软件需求规格说明书由哪些部分组成?
组成包括:
(1) 引言:编写目的、背景说明、术语定义及参考资料等。
(2) 概述主要功能、约束条件或特殊需求。
(3) 数据流图与数据字典。
(4) 用户接口、硬件接口及软件接口。
软件工程导论(第五版)张海藩课后答案(2021修订版)(2021整理)
第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题暗示在以下几个方面:(1)用户对开发出的软件很难对劲。
(2)软件产物的质量往往靠不住。
(3)一般软件很难维护。
(4)软件出产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的开展远远满足不了计算机应用的普及与深入的需要。
2.为什么会发生软件危机?(1) 开发人员方面,对软件产物缺乏正确认识,没有真正理解软件产物是一个完整的配置组成。
造成开发中制定方案盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和尺度指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不克不及包管、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的开展已经远远不克不及适应社会需求。
3.怎样克服软件危机?(1) 充实吸收和借鉴人类持久以来从事各种工程工程中堆集的行之有效的有效道理、概念、技术与方法,出格是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的办理,彼此友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期开展阶段形成的一些错误概念和作法。
(3) 按照不同的应用领域,开发更好的软件东西并使用这些东西。
将软件开发各个阶段使用的软件东西调集成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术办法(方法和东西),又要有必要的组织办理办法。
工程的最终产物:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件保存周期?软件保存周期是指从软件定义、开发、使用、维护到裁减的全过程。
软件工程导论张海藩第五课后答案
答案:软件工程导论课后答案中模拟试题三的答案。
感谢观看
THANKS
继承是指子类继承父类的属性和方法,并且可以在子类中添加新的属性和方法,或者重写父类的方法。
多态是指同一个消息可以被不同的对象接收并执行不同的操作,从而实现不同的行为。
抽象是指定义抽象类或抽象方法,只提供接口而不实现具体实现,由子类来实现具体的功能。
面向对象方法概述
UML是Unified Modeling Language的缩写,是一种基于面向对象技术的建模语言,用于描述软件系统的静态结构和动态行为。
UML包含多种模型元素,如类、接口、继承、聚合、关联等,以及多种图,如类图、时序图、用例图等。
类图是UML中最基本的图之一,用于描述系统中类的结构关系,包括类的属性、方法和继承关系。
时序图用于描述系统中对象之间的交互关系和消息传递过程。
用例图用于描述系统的功能需求和用户与系统的交互关系。
UML基础
01
简答题3答案
面向对象技术是一种程序设计技术,它以对象为基础,将数据和处理数据的方法结合在一起,形成了对象。面向对象技术包括封装、继承、多态等基本特性,可以帮助程序员更好地理解和设计软件系统。
选择题1答案
选择题2答案
选择题3答案
选择题答案
VS
错。软件工程导论是一门软件工程的专业课程,它旨在帮助学生学习和理解软件工程的基本概念、原理和方法。该课程通常包括软件开发过程、需求分析、设计、编码、测试和维护等方面的内容。因此,该课程的学习对于提高学生的软件开发能力和职业发展具有重要意义。
03
第六章重点难点解析
面向对象方法是一种软件开发方法,它以对象为基础,将数据和操作封装在对象中,通过对象之间的交互来实现软件功能。
软件工程导论(第六版)课后习题答案之欧阳学创编
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程导论第五章课后
答案
-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
第五章习题答案
1、为每种类型的模块耦合举一个具体例子。
答:耦合是对一个软件结构内不同模块之间互连程度的度量。
耦合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点,以及通过接口的数据,一般模块之间可能的连接方式有7种,构成耦合的7种类型,它们之间的关系为:
下面举例说明以上各种耦合:
a.非直接耦合(Nondirect Coupling)在这种情况下,两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。
例如在实数的运算中,有两个模块分别完成几个实数的求和,求乘积功能,这两个模块之间没有直接联系,只有在主模块调用中有执行的前后顺序而已,这个例子即属于非直接耦合。
b.数据耦合(Data Coupling)即一个模块访问另一个模块时,彼此之间是通过数据参数来交换输入,输出信息的,这种耦合为数据输入,输出信息的这种耦合为数据耦合。
如有两个模块,其中A完成两个烽的比较,求出其中最大的并返回该值,模块B是完成了个数的比较,求出其中最大的并返回该最大值,为完成四个数的比较,模块B调用模块A即可完成,在这种调用关系中,模块A的运算结
果作为一个参烽参加B的运算,这两个模块之间即发生数据耦合。
数据耦合是松散的耦合,模块间的独立性比较强。
c.标记耦合(Stamp Coupling),即一组模块通过参数传递记录信息,这就是标记耦合。
事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。
d.控制耦合(Control Coupling)即一个模块通过开关标志,名字等控制住处明显的控制,选择另一模块的功能,这就是控制耦合,如下图所示,这一种耦合实质是在单一接口上实现选择多功能模块中的某项功能,如程序设计中用到多路选择结构即是最好的例子。
e.外部耦合(External Coupling)即一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递全局数据结构,而且不是通过参数表传递全局变量的信息。
如C语言中都访问被说明为extern类型的外部变量的各个模块之间即发生外部耦合。
外部耦合引起的问题类似于下面要介绍的公共耦合,区别在于外部耦合中不存在依赖于一个数据结构内部各项的物理安排。
f.公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就是公共耦合。
公共的数据环境可以是全局的数据结构,共享的通信区,内存的公共覆盖区等。
如几个模块对同一个数据库的查询就属于这种耦合。
公共耦合可以分为松散的公共耦合和紧密的公共耦合,其中松散的公共耦合是单向操作,如两个或多个模块对同一个文件的读操作;而紧密的公共耦合是双
向的操作,如两个或多个模块对同一文件的读写操作。
下面用图表示松散的和紧密的公共耦合。
g.内容耦合。
即有下列情况时即出现内容耦合。
(1)一个模块访问另一个模块数据;
(2)一个模块不通过正常入口而转到另一个模块的内部;
(3)两个模块有一部分代码重叠;
(4)一个模块有多个入口。
一个模块访问另一个模块数据;
两个模块有部分代码重叠;
一个模块有多个入口。
2、为每种类型的模块内聚举一个具体例子。
答:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化的自然扩展,一般模块的内聚性分为7种,它们的关系如下图示
下面举例说明各种内聚的情况
a.偶然内聚。
即模块内各部分之间没有联系,或者即使有联系也很松散,这种即为偶然内聚,它是
内聚程度最低的模块。
如一些没有任何联系的语句可能在许多模块中重复多次,程序员为了节省存储,把它们抽出来组成一个新的模块,这个模块就是偶然内聚模块,例如C语言中的#
define TRYODBCC……
b.逻辑内聚(Logical Cohesion)即这种模块把几种功能组合在一起,每次调用时,由传送给模块的
判定参数来确定该模块应执行哪一种功能。
如根据输入的控制信息,或从文件中读入一个记录,或向文件写出一个记录。
c.时间内聚(Classical Cohesion)这种模块大多数为多功能模块,但模块的各人功能的执行与时间
有关,通常要求所有功能必须在同一时间段内执行,例如初始化模块和终止模块。
d.过程内聚(Procedural Cohesion)即一个模块内的处理是相关的,而且必须以特定次序执行,则
这个模块称为过程内聚模块。
例如我们把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。
e.通信内聚(Communication Cohesion)如果一个模块内部各功能部分都使用可相同的数据输入,
或产生了可相同的数据输入,或产生了可相同的输出数据,则称之为通信内聚模块。
通常,通信内聚模块是通过数据流图来定义的。
f.顺序内聚,即一个模块内处理元素和同一功能紧密切相关,而且这些处理必须顺序执行(通常一
个处理元素的输出数据据作为下一处理元素的输入数据)如在对员工加工资的数据库操作中,读取数据和更新数据即具有顺序内聚的关系。
g.功能内聚(Functional Cohesion)即模块内部所有处理元素属于一个整体,完成一个单一的功能,
则称为功能内聚,功能内聚是最高程度的内聚。
3、用面向数据流的方法设计下列系统的软件结构。
(1)存储系统(参见习题2第2题)。