软件工程-原理、方法及应用(史济民第三版)答案

合集下载

软件工程-原理、方法及应用(史济民第三版)答案

软件工程-原理、方法及应用(史济民第三版)答案

软件工程-原理、方法及应用(史济民第三版)答案绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

实用软件工程第3版习题解答-附答案

实用软件工程第3版习题解答-附答案

《实用软件工程》第3版习题参考答案习题 11.5 读者认同“4种开发方法”的方法论和“五个面向”的实践论吗?为什么?“四种开发方法”是指“面向过程的方法、面向对象的方法、面向数据的方法、形式化方法”。

面向过程的方法来源于面向过程的程序设计;面向对象的方法来源于面向对象的程序设计;面向数据的方法就是面向元数据的方法,它来源于关系数据库程序设计;形式化方法来源于离散数学中的集合运算和逻辑运算。

四种方法各适用于不同的场合,各有优缺点,互相促进,构成开发方法论的多极化世界。

“五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”,它是在综合“四种开发方法”各自的优点之后提出的软件工程实施理论,是对前者的继承与发展。

总之,上述提法既精彩又实用。

1.11 什么叫软件危机?通过本章的学习,你认为应该怎样克服软件危机?所谓软件危机,就是在软件开发和维护过程中所遇到一系列难以控制的问题。

“软件危机”这个专业术语的首次出现,是1968年NATO(North Atlantic Treaty Organization,北约)的计算机科学家,在联邦德国召开的国际学术会议上提出的。

为了克服软件危机,同样是在1968年,北约科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。

就在那次会议上,第一次提出了软件工程(Software Engineering)这个专业术语。

当时人们的想法是:若借用建筑工程或机器制造工程的思想、标准、规范、规程去开发软件与维护软件,也许能克服软件危机。

以后的实践证明:用工程的方法开发软件与维护软件是个好主意,但是要完全克服软件危机,还有许多其他工作要做。

例如,将软件公司纳入CMMI的过程改进轨道,就能真正克服软件危机。

2.4 简述瀑布模型、增量模型、迭代模型、原型模型、XP等模型的优缺点。

软件开发模型比较表4.10 业界存在哪三种需求分析方法?你认为哪一种方案更好?业界存在三种需求分析方法:面向功能分析、面向对象分析、面向数据分析。

软件工程课后习题答案

软件工程课后习题答案

软件工程课后习题答案1. 什么是软件工程?软件工程是一种应用工程原理和方法的学科,目的是开发高质量的软件。

软件工程包括以下几个方面:•需求分析:确定用户的需求,并将其转化为可执行的软件功能。

•设计:设计软件的架构和模块,并确定各个模块的功能和关系。

•编码:实现软件的设计,将设计的模块通过编程语言编写成可执行的代码。

•测试:通过不同的测试方法和技术对软件进行验证,确保软件的质量和可靠性。

•维护:对软件进行改进和修复,以适应用户需求的变化和修复软件中的错误。

2. 软件工程的目标是什么?软件工程的目标是开发高质量的软件,以满足用户的需求。

具体目标包括:•可靠性:软件应该能够正常运行并处理各种输入情况,不会崩溃或导致系统故障。

•可维护性:软件应该易于理解和修改,以适应用户需求的变化和修复软件中的错误。

•可扩展性:软件应该能够在不改变其基本架构的情况下,方便地添加新的功能模块。

•可重用性:软件应该能够被多个项目和团队复用,以提高开发效率。

•可测试性:软件应该易于测试,以确保其功能和性能符合预期。

3. 软件开发生命周期有哪几个阶段?软件开发生命周期通常包括以下几个阶段:1.需求分析和定义阶段:在这个阶段,软件工程师与用户沟通,了解用户的需求和期望。

然后,设计师将这些需求转化为软件规格说明。

2.软件设计阶段:在这个阶段,设计师根据需求规格说明书设计软件的架构和模块,并确定模块之间的关系和功能。

3.编码阶段:在这个阶段,开发人员根据设计文档编写代码,实现软件的功能。

4.测试阶段:在这个阶段,测试人员使用不同的测试方法和技术对软件进行验证,以确保软件的质量和可靠性。

5.部署和维护阶段:在这个阶段,软件工程师将软件部署到实际的运行环境中,并根据用户的反馈进行改进和修复。

4. 什么是软件需求?软件需求是对系统或软件功能和性能的描述,它描述了用户的需求和期望。

软件需求通常包括以下几个方面:•功能需求:描述软件应该具有的功能,以及这些功能如何满足用户的需求。

软件工程课后习题答案

软件工程课后习题答案

软件⼯程课后习题答案第⼀章⼀、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使⽤与维护过程中遇到的⼀系列严重问题和难题。

它包括两⽅⾯:如何开发软件,已满⾜对软件⽇益增长的需求;如何维护数量不断增长的已有软件。

软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。

常常出现实际成本⽐估算成本⾼出⼀个数量级、实际进度⽐计划进度拖延⼏个⽉甚⾄⼏年的现象。

⽽为了赶进度和节约成本所采取的⼀些权宜之计⼜往往损害了软件产品的质量。

这些都降低了开发商的信誉,引起⽤户不满。

(2) ⽤户对已完成的软件不满意的现象时有发⽣。

(3) 软件产品的质量往往是靠不住的。

(4) 软件常常是不可维护的。

(5) 软件通常没有适当的⽂档资料。

⽂档资料不全或不合格,必将给软件开发和维护⼯作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占⽐例逐年上升。

(7) 开发⽣产率提⾼的速度远跟不上计算机应⽤普及的需求。

软件危机出现的原因:(1) 来⾃软件⾃⾝的特点:是逻辑部件,缺乏可见性;规模庞⼤、复杂,修改、维护困难。

(2) 软件开发与维护的⽅法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。

(3) 供求⽭盾将是⼀个永恒的主题:⾯对⽇益增长的软件需求,⼈们显得⼒不从⼼。

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

软件工程第一二三章习题参考答案.doc

软件工程第一二三章习题参考答案.doc

软件工程第一二三章习题参考答案第一章软件工程概述软件是计算机程序及其有关的数据和文档的结合。

软件危机是指在计算机软件开发和维护时所遇到的一系列问题。

软件危机主要包含两方面的问题:一是如何开发软件以满足对软件日益增长的需求;二是如何维护数量不断增长的已有软件。

软件工程是软件开发、运行、维护和引退的系统方法。

软件工程是指导计算机软件开发和维护的工程学科。

软件工程采用工程的概念、原理、技术和方法来开发与维护软件。

软件工程的目标是实现软件的优质高产。

软件工程学的主要内容是软件开发技术和软件工程管理。

软件开发方法学是编制软件的系统方法,它确定软件开发的各个阶段,规定每一阶段的活动、产品、验收的步骤和完成准则。

常用的软件开发方法有结构化方法、面向数据结构方法和面向对象方法等。

习题参考答案:1.什么是软件危机?为什么会出现软件危机?答:软件危机是指在计算机的开发和维护过程中所遇到的一系列严重问题。

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

出现软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。

软件不同于硬件,它是计算机系统中逻辑件而不是物理部件。

管理和控制软件开发过程相当困难。

软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。

目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。

总结如下:1)取得正确的用户需求和正确地描述需求很困难2)开发人员对需求的正确理解也有困难3)常常在没有正确理解之前就仓促开始编程4)软件项目缺乏有效的组织、管理和内部交流5)缺乏软件开发方法、模型和工具的支持6)软件维护的困难性2.假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件已经完成时再引入变动,当然付出的代价更高。

软件工程课后习题(含答案)

软件工程课后习题(含答案)

第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。

2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。

二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。

可靠性是衡量软件质量的一个重要目标。

2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。

可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。

三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。

(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。

2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。

(2)软件开发简单,易学、易上手。

(3)专业或非专业人员都能参与软件开发活动。

第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。

2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。

3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。

4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。

二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。

2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。

2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。

3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件工程课后答案完整版

软件工程课后答案完整版

软件工程课后答案完整版软件工程是一门涉及软件开发与管理的学科,它关注着如何有效地组织、设计、开发和维护软件系统。

作为一门实践性强的学科,课后答案对于学习软件工程的学生来说非常重要。

本文将以软件工程课后答案为主题,为您提供一份完整版的答案,旨在帮助您更好地理解和掌握软件工程的知识。

一、需求分析与规格说明1. 问题描述对于任何一门软件工程课程,需求分析和规格说明都是至关重要的环节。

通过合理地分析需求,可以明确软件系统的功能需求、性能需求和用户需求,从而为后续的设计和开发工作奠定基础。

在这一部分中,我们将详细讨论问题描述、需求规格说明以及软件需求规格说明的编写步骤和技巧。

2. 答案示例问题描述:某个公司需要开发一个在线购物系统,能够满足用户浏览商品、下单购买、支付、评价等功能。

需求规格说明:该系统需要具备以下功能需求:- 用户注册登录:用户可以通过注册登录系统,建立个人账号,用于后续购物操作。

- 商品浏览:用户可以浏览系统中的商品,包括商品图片、详细介绍、价格等信息。

- 购物车管理:用户可以将感兴趣的商品加入购物车,并对购物车进行管理,如增加、删除、修改商品数量等操作。

- 订单管理:用户可以在购物车中选择商品提交订单,并进行支付操作。

- 支付功能:系统需要集成常用的支付渠道,如支付宝、微信支付等,以便用户支付订单。

- 评价功能:用户在收到商品后可以对商品进行评价,并可以查看其他用户对商品的评价。

三、软件系统设计与实现1. 系统架构设计系统架构设计是软件工程中的核心环节之一,它关注着如何将系统划分为各个模块,并确定模块之间的接口和依赖关系。

在这一部分中,我们将着重讨论系统架构设计的原则、方法以及常用的架构模式。

2. 答案示例系统架构设计的主要目标是实现系统的可扩展性、灵活性和可维护性。

在本次项目中,我们采用了经典的三层架构模式,即用户界面层、业务逻辑层和数据访问层。

- 用户界面层:负责与用户进行交互操作,接收用户输入的请求,并向用户展示系统的响应结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。
答:以面向对象程序设计为基础。
7.软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。
答:按规模分为极小、小、中、大、甚大、极大。
(1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。
答:
5.什么是自顶向下设计?为什么说它尤其适用于大型软件的开发?
答:设计时首先对所设计的系统有一个全面的理解。然后从顶层开始,连续的逐层向下分解,直至系统的所有模块都笑道便于掌握为止。
自底向上设计反映了软件规模较小的设计思想,随着软件规模的增长,这种方法的缺点逐渐暴露出来。而自顶向下的设计需要进行详细的可行性论证,易于修改和扩展,整体测试较易通过。
答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。
(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。
(2)大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规的复审制度,才能避免或减少混乱,真正开发出大型的软件。
8.什么是形式化软件开发方法?实现这类开发的困难和出路在哪里?
答:它是一种基于数学的开发技术,主要采用数学的方法来描述系统的性质(例如程序变换和程序验证等)。形式化的方法加上自动化的开发环境,可能是解决这一难题的出路。
软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。
4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。
答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。
5.实现快速原型法的最终系统可以有几种方法?请说明并加以比较。
答:原型系统仅包括未来系统的主要功能,以及系统的重要接口。为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。最终系统的形成可以采用原型废弃不用,另一方法是补充修改模型获得最终系统。方法一不包括系统的细节。后一种方法在实际工作中,由于原型系统使用的语言往往存在效率不高等原因,除了少数简单的事务系统外,大多数原型都废弃不用,仅把建立原型的过程当作帮助定义软件需求的一种手段。
答:从理论上说,一个正确的,满足客户需要的形式化规格说明,经过一系列正确的程序变化后,可以确保得到这样一个形式化规格说明,目前还有较高的难度,同时,软件开发者很少具有实用形式化方法所需的背景知识,况且,转换模型开发软件现在还很费时和昂贵!净室基本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。
4.什么是快速原型法?其快速表现在哪里?
答:首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型改进,最终建立完全符合用户要求的新系统。它的快速表现在能够缩短开发周期的语言和工具,能在短时间内提供出成品,但不包括成品中的细节,然后让客户进行对比。
答:需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合建立分析模型;第二是在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。需求分析的任务就是为了明确要开发的是一个什么样的系统,而不是去怎么去实现这个系统。
2.需求分析要经过哪些步骤?
答:需求获取、需求提炼、需求描述、需求验证。
3.什么是模块独立性?用什么度量?
答:模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
独立性可以从两个方面来度量:模块本身的内聚性(Cohesion)和模块之间的耦合(Coupling)。
4.具体说明“一个模块,一个功能”的含义,并试讨论这类模块的优点。
8. DFD和CFD有什么区别?
答:
9.什么是系统的行为模型,如何建立?
答:类对象模型所表示的是面向对象分析模型中的静态部分,而对象行为模型则用于描述系统的动态行为,即系统如何对应外部事件---系统的行为模型。
建立一个对象行为模型一般要经历一些过程:评估所以的用例来理解系统中的交互序列;找出驱动交互序列的事件;为每个用例创建事件轨迹;为对象创建状态转换图。
3.有哪两种主要的分析模型,它们有什么联系?
答:面向对象分析模型、结构化分析模型。前者是采用面向对象的思想进行软件需求分析的建模过程,而后者模型的核心是DD,它是设计各种数据对象的总和。他们的模型分别起到了描述数据模型,功能模型与行为模型的作用。
4.什么是结构化分析?它的“结构化”体现在哪里?
答:是使用DFD、DD、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档。
信息描述:给出对软件所含信息的详细描述,包括信息的内容、关系、数据流向、控制流向和结构等。
功能描述:对软件功能要求的说明,包括系统功能划分、每个功能的处理说明、限制和控制描述等。
行为描述:包括对系统状态变化及事件和动作的描述,据此可以检查外部事件和软件内部的控制特征。
质量描述:阐明在软件交付使用前需要进行的共更能测试和性能测试,并且规定源程序和文档应该遵守的各种标准。
软件开发模型
1.什么是软件生存周期?把生存周期划分为阶段的目的是什么?
答:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。
2.传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?
答:
8.比较概要设计复审和过程设计复审的评审内容,并说明他们采取的复审方式有何异同。
答:概要设计复审的重点放在系统的总体结构、模块划分、内外结构等方面。例如软件结构是否满足需求?结构形态是否合理?层次是否清晰?模块的划分是不是符合优化原则?系统的人机界面、内外部接口、以及出错处理是不是合理等。
过程设计复审的重点放在模块的具体设计上。例如模块设计能否满足其功能与性能要求?选择算法与数据结构是否合理,是否符合编程语言的特点?设计描述简单、清晰等。
5.什么是面向对象分析?其主要思想是什么?
答: OOA面向对象的分析是采用面向对象的思想进行软件需求分析建模的过程.主要思想是采用面向对象的思想。
6.需求说明(或需求规格说明书)由哪些部分组成?各部分的主要内容是什么?
答:引言、信息描述、功能描述、行为描述、质量描述、接口描述、其他描述。
引言:主要叙述在文体定义阶段确定的关于软件的目标与范围,简要介绍系统背景、盖帽、软件项目约束和按考资料等。
接口描述:包括系统的用户界面、硬件接口、软件接口和通信接口等的说明。
其他描述:阐述系统设计和实现上的限制,系统的假设和依赖等其他需要说明的内容。
7.为什么DFD要分层?画分层DFD要遵循哪些原则?
答:大型复杂的软件系统,其DFD可能含有数百乃至数千个加工,不能设想一次就将它们全部画齐。正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。原则:由顶向下,逐步细化。
为什么大型软件设计必须分成两步走?
答:概要设计和详细设计是软件设计的两步,概要设计确定模块的划分,模块之间的调用关系,接口等;详细设计细分模块、数据结构等;大型系统中分两步走是必要的,概要设计确定模块划分后,详细设计可把各模块交给不同的人做详细设计,大型系统中这样的分工是比较合理的,能提高效率,做到合理分工。
6.比较增量模型和螺旋模型的特点,有什么不同和相似的地方?
答:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。螺旋模型是一种迭代模型,每迭代一次,螺旋线就前进一周。增量模型每个增量具有高内聚低耦合,高度的独立性。而螺旋模型它在结合瀑布模型与快速原型的基础上还增加了风险分析。
7.为什么利用转换模型开发软件有一定难度?什么是净室软件工程?
软件工程-原理、方法及应用(史济民第三版)答案
绪论
1.什么是软件危机?为什么会产生软件危机?
答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。
(2).软件生产技术进步缓慢
2.什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?
2.解释下列名词:(1)模块;(2)模块化;(3)模块化设计。
答:模块是一个拥有明确定义的、输出和特性的程序实体。
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
模块化设计是把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。但又相互关联的模块。
答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。
相关文档
最新文档