软件工程概论课后答案解析

合集下载

软件工程导论[第六版]课后习题答案解析

软件工程导论[第六版]课后习题答案解析

软件工程导论[第六版]课后习题答案解析第一章一、什么就是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机就是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题与难题。

它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。

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

常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。

而为了赶进度与节约成本所采取的一些权宜之计又往往损害了软件产品的质量。

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

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

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

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

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

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

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

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

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

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

(3) 供求矛盾将就是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。

二、假设自己就是一家软件公司的总工程师,当把图1、1给手下的软件工程师们观瞧,告诉她们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们就是不现实的,并举例说:“如果一个故障就是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳她?答:在软件开发的不同阶段进行修改付出的代价就是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期, 软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”就是在引入变动,当然付出的代价更高。

(完整版)软件工程导论(第六版)张海藩课后习题部分答案

(完整版)软件工程导论(第六版)张海藩课后习题部分答案

第一章1-1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。

1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。

优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。

缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。

2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。

1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。

软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。

适用中小型项目。

快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。

软件工程导论_课后部分习题答案

软件工程导论_课后部分习题答案

13:07:42
2
作业及解答(第3章)
2-4 目前住院病人主要由护士护理,这样做不仅需要大量护 士,而且由于不能随时观察危重病人的病情变化,还会延 误抢救时机。某医院打算开发一个以计算机为中心的患者 监护系统,请分层次地画出描述本系统功能的数据流图。 医院对患者3监护系统的基本要求是随时接收每个病人 的生理信号(脉搏、体温、血压、心电图等),定时记录病 人情况以形成患者日志,当某个病人的生理信号超出医生 规定的安全范围时向值班护士发出警告信息,此外,护士 在需要时还可以要求系统印出某个指定病人的病情报告。
13:07:42
21
13:07:42
22
作业及解答(第5章)
P104:3 用面向数据流的方法设计下列系统的软件结构 (1)储蓄系统2-2
E1 储户 F2取款单 无效取款信息 D1存款信息 F7密码 F7密码 P3.2 密码校验 P3.1 输入取款信息 F5存款信息
取款子系统
13:07:42
23
E1 储户
13:07:42
1
作业及解答(第1-2章)
1-6 什么是软件过程?它与软件工程方法学有何关系? 软件过程是为了开发出高质量的软件产品所需完成的一系 列任务的框架,它规定了完成各项任务的工作步骤。 软件过程定义了运用技术方法的顺序、应该交付的文档资 料、为保证软件质量和协调软件变化必须采取的管理措施 ,以及标志完成了相应开发活动的里程碑。 软件过程是软件工程方法学的3个重要组成部分之一。
13:07:42
16
作业及解答(第3章)
13:07:42
17
作业及解答(第3章)
复印机的工作过程大致如下:未接到复印命令时处于 闲臵状态,一旦接到复印命令则进入复印状态,完成一个 复印命令规定的工作后又回到闲臵状态,等待下一个复印 命令;如果执行复印命令时发现没纸,则进入缺纸状态, 发出警告,等待装纸,装满纸后进入闲臵状态,准备接收 复印命令;如果复印时发生卡纸故障,则进入卡纸状态, 发出警告等待维修人员来排除故障,故障排除后回到闲臵 状态。 请用状态转换图描绘复印机的行为。

软件工程第五版课后全答案准确对应书山

软件工程第五版课后全答案准确对应书山

软件工程第五版课后全答案准确对应书山第一章软件工程概论1.什么是软件危机,它们有哪些典型表现,为什么会出现软件危机,“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

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

‚软件危机?包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。

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

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

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

软件工程导论课后习题解答

软件工程导论课后习题解答

软件⼯程导论课后习题解答第⼀章1-1什么是软件危机?答:是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。

1-3什么是软件⼯程?答:是指导计算机软件开发和维护的⼀门⼯程学科。

1-4简述结构化范型和⾯向对象范型的要点,并分析它们的优缺点。

答:⽬前使⽤得最⼴泛的软件⼯程⽅法学有2种:传统⽅法学:也称为⽣命周期⽅法学或结构化范型。

优点:把软件⽣命周期划分成若⼲个阶段,每个阶段的任务相对独⽴,⽽且⽐较简单,便于不同⼈员分⼯协作,从⽽降低了整个软件开发过程的困难程度。

缺点:当软件规模庞⼤时,或者对软件的需求是模糊的或会随着时间⽽变化的时候,开发出的软件往往不成功;⽽且维护起来仍然很困难。

⾯向对象⽅法学:优点:降低了软件产品的复杂性;提⾼了软件的可理解性;简化了软件的开发和维护⼯作;促进了软件重⽤。

1-5、根据历史数据可以做出如下的假设:对计算机存储容量的需求⼤致按下⾯公式描述的趋势逐年增加:M = 4080 e0.28(Y-1960)存储器的价格按下⾯公式描述的趋势逐年下降:P1 = 0.3 X 0.72Y-1974(美分/ 位)如果计算机字长为16位,则存储器价格下降的趋势为:P2 = 0.048 X 0.72Y-1974(美元/ 字)在上列公式中丫代表年份,M是存储容量(字数),P1和P2代表价格。

基于上述假设可以⽐较计算机硬件和软件成本的变化趋势。

要求计算:(1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?(2) 假设在1985年⼀名程序员每天可开发出10条指令,程序员的平均⼯资是每⽉4000美元。

如果⼀条指令为⼀个字长,计算使存储器装满程序所需⽤的成本。

(3)假设在1995年存储器字长为32 位,⼀名程序员每天可开发出30 条指令,程序员的⽉平均⼯资为6000美元,重复(1)、(2)题。

(1)在1985 年对计算机存储容量的需求,估计是M = 4080 e0.28(1985-1960)= 4080 e7 = 4474263(字)如果字长为1 6位,则这个存储器的价格是P = 0.048 X 0.721995-1974 X 73577679 = 5789(美元)(2)如果⼀条指令的长度为⼀个字,则使存储器装满程序共需4474263条指令。

软件工程导论课后习题答案

软件工程导论课后习题答案

软件工程导论课后习题答案1. 什么是软件工程?软件工程是将系统化、规范化的方法应用于软件的开发、运行和维护的一门学科。

它包括软件需求分析、软件设计、软件开发、软件测试、软件维护等工作,旨在提高软件开发过程的效率和质量。

2. 软件生命周期是什么?软件生命周期是指软件从概念到退役的整个过程。

它通常包括以下阶段:需求分析、软件设计、编码、测试、部署、运维和退役。

3. 软件需求分析的目的是什么?软件需求分析的目的是理解客户和用户的需求,明确软件系统应具备的功能和性能要求,并以此为基础,为后续的设计、开发和测试工作提供准确的需求规格说明。

4. 软件设计的原则有哪些?•模块化原则:将软件划分为多个模块,每个模块负责一个特定的功能,以实现代码的复用和可维护性的提高。

•高内聚低耦合原则:模块内部的元素之间高度相关,而模块之间的依赖关系要尽量降低。

•封装原则:隐藏实现细节,将内部数据和操作通过接口封装起来,提供对外的访问方式。

•可读性原则:代码要易于阅读和理解,一致的命名和简洁的代码结构能提高代码的可读性。

•可测试性原则:设计要有良好的可测试性,便于进行单元测试和集成测试。

5. 软件开发过程中的常用模型有哪些?•瀑布模型:按照线性流程顺序依次完成需求分析、设计、开发、测试和部署等阶段。

•敏捷开发模型:采用迭代和增量的方式进行开发,快速响应需求变化。

•喷泉模型:将软件生命周期看做是连续不断的循环,在每个循环内快速迭代开发、测试和部署。

6. 软件测试的目的是什么?软件测试的目的是为了发现软件中的缺陷和错误,并尽早地修复这些问题,以确保软件的质量和可靠性。

通过测试,可以评估软件的功能是否满足需求,并验证软件是否在各种工作环境中正常工作。

7. 软件维护的类型有哪些?•纠错性维护:修复软件中的错误和缺陷。

•适应性维护:适应环境的变化,如操作系统升级、硬件设备更换等。

•完善性维护:根据用户的反馈和需求对软件进行改进和增强。

•预防性维护:对软件进行优化和调整,以提高性能和可维护性。

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

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

软件工程课后题答案大全(详细) 软件工程习题解答 第一章概述 3.什么是软件危机?其产生的原因是什么? 软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。 在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现在以下几个方面: a.经费预算经常突破,完成时间一再拖延。 b.开发的软件不通满足用户要求。 c.开发的软件可维护性差。 d. 开发的软件可靠性差。 软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的: a.软件的规模越来越大,结构越来越复杂。 b.软件开发管理困难而复杂。 c.软件开发费用不断增加。 d.软件开发技术落后。 e.生产方式落后。 f.开发工具落后,生产率提高缓慢。 4.什么是软件工程?它的目标和内容是什么? 软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。 软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标: a.付出较低的开发成本; b.面到要求的软件功能; c.取得较好的软件性能; d.开发的软件易于移植; e.需要较低的维护费用; f.能按时完成开发任务,及时交付使用; g.开发的软件可靠性高; 软件工程的内容: 1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。 2)软件开发管理:软件管理学、软件经济学、软件心理学。 6.什么是软件生存周期?它有哪几个活动? 软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。 软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等. 7.什么是软件生存周期模型?有哪些主要模型? 软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。) 软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等 第三章需求分析 1.什么是需求分析?需求分析阶段的基本任务是什么? 需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。 需求分析阶段的基本任务是: (1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求. (2) 分析与综合,导出软件的逻辑模型. (3) 编写文档 4.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义? 数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。 作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能. 基本符号有四种: →,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据的源点或终点. 5.画数据流图应该注意什么事项? 画数据流图注意事项: a.命名.不论是数据流\数据存储还是加工,合适的命名使人们易于理解基含义. b.画数据流而不是控制流. c.一般不画物质流. d.每个加工到少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果. e.编号. f.父图与子图的平衡. g.局部数据存储. h.提高数据流图的易理解性. 7.描述加工逻辑有哪些工具? a,结构化语言b,判定表c.判定树 10.某银行的计算机储蓄系统功能是:将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单储户。请用DFD和IDEF0描绘该功能的需求,并建立相应的数据字典。 (1)数据流条目: 数据流名称:存款单 别名:无 简述:储户存款时填写的项目 来源:储户 去向:记帐 数据流量:未知 组成:姓名+住址+存款类型+存款日期+利率 数据流名称:取款单 别名:无 简述:储户取款时填写的项目 来源:储户 去向:统计 数据流量:未知 组成:姓名+住址+取款类型+取款日期+利率 数据流名称:清单 别名:无 简述:储户取款后得到的项目 来源:记录 去向:储户 数据流量:未知 组成:姓名+住址+取款类型+取款日期+利率+余额 (2)数据存储条目: 数据存储名称:账单 别名:无 简述:存放储户信息及其账目 组成:姓名+住址+余额+存款类型+最后修改日期+利率 组织方式:未知 查询要求:能立即查询 (3)数据项条目: 未知 (4)加工条目: 加工名:分类检查 编号:无 激发条件:接收到存/取款单 优先级:优先 输入:存/取款单 输出:存/取款单 加工逻辑:IF 存款单THEN 把存款单输出到统计 ELSE 把取款单输出到统计 ENDIF 加工名:统计 编号:无 激发条件:取款单 优先级:无 输入:取款单 输出:清单 加工逻辑:根据账单检查此储户是否存在,不存在输出错误{ IF 取款数现金到储户 ELSE 输出错误清单到储户 ENDIF } 加工名:记录 编号:无 激发条件:存款单 优先级:无 输入:存款单 输出:存款单 加工逻辑:根据账单检查此储户是否存在,不存在则建立此储户{ 余额=余额+存款数 输出存款单到储户 } 11.某图书管理系统工程有以下功能:(1)借书:输入读者借书证。系统首先检查借书证是否有效,对于第一次借书的读者,在借书文件建立档案。否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,拒借,未达10本,办理借书(检查库存、修改库存目录并将读者借书情况登入借书文件). (2)还书:从借书文件中读出与读者有关的记录,查阅所借日期,如果超期(3个月)作罚款处理。否则,修改库存目录与借书文件。(3)查询:可通过借书文件、库存目录文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。请就以上系统功能画出分层的DFD 图,并建立重要条目的数据字典。 12.某厂对部分职工重新分配工作的政策是:年龄在伙岁以下者,初中文化程度脱产学习。高中文化程度当电工;年龄在20岁到40岁之间者,中学中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者,中学文化程度当材料员,大学文化程序当技术员。请用结构化语言、判定表或判定树描述上述问题的加工逻辑。 (1)结构化语言: 根据职工年龄和文化程序: REPEAT If 年龄<=20 If 初中文化 Then 脱产学习 endif else if 高中文化 Then 电工 endif endif If 20If 中学文化 If 男性 Then 钳工 Else 车工 Endif else if 大学文化 Then 技术员 endif endif endif If 年龄>=40 If 中学文化 Then 材料员 else if 大学文化 Then 技术员 endif endif endif 储户分类并检查储户 记录 统计 存款单 取款单 存款单 取款单清单 帐单存单 表单处理 1 处理存款 2 处理取款 3 存款单 取款单 储户表单 Until 没有剩余未分配员工 判定表 1 2 3 4 5 6 7 8 9 10 11 年龄 C C D D D D D E E E 文化 G H H G G H I G H I 性别 -- -- M M F F -- -- -- -- 脱产学习 √ 电工 √ 钳工 √ √ 车工 √ √ 技术员 √ √ 材料员 √ √ 条件取值表 条件名 取值 符号 取值数 年龄 <=20 C M1=3 >20,<40 D >=40 E 文化程度 中学 G M2=3 高中 H 大学 I 性别 男 M M3=2 女 F 附加题:1、自学考试报名过程中有个“记录报名单”的加工。该加工主要是根据报名表(姓名、 性别、身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)。请绘制该加工的DFD 图,并写出数据词典中的数据流条目。 答:

软件工程课后参考答案

软件工程课后参考答案

软件工程课后参考答案 The manuscript was revised on the evening of 2021第一章课后参考答案1.什么是软件危机它们有哪些典型表现为什么会出现软件危机“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

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

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

出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。

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

3.什么是软件工程它有哪些本质特征怎么用软件工程消除软件危机软件工程是指导知道计算机软件开发和维护的一门工程学科。

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章软件与软件工程的概念1.1 举出你所知道的应用软件的例子。

办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。

1.2 认为“软件就是程序,软件开发就是编程序。

”这种观点是否正确?为什么?认为“软件就是程序,软件开发就是编程序。

”这种观点是错误的。

首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。

1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。

1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

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

(2)用户对“已完成的”软件系统不满意的现象经常发生。

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

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

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

(6)软件成本在计算机系统总成本中所占的比例逐年上升。

(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。

产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。

(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。

(3) 软件开发过程不规范。

如,没有真正了解用户的需求就开始编程序。

(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。

需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。

(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。

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

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

1.6 简述软件生存期由哪些主要的阶段组成,每一阶段的主要任务是什么?(1)问题定义与可行性研究:问题定义必须回答的关键问题是:“要解决的问题是什么”。

可行性研究要回答的关键问题是:“在成本和时间的限制条件下能否解决问题?是否值得做?”。

(2)需求分析:这个阶段的任务仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题。

(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制定设计方案,把已确定的各项需求转换成相应的软件体系结构。

结构中的每一组成部分都是意义明确的构件,此即所谓概要设计。

进而具体描述每个构件所要完成的工作,为源程序编写打下基础,此即所谓详细设计。

(4)程序编码和单元测试:本阶段要解决的问题是“正确地实现已做的设计”,为此,需要选择合适的编程语言,把软件设计转换成计算机可以接受的程序代码,并对程序结构中的各个模块进行单元测试,然后运用调试的手段排除测试中发现的错误。

要求编写出的程序应当是结构良好、清晰易读的,且与设计相一致的。

(5)集成测试和系统测试:集成测试的任务是将已测试过的模块按设计规定的顺序组装起来,在组装的过程中检查程序连接的问题。

系统测试的任务是根据需求规格说明的要求,对必须实现的各项需求,逐项进行确认,判定已开发的软件是否符合用户需求,能否交付用户使用。

为了更有效地发现系统中的问题,通常这个阶段的工作由开发人员、用户之外的第三者承担。

(6)运行维护:已交付的软件投入正式使用,便进入运行维护阶段。

这一阶段可能持续若干年。

软件在运行中可能由于多方面的原因,需要对它进行维护。

通常有四种类型的维护:改正性维护、适应性维护、完善性维护和预防性维护。

1.7 常见的软件生存期模型主要有哪些?每种模型的优缺点是什么?常见的软件生存期模型主要有瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型和统一过程。

(1)瀑布模型优点:可强迫开发人员采用规范化的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

缺点:由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要;用户往往需要等待很长时间才能看到可以运行的程序;适应需求变更的能力比较差。

适用范围:瀑布模型只适用于项目开始时需求已确定的情况。

(2) 快速原型模型优点:有助于满足用户的真实需求;原型系统已经通过与用户的交互而得到验证,据此产生的规格说明文档能够正确地描述用户需求。

缺点:要求开发人员快速建立原型。

适用范围:适用于需求不明确的软件项目。

(3) 增量模型优点:●能在较短时间内向用户提交可完成一些基本功能的产品,即从第一个构件交付之日起,用户就能做一些有用的工作。

●逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。

●项目失败的风险较低,虽然在某些增量构件中可能遇到一些问题,但其他增量构件将能够成功地交付给客户。

●优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来。

因此,最重要的系统服务将接受最多的测试。

缺点:●在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。

●软件体系结构必须是开放的,即向现有产品中加入新构件的过程必须简单、方便。

适用范围:适用于工期紧张、功能可以划分、比较复杂的软件项目。

软件工程师必须有较高的技术水平,能够设计出开放的软件体系结构。

(4) 螺旋模型优点:●对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;●减少了过多测试或测试不足所带来的风险;●在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。

缺点:螺旋模型是风险驱动的,因此要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还以为一切正常。

适用范围:适用于内部开发的大型软件(开发周期长、比较容易受到社会因素影响的软件项目),软件开发人员具有丰富的风险评估知识和经验。

(5) 喷泉模型优点:在开发过程中使用统一的概念和方法,各阶段之间没有明显的界限,容易实现各个开发过程的多次反复迭代,达到了认识的逐步深化,降低了出错的可能性。

缺点:由于各个阶段之间的界线不明确,容易造成软件开发过程的无序。

适用范围:适用于面向对象的软件开发。

(6) 统一过程优点:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。

它建立了简洁和清晰的过程结构,为开发过程提供了较大的通用性。

缺点:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。

适用范围:适用于基于构件的软件开发。

第2章软件工程方法与工具2.1 软件工程的三种基本要素是什么,各自的作用是什么?软件工程的三种基本要素是方法、工具和过程。

(1) 软件工程方法(method)为建造软件提供技术上的解决方法(“如何做”)。

目前使用得最广泛的方法是传统方法(结构化方法)和面向对象方法。

(2) 工具为方法的运用提供自动的或半自动的软件支撑环境。

(3) 过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

2.2 简述传统方法和面向对象方法的特点。

(1) 传统方法的特点传统方法也称为生命周期方法或结构化范型。

它采用结构化技术来完成软件开发的各项任务。

这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地逐步完成每个阶段的任务。

每一个阶段的开始和结束都有严格的标准,对于任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始标准。

传统方法的主要缺点是在适应需求变化方面不够灵活,另外,结构化方法要么面向行为,要么面向数据,缺乏使两者有机结合的机制。

(2)面向对象方法的特点面向对象方法把数据和行为看成同等重要,是将数据和对数据的操作紧密地结合起来的方法,这也是面向对象方法与传统方法的重要区别。

面向对象方法的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识问题和解决问题的方法与过程,从而使描述问题的问题空间与其解空间在结构上尽可能一致。

对于大型、复杂及交互性比较强的系统,使用面向对象方法更有优势。

2.3 形式化方法的特点是什么?形式化方法的主要特点是:(1) 软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;(2) 设计、实现和单元测试等开发过程由一个变换开发过程代替。

通过一系列变换将形式的规格说明细化成为程序。

2.5 安装Rational Rose2000/2002/2003,并练习基本操作。

略。

第3章软件需求获取与结构化分析方法3.1 为什么结构化分析要叫“结构化”?有其他可替代的术语吗?“结构化”一词应来源于“结构化程序设计”,先有“结构化程序设计”的思想,后有结构化设计及结构化分析。

有时称传统的分析方法,指的就是结构化分析方法。

3.2顶层数据流图或称环境图的作用是什么?顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统。

其作用如下:(1) 确定系统在其环境中的位置,与系统有联系的外部实体(包括硬件、软件、组织机构及人)有哪些。

(2) 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能或处理属于系统范围之内,哪些属于系统范围之外,需要由其他系统处理或人工处理。

3.3 在对数据流图进行分解时需要注意哪些问题?在对数据流图进行分解时,需要注意以下两个问题:(1) 当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。

(2) 注意分层细化时对编号的处理方法。

3.4 银行存款业务如下:客户到银行柜台存款时,首先填写存款单(包括帐号、姓名、存款金额、存款类型),如果还没有开户,则需要先开户,填写开户单(包括姓名、身份证号、地址、电话、是否留密码)。

填写完存款单或开户单后,交给营业员,营业员将存款单或开户单信息输入计算机,系统记录开户信息或存款单信息,如果是开户并选择留密码,则需要客户输入密码。

相关文档
最新文档