软件工程课后答案吕云翔Word格式文档下载.docx
《软件工程课后答案吕云翔Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件工程课后答案吕云翔Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
![软件工程课后答案吕云翔Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/9/c643648e-8d34-4e63-9f50-2c23d3de5dd2/c643648e-8d34-4e63-9f50-2c23d3de5dd21.gif)
(3)提高软件产品的质量。
(4)提高软件产品的可靠性。
(5)使生产出来的软件产品易于移植、维护、升级和使用。
(6)使软件产品的开发周期能够控制在预计的合理时间范围内。
3.请简述软件工程的基本原则。
(1)将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理。
(2)坚持阶段评审制度,以确保软件产品的质量。
(3)实施严格的产品控制,以适应软件规格的变更。
在软件开发的过程中,用户需求很可能不断发生变化。
(4)采用现代程序设计技术。
(5)开发出来的软件产品应该能够清楚地被审查。
(6)合理地安排软件开发小组的人员,并且开发小组的人员要少而精。
(7)不断地改进软件工程实践。
4.如何理解软件生命周期的内在特征,
软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最终该产品被市场淘汰的全过程。
软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。
由于每个阶段的任务相对于总任务难度会大幅度降低,在资源分配、时间把握和项目管理上都会比较容易控制。
合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。
5.请对比瀑布模型、原型模型、增量模型和螺旋模型。
瀑布模型是出现得比较早的软件开发模型。
在这种模型中,各阶段之间的组织方式就如同瀑布流水一样,逐级下落。
开发人员必须在完成前一阶段的任务后,才能开始下一阶段的工作,各个阶段之间通常是按固定顺序连接的,前一阶段的输出往往就是后一阶段的输入。
根据瀑布模型的理论,这种模型具有以下几个特点。
(1)瀑布模型是一种线性的软件开发模型,回溯性很差。
(2)瀑布模型是一种基于里程碑的阶段过程模型。
(3)瀑布模型强调软件开发过程的阶段性,每个阶段完成特定的任务。
瀑布模型适用于具有以下特征的软件开发项目。
(1)在软件开发的过程中,需求不发生或很少发生变化,并且开发人员可以一次性获取到全部需求.
(2)软件开发人员具有丰富的经验,对软件应用领域很熟悉。
(3)软件项目的风险较低。
瀑布模型不具有完善的风险控制机制。
瀑布模型的优点是阶段性强,易于对项目进行管理,缺点是开发过程不灵活,不能适应环境的变化。
如果后续阶段中发现前期工作的错误或需求发生了变更,会造成巨大的损失。
原型模型是开发人员为了快速而准确地获取需求经常采用的方法。
在初步获取需求后,开发人员会快速地
开发一个原型系统。
通过对原型系统进行模拟操作,开发人员可以更直观、更全面和更准确地了解用户对待开发系统的各项要求,同时还能挖掘到隐藏的需求。
如果开发人员对将采用的开发技术把握不大,也可以采用原型模型进行技术上的尝试,以降低后续开发的风险。
原型模型具有以下特点。
(1)原型模型主要用于挖掘需求,或是进行某种技术或开发方法的可行性研究。
(2)原型系统通常针对软件开发系统的子功能模块,所以功能相对不完善。
(3)由于原型系统功能的局部性以及存在阶段的局部性,在软件开发的实践中,原型模型通常结合其他的软件开发模型共同使用,发挥作用。
原型模型适用于具有以下特征的软件开发项目。
(1)对现有的软件系统进行产品升级或功能完善。
(2)开发人员与用户之间交流受限,需求获取困难。
(3)开发人员对将要采用的技术手段不熟悉或把握性不大。
(4)具备快速开发的工具。
原型模型的优点是简单和快速,缺点是需要花费一些额外的成本来构造原型,并且不利于创新。
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。
运用增量模型的软件开发过程是递增式的过程。
相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
增量模型的最大特点就是将待开发的软件系统模块化和组件化。
基于这个特点,增量模型具有以下优点。
(1)将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。
(2)以组件为单位进行开发降低了软件开发的风险。
一个开发周期内的错误不会影响到整个软件系统。
(3)开发顺序灵活。
增量模型的缺点是要求待开发的软件系统可以被模块化。
如果待开发的软件系统很难被模块化,那么将会给增量开发带来很多麻烦。
增量模型适用于具有以下特征的软件开发项目。
(1)软件产品可以分批次地进行交付。
(2)待开发的软件系统能够被模块化。
(3)软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。
(4)项目管理人员把握全局的水平较高。
螺旋模型是一种用于风险较大的大型软件项目开发的过程模型。
它把开发过程分为制定计划、风险分析、实施工程和客户评估4种活动。
制定计划就是要确定软件系统的目标,了解各种资源限制,并选定合适的开发方案。
风险分析旨在对所选方案进行评价,识别潜在的风险,并制定消除风险的机制。
实施工程的活动中渗透了瀑布模型的各个阶段,开发人员对下一版本的软件产品进行开发和验证。
客户评估是获取客户意见的重要活动。
螺旋模型适应于风险较大的大型软件项目的开发。
它的优点是将风险分析扩展到各个阶段中,大幅度降低了软件开发的风险。
但是这种模型的控制和管理较为复杂,可操作性不强,对项目管理人员的要求较高。
6.在统一软件开发过程模型中核心工作流程包含哪些,
核心工作流程有业务建模、需求、分析设计、实现、测试和部署。
1.可行性研究的内容有哪些,
可行性研究主要是从技术、经济和社会三个方面对软件项目的可行性进行分析。
技术可行性研究是对技术解决方案的实用性、技术资源的可用性和设备条件做出评估。
经济可行性研究要对项目的开发总成本与开发系统将带来的经济效益之间的差值进行度量,从经济的角度去判断是否值得为软件开发项目进行投资。
社会可行性研究从政策、法律和制度等社会因素方面考虑项目开发的合理性和意义。
2.如何理解需求分析的作用和重要性。
一般情况下,用户并不熟悉计算机的相关知识,而软件开发人员对相关的业务领域也不甚了解,用户与开发人
员之间对同一问题理解的差异和习惯用语的不同往往会为需求分析带来很大的困难。
所以,开发人员和用户之间充分和有效的沟通在需求分析的过程中至关重要。
3.常用的需求获取的方法有哪些,对比各种方法的优缺点。
获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。
问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。
通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。
一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例。
开放式问题的回答不受限制,自由灵活,能够激发用户的思维,使他们能尽可能地阐述自己的真实想法。
但是,对开放式问题进行汇总和分析的工作会比较复杂。
封闭式问题的答案是预先设定的,用户从若干答案中进行选择。
封闭式问题便于对问卷信息进行归纳与整理,但是会限制用户的思维。
访谈通过开发人员与特定的用户代表进行座谈,进而了解到用户的意见,是最直接的需求获取方法。
。
由于被访谈的用户身份可能多种多样,开发人员要根据用户的身份特点,进行提问,给予启发。
当然,进行详细的记录也是访谈过程中必不可少的工作。
亲身实践可以更直接地体会现有系统的弊端以及新系统应该解决的问题,这种需求获取方法就是实地操作。
通过实地操作得到的信息会更加准确和真实,但是这种方法会比较费时间。
当用户本身对需求的了解不太清晰的时候,开发人员通常采用建立原型系统的方法对用户需求进行挖掘。
通过对原型系统进行模拟操作,开发人员能及时获得用户的意见,从而对需求进行明确。
4.如何理解结构化需求分析方法的基本思想。
结构化需求分析是一种面向数据流的需求分析方法。
它基于“分解”和“抽象”的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的软件系统。
“分解”是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解为若干个小问题,然后再分别解决。
最顶层描述了整个目标系统,中间层将目标系统划分为若干个模块,每个模块完成一定的功能,而最底层是对每个模块实现方法的细节性描述。
可见,在逐层分解的过程中,起初并不考虑细节性的问题,而是先关注问题最本质的属性,随着分解自顶向下进行,才逐渐考虑越来越具体的细节。
这种用最本质的属性表示一个软件系统的方法就是“抽象”。
5.请阐述面向对象的基本概念。
面向对象的基本概念包括对象、类、封装、继承和多态。
对象可以是客观世界中存在的事物,也可以是概念化的实体,它由一组属性和操作组成。
属性是用来描述对象静态特征的数据项,是对客观世界实体所具有性质的抽象。
操作是用来描述对象动态特征。
类是对对象的抽象,是对具有相同属性和相同操作的一组相似对象的定义。
封装是指把对象的属性和操作结合在一起,组成一个独立的单元。
继承表示类之间的层次关系,它使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作。
多态是一种使父类中定义的属性或操作被子类继承后,可以有不同的实现的机制。
6.对比面向对象需求分析方法和结构化需求分析方法。
结构化需求分析方法基于“分解”和“抽象”的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的软件系统。
常用的结构化需求分析工具有数据流图、数据字典和E-R图。
数据流图把软件系统看成是由数据流联系的各种功能的组合,可以用来建立目标系统的逻辑模型。
数据字典用于定义数据流图中各个图元的具体内容,为数据流图中出现的图形元素做出确切的解释。
E-R图可以用于描述应用系统的概念结构数据模型,它采用实体、联系和属性这三个基本概念来进行建模。
面向对象需求分析方法主要基于面向对象的思想,以用例模型为基础进行需求分析。
面向对象的概念中主要涉及了对象、类、封装、继承和多态等概念。
因为面向对象的软件工程方法更符合人类的思维习惯,稳定性好,而且可复用性好,所以在目前的软件开发领域中最为流行。
1.比较概要设计和详细设计的目标,并分别阐述概要设计和详细设计的内容。
概要设计,得到软件系统的基本框架。
它以需求规格说明书为基础,概要地说明软件系统的实现方案,包括目标系统的总体架构、每个模块的功能描述、数据接口描述及模块之间的调用关系、数据库、数据定义和数据结构等。
详细设计,明确系统内部的实现细节。
在进行详细设计的过程中,设计人员的工作涉及的内容有过程、数据和接口等。
过程设计主要是指描述系统中每个模块的实现算法和细节。
数据设计是对各模块所用到的数据结构的进一步细化。
接口设计针对的是软件系统各模块之间的关系或通信方式以及目标系统与外部系统之间的联系。