软件工程课后参考答案Word文档格式.docx
《软件工程课后参考答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程课后参考答案Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
![软件工程课后参考答案Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/18/af3337ec-8cb7-411a-83e6-489b1491735b/af3337ec-8cb7-411a-83e6-489b1491735b1.gif)
1.需求定义语言
是用于书写软件需求定义的语言。
PSL/PSA。
2.功能性语言
是用于书写软件功能规约的语言,通常又称为功能规约语言。
广谱语言、Z语言。
3.设计性语言
是用于书写软件设计规约的语言。
PDL。
4.实现性语言
也称为程序设计语言,是用于书写计算机程序的语言。
C、java、PROLOG、FORTRAN、COBOL、Modula。
5.文档语言
是用于书写软件文档的语言。
通常用自然语言或半形式化语言书写。
1.4什么是软件工程?
软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。
1.5简述软件工程的基本原则。
ﻩ软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。
1.选取适宜的开发模型
必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。
2.采用合适的设计方法
合适的设计方法有助于这些特征的实现,以达到软件工程的目标。
3.提供高质量的工程支撑
软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。
4.重视软件工程的管理
仅当软件过程予以有效管理时,才能实现有效的软件工程。
1.6软件工程生存周期分哪几个阶段?
分别简述各个阶段的任务。
1.计算机系统工程
计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,作出进度安排,并进行可行性分析。
ﻩ2.ﻩ需求分析
需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约(也称软件需求规格说明)。
3.ﻩ设计
系统设计的任务是设计软件系统的体系结构,详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法。
4.ﻩ编码
ﻩﻩ编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。
5.测试
测试阶段的任务是发现并纠正软件中的错误和缺陷。
1.7简述CMM的5个等级。
ﻩ1.初始级
2.可重复级
3.ﻩ已定义级
ﻩ4.已管理级
ﻩ5.ﻩ优化级
1.8简述CMMI的连续式模型和阶段式模型。
ﻩ1.阶段式模型的结构类同于软件CMM,它关注组织的成熟度,CMMI-SE/SW/IPPD1.1版中有5个成熟度等级:
初始的、已管理的、已定义的、定量管理的、优化的。
2.连续式模型关注每个过程域的能力,CMMI中包括6个过程域能力等级:
未完成的、已执行的、已管理的、已定义的、定量管理的、优化的。
1.9简述各类软件过程模型的特点。
1.ﻩ瀑布模型:
上一阶段的活动完成并经过评审才能开始下一阶段的活动,接受上一阶段活动的结果作为本阶段活动的输入,依据上一阶段活动的结果实施本阶段应完成的活动,对本阶段的活动进行评审。
2.ﻩ演化模型:
从结构初始的原型出发,逐步将其演化成最终软件产品的过程。
演化模型特别适用于对软件需求缺乏准确认识的情况。
3.ﻩ增量模型:
将软件的开发过程分为若干个日程时间交错的线性序列,融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征,特别适用于需求经常发生变化的软件开发。
4.ﻩ原型模型:
开发人员和用户在“原型”上达成一致,缩短了开发周期,加快了工程进度,降低成本。
5.ﻩ螺旋模型:
将原型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,不仅体现了这两种模型的优点,而且增加了风险分析。
6.ﻩ喷泉模型:
各个阶段没有明显的界限,开发人员可以同步进行开发,可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
7.ﻩ基于构件的开发模型:
利用预先包装的构件来构造应用系统。
8.形式化方法模型:
易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、设计模型和程序进行验证。
1.10敏捷软件开发的特点是什么?
1.个体和交互胜过过程和工具
2.可以工作的软件胜过面面俱到的文档
3.客户合作胜过合同谈判
4.响应变化胜过遵循计划
1.11简述敏捷软件开发的价值观。
ﻩ1.个人和交互高于过程和工具
2.可运行软件高于详尽的文档
ﻩ3.与客户协作高于合同(契约)谈判
ﻩ4.对变更及时作出反应高于遵循计划
1.12简述敏捷软件开发的原则。
1.最优先的是通过尽早地和不断地交有价值的软件来使客户满意。
2.即使到了开发的后期,也欢迎改变需求。
3.以几周到几个月为周期,尽快、不断地发布可运行软件。
4.在整个项目过程中,业务人员和开发人员必须天天一起工作。
5.以积极向上的员工为中心建立项目组,给予他们所需要的环境和支持,对他们的工作予以充分的信任。
6.项目组内效率最高、最有效的信息传递方式是面对面的交谈。
7.测量项目进展的首要依据是可运行的软件。
8.敏捷过程提倡可持续的开发,项目发起者、开发者和用户应能长期保持恒定的速度。
9.应时刻关注技术上的精益求精和好的设计,以增强敏捷性。
10.简单化是必不可少的,这是尽可能减少不必要工作的艺术。
11.最好的构架、需求和设计出自于自我组织的团队。
12.团队要定期反思怎样才能更有效,并据此调整自己的行为。
1.13通过本章学习,请对敏捷软件开发作简要评价。
(略)
1.14简述CASE工具和环境的重要性。
ﻩCASE已被证明可以加快开发速度,提高应用软件生产率并保证应用软件的可靠品质。
计算机专业人员利用计算机使他们的企业提高了效率,企业的各个部门通过使用计算机提高了生产率和效率,增强了企业的竞争力并使之带来了更多的利润。
第二章
2.1简述系统工程的任务
1.识别用户的要求
识别用户对基于计算机的系统的总体要求,标识系统的功能和性能范围,确定系统的功能、性能、约束和接口。
2.系统建模和模拟
一个基于计算机的系统通常可考虑建立以下模型:
硬件系统模型、软件系统模型、人机接口模型、数据模型。
3.成本估算及进度安排
开发一个基于计算机的系统需要一定的资金投入和时间约束(交互日期),需进行成本估算,并作出进度安排。
4.可行性分析
主要从经济、技术、法律等方面分析所给出的解决方案是否可行。
5.生成系统规格说明
作为以后开发基于计算机的系统的依据。
2.2基于计算机的系统由哪些元素组成?
1.软件
2.硬件
3.人员
4.数据库
5.文档
6.规程
2.3简述可行性分析的任务
1.经济可行性
a)成本
b)效益
c)货币的时间价值
d)投资的回收期
e)纯收入
2.技术可行性
a)风险分析
b)资源分析
c)技术分析
3.法律可行性
4.方法的选择和折衷
第三章
3.1需求工程的重要性是什么?
可以确定客户需求帮助分析人员理解问题评估可行性协商合理的解决方法无歧义的规约方案、确认规约以及将规约转换到可运行的系统时的管理要求。
3.2需求工程具体包括哪些步骤?
每个步骤的具体任务是什么?
1.需求获取:
系统分析人员通过与用户的交流、对现有系统的观察及对任务进行分析。
2.需求分析与协商:
分析每个需求与其他需求的关系以检查需求的一致性、重叠和遗漏的情况,并根据用户的需求对需求进行排序。
3.系统建模:
通过合适的工具和符号系统地描述需求。
4.需求规约:
给出对目标软件的各种需求。
5.需求验证:
对功能的正确性、完整性和清晰性以及其他需求给予评价。
6.需求管理:
对需求工程所有相关活动的规约和控制。
3.3一个系统分析员应该具备哪些思想素质和基本知识?
请说明理由。
1.能够熟练地掌握计算机硬、软件的专业知识,具有一定的系统开发经验。
2.善于进行抽象的思维和创造性的思维,善于把握抽象的概念,并把它们重新整理成为各种逻辑成分,并给出简明、清晰的描述。
3.善于从相互冲突或混淆的原始资料中抽出恰当的条目来。
4.善于进行调查研究,能够很快学习用户的专业领域知识,理解用户的环境条件。
5.能够倾听他人的意见,注意发挥其它人员的作用。
6.具有良好的书面和口头交流表达能力。
3.4列出在制定需求获取策略时的3种主要考虑因素。
1.功能需求。
考虑系统要做什么,在何时做,在何时及如何修改或升级。
2.性能需求。
考虑软件开发的技术性指标。
3.用户或人对因素。
考虑用户的类型。
3.5(略)
3.6(略)
3.7(略)
3.8软件需求分析的操作性原则和需求工程的指导性原则是什么?
ﻩ需求分析的操作性原则:
●必须能够表示和理解问题的信息域。
●必须能够定义软件将完成的功能。
●必须能够表示软件的行为(作为外部事件的结果)。
●必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节。
●分析过程应该从要素信息转移向细节信息
需求工程的指导性原则:
●在开始建立分析模型之前应当先理解问题。
如果问题没有很好理解就急于求成,常常会产生一个解决错误问题的完美的软件。
●强力推荐使用原型。
这样做可以使用户了解将如何与计算机交互,而人们对软件质量的认识常常是基于对界面“友好性”的切身体会。
●记录每一个需求的起源和原因。
这是建立对用户要求的可追溯性的第一步。
●使用多个视图,建立系统的数据、功能和行为模型。
这样做可帮助分析员从多方面分析和理解问题,减少遗漏,识别可能的不一致之处。
●给需求赋予优先级。
因为过短的时限会减少实现所有软件需求的可能性。
因此,对需求排定一个优先次序,标识哪些需求先实现,哪些需求后实现。
●注意消除歧义性。
因为大多数需求都是以自然语言描述,存在叙述的歧义性问题造成遗漏和误解。
采用正式的技术评审是发现和消除歧义性的好方法。
3.9软件需求规约主要包括哪些内容?
1.引言
2.信息描述
3.功能描述
4.行为描述
5.检验标准
6.参考书目
7.附录
3.10需求验证应该有哪些人参加?
分析人员、用户、开发部门的管理者、软件设计、实现、测试的人员。
第四章
4.1简述软件设计阶段的基本任务。
1.数据/类设计:
将分析类模型变换成类的实现和软件实现所需要的数据结构。
2.体系结构设计:
定义了软件的整体结构,由软件部件、外部可见的属性和他们之间的关系组成。
3.接口设计:
描述了软件内部、软件和协作系统之间以及软件同人之间的通信方式。
4.部件级设计:
将软件体系结构的结构性元素变换为对软件部件的过过程性描述。
4.2软件设计与软件质量的关系是怎么样的?
设计是在软件开发中形成质量的阶段,设计提供了可以用于质量评估的软件表示,是将用户需求准确地转化为完整的软件产品或系统的主要途径。
4.3(略)
4.4简述模块、模块化及模块化设计的概念。
ﻩ模块是数据说明、可执行语