软件工程实用教程2版课后答案

合集下载

软件工程 课后习题答案

软件工程   课后习题答案

第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。

软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。

例如:编译软件、操作系统。

2.支撑软件支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境。

3.应用软件应用软件是特定应用领域专用的软件。

例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.3简述软件语言的分类,并举例说明。

1.需求定义语言是用于书写软件需求定义的语言。

例如:PSL/PSA。

2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。

例如:广谱语言、Z语言。

3.设计性语言是用于书写软件设计规约的语言。

例如:PDL。

4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。

例如:C、java、PROLOG、FORTRAN、COBOL、Modula。

5.文档语言是用于书写软件文档的语言。

通常用自然语言或半形式化语言书写。

1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。

1.5简述软件工程的基本原则。

软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。

1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。

2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

软件工程第二版习题答案

软件工程第二版习题答案

软件工程第二版习题答案软件工程第二版习题答案修改浏览权限 | 删除第一章1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。

(2).软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。

采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。

3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。

答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。

当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。

新方法在推行初期,总有人不愿接受和采用。

若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。

(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。

软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。

所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。

4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。

答:用C++开发一个软件,是校园一卡通的模块。

首先,要在编辑程序支持下在计算机中输入源程序。

然后编译程序,把源程序翻译成目标程序。

如果发现错误,就重新调入编辑程序对源程序进行修改。

编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。

编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。

离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。

1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。

它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。

2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。

它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。

2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。

功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。

3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。

3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。

面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。

4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。

4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。

编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。

5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。

Jackson(JSD)方法_软件工程实用教程 (第2版)_[共4页]

Jackson(JSD)方法_软件工程实用教程 (第2版)_[共4页]

76
图4.24 混合型数据流程图
图4.25 由混合型数据流程图映射的模块结构图
4.5 面向数据结构的设计方法
大多数软件本质上都是数据信息处理系统,而数据信息都有清楚的层次结构,即输入数据、内部存储信息、输出数据都可能有独特的数据结构。

因此,可以基于软件所处理的数据信息来设计软件。

面向数据结构的设计原理是根据软件的数据结构设计软件。

由于这种方法淡化了软件结构的概念,主要是借助一组有条不紊的步骤,确定单个模块或小规模(子)系统程序结构和处理过程的描述。

因此,这种方法适合于概要设计和详细设计“合二为一”的软件设计。

最常用的有Jackson方法和Warnier方法。

4.5.1 Jackson(JSD)方法
1975年,M.A.Jackson提出了Jackson(Jackson Structured Design,JSD)方法。

这种方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图。

这种方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。

该方法也可与其他方法结合,用于模块的详细设计。

1.Jackson图
Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。

图4.26所示为Jackson图顺序、选择和重复3种逻辑结构的表示方法示例。

变换流分析与设计_软件工程实用教程 (第2版)_[共2页]

变换流分析与设计_软件工程实用教程 (第2版)_[共2页]

72 键盘、磁盘文件等),对取得的数据进行某种变换,然后再将变换得到的数据传回给“外部世界”。

其中取得数据这一过程称为传入信息(数据)流程,变换数据的过程称为变换信息(数据)流程,传回数据过程称为传出信息(数据)流程,如图4.16所示。

图4.16 变换型模型(1)输入流:由一个或多个数据加工组成。

其作用是将最初接收到的系统外部输入的数据,由其外部形式变成内部形式,即将系统得到的物理输入变为系统可用的形式。

一般来说,输入流的处理工作是对数据格式进行转换,即对数据进行分类、排序、编辑、整理、有效性检验等。

(2)变换流:是指将输入流转换为输出流的数据变换过程和机制。

变换流接收的数据是系统可处理的,处理后以系统的内部形式送给输出流。

(3)输出流:将变换流发来的内部形式的数据经过加工处理变为外部系统可接收的形式并输出。

2.事务流在实际中,我们还会遇到另一类问题,即通常在接受某一项事务后,根据事务的特点和性质,选择分派给一个适当的处理单元,然后给出结果,如图4.17所示。

这类问题就是事务型问题。

它的特点是,数据沿着接收分支把外部信息(数据)转换成一个事务项,然后计算该事务项的值,并根据它的值从多条数据流中选择其中的某一条数据流。

发出多条数据流的处理单元叫做事务中心,在这里,称输入数据为事务,称根据事务做出判断,并选择多个处理路径中的一条来执行的加工为事务中心。

事务中心的作用如下:●接收输入数据(事务源);●根据事务做出判断,并选择处理路径;●沿处理路径执行。

需要指出的是,在一个大型系统的数据流程图中,变换流和事务流可能会同时出现。

例如,在一个事务型的数据流程图中,分支动作路径上的信息流也可能会体现变换流的特征。

4.4.2 变换流分析与设计变换流分析设计的要点是分析数据流程图,确定输入流、输出流边界,根据输入、变换、输图4.17 事务型模型。

软件工程实用教程(2版)-4章-习题与参考答案-2012-5-30

软件工程实用教程(2版)-4章-习题与参考答案-2012-5-30
5.为每一种模块内聚举一个具体例子;为每一种模块耦合举一个具体例子。
1.答案要点:
偶然内聚:计算学生总成绩与统计学生出勤人数放在一个模块中;
逻辑内聚:打印会计报表与打印学生成绩表在一个模块中;
时间内聚:系统初始化模块;
过程内聚:根据考试成绩分别进行奖学金处理、留级、退学处理等
通信内聚:输入入库单、据此登记库存帐并开具发票等
6.简述变换分析、事务分析的基本步骤。
答案要点:
变换流分析设计步骤:
1)确定变换流、输入流和输出流部分
2)设计模块结构的顶层和第一层
3)设计中下各层
事务分析的步骤:
根据事务功能设计一个顶层总控模块;
将事务中心的输入数据流对应为一个第一层的接收模块及该模块的下层模块;
将事务中心对应为一个第一层的调度模块;
概要设计过程主要包括:1)制定规范2)系统架构设计3)软件结构设计4)公共数据结构设计5)安全性设计6)故障处理设计7)编写文档8)概要设计评审
2.如何理解模块的独立性?用什么指标来衡量模块的独立性?
答案要点:
模块的独立性是指不同模块之间的相互联系应尽可能的少,应尽可能减少公共的变量和数据结构;一个模块应尽可能在逻辑上独立,有完整单一的功能。具有良好独立性的模块,可使模块功能完整、数据接口简单、程序易于理解和维护。独立性限制了错误的作用范围,使错误易于排除,因而可使软件开发速度快,质量高。
2)界面的风格的“一致性”与“个性化”
3)界面信息反馈
4)界面的合适性
5)容错性
6)审美性和可用性
4)模块的扇入、扇出要适当等。
4.什么是软件体系结构?什么是软件体系结构风格?
答案要点:
软件体系结构表示了一个软件系统的逻辑结构,描述包含系统基础构成单元、它们之间的作用关系、在构成系统时它们的集成方法以及对集成约束的描述等方面。在设计软件体系结构时,必须考虑系统的动态行为,考虑与现有系统的兼容性、安全性、可靠性、扩展性和伸缩性。

软件工程课后习题答案2

软件工程课后习题答案2
5.
12
作业及解答(第3章)
从问题陈述可知,复印机的状态主要有“闲置”、“复印
”、“缺纸”和“卡纸”。引起状态转换的事件主要是“ 复印命令”、“完成复印命令”、“发现缺纸”、“装满 纸”、“发生卡纸故障”和“排除了卡纸故障”。
13
作业及解答(第4章)
14
补充:请将下图的DFD转换为软件结构图。 (注:图中⊕表示或者)
1
作业及解答(第3章)
1. 银行计算机储蓄系统的工作过程大致如下:储户填写的 存款单或取款单由业务员键入系统,如果是存款则系统记 录存款人姓名、住址(或电话号码)、身份证号码、存款类 型、存款日期、到期日期、利率及密码(可选)等信息,并 印出存单给储户;如果是取款而且存款时留有密码,则系 统首先核对储户密码,若密码正确或存款时未留密码,则 系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图描绘 系统中的数据对象。
21
不能是两个分开的子系统,是相同的前台单个处理
银行储蓄系 统
存 款 单 款
率 利
利 存单 息清单
密 码
业务单据录 入
利 率
存款单


储蓄业务处理
存款单
单据输出
利 息
存单

存单
密码

利率



密 码


存款利 率设置
存款单据输 入
取款单 据输入
存款
取款
存单
利息清单
22
(2)机票预定系统 为了方便旅客,某航空公司拟开发一个机票预定系 统。旅行社把预定机票的旅客信息(姓名、性别、 工作单位、身份证号码、旅行时间、旅行目的地等 )输入该系统,系统为旅客安排航班,旅客在飞机 起飞前一天凭取票通知和账单交款取票,系统核对 无误即印出机票给顾客

软件工程实用教程2版课后答案

软件工程实用教程2版课后答案
后一阶段的输入文档。 阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的
返工,如果评审不合格,则不开始下一阶段的工作。 文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶
段的任务。
3. 试说明原型模型的两种实现方案各有什么特点?各适用于什么情况? 答案要点:
2. 瀑布模型有哪些特点?对于里程碑,你有哪些认识? 答案要点:
瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件 项目按规程管理提供了便利。例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段 性的评审等。这为提高软件产品质量提供了有效保证。
瀑布模型的特点: 阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是
第三阶段:进入 20 世纪 90 年代以后,软件复用和软件构件技术正逐步成为主流软件技 术,软件工程也由此进入了新的发展阶段——构件软件工程时代。
3. 软件工程的目标是什么?如何解决多目标之间的矛盾? 答案要点:
软件工程的目标是基于软件项目目标的成功实现而提出的,主要体现在以下几方 面。
软件开发成本较低。 软件功能能够满足用户的需求。 软件性能较好。 软件可靠性高。 软件易于使用、维护和移植。 能按时完成开发任务,并及时交付使用。
4. 一般认为,只有大型项目才采用螺旋模型,其原因是什么? 答案要点: 螺旋模型增加了软件项目的风险分析,因为项目规模越大、问题越复杂,资源、成本、 进度等因素的不确定性就越大,承担项目所冒的风险也越大。人们进行风险分析与管理的目 的就是在造成危害之前及时对风险进行识别、分析、采取对策,从而消除或减少风险所造成 的损失。该模型适合于指导大型软件项目的开发,它将软件项目开发划分为制定计划、风险 分析、实施开发以及客户评估 4 类活动。在对风险进行识别和分析时,如果开发风险过大, 开发者和用户无法承受,项目有可能因此而终止。螺旋模型的优越性在于它吸收了“进化” 的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,并对此做出反应。但 使用该模型需要丰富的风险评估经验和专门知识,如果项目风险较大又未及时发现,势必造 成重大损失。实际上,对软件项目进行风险分析也需要费用,假如项目风险分析费用过高, 甚至超过了项目的开发费用,显然就不合适了。一般大型项目才有较高的风险,才有进行详 细风险分析的必要。因此这种模型比较适合大型的软件项目。

软件工程课后题答案大全(详细)

软件工程课后题答案大全(详细)

软件工程课后题答案大全(详细)软件工程课后题答案大全(详细)现代社会中,软件工程越来越重要,因为它在各个行业中扮演着关键的角色。

而在学习软件工程课程时,完成课后题是提高理解和掌握程度的重要途径。

本文将为您提供一份全面且详细的软件工程课后题答案大全,希望能够帮助您更好地学习与应用软件工程知识。

1. 什么是软件工程?软件工程是指应用系统化的、规范化的、可量化的方法来开发和维护软件的学科。

它涵盖了各种软件开发阶段,包括需求分析、设计、编码、测试和维护,并借鉴了工程学的原则和方法。

2. 软件工程的原则有哪些?软件工程遵循一系列原则来保证软件开发和维护的质量和效率,如下:- 需求管理原则:明确需求,确保项目目标的准确性和一致性。

- 分阶段原则:将软件开发过程划分为不同的阶段,有序进行。

- 风险管理原则:评估和管理项目中的风险,降低项目失败的可能性。

- 适应性原则:根据不同的项目需求和情况,选择合适的软件开发方法和工具。

- 团队合作原则:加强团队协作,促进良好的沟通和信息共享。

3. 软件生命周期有哪些阶段?软件生命周期包括需求分析、设计、编码、测试和维护等多个阶段。

- 需求分析:明确软件系统的功能和性能要求,了解用户需求。

- 设计:定义软件系统的整体结构和组件之间的关系,确定使用的技术和工具等。

- 编码:根据设计方案,将代码实现为可以执行的程序。

- 测试:验证软件系统的功能和性能是否满足需求,并进行错误修复。

- 维护:对软件进行修复和改进,确保系统的长期可用性。

4. 软件需求分析的方法有哪些?软件需求分析是保证软件项目成功的关键步骤,以下是几种常用的分析方法:- 面谈法:直接与用户沟通,了解他们的需求和期望。

- 文档分析法:研究和分析相关文档,如需求规格说明书、用户手册等。

- 原型法:创建一个初步的系统原型,供用户参观和测试,获取反馈。

- 视频录制法:录制用户正在进行的工作流程,以便更好地了解他们的需求。

5. 软件项目管理中的风险管理包括哪些步骤?风险管理是确保软件项目成功的重要环节,步骤如下:- 风险识别:识别和描述可能影响项目目标实现的风险。

软件工程第二版答案

软件工程第二版答案

里面包含绝大部分的软件工程第二版中的课后习题答案瞿中编第一章仿真试题1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。

八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( )。

A、详细计划B、可行性分析C、运行阶段D、测试与排错2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大( )。

A、详细设计阶段B、概要设计阶段C、需求分析阶段D、测试和运行阶段3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( )。

A、需求分析阶段B、详细设计阶段C、概要设计阶段D、可行性研究阶段4、软件工程的出现主要是由于( )。

A.程序设计方法学的影响B.其它工程科学的影响C. 软件危机的出现D.计算机的发展5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( )A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为( )A、相互排斥B、相互补充C、独立使用D、交替使用7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高( )A、结构化方法B、原型化方法C、面向对象的方法D、控制流方法9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的( )A、控制流B、数据流C、程序流D、指令流10、软件开发的结构化生命周期方法将软件生命周期划分成( )A、计划阶段、开发阶段、运行阶段B、计划阶段、编程阶段、测试阶段C、总体设计、详细设计、编程调试D、需求分析、功能定义、系统设计11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为( )A、瀑布模型B、对象模型C、螺旋模型D、层次模型12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( )A、分析阶段B、设计阶段C、编码阶段D、测试阶段13、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。

软件工程实用教程(第2版)_软件工程实用教程 (第2版)_[共8页]

软件工程实用教程(第2版)_软件工程实用教程 (第2版)_[共8页]

普通高等教育“十一五”国家级规划教材21世纪高等学校计算机规划教材软件工程实用教程(第2版)郭宁主编马玉春邢跃吴文红副主编人民邮电出版社北京内容提要本书根据软件工程的最新发展,结合目前软件工程教学的需要,以传统的软件工程和面向对象的软件工程为主线,遵循软件开发“工程化”思想,结合大量的应用案例,系统地介绍软件工程学的理论、方法以及应用技术。

内容包括:软件开发模型、需求分析、软件设计、软件测试、软件维护、质量管理、文档技术、软件项目管理、软件工程工具和环境等。

本书强调软件工程的理论与实践相结合、技术与管理相结合、方法与CASE工具相结合,语言简练,通俗易懂,采用案例教学方法,注重培养实际开发能力和文档的写作能力,具有很强的实用性和可操作性。

书中含有丰富的例题与习题,便于教学和自学。

本书可作为高等院校计算机专业或信息类相关专业高年级本科生或研究生教材,也可作为软件开发人员的参考书。

普通高等教育“十一五”国家级规划教材21世纪高等学校计算机规划教材软件工程实用教程(第2版)♦主编郭宁副主编马玉春邢跃吴文红责任编辑邹文波♦人民邮电出版社出版发行北京市崇文区夕照寺街14号邮编 100061 电子邮件 315@网址 北京鑫正大印刷有限公司印刷♦开本:787×1092 1/16印张:18.75 2011年8月第2版字数:494千字2011年8月北京第1次印刷ISBN 978-7-115-25538-9定价:35.00元读者服务热线:(010)67170985 印装质量热线:(010)67129223反盗版热线:(010)67171154。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1·软件工程概述1·1 软件工程的定义和特点软件工程是一门研究和应用如何以系统化、规范化、可量化的方法开发和维护软件的学科。

其特点包括软件开发的目标性、可度量性、可管理性和可预测性。

1·2 软件生命周期模型常见的软件生命周期模型包括瀑布模型、迭代模型、螺旋模型和敏捷模型等。

每个生命周期模型都有其适用的场景和优缺点。

2·软件需求工程2·1 软件需求获取软件需求获取方法包括面谈、问卷调查、用户场景模拟等。

需求获取的目的是明确软件系统的功能、性能和约束条件。

2·2 软件需求分析与规格说明软件需求分析的目标是识别和定义系统的需求,包括功能需求、非功能需求和约束条件。

规格说明是将需求转化为精确、清晰和易于验证的文档。

3·软件设计3·1 结构化设计结构化设计将系统分解为模块,确定模块之间的接口和关系,实现模块化、高内聚、低耦合的设计原则。

3·2 面向对象设计面向对象设计将系统抽象为对象,定义对象的属性和方法,并确定对象之间的关系。

常用的面向对象设计方法有UML(统一建模语言)。

4·软件测试4·1 测试基本概念软件测试是通过运行软件来发现错误和缺陷的过程。

测试的基本概念包括测试用例、测试套件、测试目标和测试覆盖度等。

4·2 测试方法和技术常见的软件测试方法和技术有黑盒测试、白盒测试、灰盒测试、单元测试、集成测试和系统测试等。

每种方法和技术都有其适用的场景和优缺点。

5·软件维护与配置管理5·1 软件维护软件维护是指对已有的软件进行修改、优化、修复错误和适应环境变化的过程。

维护活动包括需求分析、设计、实现、测试和文档更新等。

5·2 软件配置管理软件配置管理是指在软件开发和维护过程中,对软件配置项进行识别、控制、追踪和审查,确保软件可以按需发布、升级和回溯。

软件工程许家怡教材习题答案《《软件工程——理论与实践》(第2版)习题答案》

软件工程许家怡教材习题答案《《软件工程——理论与实践》(第2版)习题答案》

《软件工程——理论与实践》(第2版)习题答案习题答案习题一答案一、选择题1. 软件的主要特性是(A B C)。

A) 无形B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(B)。

A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。

A) 螺旋模型B) 瀑布模型C) 增量模型D) 喷泉模型4. 软件工程的主要目标是(C)。

A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D)。

A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。

A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件工程的目标有(A B C)。

A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是(A D)。

A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。

(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。

(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。

(×)4. 结构化方法和OO方法都是一种面向过程的软件开发方法。

(×)5. 原型化开发方法包括生成原型和实现原型两个步骤。

(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。

( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。

(×)8. 软件工具的作用是为了延长软件产品的寿命。

建立动态模型_软件工程实用教程 (第2版)_[共5页]

建立动态模型_软件工程实用教程 (第2版)_[共5页]

在活动图中使用一个菱形的判断标志,则可以表达条件关系,判断标志可以有多个输入和输出转移,但在活动的运作中仅触发其中的一个输出转移。

引入活动图的目的主要是描述并发活动和跨用例的系统任务。

在活动图中使用一个称为同步条的水平粗线可以将一条转移分为多个并发执行的分支,或将多个转移合为一条转移。

此时,只有输入的转移全部有效,同步条才会触发转移,进而执行后面的活动,如图5.31所示。

2.泳道将模型中的活动按照职责组织起来通常很有用。

泳道图的作用是将活动图的逻辑描述与顺序图、通信图的责任描述结合起来。

泳道用矩形框来表示,属于某个泳道的活动放在该矩形框内,将对象名放在矩形框的顶部,表示泳道中的活动由该对象负责。

如图5.32所示,采样器经初始化后产生两个并发任务:一个任务是采样处理;另一个任务是用采样得到的数据更新显示器。

这两个任务分别由采样器和显示器完成。

图5.32 采样显示活动图3.对象活动图能表示对象的值流和控制流。

在活动图中,对象可以作为动作的输入或输出,或简单地表示指定动作对对象的影响。

对象用对象矩形符号来表示,在矩形的内部有对象名或类名。

当一个对象是一个动作的输入时,用一个从对象指向动作的虚线箭头来表示;当对象是一个动作的输出时,用一个从动作指向对象的虚线箭头来表示。

当表示一个动作对一个对象有影响时,只需用一条对象与动作间的虚线来表示,如图5.32所示,作为一个可选项,可以将对象的状态用中括号括起来放在类名的下面。

5.5.5 建立动态模型静态模型得到的类的信息并不完整,因为系统在运行过程中,组成系统的对象是相互配合的,协同完成每一个用例的功能。

详细了解角色与对象以及对象之间的交互过程将极大地方便系统的具体实现。

当系统与用户交互或系统内部各对象交互的时候,组成系统的对象为了适应交互要经历必要的变化。

人们还需要了解对象如何随时变化,并在模型中反映出这种变化。

建立动态模型的步骤是:编写典型交互序列的场景,虽然场景中不可能包括每个偶然事件,但是至少必须保证不遗漏常见的交互行为;从场景中提取出对象之间的事件,确定触发每个事件的动129。

软件工程实用教程(2版)-12章-习题与参考答案-2012-5-28

软件工程实用教程(2版)-12章-习题与参考答案-2012-5-28

软件工程实用教程《软件工程实用教程》习题与参考答案第12章软件开发工具与环境1.什么是软件开发环境?它的基本分类是什么?答案要点:软件开发环境应是能支持整个软件生存期阶段的开发活动,并能支持各种处理模型的软件方法学,同时实现这些开发方法的自动化。

按解决的问题分类:程序设计级、系统合成级与项目管理级。

按现有软件开发环境的演化趋向分类:以语言为中心的环境、面向结构的环境、工具箱环境与基于方法的环境。

按集成化程度分类:分成三代。

2.什么是计算机辅助软件工程?答案要点:在软件工程活动中,软件工程师和管理员按照软件工程的方法和原则,借助于计算机及其软件工具的帮助,开发、维护、管理软件产品的过程,称为计算机辅助软件工程(Computer-Aided Software Engineering,简称CASE)。

3.列出常见的软件开发工具?根据本章的分类方法组织它们?答案要点:软件开发工具种类繁多,按功能可将软件开发工具分为8类:●业务系统规划工具:IBM Rational Rose是基于UML的可视化建模工具;Microsoft Visio。

●项目管理工具:Microsoft Office Project 2007、Visual SourceSafe●支持工具:IBM Rational Build Forge是对分布式开发环境进行自动构建和发布管理类工具;Microsoft V isual SourceSafe 、IBM Rational ClearCase 配置管理工具。

●分析和设计工具:Power designer、IBM Rational Rose可视化建模工具。

●编程工具:Delphi、Visual Basic、C++ Builder等编程语言的编辑器和代码生成器,解释器及调试器等。

●测试和分析工具:静态测试工具有:Telelogic公司的Logiscope软件;PR公司的PRQA软件。

态测试工具的代表有:Compuware公司的DevPartner软件;Rational公司的Purify系列等。

软件工程实用教程(2版)-6章-习题与参考答案-2012-5-28

软件工程实用教程(2版)-6章-习题与参考答案-2012-5-28
在进行分层设计时应注意以下几点。
层与层之间的耦合应尽可能地松散,这样只要保证接口一致,某一层的具体实现就很容易被扩展和替换;
级别相同,职责类似的元素应该被组织到同一层中;
复杂的模块应被继续分解为粒度更细的层或子系统;
应尽量将可能发生变化的元素封装到一个层次中,这样发生变化时我们只要改变受影响的层就可以了;
4.举例说明各种程序设计语言的特点及适用范围。
答案要ห้องสมุดไป่ตู้:
JAVA:面向对象,多线程,可重用性强,继承,多态,有庞大的Applet和GUI库,网络应用广泛等
C:是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。
《软件工程实用教程》

1.简述分层模式的特点及设计时的注意事项。
答案要点:
表示层:图形用户界面、窗口等。
应用逻辑层:管理业务过程的任务和规则。
对象存储层:持久化存储机制,例如,文件系统、数据库等。
这种体系结构的主要特征是将应用逻辑从软件中分离出来,形成了一个单独的逻辑中间层。把应用逻辑和存储逻辑分开是非常重要的,这样不管哪一部分的改变都不会影响其他的部分。
(2)基于使用的测试。这种策略首先测试几乎不使用服务器类的那些类(称为独立类),把独立类都测试完之后,再测试使用独立类的下一个层次的类(称为依赖类)。对依赖类的测试一个层次一个层次地持续进行下去,直至把软件系统构造完为止。

软件工程第1-2章课后习题参考答案

软件工程第1-2章课后习题参考答案

软件⼯程第1-2章课后习题参考答案第⼀章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的⼀系列“严重问题”。

这些问题决不仅仅是不能正常运⾏的软件才具有的,实际上,⼏乎“所有软件”都不同程度地存在这些问题。

“软件危机”包含两⽅⾯的问题:(1)如何开发软件,以满⾜对软件⽇益增长的需求;(2)如何维护数量不断膨胀的已有软件。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)⽤户对“已完成的”软件系统不满意的现象经常发⽣;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的⽂档资料;(6)软件成本在计算机系统总成本中所占的⽐例逐年上升;(7)软件开发⽣产率提⾼的速度,远远跟不上计算机应⽤普及深⼊的趋势。

出现软件危机的原因(1)开发⼈员与客户认识之间的⽭盾(2)开发⼈员能⼒与开发⽬标之间的⽭盾(3)预估与实际⼯作量之间的⽭盾(4)客户认识的提⾼与软件维护之间的⽭盾(5)遗产系统与实施软件之间的⽭盾2.假设⾃⼰是⼀家软件公司的总⼯程师,当把图1.1给⼿下的软件⼯程师们观看,告诉他们及时发现并改正错误的重要性时,有⼈不同意这个观点,认为要求在错误进⼊软件之前就清楚它们是不现实的,并举例说:“如果⼀个故障是编码错误造成的,那么,⼀个⼈怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进⾏修改付出的代价是很不相同的,在早期引⼊变动,涉及的⾯较少,因⽽代价也⽐较低;在开发的中期,软件配置的许多成分已经完成,引⼊⼀个变动要对所有已完成的配置成分都做相应的修改,不仅⼯作量⼤,⽽且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引⼊变动,当然付出的代价更⾼。

⼀个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很⼩的,因为这不是整体构架的错误。

3.什么是软件⼯程?它有哪些本质特征?怎么⽤软件⼯程消除软件危机?软件⼯程是知道计算机软件开发和维护的⼀门⼯程学科。

软件工程教程课后参考答案

软件工程教程课后参考答案

软件工程教程课后参考答案软件工程是一个涉及软件开发生命周期的综合性学科,它包含了软件需求、设计、开发、测试和维护等多个环节。

本文将为大家提供软件工程教程的课后参考答案,帮助读者更好地理解和掌握软件工程的相关知识。

一、软件需求分析在软件开发过程中,需求分析是非常关键的一步。

它的目的是明确用户的需求,为后续的软件设计和开发提供依据。

需求分析主要包括以下几个步骤:1.1 需求搜集:通过与用户沟通、调研等方式收集用户需求,可以采用面谈、问卷调查等方法。

1.2 需求分析:对搜集到的需求进行整理和分析,明确用户的具体需求和优先级。

1.3 需求规格说明:将需求以文档形式进行规格化,包括用例图、用例描述、功能需求等。

1.4 验证需求:通过与用户的确认、需求评审等方式,确保需求的正确性和完整性。

二、软件设计软件设计是指根据需求分析的结果,对软件进行整体架构、模块划分等设计工作。

下面是软件设计的一般过程:2.1 系统架构设计:确定系统的整体结构,包括模块划分、模块之间的关系等。

2.2 模块设计:对系统中的每个模块进行详细设计,包括定义模块接口、数据结构等。

2.3 数据库设计:设计系统所需的数据库结构,包括数据表的设计、关系建立等。

2.4 用户界面设计:设计软件的用户界面,包括界面布局、交互方式等。

2.5 验证设计:对设计进行评审和验证,确保设计的合理性和可行性。

三、软件开发软件开发是指根据需求和设计的结果,进行编码、调试和测试等开发工作。

下面是软件开发的一般过程:3.1 编码实现:根据设计文档进行编码工作,将设计的结果转化为可执行的程序。

3.2 单元测试:对每个模块进行独立测试,确保模块的功能和接口正确。

3.3 组件测试:将多个模块组装在一起进行测试,确保各个模块之间的协同工作正常。

3.4 系统测试:对整个软件系统进行测试,包括功能测试、性能测试等。

3.5 调试和修复:在测试过程中发现问题,进行调试和修复,确保软件的稳定性和可靠性。

软件工程实用教程(2版)-第3章-习题与参考答案-2012-3-15

软件工程实用教程(2版)-第3章-习题与参考答案-2012-3-15

《软件工程实用教程》部分习题与参考答案第3章结构化需求分析1.如何理解需求分析的任务是确定软件系统“做什么”,而不是“怎么做”?答案要点:需求分析的任务是借助当前系统的逻辑模型导出目标系统的逻辑模型。

在理解当前系统“怎么做”的基础上,抽取其“做什么”的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。

在去掉非本质的因素后,根据用户提出的对目标系统的需求,分析当前系统与目标系统的差别,明确目标系统的范围、功能、处理步骤和数据结构,建立目标系统的逻辑模型。

需求分析阶段研究的对象是软件项目的用户要求,正确地理解需求和准确地表达需求是需求分析的关键,只有经过确切描述的软件需求才能成为软件设计的基础。

2.什么是用户需求?什么是系统需求?答案要点:用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、用户机构的业务范围、工作流程和用户对软件应用的展望等。

因此,用户需求也就是关于软件的外界特征的规格表述。

系统需求是比用户需求更具有技术特性的需求陈述。

它是提供给开发者或用户方技术人员阅读的,并将作为软件开发人员设计系统的起点与基本依据。

系统需求需要对系统的功能、性能、数据等方面进行规格定义。

3.4.用户需求调查主要有哪些方法?答案要点:用户需求调查主要有研究资料法、问卷调查法、用户访谈和实地观察法等。

5.为什么一个系统的数据流程图一般是一套分层的数据流图?答案要点:分层的数据流图体现了分解和抽象的原则,它使人们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这有助于理解问题。

图中顶层抽象地描述了整个系统,底层具体地画出了软件的每一个细部,中间层则是从抽象到具体的逐步过渡。

按照这样的方法,无论问题多么复杂,分析工作都可以有计划、有步骤、有条不紊地进行。

6.数据字典的作用是什么?它有哪些基本条目?答案要点:数据字典是结构化分析的另一个有力的工具。

它是为数据流程图中的每个数据流、数据存储、加工以及组成数据流或文件的数据项做出说明,没有数据字典,数据流程图就不严格。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人们提出“软件工程”的概念,就是为了用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。由于引入了软件工程的思想,把其他工程技术研究和开发领域中行之有效的知识和方法运用到软件开发工作中来,提出了按工程化的原则和方法组织软件开发工作的解决思路和具体方法,在一定程度上缓解了“软件危机”。
5.为什么说构件复用模型是一种有利于软件按工业流程生产的过程模型?答案要点:
构件复用模型最明显的优势是减少了需要开发的软件数量,缩短了软件交付周期,提高了软件的质量,降低了开发风险。由于构件具有一定的通用性,可以在不同的软件系统中被复用。在基于构件复用的软件开发中,软件由构件装配而成,这就如同用标准零件装配汽车一样。构件复用技术,它能带来更好的复用效果,并且具有工程特性,更能适应软件按工业流程生产的需要。
2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?
答案要点:
瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。这为提高软件产品质量提供了有效保证。
瀑布模型的特点:
阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。
2.简述软件和软件工程的定义以及软件工程的形成过程。
答案要点:
计算机软件是由计算机程序的发展而形成的一个概念。它是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。
软件工程是指导计算机软件开发和维护的工程学科。它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。
软件性能较好。
软件可靠性高。
软件易于使用、维护和移植。
能按时完成开发任务,并及时交付使用。
软件工程的首要问题是软件质量。软件工程的目的就是在以上目标的冲突之间取得一定程度的平衡。因此,在涉及平衡软件工程目标这个问题的时候,软件的质量应该摆在最重要的位置加以考虑。软件质量可用功能性、可靠性、可用性、效率、可维护性和可移植性等6个特性来评价。
阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。
文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。
3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?
答案要点:
原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。
2.什么是用户需求?什么是系统需求?
答案要点:
用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、用户机构的业务范围、工作流程和用户对软件应用的展望等。因此,用户需求也就是关于软件的外界特征的规格表述。
系统需求是比用户需求更具有技术特性的需求陈述。它是提供给开发者或用户方技术人员阅读的,并将作为软件开发人员设计系统的起点与基本依据。系统需求需要对系统的功能、性能、数据等方面进行规格定义。
3.
4.用户需求Hale Waihona Puke 查主要有哪些方法?答案要点:
用户需求调查主要有研究资料法、问卷调查法、用户访谈和实地观察法等。
5.为什么一个系统的数据流程图一般是一套分层的数据流图?
答案要点:
分层的数据流图体现了分解和抽象的原则,它使人们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这有助于理解问题。图中顶层抽象地描述了整个系统,底层具体地画出了软件的每一个细部,中间层则是从抽象到具体的逐步过渡。按照这样的方法,无论问题多么复杂,分析工作都可以有计划、有步骤、有条不紊地进行。
快速原型方法具有以下一些特点。
快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。一旦需求或设计确定下来,原型就将被抛弃。因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。快速原型往往采用软件生成工具来创建,例如,4GL语言。
快速原型是暂时使用的,因此并不要求完整。它往往针对某个局部问题建立专门原型,如界面原型、工作流原型、查询原型等。
传统的瀑布模型很难适应需求变化、模糊不定的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。这种线性的开发过程,缺乏灵活性。
原型模型的提出,可以较好的解决瀑布模型的局限性。
通过建立原型,可以更好的和客户进行沟通,解决对一些模糊需求的澄清,并且对需求的变化有较强的适应能力。原型模型可以减少技术、应用的风险,缩短开发时间,减少费用,提高生产率,通过实际运行原型,提供了用户直接评价系统的方法,促使用户主动参与开发活动,加强了信息的反馈,促进了各类人员的协调交流,减少误解,能够适应需求的变化,最终有效提高软件系统的质量。
4.一般认为,只有大型项目才采用螺旋模型,其原因是什么?答案要点:
螺旋模型增加了软件项目的风险分析,因为项目规模越大、问题越复杂,资源、成本、进度等因素的不确定性就越大,承担项目所冒的风险也越大。人们进行风险分析与管理的目的就是在造成危害之前及时对风险进行识别、分析、采取对策,从而消除或减少风险所造成的损失。该模型适合于指导大型软件项目的开发,它将软件项目开发划分为制定计划、风险分析、实施开发以及客户评估4类活动。在对风险进行识别和分析时,如果开发风险过大,开发者和用户无法承受,项目有可能因此而终止。螺旋模型的优越性在于它吸收了“进化”的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,并对此做出反应。但使用该模型需要丰富的风险评估经验和专门知识,如果项目风险较大又未及时发现,势必造成重大损失。实际上,对软件项目进行风险分析也需要费用,假如项目风险分析费用过高,甚至超过了项目的开发费用,显然就不合适了。一般大型项目才有较高的风险,才有进行详细风险分析的必要。因此这种模型比较适合大型的软件项目。
原型进化模型对开发过程的考虑是,针对有待开发的软件系统,先开发一个原型系统让用户使用,然后根据用户使用情况的意见反馈,对原型系统不断修改,使它逐步接近并最终达到开发目标。跟快速原型不同的是,快速原型在完成需求定义后将被抛弃,而原型进化所要创建的原型则是一个今后要投入应用的系统,只是所创建的原型系统在功能、性能等方面还有许多不足,还没有达到最终的开发目标,需要不断改进。
第一阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。
第二阶段:20世纪80年代,面向对象的方法与技术受到了广泛的重视,Smalltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。20世纪80年代末逐步发展起来的面向对象的分析与设计方法,形成了完整的面向对象技术体系,使系统的生命周期更长,适应更大规模、更广泛的应用。这时,进一步提高软件生产率、保证软件质量就成为软件工程追求的更高目标。软件生产开始进入以过程为中心的第二阶段。软件开发过程从目标管理转向过程管理,形成了软件工程的第二代——过程软件工程时代。
第1章软件工程引论
1.什么是软件危机?它和软件工程有什么关系?
答案要点:
由于软件规模的扩大、功能的增强和复杂性的增加,使得在一定时间内仅依靠少数人开发一个软件变得越来越困难。在软件开发中经常会出现时间延迟、预算超支、质量得不到保证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣布失败。软件危机的突出表现:1)软件生产率低2)软件产品常常与用户要求不一致3)软件规模的增长,带来了复杂度的增加4)不可维护性突出5)软件文档不完整、不一致。
·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程中交替或并行运作。因此,在获得了软件需求框架以后,例如,软件的基本功能被确定以后,就可以直接进入到对软件的开发中。
原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此,这种开发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。
第三阶段:进入20世纪90年代以后,软件复用和软件构件技术正逐步成为主流软件技术,软件工程也由此进入了新的发展阶段——构件软件工程时代。
3.软件工程的目标是什么?如何解决多目标之间的矛盾?
答案要点:
软件工程的目标是基于软件项目目标的成功实现而提出的,主要体现在以下几方面。
软件开发成本较低。
软件功能能够满足用户的需求。
8.具有原型化的瀑布模型具有什么特点?它与瀑布模型最大的不同是什么?答案要点:
特点:
·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程中交替或并行运作。因此.在获得了软件需求框架以后,如软件的基本功能被确定以后,就可以直接进入到对软件的开发中。
·原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此.这种开发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。不同是:
4.在软件开发中软件工具有什么作用?
答案要点:
软件开发工具使软件在开发效率、工程质量、减少软件开发对人的依赖性等多方面得到改善。软件开发工具本身也是一个软件。软件开发工具与软件开发方法有着密切的关系,软件开发工具是软件方法在计算机上的具体实现
第2章软件生存周期及开发模型
1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?
快速原型不能贯穿软件的整个生命周期,它需要和其他的过程模型相结合才能产生作用。例如,前面我们提到的在瀑布模型中应用快速原型,可以解决瀑布模型在需求分析时期存在的不足。
相关文档
最新文档