软件工程课后答案吕云翔

上传人:pu****.1 文档编号:470545435 上传时间:2023-07-28 格式:DOCX 页数:17 大小:23.12KB
返回 下载 相关 举报
软件工程课后答案吕云翔_第1页
第1页 / 共17页
软件工程课后答案吕云翔_第2页
第2页 / 共17页
软件工程课后答案吕云翔_第3页
第3页 / 共17页
软件工程课后答案吕云翔_第4页
第4页 / 共17页
软件工程课后答案吕云翔_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《软件工程课后答案吕云翔》由会员分享,可在线阅读,更多相关《软件工程课后答案吕云翔(17页珍藏版)》请在金锄头文库上搜索。

1、软件工程课后答案吕云翔1. 与计算机硬件相比,计算机软件有哪些特点,答:一、无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情 况来了解它的功能、特性和质量等;二、人们在分析、设计、开发、测试软件产品 的过程中,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动;三、不存 在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题;四、软件 的开发和运行必须依赖于特定的计算机系统环境;五、具有可复用性。2. 为什么说软件工程的发展可以在一定程度上解决软件危机的各种弊端,答:因为,软件工程的提出是为了解决软件危机所带来的各种弊端。具体地 讲,软件工程的目标主要包括以下几点。(1)

2、 使软件开发的成本能够控制在预计的合理范围内。(2) 使软件产品的各项功能和性能能够满足用户需求。(3) 提高软件产品的质量。(4) 提高软件产品的可靠性。(5) 使生产出来的软件产品易于移植、维护、升级和使用。(6) 使软件产品的开发周期能够控制在预计的合理时间范围内。3. 请简述软件工程的基本原则。答:(1)将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管 理。(2) 坚持阶段评审制度,以确保软件产品的质量。(3) 实施严格的产品控制,以适应软件规格的变更。在软件开发的过程中,用 户需求很可能不断发生变化。(4)采用现代程序设计技术。(5)开发出来的软件产品应该能够清楚地被审查。

3、(6) 合理地安排软件开发小组的人员,并且开发小组的人员要少而精。(7) 不断地改进软件工程实践。4. 如何理解软件生命周期的内在特征,答:软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最 终该产品被市场淘汰的全过程。软件生命周期这个概念从时间的角度将软件的开发 和维护的复杂过程分解为了若十个阶段,每个阶段都完成特定的相对独立的任务。 由于每个阶段的任务相对于总任务难度会大幅度降低,在资源分配、时间把握和项 目管理上都会比较容易控制。合理地划分软件生命周期的各个阶段,使各个阶段之 间既相互区别又相互联系,为

4、每个阶段赋予特定的任务。5. 请对比瀑布模型、原型模型、增量模型和螺旋模型。答:瀑布模型是出现得比较早的软件开发模型。在这种模型中,各阶段之间的组织方式就如同瀑布流水一样,逐级下落。开发人员必须在完成前一阶段的任务 后,才能开始下一阶段的工作,各个阶段之间通常是按固定顺序连接的,前一阶段 的输出往往就是后一阶段的输入。根据瀑布模型的理论,这种模型具有以下几个特点。(1) 瀑布模型是一种线性的软件开发模型,回溯性很差。(2) 瀑布模型是一种基于里程碑的阶段过程模型。(3) 瀑布模型强调软件开发过程的阶段性,每个阶段完成特定的任务。瀑布模型适用于具有以下特征的软件开发项目。(1) 在软件开发的过程

5、中,需求不发生或很少发生变化,并且开发人员可以一 次性获取到全部需求.(2)软件开发人员具有丰富的经验,对软件应用领域很熟 悉。(3)软件项目的风险较低。瀑布模型不具有完善的风险控制机制。瀑布模型的优点是阶段性强,易于对项目进行管理,缺点是开发过程不灵活,不能适应环境的变化。如果后续阶段中发现前期工作的错误或需求发生了变更,会 造成巨大的损失。原型模型是开发人员为了快速而准确地获取需求经常采用的方法。在初步获取 需求后,开发人员会快速地开发一个原型系统。通过对原型系统进行模拟操作,开发人员可以更直观、更 全面和更准确地了解用户对待开发系统的各项要求,同时还能挖掘到隐藏的需求。 如果开发人员对将

6、采用的开发技术把握不大,也可以采用原型模型进行技术上的尝 试,以降低后续开发的风险。原型模型具有以下特点。(1) 原型模型主要用于挖掘需求,或是进行某种技术或开发方法的可行性研 究。(2) 原型系统通常针对软件开发系统的子功能模块,所以功能相对不完善。(3) 由于原型系统功能的局部性以及存在阶段的局部性,在软件开发的实践中,原型模型通常结合其他的软件开发模型共同使用,发挥作用。原型模型适用于具有以下特征的软件开发项目。(1) 对现有的软件系统进行产品升级或功能完善。(2) 开发人员与用户之间交流受限,需求获取困难。(3) 开发人员对将要采用的技术手段不熟悉或把握性不大。(4) 具备快速开发的工

7、具。原型模型的优点是简单和快速,缺点是需要花费一些额外的成本来构造原型, 并且不利于创新。增量模型是把待开发的软件系统模块化,将每个模块作为一个 增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的 软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。增量模型的最大特点就是将待开发的软件系统模块化和组件化。基于这个特点,增量模型具有以下优点。(1)将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及 时了解软件项目的进展。(2)以组件为单位进行开发降低了软件开发的风险。一

8、个开发周期内的错误不会影响到整个软件系统。(3)开发顺序灵活。增量模型的缺点是要求待开发的软件系统可以被模块化。如果待开发的软件系 统很难被模块化,那么将会给增量开发带来很多麻烦。增量模型适用于具有以下特征的软件开发项目。(1) 软件产品可以分批次地进行交付。(2) 待开发的软件系统能够被模块化。(3) 软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。(4) 项目管理人员把握全局的水平较高。螺旋模型是一种用于风险较大的大型软件项目开发的过程模型。它把开发过程 分为制定计划、风险分析、实施工程和客户评估4种活动。制定计划就是要确定软 件系统的目标,了解各种资源限制,并选定合适的开发方案。

9、风险分析旨在对所选 方案进行评价,识别潜在的风险,并制定消除风险的机制。实施工程的活动中渗透 了瀑布模型的各个阶段,开发人员对下一版本的软件产品进行开发和验证。客户评 估是获取客户意见的重要活动。螺旋模型适应于风险较大的大型软件项目的开发。它的优点是将风险分析扩展 到各个阶段中,大幅度降低了软件开发的风险。但是这种模型的控制和管理较为复 杂,可操作性不强,对项目管理人员的要求较高。6.在统一软件开发过程模型中 核心工作流程包含哪些,答:核心工作流程有业务建模、需求、分析设计、实现、测试和部署。1. 可行性研究的内容有哪些,答:可行性研究主要是从技术、经济和社会三个方面对软件项目的可行性进行 分

10、析。技术可行性研究是对技术解决方案的实用性、技术资源的可用性和设备条件 做出评估。经济可行性研究要对项目的开发总成本与开发系统将带来的经济效益之 间的差值进行度量,从经济的角度去判断是否值得为软件开发项目进行投资。社会 可行性研究从政策、法律和制度等社会因素方面考虑项目开发的合理性和意义。2. 如何理解需求分析的作用和重要性。答:一般情况下,用户并不熟悉计算机的相关知识,而软件开发人员对相关的 业务领域也不甚了解,用户与开发人员之间对同一问题理解的差异和习惯用语的不同往往会为需求分析带来很大的 困难。所以,开发人员和用户之间充分和有效的沟通在需求分析的过程中至关重 要。3.常用的需求获取的方法

11、有哪些,对比各种方法的优缺点。答:获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型 和研究资料等。问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。 通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用 的信息。一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例。 开放式问题的回答不受限制,自由灵活,能够激发用户的思维,使他们能尽可能地 阐述自己的真实想法。但是,对开放式问题进行汇总和分析的工作会比较复杂。封 闭式问题的答案是预先设定的,用户从若干答案中进行选择。封闭式问题便于对问 卷信息进行归纳与整理,但是会限制用户的思维。访谈通过开发人

12、员与特定的用 户代表进行座谈,进而了解到用户的意见,是最直接的需求获取方法。由于被访 谈的用户身份可能多种多样,开发人员要根据用户的身份特点,进行提问,给予启 发。当然,进行详细的记录也是访谈过程中必不可少的工作。亲身实践可以更直接地体会现有系统的弊端以及新系统应该解决的问题,这种 需求获取方法就是实地操作。通过实地操作得到的信息会更加准确和真实,但是这 种方法会比较费时间。当用户本身对需求的了解不太清晰的时候,开发人员通常采用建立原型系统的 方法对用户需求进行挖掘。通过对原型系统进行模拟操作,开发人员能及时获得用 户的意见,从而对需求进行明确。4.如何理解结构化需求分析方法的基本思想。答:结

13、构化需求分析是一种面向数据流的需求分析方法。它基于“分解”和“抽象”的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的 软件系统。“分解”是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可 以把大问题分解为若干个小问题,然后再分别解决。最顶层描述了整个目标系统,中间层将目标系统划分为若干个模块,每个模块 完成一定的功能,而最底层是对每个模块实现方法的细节性描述。可见,在逐层分 解的过程中,起初并不考虑细节性的问题,而是先关注问题最本质的属性,随着分 解自顶向下进行,才逐渐考虑越来越具体的细节。这种用最本质的属性表示一个软 件系统的方法就是“抽象”。5. 请阐述面向对象的

14、基本概念。答:。面向对象的基本概念包括对象、类、封装、继承和多态。对象可以是客 观世界中存在的事物,也可以是概念化的实体,它由一组属性和操作组成。属性是 用来描述对象静态特征的数据项,是对客观世界实体所具有性质的抽象。操作是用 来描述对象动态特征。类是对对象的抽象,是对具有相同属性和相同操作的一组相 似对象的定义。封装是指把对象的属性和操作结合在一起,组成一个独立的单元。 继承表示类之间的层次关系,它使得某类对象可以自动拥有另外一个或多个对象的全部属性和操作。多态是一种使父类中定义的属性或操作被子类继承后,可以有不 同的实现的机制。6. 对比面向对象需求分析方法和结构化需求分析方法。答:结构化

15、需求分析方法基于“分解”和“抽象”的基本思想,逐步建立目标 系统的逻辑模型,进而描绘出满足用户要求的软件系统。常用的结构化需求分析工 具有数据流图、数据字典和E-R图。数据流图把软件系统看成是由数据流联系的各 种功能的组合,可以用来建立目标系统的逻辑模型。数据字典用于定义数据流图中 各个图元的具体内容,为数据流图中出现的图形元素做出确切的解释E-R图可以 用于描述应用系统的概念结构数据模型,它采用实体、联系和属性这三个基本概念 来进行建模。面向对象需求分析方法主要基于面向对象的思想,以用例模型为基础进行需求 分析。面向对象的概念中主要涉及了对象、类、封装、继承和多态等概念。因为面 向对象的软件

16、工程方法更符合人类的思维习惯,稳定性好,而且可复用性好,所以 在目前的软件开发领域中最为流行。1. 比较概要设计和详细设计的目标,并分别阐述概要设计和详细设计的内容。答:概要设计,得到软件系统的基本框架。它以需求规格说明书为基础,概要 地说明软件系统的实现方案,包括目标系统的总体架构、每个模块的功能描述、数 据接口描述及模块之间的调用关系、数据库、数据定义和数据结构等。详细设计,明确系统内部的实现细节。在进行详细设计的过程中,设计人员的 工作涉及的内容有过程、数据和接口等。过程设计主要是指描述系统中每个模块的 实现算法和细节。数据设计是对各模块所用到的数据结构的进一步细化。接口设计 针对的是软件系统各模块之间的关系或通信方式以及目标系统与外部系统之间的联 系。2. 为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号