软件工程概述习题及答案

软件工程概述习题及答案
软件工程概述习题及答案

第一章软件工程概述

一. 填空题

1. 软件的发展过程, , , .

2. 基于软件的工作方式,软件可以划分为, , , .

3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境.

4. 在计算机系统中,软件是, 而硬件是.

5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。

6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。

7. 软件生存期若分为三个大的阶段,,.

8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。

9. 在软件的生存周期开发阶段要经三个步骤, , 。

10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。

11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,,

和四个步骤。

12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。

13. 软件开发模型, , , , , .

14. 软件工程面临的问题有, , , .

15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和.

16.基于软件的功能划分可以把软件划分为, ,和。

17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。

19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:, ,和, 。

20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

二. 选择题

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. 下列关于瀑布模型的描述正确的是()。

A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。

B. 瀑布模型具有良好的灵活性。

C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。

D. 利用瀑布模型,如果发现问题修改的代价很低。

13.软件计划阶段要求()的交互和配合。

A.分析人员和设计人员B.分析人员和用户C.设计人员和用户D.代码开发人员和用户14.软件危机是指在软件开发和维护中所产生的一系列严重的问题,在这些问题中相对次要的因素是()A.文档质量B.程序中的解释C.软件性能D.开发进度

15.软件计划的任务是为项目负责人提供对软件资源、成本和进度的估价。其中对系统各种功能的界限划分应属于下列哪种任务

A.分析B.估价C.制定进度D.进度分配

16.软件文档时影响软件可维护性的重要因素,软件系统的文档可分为用户文档和系统文档。导致软件开发进度与软件文档完全脱节的根本原因是()

A.文档规范程度低B.生成文档的工具不够先进C.开发者不公重视D.工程化程度尚低17.瀑布模型把软件生存周期划分为软件定义、()与运行及维护三个阶段,每一个阶段又可细分为若干更小的阶段。

A.可行性分析B.详细设计C.编码阶段D.软件开发

18.软件开发的原型化方法最有效的应用领域是()

A.科学计算B.工程设计C.管理信息D.实时控制

19.软件生命周期过程中,用户的参与主要在()

A.软件定义阶段B.软件开发阶段C.软件维护阶段D.整个软件生命周期过程中

20.结构化生命周期方法是将软件生命周期的各项活动规定为按固定次序连接的若干阶段的工作,因其特征而一般称为( )

A.层次模型B.瀑布模型C.螺旋模型D.对象模型

三. 名词解释

1软件2系统软件3实时处理软件4.软件工程5.软件危机6.软件生存周期7.瀑布模型8.螺旋模型

四. 简答题

1.说出软件的特点.

2.简述软件的种类.

3.简述关键软件的特点.

4.软件危机主要有哪些表现其产生的原因是什么

5.软件工程有哪些原则

6.简述软件工程目标和面临的主要问题。

7. 软件生成周期一般可分为哪几个阶段

8. 软件的质量保证工作不能等到编码阶段结束之后再进行,简述其理由

9. 简述软件工程研究的基本内容与目标

10. 在用瀑布模型开发软件时,每项开发活动均应具有哪些特征

11. 简述第四代技术模型的优点和缺点。简述在软件开发模型中原型模型的优点和缺点,适用范围和不适用范围

第一章习题答案

一. 填空题答案

1.程序设计阶段程序系统阶段软件工程阶段第四阶段

2. 实时处理软件分时软件交互式软件批处理软件

3. 集中的主机分布的客户/服务器

4. 逻辑部件物理部件

5. 二三

6. 管理人员开发人员用户使用维护人员

7. 计划阶段开发阶段维护阶段

8. 基准配置

9. 设计编码测试10. 软件需求明确11. 制定计划风险分析开发实施用户评估12. 风险分析风险概念项目13.瀑布模型螺旋模型第四代技术模型原型模型构件组装模型混合模型14. 软件费用可靠性可维护性可重用性及生产率等15. 基本继承

16.系统软件支撑软件应用软件17.大型软件软件危机计算机软件工程学

18.计算机软件开发和维护19.分解抽象和信息隐蔽一致性确定性

20.软件的总目标待开发软件的需求

二. 选择题答案

11 A 12 C 13 B 14 D 15 B 16 D 17 D 18 C 19 A 20C

三. 名词解释答案

1. 软件的定义如下:

在运行中能提供所希望的功能和性能的指令集;使程序能正确运行的数据结构;描述程序研制过程和方法所用的文档。

2.系统软件:是与计算机硬件紧密配合以使计算机的各个部件与相关软件及数据协调、高效工作的软件。

3.实时处理软件:指在事件或数据产生时,立即处理,并及时反馈信号,控制需要监测和控制的过程的软件。

4. 软件工程是指导计算机软件开发和维护的一门学科

5. 软件危机指的是软件开发和维护过程中遇到的一系列严重问题

6.软件生存周期: 就是从提出软件产品开始,直到该软件产品被淘汰的全过程

7. 瀑布模型又称生存周期模型,由提出,是软件工程的基础模型。其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作

8. 螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析,弥补了两者的不足

四. 简答题答案

1.软件既是知识产品,又是与汽车,建筑物一样的工业产品,此外,软件还具有类似艺术,学术那样的知识性创造和特点,因此,可以说软件就是独特的特点

软件的特点如下:软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性;软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的;在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题;软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖关系;软件的开发尚未完全摆脱手工的开发方式;

软件的开发费用越来越高,成本相当昂贵;软件的开发是一个复杂的过程,因而管理是软件开发过程中必不可少内容。

2. 软件的种类:

基于软件的功能划分:系统软件支撑软件应用软件

基于软件工作方式划分:实时处理软件分时软件交互式软件批处理软件

基于软件规模的划分:微型软件小型软件中型软件大型软件甚大型软件极大型软件

基于软件失效的影响进行划分:

基于软件服务对象的范围划分:定制软件产品软件

)可靠性质量要求高;(2)常与完成重要功能的大系统的处理部件相联;3)含有的程序可能对人员、公众、设备或设施的安全造成影响。还可能影响到环境的质量和关系到国家的安全和机密。4.软件危机主要表现如下:

产品不符合用户的实际需要:软件开发生产率提高的速度远远不能满足客观需要,软件的生产率远远低于硬件生产率和计算机应用的增长速度,使人们不能充分利用现代计算机硬件提供的巨大潜力。软件产品的质量差;对软件开发成本和进度的估计常常不准确;软件的可维护性差;软件文档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。

造成软件危机的原因是:软件的规模越来越大,结构越来越复杂。软件开发管理困难而复杂。软件开发费用不断增加。软件开发技术落后。生产方式落后。开发工具落后,生产率提高缓慢。

5. 软件工程原则如下:

用分阶段的生存周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;应能清楚地审查结果;合理安排软件开发小组的人员

6.软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。包括:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

面临的主要问题是:软件费用软件可靠性软件维护软件生产率软件重用。

6.软件生存周期一般分为如下几个阶段:

S1:问题定义S2:可行性研究S3:需求分析S4:概要设计S5:详细设计S6:编码S7:测试S8:运行与维护

软件生存期也可以分为三个大的阶段:计划阶段。开发阶段和维护阶段。

7.(1)大部分错误是在编码之前造成的编码之前造成的

(2)错误发现与改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。

8.软件工程学研究的基本目标

(1)定义面向计划、开发维护整个软件生存周期的良好的方法学。

(2)确定的软件成分,记录软件生存周期每一步的软件文件资料,按步显示轨迹。

(3)可预测的结果,在生存周期中,每隔一定时间可以进行复审。

软件工程学的最终目的,是以较少投资获得易维护、易理解、可靠、高效率的软件产品。软件工程学是研究软件结构、软件设计与维护方法、软件工具与环境、软件工程标准与规范、软件开发技术与管理技术的相关理论。

9.(1)从上一项活动接收该项活动的工作对象,作为输入;

(2)利用这一输入实施该项活动应完成的内容;

(3)给出该项活动的工作结果,作为输出传给下一项活动;

(4)对该项活动实施的工作进行评审。若其工作得到确认,则继续进行下一项活动,否则返回前项,甚至更前项的活动进行返工。

10. 像其他所有软件工程模型一样,第四代技术模型也有优点和缺点。其优点是极大地降低了软件的开发时间,并显着提高了构造软件的生产率。缺点是目前的第四代技术并不比程序设计语言更容易使用,而且这类工具生成的结果源代码是“低效的”,使用第四代技术开发的大型软件系统的可维护性是令人怀疑的。

11. (1)优点

·原型模型法在得到良好的需求定义上比传统生存周期法好得多,不仅可以处理模糊需求,而且开发者和用户可充分通信。

·原型模型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程。

·原型模型给用户以机会更改心中原先设想的、不尽合理的最终系统。

·原型模型可以低风险开发柔性较大的计算机系统。

·原型模型使系统更易维护、对用户更友好的机会。

·原型模型使总的开发费用降低,时间缩短。

(2)缺点

·“模型效应”或“管中窥豹”。对于开发者不熟悉的领域把次要部分当作主要框架,做出不切题的原型。

·原型迭代不收敛于开发者预先的目标。为了消除错误,每次更改,次要部分越来越大,“淹没”了主要部分。

·原型过快收敛于需求集合,而忽略了一些基本点。

·资源规划和管理较为困难,随时更新文档也带来麻烦。

·长期在原型环境上开发,只注意得到满意的原型,容易“遗忘”用户环境和原型环境的差异。(3)适用范围:·特别适用需求分析与定义规格说明·设计人机界面·充作同步培训工具·“一次性”的应用·低风险引入新技术

(4)不适用范围:·嵌入式软件·实时控制软件·科技数值计算软件

软件工程课程介绍

课程介绍 课程特点: -既是一门技术学课程,也是一门管理学课程; 一既具有理论性,也具有较强的实操性。 课程目的: 一基本: 掌握软件工程的基本概念和基本原理; 掌握分析、设计、测试与维护软件系统的理论与方法; 实践软件系统 开发的全过程,构建一个软件系统。 一进一步: 转变对软件的认识:程序---------- 系统; 转变思维定式:程序员---------- 系统分析员/系统设计员; 工程化训练:规范、准则、项目管理。 课程的主要内容: 软件工程人才分布示意图

-软件工程的产生、软件的生命周期、生命周期模型; -软件开发各阶段的目标、任务、特点、步骤和文档; -传统软件工程的基本思想,开发过程和步骤,应遵循的原则和准则; -面向对象软件工程的基本思想、基本过程和基本模型; -软件工程的管理技术。 课程重点: -掌握结构化方法开发软件系统的过程、步骤、应遵循的原则以及工_ 具。 Chp.7编码与测试(实现) 教学安排: -48学时讲授; -课后作业和课后实验。 考核: —期末考试:70%;

一作业+分组实验:30%。 教材: -软件工程导论(5th),张海藩,清华大学出版社 参考文献 -软件工程(第二版),齐治昌,高等教育出版社 -软件工程实践教程,谭庆平等,高等教育出版社 先修课程: -程序设计语言 -数据结构 -数据库原理与设计 课程实验: —实验题目: 题目1:课程注册系统 为高校教务管理部门开发一个选修课程注册管理系统。在每学期开学前,教务管理人员可利用该系统输入课程信息、设定课表(每门课的任课教师、上课地点、上课时间)。开学后,学生可以利用该系统查询课程和课表信息,在第一周内注册课程和取消对课程的注册。软件系统负责将学生所选课的列表通知计费系统以确定学生应缴纳的选课费用。在学期内,任课教师可随时查询选修其所授课程的学生的信息,学生可以随时查询课程信息、课表、本人已选课程列表,教务管理人员可以随时查询所有信息。学期结束, 教师可登记学生考试成绩。 题目2:航空定票系统

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

第1章软件与软件工程的概念 1、1 举出您所知道的应用软件的例子。 办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。 1、2 认为“软件就就是程序,软件开发就就是编程序。”这种观点就是否正确?为什么? 认为“软件就就是程序,软件开发就就是编程序。”这种观点就是错误的。 首先,软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合,程序只就是软件的组成部分之一;其次,在软件开发中,编程只就是软件开发过程的一个阶段。 1、3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么? 可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。 1、4 什么就是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:软件危机就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。 典型表现: (1)对软件开发成本与进度的估计常常很不准确。 (2)用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。 (4)软件常常就是不可维护的。 (5)软件通常没有适当的文档资料。 (6)软件成本在计算机系统总成本中所占的比例逐年上升。 (7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅 速普及深入的趋势。 产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面: (1) 缺乏软件开发的经验与有关软件开发数据的积累,使得开发工作计划很难制定。 (2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。 (3) 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 (4) 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技 术问题,更重要的就是必须有科学严格的管理。 (5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。

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

1.简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19 2.简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19 3.简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。 软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。 4.简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。 5、简述需求与需求规约的基本性质。 答:需求的基本性质:1) 必要的,该需求是用户所要求的。2)无歧义的,该需求只能用一种方式解释。3)可测的,该需求是可进行测试的。4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。5)可测量的,该需求是可测量的。 需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3)完整的:没有被遗漏的需求。4)一致的:不存在互斥的需求。 6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可 7、举例说明功能需求和非功能需求之间的基本关系。 答: 非功能需求可作用于一个或多个功能需求,例如 非功能需求可作用于一个或多个功能需求 其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。P24 8、有哪几种常用的初始需求发现技术 答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。P26 9、简述需求规约的3种基本形式。 (1) 非形式化的需求规约。非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章。(2) 半形式化的需求规约。半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。(3)形式化的需求规约。形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。 P29 10、简述软件需求规约的内容和作用。 答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。P28 需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31 11、简述需求规约在项目开发中的基本作用。 答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求

软件工程课程教学大纲

《软件工程》课程教学大纲 (Soft Engineering) 课程编号: 学分:3 学时:48 (其中:讲课学时:42 实验学时:上机学时:6 )先修课程:C语言程序设计、数据结构与算法、计算机网络、数据库原理与应用、操作系统 后续课程:面向对象程序设计、信息工程监理、信息系统测评技术、软件工程实训 适用专业:计算机相关专业 开课部门:专业数学教研室 一、课程教学目的和课程性质 《软件工程》是信息与计算机科学专业本科学生的专业选修课,是一门综合性和实践性很强的课程。本课程主要介绍如何把工程化的思想和技术应用于软件系统的开发过程,以及在软件开发过程中必须遵循的基本原理、方法和工程标准。通过教学,使学生对软件生产工程化的具体思想、要求和方法均有较全面的了解, 为今后独立从事软件系统的开发打下相应的工程基础。 二、课程的主要内容及基本要求 第1单元软件工程学概述(3学时) [知识点] 软件的发展过程、软件危机、软件工程及开发方法。 [重点] 软件工程的基本概念、软件工程学的基本内容和软件生命周期中各阶段的基本任务。 [难点] 软件过程模型 [基本要求] 1、识记:软件、软件危机、软件工程、软件工程方法学; 2、领会:软件工程过程模型的定义及其特点; 3、简单应用:软件危机的产生原因; 4、综合应用:解释软件工程产生的原因,结合不同的软件特点对其开发应

当采用的软件过程模型。 [考核要求] 1、软件工程的定义; 2、软件生命周期的定义及其各个开发阶段的任务; 3、软件工程方法学定义及经典软件过程模型。 第2单元可行性研究(5学时) [知识点] 可行性研究的主要内容、任务及研究过程,系统流程图、数据流图、数据字典。 [重点] 系统流程图、数据流图的画法。 [难点] 可行性研究中的上层数据流图的构成方法。 [基本要求] 1、识记:可行性研究的主要内容、任务; 2、领会:如何画出所需的系统流程图; 3、简单应用:分析所需的数据字典并根据数据字典定义方法定义相关词条; 4、综合应用:在可行性研究过程中分析系统流程图,总结其数据字典,画出上层的数据流图。 [考核要求] 1、可行性研究的主要内容、任务; 2、数据流图的定义及画法,能够分析并画出可行性研究中的上层数据流图; 3、数据字典的组成及其符号定义方法。 第3单元需求分析(5学时) [知识点] 需求分析的任务、与用户沟通获取需求的方法、分析建模与规格说明、实体—联系图、状态转换图、其他图形工具、数据规范化。 [重点] 实体-联系图的概念及画法、状态转换图的定义及画法和常用图形工具的使用方法。 [难点]

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

软件工程概论郑人杰等版 第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)问题定义与可行性研究:问题定义必须回答的关键问题是:“要解决的问题是什么”。 可行性研究要回答的关键问题是:“在成本和时间的限制条件下能否解决问题?是否值

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

第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。(4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 (6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。 软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 三、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机? 1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 软件工程的本质特征: (1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经 常变化的,开发过程中必须考虑软件将来可能的变化 (4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具 (5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户 (7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径: (1) 对计算机软件有一个正确的认识(软件≠程序) (2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 (3) 推广使用在实践中总结出来的开发软件的成功技术和方法 (4) 开发和使用更好的软件工具 四、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 五、1-5 根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=×(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=×(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。

软件工程课程安排

大一是网页制作,经典算法,c语言,军事理论,写作,高数1和高数2,离散1,中国近代史,思想道德,电子电路,英语1和2。大二是数据库原理,编译原理,离散2,数字电路,汇编语言,c++语言,mfc,计算机组成原理,英语3和4,日语1和2,马克思原理,毛邓。大三时jsp课程设计,sql server数据库,计算机体系结构,计算机网络,操作系统,计算机图形学,算法,日语3和4,人工智能,软件工程。大四我就不知道了。我刚读到大三。

《算法分析与设计》打下基础。 参考教材:《C++语言程序设计教程》谭浩强等编,高等教育出版社。 考核方式:考试。 3、04261050离散数学 《离散数学》是计算机科学与技术专业的必修课,主要学习集合论,图论,数理逻辑,形式语言等内容。本课程为学习计算机科学专业理论作好必要的准备知识,并为提高专业理论水平打下扎实的基础。 参考教材:《离散数学》朱一清编,电子工业出版社。 考核方式:考试。 4、04261060汇编语言程序设计 《汇编语言程序设计》是计算机科学与技术专业的必修课程,本课程的教学目的是:使学生掌握用汇编语言编写程序及上机运行的基本方法和技能,能用汇编语言设计实用程序,并了解与软、硬件有关课程的一些概念。 参考教材:《IBM PC汇编语言程序设计》沈美明、温科婵编,清华大学出版社。 考核方式:考试。 5、04261070数字逻辑 《数字逻辑》是计算机科学与技术专业的必修课。本课程是学习数字电路逻辑设计的理论和方法的一门课程。通过本课程的学习,使学生在深入理解理论的基础上,掌握数字电路组合网络和时序网络的分析与设计方法。前导课为《电路与电子技术》,后续课为《计算机组成原理》、《微机接口技术》、《计算机通信与网络》等课程。 参考教材:《数字逻辑与数字系统》王永军等编,电子工业出版社。 考核方式:考试。 6、04261080计算机组成原理 《计算机组成原理》是计算机科学与技术专业的必修主干课。本课程以《数字逻辑设计基础》及《汇编语言程序设计》为基础,主要讲授运算基础,运算器与运算方法;控制器与微程序设计;存储系统与辅助存储器;输入输出系统;计算机系统概述。通过本课程的学习,使学生能够较深入地理解与掌握计算机各功能部件的逻辑设计与实现,以及计算机整机各部件间的逻辑关系与连接。为后续课《微机接口技术》等奠定了理论与实验基础。

软件工程导论课后题

1-5、根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算: (1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少? (2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。

2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。 医院对患者8监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。 从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。 从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。 系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。 此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。 为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。

软件工程习题答案参考

软件工程 绪论 1.什么是软件危机为什么会产生软件危机 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化工程化生产方法与早期的程序设计方法主 要差别在哪里 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于

一个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

软件工程概述习题及答案

第一章软件工程概述 一. 填空题 1. 软件的发展过程, , , . 2. 基于软件的工作方式,软件可以划分为, , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境. 4. 在计算机系统中,软件是, 而硬件是. 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,,. 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤, , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型, , , , , . 14. 软件工程面临的问题有, , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和. 16.基于软件的功能划分可以把软件划分为, ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:, ,和, 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程课后参考答案

第一章 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.采用合适的设计方法

软件工程概述课程作业

软件工程作业与解答 第一章软件工程概述 1.简述软件的发展过程。 答:计算机软件的发展经历了三个阶段:(1)程序设计阶段,约50至 60 年代;(2)程序系统阶段,约60至70年代;(3)软件工程阶段, 约70年代以后。各个时期软件开发的特点见课本第7页表1.3。 2.简述软件的定义及特点。 答:软件是计算机系统中与硬件相互依存的另一部份,它是包括程序、数据及其相关文档的完整集合。 特点见课本第1页至第3页。 3.简述软件的种类。 答:见课本第3页至第6页。 4.什么叫软件危机? 答:在软件发展的第二阶段,随着计算机硬件技术的进步,计算机的容量、速度和可靠性有了明显的提高,生产硬件的成本降低了。计算机价格的下跌为它的广泛应用创造了极好的条件。在这一形式下,要求软件能与之相适应。然而软件技术的进步一直未能满足形式发展提出的要求。 在软件开发中遇到的问题找不到解决的办法,致使问题积累起来,形成日益尖锐的矛盾。软件开发时期所面临的这种状态就是所谓的软件危机。 5.软件危机主要有哪几种表现? 答:见课本第8页(1)、(2)、(3)、(4)。

6.什么叫软件工程? 答:开发、运行、维护和修复软件的系统方法。 7.什么叫软件生存周期? 答:软件从孕育、诞生、成长、成熟到衰亡的过程叫软件生存周期。它 包括制定计划、需求分析、设计、程序编码、测试及运行维护。 8.简单介绍软件开发的瀑布型模型和螺线型模型。 答:见课本第11页至第14页。 第二章系统分析 1.简述系统分析的目标 (1) (2) (3) (4) (5) (6)识别用户要求; 评价系统的可行性; 进行经济分析和技术分析; 把功能分配给硬件、软件、人、数据库和其它系统元素; 建立成本和进度限制; 生成系统规格说明,形成所有后续工程的基础。 2.系统分析过程的第一步就是识别用户要求。要求的识别是系统开发的起点。为此,分析员必须回答哪些问题,才能完成这一步骤? (1) (2) (3) (4) (5) (6) (7) (8)所期望的功能和性能是什么可靠性和质量问题是哪些总的系统目标是什么成本与进度限制如何制造的需求是什么 市场与竞争情况怎样 有效的技术有哪些 将来可能有哪些扩充 3.软件项目的可行性研究主要集中在哪个方面? (1)经济可行性。(2)技术可行性。(3)法律可行性。(4)抉择。

软件工程概论知识点

软件工程概论知识点总结 第一章 软件定义:是计算机系统中及硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。 软件特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。 软件分类。 (1) 系统软件 (2) 应用软件 (3) 支撑软件 (4) 可复用软件 软件危机的原因:1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。2)软件人员及用户的交流存在障碍,除了知识背景的差异,缺少合适的交流方法和需求描述工具也是重要的一个原因。3)软件开发过程不规范,缺少方法论和规范的指导,软件难以维护。4)随着软件规模的增大,其复杂性往往会呈指数级升高。5)缺少有效的软件评测手段,提交用户的软件质量差 软件工程的定义: 1.指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理技术和方法进行软件的开发和维护,把经过时间考虑而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护 2.软件工程的目标:运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。 3.软件的生存周期:软件孕育、诞生、成长、成熟、衰亡的生存过程。由软件定义、软件开发和运行维护三个时期组成。软件定义:解决“做什么”的问题;软件开发:解决“如何做”的问题,分为概要设计、详细设计、编码和测试四个阶段;维护:使软件持久的满足用户的需求。 4.开发过程中的典型文档 a.软件需求规格说明书:描述将要开发的软件做什么。 b.项目计划:描述将要完成的任务及其顺序,并估计所需要的时间及工作量。 c.软件测试计划:描述如何测试软件,确保软件应实现规定的功能,并达到预期的性能。 d.软件设计说明书:描述软件的结构,包括概要设计及详细设计。 e.用户手册:描述如何使用软件 各阶段基本任务:问题定义及可行性研究、需求分析、软件设计、程序编码和单元测试、集成测试和系统测试。 5.软件生存期模型: 瀑布模型。优点:强迫开发人员规范化方法、严格规定每个阶段必须提交的文档、要求每个阶段交出的所有产品必须经过验证。缺点:完全依赖书面规格说明,可能会导致产品及用户需求有差异、只适用于项目开始时需求已确定的情况。需求分析、规格说明、设计、编码、综合测试、维护 快速原型模型。优点:易于满足用户真实需求、已通过及用户的交互验证,能正确描述用户需求、产品开发基本上按线性顺序、规格文档说明正确描述了用户需求,后期错误率和返工率很低、开发人员建立原型

《软件工程》课程教学大纲

《软件工程》课程教学大纲 课程代码:23281170 适用专业:计算机应用技术专业 总学时数: 60学时,其中:理论教学 30学时,实践教学 30 学时。 学分: 先修课程:《计算机基础》,《C语言程序设计》,《数据结构》和《数据库原理及其应用》考核方式:考试 一、制订大纲的依据 本大纲根据2016年计算机应用技术专业教学计划制订 二、课程简介 软件工程作为一门专业主干课,重点要求学生学习与软件开发和维护有关的四个方面的主要内容——过程与模型、方法与技术、工具与环境、标准与规范。进而通过课程实践培养学生运用软件工程基本原理解决实际问题,并从事复杂软件项目开发和维护的实践应用能力与创新能力,努力成为当今信息社会和知识经济时代所需要的高素质计算机专业人才。 三、课程性质、教育目标 (一)性质:本课程是计算机软件专业的专业主干课。通过本课程的学习,使学生初步建立工程化意识,学会用工程化思想(包括技术、方法与环境)开发各种软件,以软件的生命周期作为主线,掌握软件工程的基本理论,进一步系统化、工程化,为今后实际工程中能够进行系统分析与设计奠定良好的基础。 (二)教育目标: 通过本课程的教学,应使学生达到以下要求: 1.熟练掌握软件与软件工程基本概念和基本知识。 2.熟练掌握生存周期与软件开发模式。 3.掌握结构化程序设计的编程思想。 4.掌握面向对象分析、设计与编码方法。 5.掌握有关软件的评审、测试与维护,项目计划与项目管理方法。 6. 能用软件工程的方法参与软件项目的分析、设计、实现和维护。 四、课程教学内容与基本要求(课程教学内容、重难点、基本要求、教法说明) 《软件工程》的教学分为理论教学和实验教学两个环节,本部分为理论教学大纲。 第1章、软件工程学概述 1、课程教学内容: 1)软件危机 2)软件工程 3)软件生命周期 4)软件过程。 2、基本要求:产生软件危机的原因及解决途径,软件工程的基本原理,软件工程方法学,软件生命周期中各阶段的基本任务,软件过程模型。

软件工程概论

软件工程 1 、软件危机:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。包含两方面的问题:(1 )如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。 2、软件危机的主要表现: ( 1 )对软件开发成本和进度的估计经常很不准确; ( 2 )用户对“已完成的”软件系统不满意的现象经常发生; ( 3 )软件产品的质量往往靠不住; ( 4 )软件常常是不可维护的; ( 5 )软件通常没有适当的文档资料; ( 6 )软件成本在计算机系统总成本中所占的比例逐年上升; (7 )软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 3、产生软件危机的原因 ( 1 )从软件特点上看,软件是逻辑部件,不是物理部件; ( 2 )软件是很大的程序,复杂且有很多技术问题,但缺少严格而科学的管理; (3 )软件的参与人员多且成分复杂(需求人员,开发人员,用户,维护人员等); (4 )在软件实践过程中或多或少的采用的错误的(但当时无法知晓的)方法和技术(这是主要原因) 4、消除软件危机的途径 ( 1 )首先应该对计算机软件有一个正确的认识; ( 2 )更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目; ( 3 )应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法; ( 4 )应该开发和使用更好的软件工具总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 5、软件工程:软件工程是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。(1 )1968 年NATO 会议:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。 ( 2 )1993IEEE 定义:软件工程是①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 6、软件工程的本质特征 (1)软件工程关注于大型程序的构造; (2)软件工程的中心课题是控制复杂性; ( 3 )软件经常变化; (4)开发软件的效率非常重要; (5)和谐地合作是开发软件的关键; (6)软件必须有效地支持它的用户; (7)在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。 7、软件工程的基本原理 (1)用分阶段的生命周期计划严格管理 ( 2 )坚持进行阶段评审 (3)实行严格的(阶段性)产品控制 (4)采用现代程序设计技术 ( 5 )结果应能清楚地审查 (6)开发小组的人员应该少而精 (7)承认不断改进软件工程实践的必要性

软件工程课后习题答案第五版

软件工程课后习题答案第五版 《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。 (3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

软件工程导论第六章课后答案

计算机科学与技术 第六章习题答案 4、图6.18给出的程序流程图代表一个非结构化的程序,问: (1)为什么说它是非结构化的? (2)设计一个等价的结构化程序。 (3)在(2)题的设计中使用附加的标志变量flag了吗?若没有,再设计一个使用flag的程序;若用了,再设计一个不用flag的程序。 图6.18 一个非结构化程序 答:(1)图示程序的循环控制结构有两个出口,不符合结构程序的定义,因此是非结构化的程序。 (2)设计的等价结构化程序盒图如下所示:

(3)在第(2)题中没有使用标志变量flag,设计使用附加的标志变量flag,将上述程序改成等价的结构化程序,如下盒图所示: 7、某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。如果交易总金额少于1000元,则等于手续费为交易金额的8.4%;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加34元;如果交易总金额超过10000元,则基本手续费为交易金额的4%加上134元。当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加手续费为基本手续费的4%,否则附加手续费为基本手续费的1%。要求:(1)用判定表表示手续费的计算方法。(2)用判定树表示手续费的计算方法。答:(1)用判定表表示手续费的计算方法如下所

软件工程课后习题答案

第一章 1.1举出至少5个例子来说明“意外效应法则”在计算机软件方面的应用。 答:典型的例子包括使用“数字汽车仪表板”的软件,赋予高科技,高品质的图像的软件;如广泛的消费类电子产品的软件;个人电脑,工业仪器仪表和机器的软件。软件分化出的在电子商务方面的应用。 1.2举例说明软件对社会的影响(包括正面影响和负面影响)。 答:这是一个很好的课堂讨论问题(如果时间允许),而不是专注于老生常谈的(但很重要)隐私问题,生活质量等问题。您可能想要讨论关于”技术恐惧“方面的问题,软件也许会使它恶化但也可能减少”技术恐惧“。另一个有趣的方面是使用诺依曼的“风险”列在中做重点讨论。你也可以考虑基于软件的“现金”经济,新模式的互动娱乐,虚拟现实,电子商务等方面来思考软件对社会的影响。 1.3针对1.1节提出的5个问题,请给出你的答案,并与同学讨论。 答:软件需要如此长的开发时间: a)设施不上线 b)开发工具并不如预期般运作 c)客户提出的新要求,需要重新设计和返工 d)产品依赖于政府的规定,被意外更改。 e)严格的要求,与现有系统的兼容性需要超过预期更多的测试,设计和实现。 f)多个操作系统下运行的任务需求比预期需要更长的时间。 g)软件项目风险管理比预期需要更多的时间。 h)依赖的技术仍处于开发阶段,从而延长日程安排。 开发成本高: a)比当时预期低得令人无法接受的质量,需要进行更多的测试,设计和实施工作。 b)制定了错误的软件功能需要重新设计和实施。 c)开发错误的用户界面,而导致重新设计和实施。 d)开发了不需要的额外的软件功能而延长了开发日程安排。 在将软件交付顾客使用之前,我们无法找到所有错误: a)产品依赖于政府监管,意外而改变。 b)产品技术标准草案,会意外更改。 c)有时会在项目后期添加新的开发人员。 d)因为团队内的冲突有时会导致沟通不畅,而产生糟糕的设计。 e)破坏高效调度产生的项目管理成果和无效的规划 f)有时装备部件质量差,导致额外的测试,设计和集成工作和管理额外的客户关系。 软件开发和维护的过程仍旧难以度量: a)有时该项目的目的是不明确。 b)有大量的业务所涉及的风险。 c)如果产品内置没有装好。 d)我们需要不断检讨我们的工作。 e)进行维护检查的时间。 f)在整个软件开发过程中要彻底组织项目团队。 1.4在交付最终用户之前,或者首个版本投入使用之后,许多应用程序都会有频繁的变更。

相关文档
最新文档