软件工程第一,二章习题doc
《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
软件工程《软件工程》习题集

软件工程习题集第一章概述一、选择题1.“软件危机”产生的主要原因是( B )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2.软件工程中描述生存周期的瀑布模型一般包括计划、( 需求分析)、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(概要设计)和(详细设计)两步。
①需求分析②需求调查③可行性分析④问题定义⑤方案设计⑥代码设计⑦概要设计⑧数据设计⑨运行设计⑩3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(程序、数据、文档)。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档4.在软件工程时期,决定软件质量的主要因素是( )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展5.下列哪个模型没有采用迭代的思想(A )A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型6.下列关于瀑布模型的描述正确的是( D )A.利用瀑布模型,如果发现问题修改的代价很低B.瀑布模型的核心是按照软件开发的时间顺序将问题简化C.瀑布模型具有良好的灵活性D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开7.瀑布模型的关键不足在于(B )(A)过于简单(B)不能适应需求的动态变更(C)过于灵活(D)各个阶段需要进行评审8.瀑布模型把软件生存周期划分为软件定义、软件开发与(D )三个阶段,而每一阶段又可分为若干更小的阶段。
A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错二、判断题1.软件工程是指导计算机软件开发和维护的工程学科。
( )2.在软件工程时期,决定软件质量的主要因素是管理水平. ( )3.软件生存期是从软件项目需求定义直至软件开始使用为止。
()4.常用的软件生存周期模型有瀑布模型和结构化模型。
()5.瀑布模型是一种线形的、顺序的软件开发模型( )6.瀑布模型的关键不足在于不能适应需求的动态变更.( )7.快速原型模型是为了克服瀑布模型的缺点而提出来的。
软件工程习题-答案

软件工程习题-答案该习题答案由学生完成,仅供参考。
象声词同学们能独立完成习题!《软件工程》习题第一章习题1、计算机软件系统4个不同的发展阶段是:程序设计、程序系统、软件工程、面向对象阶段。
2、软件危机发生在那个阶段?主要指哪两方面的问题?程序系统阶段原因:1、如何开发软件,以满足对软件日益增长的需求。
2、如何维护数量不断膨胀的已有软件。
3、软件危机有几方面的典型表现?○1、对软件开发成本和进度的估计常常很不准确○2、用户对“已完成的”的软件系统不满意的现象经常发生○3、软件产品的质量往往靠不住○4、软件常常是不可维护的○5、软件通常没有适当的文档资料○6、软件成本在计算机系统总成本中所占的比例逐年上升○7、软件开发效率提高的速度,远远跟不上计算机应用迅速普及及深入的趋势4、软件危机产生的原因是、。
与软件本身的特点有关、软件开发与维护的方法不准确有关5、软件是、和的完整集合。
程序、数据、相关文档6、如何解决软件危机?○1、一个软件必须是由一个完整的配置组成,事实上,软件是程序,数据及相关文档的完整集合程项目○3、推广使用在实践中总结出来的开发软件的成功的技术和方法○4、应该开发和使用良好的开发软件工具○5、总之,为了解决软件危机,既要有必要的技术措施又要有必要的组织管理措施○2、要充分认识到软件开发应该是一种组织良好、管理严密、各类人员协同合作、共同完成的工7、软件工程的定义?(以教材定义为准)采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护他,这就是软件工程。
8、软件工程的本质特征有、、、、、和。
1关注大型程序的构造、中心课题是控制复杂性、软件经常变化、开发软件的效率非常重要、和谐地合作是开发软件的关键、软件必须有效地支持它的用户和由具有一种文化背景的人替另一种文化背景的人创造产品9、软件工程的基本原理有、、、、、和。
软件工程练习题1-3习题(附答案)

软件工程练习题1-3习题(附答案).软件工程练习题(1-3章)一、单项选择题1. 软件危机具有下列表现()。
I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住III. 软件常常不可维护IV. 软件成本逐年上升A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是()。
A. 运行和维护阶段B. 设计阶段C. 代码实现阶段D. 测试阶段3. 下列属于软件的特点的是()。
A. 软件是一种逻辑实体,具有抽象性B. 软件在使用过程中没有磨损、老化的问题C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高D. 以上都正确4. 软件工程的出现是由于()。
A. 软件危机的出现B. 计算机硬件技术的发展C. 软件社会化的需要D. 计算机软件技术的发展5. 软件开发技术不包含()。
A. 软件开发方法学B. 软件工程环境C. 软件工具D. 软件质量度度量6 下列属于应用软件的是()。
I. 计算机辅助教学软件II. 软件测试工具III. 办公自动化软件IV. 工程与科学计算软件A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确7. 需求分析阶段最重要的技术文档是()。
A. 设计说明书B. 需求规格说明书C. 可行性分析报告D. 用户手册8. 以下关于数据流图的说法错误的是()。
A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储B. 数据流图是用作结构化分析的一种工具C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成D. 数据流图的绘制采用自上向下、逐层分解的方法19. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是()。
A. 数据库设计B. 数据通信C. 数据定义D. 数据维护求10. 结构化方法的基本原则是()。
(完整word版)软件工程习题集+答案

(完整word版)软件工程习题集+答案《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。
B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程第一二三章习题参考答案.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、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
软件工程(第二版)课后习题

第一d ìy ī章zhāng1.什么s hén me 是s h ì软件ru ǎnjiàn 危机w ēi j ī?为什么w èi s h én m e 会h u ì产生ch ǎnsh ēng 软件ru ǎnjiàn 危机w ēi j ī?答d á:软件ru ǎnjiàn 危机w ēi j ī是s h ì指z h ǐ在z ài 计算机j ìs u àn j ī软件ru ǎnjiàn 的d e 开发k āi f ā和h é维护w éi h ù过程guòchéng 中zh ōng 遇到y ùd ào 的一系列严重问题。
(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。
(2).软件生产技术进步缓慢 2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。
采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。
3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。
答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。
当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。
新方法在推行初期,总有人不愿接受和采用。
若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。
(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一、二章习题及答案(一)名词解释1. 软件2. 文档3. 软件危机4. 软件工程5. 软件工程过程6. 软件生存周期7. 软件生存周期模型(软件开发模型)(二)填空题1. 在信息处理和计算机领域内,一般认为软件是、和。
2. 国家标准“计算机软件开发规范”中,把软件生存周期划分为8个阶段,即、、、、、、和。
3. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内分为、、和四个步骤。
4. 软件工程过程包含的7个过程是、、、、、和。
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、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( )。
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、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法13、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的( )A、控制流B、数据流C、程序流D、指令流14、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( )A、分析阶段B、设计阶段C、编码阶段D、测试阶段15、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。
主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。
螺旋模型将瀑布模型和演化模型相结合,并增加了(1),它建立在(2)的基础上,沿着螺线自内向外每旋转一圈,就得到(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、开发过程不分段(四)简答题1. 简述软件的特点?2. 软件危机是怎样产生的?其表现形式是什么?说明产生软件危机的原因。
3. 什么是软件生存期?有何重要性?在国家标准“计算机软件开发规范” 中,把软件生存周期划分为哪几个阶段?4. 简述主要的软件生存期模型(或软件开发模型)。
5. 简述瀑布模型的阶段划分和各阶段的主要任务以及瀑布模型存在的问题。
6. 增量开发和演化开发有什么相同和不同的地方?(一)名词解释答案1. 在信息处理和计算机领域内,一般认为软件是计算机程序、各种相关的文档和数据的集合。
2. 文档指为了委托、购入、使用、开发、维护软件,以及管理开发过程所需要的所有的文书和资料。
3. 软件危机是在软件发展第二阶段末期的规模较大的项目开发中,出现了与当初的计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,导致了软件危机。
4.见P2。
5. 软件工程过程指在获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。
6. 软件生存周期是指一个软件从立项开始,经过制造、测试、使用和维护直到软件废止为止的整个时期。
7. 软件生存周期模型(软件开发模型)是按软件生存周期,描述软件开发过程中各种活动如何执行的过程,借鉴在其他工程领域活动中所使用的方法把软件开发变成可视过程而采用的一种模型。
(二)填空题答案1. 程序文档数据2. 可行性研究与计划需求分析概要设计详细设计实现综合测试确认测试使用与维护3. 制定计划风险分析开发实施用户评估4. 获取过程供应过程开发过程操作过程维护过程管理过程支持过程5. 分析设计数据流功能(三)单项选择题答案1.C2.B3.B4.A5.A6.A7.C8.C9.A 10.C11.C 12.C 13.B 14.C 15.(1)B (2)D (3)A (4)D (5)A(四)简答题答案1. 软件既是知识产品,又是与汽车、建筑物一样的工业产品,此外,软件还具有类似艺术、学术那样的知识性创造的特点,因此,可以说软件就是知识性工业产品,它具有一些独特的特性:①软件是逻辑产品,它具有无形性,通过计算机的执行才能体现它的功能和作用。
②不存在磨损和消耗问题。
③其成本主要体现在软件的开发和研制上,可进行大量的复制。
④主要靠脑力劳动生产。
⑤开发和维护成本高。
2. 软件危机是随着第三代计算机的诞生而产生的。
第三代计算机(集成电路计算机)与第二代计算机相比,性能大大提高,因此,以前不能实现的应用系统有了实现的可能性,这就促进了大规模软件系统的设计。
由于在小规模软件系统中使用的方法和技术已经不适用了,因此在规模较大的项目开发中出现了与当初的计划推迟交工、费用比预算大幅度上升、不能满足用户要求、可靠性低、维护困难等问题,造成了软件危机。
软件危机的主要表现是:①预算上升,完成时间一再拖延。
②开发的软件不能满足用户的要求。
③开发过程没有统一的规范和完整的文档,导致软件的可维护性差。
④没有确保软件质量的体系,软件可靠性差。
产生软件危机的原因,一方面是由于软件的规模越来越大、结构越来越复杂,使得开发和管理都变得很困难,从而导致开发费用不断增加、进度和质量控制困难、可靠性无法保证;另一方面由于软件开发技术、软件生产方式和软件开发工具落后,满足不了开发大规模软件系统的需要。
3. 软件生存周期是指一个软件从立项开始,经过制造、测试、使用和维护直到软件废弃为止的整个时期。
其方法是从时间角度对软件开发和维护的整个复杂的过程依次划分为若干个阶段,每个阶段都有明确并且相对独立的任务和完成标志。
这种按软件生存周期划分阶段的方法,便于开发中大规模软件时不同人员的分工合作,降低了整个软件的开发难度并使软件开发过程有条不紊地进行,提高了软件的可靠性和可维护性,从而提高了软件的生产率。
在国家标准“计算机软件开发规范”中,把软件生存周期划分为8个阶段,即可行性研究与计划、需求分析、概要设计、详细设计、实现、综合测试、确认测试、使用与维护。
4. 软件生存期模型主要有:(1) 瀑布模型(2) 演化模型(3) 螺旋模型(4) 喷泉模型(5) 增量模型具体说明见教材或课件.5. 瀑布模型的阶段划分和各阶段的任务为:(1) 系统需求(2) 软件需求(3) 需求分析以上阶段要是根据系统的使用者(需方)需求进行具体分析,制定系统应完成的功能、目标、各项服务和限制,确定工作范围和所花费的代价。
并且以用户和软件开发人员都能理解的形式加以定义和明确。
(4) 系统和软件设计先把用户的需求分成硬件需求和软件需求,在此基础上确定整个系统的结构。
在软件设计中,进一步把用户的要求和系统的目标在软件系统的各项功能中表现出来,并分别使之达到能够进行程序设计的程度。
(5) 编码在这个阶段中,软件的设计已经以程序集合或单元程序的形式完成,并包含了验证各个单元程序是否满足式样要求的单元测试。
(6) 综合测试和系统测试把各个单元程序和程序组结合起来,作为一个完整的系统进行测试。
在这种测试中,一方面要发现和排除系统或程序中的错误,更重要的是要确认已完成的系统是否满足用户和设计者的要求。
测试后,把这个软件提供给用户。
(7) 运行和维护运行和维护是软件生存期中需要时间较长的一个阶段,在这一阶段,系统被实际装入并实际应用,那些在软件开发初期没有被发现的错误,或者是用户提出新的要求,都需要在这一阶段加以解决。
瀑布模型的问题之一是对软件工程中的反复性质认识不足,另外还有一个缺点是在开发工程的初期,就必须把规格式样确定下来,而在有些情况下,由于用户的需求不明确,某些规格式样开始是不太好确定的。
软件工程是复杂的、多变的工程,用单纯的线性模型很难完全表示出来6. 增量模型和演化模型都是从概要的需求出发进行开发的,但两者有明显的不同。
增量模型是从一些不完整的系统需求出发开始开发,在开发过程中逐渐发现新的需求规格说明,并进一步充实完善该系统,使之成为实际可用的系统。
而演化开发的目的是为了发现并建立一个完整的经过证实的需求规格说明,并以此作为正式系统的开发基础。
因此,演化开发阶段的输出是需求的规格说明,是为了降低整个软件生成期的费用而拉大需求分析阶段的一种方法,大部分演化原型是“用完就扔”的类型。