软件项目管理案例教程第三版课后习题答案解析1.doc软件项目管理案例教程[第三版]课后习题答案解析1第一章二、判断题1、搬家属于项目。
(√)2、项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的永久性的努力。
(√)4、项目具有临时性的特征。
(√)5、日常运作存在大量的变更管理,而项目基本保持连贯性的。
B.项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理。
C.项目需要有专业知识的人来完成,而日常运作的完成无需特定专业知识。
D.项目是一次性的,日常运作是重复性的。
2、下列选项中最能体现项目的特征(C)A.运用进度计划技巧B.整合范围与成本C.确定期限D.利用网络进行跟踪3、以下都是日常运作和项目的共同之处,除了(D)A.由人来做B.受限于有限的资源C.需要规划、执行和控制D.都是重复性工作4、项目经理的职责不包括(D)A.开发计划B.组织实施C.项目控制D.提供资金5、下列选项中属于项目的是(C)A.上课B.社区保安C.野餐活动D.每天的卫生保洁6、下列选项中正确的是(C)A.一个项目具有明确的目标而且周期不限B.一个项目一旦确定就不会发生变更C.每个项目都有自己的独特性D.项目都是一次性的并由项目经理独自完成7、(B)是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。
A.过程B.项目C.项目群D.组合8、(B)是一系列伴随着项目的进行而进行,目的是确保项目能够达到期望结果的一系列管理行为。
A.人力资源管理B.项目管理C.软件项目管理D.需求管理9、下列活动中不是项目的是(C)A.野餐活动B.集体婚礼C.上课D.开发操作系统10、下列选项中不是项目的特征的是(C)A.项目具有明确的目标B.项目具有限定的周期C.项目可以重复进行D.项目对资源成本具有约束性第二章二、判断题1、项目初始阶段甲方为软件开发方,乙方为顾客。
《实用软件工程》第3版习题参考答案习题11.1开发文档都有哪些?用图示表示它们之间的关系。
开发文档包括目标程序、源程序、详细设计说明书、概要设计说明书、需求规格说明书、用户需求报告、软件合同,它们之间的关系如下图所示。
1.2简述软件工程研究的内容。
软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
其中软件开发方法的内容又涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型。
软件支持过程由所支持的CASE工具组成,常用的CASE工具有PowerDesigner和RationalRose。
软件管理过程主要有CMMI、ISO9000、微软企业文化和敏捷文化现象。
1.3详细解释软件的定义、程序的定义及软件工程的定义。
软件的定义:软件=程序+数据+文档。
这里的程序是指程序系统。
这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。
这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。
程序是计算机为完成特定任务而执行的指令的有序集合。
从应用的角度可理解为:面向过程的程序=算法+数据结构面向对象的程序=对象+信息面向构件的程序=构件+构架软件工程是研究软件开发和软件管理的一门工程学科。
1.4软件工程的7+1条基本原理有什么现实意义?软件工程的7条基本原理是在面向过程的程序设计时代(结构化时代)提出来的,但在面向数据和面向对象的程序设计的今天,它仍然有效。
并且在军事上的实时跟踪监控系统中有很好的应用,而且随着软件的开发和管理的进步,它将不断完善和充实。
第一章软件工程引论1.在下列选项中,(D)不是软件的特征。
A.系统性与复制性B.可靠性与一致性C.抽象性与智能型D.有形性与可控性2.软件是一种(B)产品。
A.有形B.逻辑C.物质D.消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。
A.自顶向下B.自底向上C.逐步求精D.面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。
A.理论性B.工程性C.原理性D.心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。
A.原理探讨B.理论研究C.建造软件系统D.原理性的理论6.下列说法正确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。
A.应用B.测试C.检测D.以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。
信息与数据信息是人们对某种事物的理解,通常可以是一件事情、一种状况或者是基于研究和经验所获得的知识。
数据是信息的表达。
不同的用户所要保存和使用的数据各不相同,具体应该保存哪些数据由业务需求决定,保存数据的目的是使业务的运作更有效。
在任何数据库中,一般都保存有两种类型的数据:静态的,或者是历史的数据。
动态的,或者是事务性的数据。
文件系统最早用计算机实现对数据的管理是使用文件方式进行的,然而,文件的组织结构往往与生成该文件的程序有关,其他人要共享该文件,就必须要熟悉文件的格式等信息。
这为共享信息带来了诸多不便。
通过文件共享数据,还有一致性修改的问题,即如果文件结构被修改了,则共享者的程序也要相应地做修改,否则就会出错。
数据以文件形式保存,不仅使读文件的程序可以多次使用,而且其他程序只要知道数据格式和组织方式也可以使用,这就叫做数据资源共享。
商业应用中数据共享是必须的。
数据库系统信息共享和信息的易维护性是信息管理发展的必然要求。
为了解决这些问题,产生了数据库技术。
数据库技术的发展主要是用来克服文件系统的缺陷,克服这些缺陷主要是在应用程序和数据库之间增加了一个功能强大的软件——DBMS。
下图说明了在数据库系统中,数据库用户、数据库应用程序及数据库管理系统之间的关系。
用户与数据库应用程序交互,数据库应用程序与DBMS交互,由DBMS负责访问数据库中的数据。
也就是应用程序不直接与数据库打交道。
而在文件处理系统中,应用程序是直接访问存储数据的文件的。
这个改变非常重要,它使得编程工作变得非常简单,因为应用程序不再需要关心数据的记录结构和物理存储方式。
这样,开发人员就可以将注意力集中在如何满足用户的需要上,而不必集中在计算机系统如何组织数据的问题上。
从上述分析可以看到数据库具有如下特点:数据是集成的数据重复少程序与数据相对独立容易提供符合用户不同要求的信息提取方式易于提供安全保障9.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什么是信息?信息与数据的区别和联系在何处?信息定义之一:信息是现实世界中存在的客观实体、现象、关系进行描述的数据。
信息定义之二:信息是经过加工后并对实体的行为产生影响的数据。
与数据的区别和联系:数据定义:数据是现实世界客观存在的实体或事物的属性值,即指人们听到的事实和看到的景象。
我们把这些数据收集起来,经过处理后,即得到人们需要的信息。
信息和数据的关系可以归结为:1.信息是有一定含义的数据。
2.信息是经过加工(处理)后的数据。
3.信息是对决策有价值的数据。
1.2信息有哪些基本属性?信息的基本属性有:1.事实性。
2.等级性。
3.可压缩性。
4.可扩散性。
5.可传输性。
6.共享性。
7.增值性和再生性。
8.转换性。
1.3计算机的主要特点是什么?计算机最主要的特点是:1.高速自动的操作功能。
2.具有记忆的能力。
3.可以进行各种逻辑判断。
4.精确高速的计算能力。
1.5完整的计算机系统应该包括哪几部分?目前最完整的计算机系统学说认为由五部分组成:1.人员2.数据3.设备4.程序5.规程1.6什么是计算机硬件?什么是计算机软件?硬件:泛指实际存在的物理设备,包括计算机本身及其外围设备。
微型计算机的硬件系统:主机、外存储器、输入设备、输出设备、微机的系统总线。
软件:是指计算机程序、方法、规则的文档以及在计算机上运行它时所必须的数据。
计算机软件一般分为系统软件和应用软件。
1.8软件技术发展的几个阶段各有什么特点?它与硬件的关系如何?第一阶段:高级语言阶段特点:这一时期,编译技术代表了整个软件技术,软件工作者追求的主要目的是设计和实现在控制结构和数据结构方面表现能力强的高级语言。
但在这一时期内,编译系统主要是靠手工编制,自动化程度很低。
硬件关系:此时期计算机的硬件要求仅能用机器指令来编制可运行的程序。
第二阶段:结构程序设计阶段特点:在程序的正确性方面,提出了结构化程序设计思想使程序的可靠性提高了。
作为一门实践性强的学科,课后答案对于学习软件工程的学生来说非常重要。
本文将以软件工程课后答案为主题,为您提供一份完整版的答案,旨在帮助您更好地理解和掌握软件工程的知识。
一、需求分析与规格说明1.问题描述对于任何一门软件工程课程,需求分析和规格说明都是至关重要的环节。
通过合理地分析需求,可以明确软件系统的功能需求、性能需求和用户需求,从而为后续的设计和开发工作奠定基础。
在这一部分中,我们将详细讨论问题描述、需求规格说明以及软件需求规格说明的编写步骤和技巧。
2.答案示例问题描述:某个公司需要开发一个在线购物系统,能够满足用户浏览商品、下单购买、支付、评价等功能。
-商品浏览:用户可以浏览系统中的商品,包括商品图片、详细介绍、价格等信息。
-购物车管理:用户可以将感兴趣的商品加入购物车,并对购物车进行管理,如增加、删除、修改商品数量等操作。
-订单管理:用户可以在购物车中选择商品提交订单,并进行支付操作。
-评价功能:用户在收到商品后可以对商品进行评价,并可以查看其他用户对商品的评价。
在这一部分中,我们将着重讨论系统架构设计的原则、方法以及常用的架构模式。
2.答案示例系统架构设计的主要目标是实现系统的可扩展性、灵活性和可维护性。
在本次项目中,我们采用了经典的三层架构模式,即用户界面层、业务逻辑层和数据访问层。
-用户界面层:负责与用户进行交互操作,接收用户输入的请求,并向用户展示系统的响应结果。
6.1操作系统原理1操作系统概论2操作系统的特性3操作系统的功能4操作系统的类型5进程管理6.2常见的操作系统6.3小节操作系统是加到计算机硬件上的第一层软件,它是直接操作计算机的硬件的软件,从而使计算机硬件的功能首次能够发挥出来。
一台纯粹由硬件构成的计算机(称之为“裸机”)在加载操作系统之后,就变成了一台与“裸机”大相径庭的“虚拟”的计算机。
其他的所有软件,如编译软件、数据库系统、软件开发工具等系统软件以及浏览器、字处理软件、办公软件等应用软件都是以操作系统为基础,运行于“虚拟”机上的。
只有首先运行操作系统之后,才能运行其他软件。
操作系统是用户与计算机硬件设备之间的接口,用户通过操作系统操纵计算机硬件设备完成自己的工作。
计算机启动并加载操作系统之后,变成了一台“虚拟”(逻辑)的计算机。
用户看到的“计算机”是一台逻辑计算机,用户看到的“设备”是访问硬件设备的软件程序,是一种逻辑设备。
对逻辑设备的所有操作都被操作系统转换为对实际硬件设备的操作。
如果计算机只有一个处理器(即CPU),该计算机在任何时刻都只能运行一个进程。
资源共享是为了提高计算机系统资源的利用率。
第二章程序设计语言计算机工作是执行相应程序,程序规定了执行的动作和动作的执行顺序。
程序的表达手段是程序设计语言。
程序设计语言是人-机交换信息的媒体;是表达软件(程序)的工具;是人-人交换信息的工具。
软件的开发和使用,协作开发、使用修改都要读程序,程序设计语言必须规范化和标准化。
程序设计语言是与计算机通信创造的语言,严格、小巧,没有二义性(语句执行只有一个解释)。
2.1高级程序设计语言概述最初的语言是机器语言。
机器语言在内存中开辟两个区:数据区存放数据;指令区存放指令。
CPU从指令区第一个地址开始逐条取出指令并释义执行,直到所有的指令都被执行完。
一般的指令格式2.2.2高级语言程序的解释执行编译型语言由于可进行优化(有的编译器可作多次优化),目标码效率很高,是目前软件实现的主要方式。
语言编写的源程序,都需要进行编译、连接,才能生成可执行程序。
对高级语言源程序采取解释执行的方式.解释执行需要有一个解释器(Interpreter),它将源代码逐句读入。
先作词法分析,建立内部符号表;再作语法和语义分析,即以中间码建立语法树,并作类型检查。
完成检查后把每一语句压入执行堆栈,压入后立即解释执行。
操作系统的命令、BASIC、VB、Prolog、LISP、Java、JavaScriptPostscript2.3.1变量、表达式、赋值使用符号常量,只需一次性改动其赋值就行了。
赋值和函数调用是程序语言改变变量的值的基本手段。
不同的语言所使用的赋值号并不完全相同,比如Pascal语言的赋值号是“:=”,而在C语言、Java语言、VB等语言中,赋值号是“=”。
程序中的一条语句对应着计算机的一条命令(用一条或多条指令来实现)。
一个赋值语句就是一条赋值命令。
2.3.2程序的控制结构程序约定自上向下自左向右地执行,即顺序地执行语句(或表达式)。
第三章习题1.为什么要进行需求分析?通常软件工程系统有哪些需求?答:因为信息收集不安全,功能不明确,需求文档不完善,开发者急于求成,通常软件工程系统有功能需求,性能需求,环境需求,界面需求,用户或人的因素需求,文档需求,数据需求,资源需求,安全保密需求软件成本消耗与开发进行需求,质量保证需求。
2.怎样与用户有效地沟通以获取用户的真实需求?答:一.要处处为对方考虑,站在对方的角度去看自己,俗话说知己知彼,百战不殆嘛。
二.就是要自信。
与对方谈话时要特别注意对方的一举一动,抓住对方的弱点,抢攻。
三.因人而定。
要看对方是什么样类型的人,不要千篇一律,要见什么人,说什么话。
四.要诚实可信。
对自己说的每句话都要负责,做到诚实守信,才能得到对方的信赖。
五.不要直言不讳。
先和对方谈点别的,等慢慢找机会切入正题,这样才会给对方一个缓冲的机会。
3.银行计算机储系统的工作过程如下:储户填写存款单或业务员输入系统,如果是存款则系统记录存款人姓名,住址,身份证号,存款类型,存款日期,到日期,利率及密码等信息并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,如密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
答:4.分析习题2第三题所述的机票预定系统,实用实体-联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能。
答:5.分析习题2第四题所述的患者监护系统,实用实体-联系图描绘本系统中的数据流图描绘本系统的顶层IPO图。
答:6.复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
请用状态转换图描绘复印机的行为。
计算机软件技术基础(第三版)课后习题答案较全第一章信息与计算机1.1什么是信息?信息与数据的区别和联系在何处?信息定义之一:信息是现实世界中存在的客观实体、现象、关系进行描述的数据。
第四章VisualC++环境及其应用软件开发一般是在某个操作系统平台之上进行的,平台提供了大量应用工具,这些工具为编程提供了极大的便利,使得编出的应用系统大为丰富。
有使用方便、清新悦目的用户界面;有计算结果的各种表达:表格、表单、图符、图像、图形、动画,甚至音频、视频等。
几十年来,各种支持应用的工具软件形成了当今计算机的应用文化。
对应用开发者而言,开发的应用程序也必须适应这种文化,而不单是编写核心计算的程序。
进行人机界面的设计时,要充分利用平台提供的测试、部署、通信、安装工具加速应用开发,并使开发的应用(程序)系统与各厂商提供的应用软件风格相似。
本章主要介绍程序开发环境。
4.1应用(程序)系统的体系结构一个应用(程序)系统总是由多个程序模块组成。
过程式编程是函数/子例程、数据块;面向对象是类、包;基于构件编程是接口类、构件、连接件。
为了功能全、少编程,它们往往是共享的,能重用就重用。
而且大量重用经过实用考验的模块,应用程序更可靠。
模块的相互联系就形成体系结构(Architecture),就如同一个房子规定了它各个构件的位置,它们共同表现出这个房子的使用性能。
一般应用(程序)系统的体系结构如图4.1所示。
从逻辑上讲现代应用程序必须有为用户服务的模块,图中以小方块表示交互的用户输入和输出显示、报表软硬拷贝、保存文件、入库、安装等。
第二部分是业务服务模块,图中以小三角表示,即常说的这个(软件)程序该做什么核心计算。
可以是实现某个业务流程的各个模块,如民航订票系统的查询、订票、收费、出票各功能模块。
也可以是解决科学计算的高阶微分方程数值解的程序模块。
第三部分是数据服务的模块,图中以小圆圈表示。
它是与数据库交互的模块。
这里的数据库是广义的,包括文件库。
有些专用的科学计算的数据并不一定与其他应用有共享需求,作为文件保存为永久性数据,也叫入数据库。
但此时数据服务十分简单。
图中两个应用Application1和Application2共享若干模块,也有为自己开发的模块。
软件工程第三版答案【篇一软件工程课后答案】1.1什么是计算机软件软件的特点是什么答计算机软件指计算机系统中的程序及其文档。
软件的特点是a软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确得估算;b软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大;c软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明。
答在计算机科学技术百科全书中,将软件分为系统软件、支撑软件和应用软件3类。
a系统软件系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。
系统软件与具体的应用领域无关。
例如编译程序、操作系统等。
b支撑软件支撑软件是支撑软件的开发和维护的软件。
例如数据库管理系统、网络软件、软件工具、软件开发环境等。
c应用软件应用软件是特定应用领域专用的软件。
例如工程/科学计算软件、嵌入式软件、产品线软件、web应用软件、人工智能软件。
1.4什么是软件工程答在计算机科学技术百科全书中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
答软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则第一条围绕适宜的开发模型;第二条采用合适的设计方法;第三条提供高质量的工程支撑;第四条重视软件工程的管理。
1.6软件生存周期分哪几个阶段分别简述各个阶段的任务。
答软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。
a计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。
b需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。
请读者注意,作者在书中又新加入了第8条基本原理:软件工程中的二八定律,这是对基本原理的补充与发展。
1.5读者认同“4种开发方法”的方法论和“五个面向”的实践论吗?为什么?“四种开发方法”是指“面向过程的方法、面向对象的方法、面向数据的方法、形式化方法”。
四种方法各适用于不同的场合,各有优缺点,互相促进,构成开发方法论的多极化世界。
“五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”,它是在综合“四种开发方法”各自的优点之后提出的软件工程实施理论,是对前者的继承与发展。
总之,上述提法既精彩又实用。
1.6怎样理解软件工程的支持过程和管理过程?软件工程的支持过程是由支持软件生存周期各个阶段的生产工具所组成的。
就是说将一个软件的生存周期划分为市场调研、立项、需求分析、策划、概要设计、详细设计、编程、单位测试、集成测试、运行、维护这几个过程。
在这些过程中,需要配套相应的工具来支持,比如需求分析工具、设计工具、实现工具、测试工具、维护工具、配置工具,开发环境等。
1.7CASE工具、软件开发环境SDE、软件工程环境SEE三者之间有何联系与区别?CASE(ComputerAidedSoftwareEngineering)是一组工具和方法的集合,一般提供给个人使用,可以辅助软件开发生命周期各阶段进行软件开发。
它在软件开发/维护过程中提供计算机辅助支持和工程化方法,CASE技术分为两类,一类是支持软件开发过程本身的技术,另一类是支持软件开发过程管理的技术。
软件开发环境SDE(SoftwareDevelopmentEnvironment)指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件。
软件配置管理工具、面向行业领域开发的业务基础平台,都是软件开发环境的例子。
软件工程环境SEE(SoftwareEngineeringEnvironment)一般提供给团队使用,它是以软件工程为依据,支持典型软件生产的系统。
SEE具有以下特点:(1)强调支持软件生产的全过程。
(2)强调大型软件的工业化生产。
(3)以集成和剪裁作为主要技术路径,实现软件工业化生产的目标。
(4)标准化。
软件生产走向工业化需要建立相应的工业标准。
软件工程环境的例子有北大青鸟系统,RationalRose等。
三者的相同点是:都是软件过程的支持工具,其目的都是为了加快软件开发效率,提高软件开发质量。
三者的不同点是:它们的功能强弱、使用范围、使用背景不尽相同。
1.8是否存在这样一种现象:搞系统软件的公司不需要采用CMMI或ISO9001模式?CMMI或ISO9001模式只适用于搞应用软件的企业?如果是,是为什么?如果不是,又是为什么?不是。
因为CMMI和ISO9000模式规定了严格的管理制度、文档和评估软件能力与成熟度等级的一套标准,它们几乎包括了所有的IT的企业,只是一些优秀的企业自己内部形成特有的企业管理文化,但是它们并不排斥CMMI和ISO9000模式,甚至还充分肯定CMMI和ISO9000体系。
1.9敏捷文化现象是什么意思?敏捷文化现象是指好的开发过程应该可以在保证质量的前提下,做到文档适度、度量适度和管理适度,并且根据敏捷文化能迅速做出自我调整,实现企业效益的最大化。
1.10“轻载过程改进模型”(敏捷文化现象)能代替或战胜“重载过程改进模型”CMMI吗?不能。
因为轻载过程改进模型只适用于少于12人的项目,对个人的素质要求很高,成功的大型复杂案例并不多,它特别适合于中小型软件企业,以及中小型软件项目。
而重载过程改进模型CMM/CMMI在某种程度上包容了轻载过程改进模型,它对整体的素质要求很高,适合于所有的IT企业。
1.11什么叫软件危机?通过本章的学习,你认为应该怎样克服软件危机?所谓软件危机,就是在软件开发和维护过程中所遇到一系列难以控制的问题。
“软件危机”这个专业术语的首次出现,是1968年NATO(NorthAtlanticTreatyOrganization,北约)的计算机科学家,在联邦德国召开的国际学术会议上提出的。
为了克服软件危机,同样是在1968年,北约科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。
就在那次会议上,第一次提出了软件工程(SoftwareEngineering)这个专业术语。
当时人们的想法是:若借用建筑工程或机器制造工程的思想、标准、规范、规程去开发软件与维护软件,也许能克服软件危机。
以后的实践证明:用工程的方法开发软件与维护软件是个好主意,但是要完全克服软件危机,还有许多其他工作要做。
例如,将软件公司纳入CMMI的过程改进轨道,就能真正克服软件危机。
1.12试述信息系统的定义及信息系统的基本内容。
利用计算机网络技术、数字通信技术与数据库技术实现信息采集和处理的系统,称为信息系统。
由此不难发现:凡是与数据库技术有关的应用系统,都可以看成信息系统。
因为数据库是组织与存储信息的最好方式,除此之外,目前还没有找到其他更好的方式。
信息系统由社会环境、网络环境、数据环境和程序环境四部分组成。
社会环境指企事业单位的管理规程、工作规范、信息标准、业务流程、业务规则和人员素质。
网络环境指互联网Internet、企业网Intranet或局域网的软/硬件设施。
数据环境指信息系统的数据模型及数据库服务器上的数据操作。
程序环境指客户端用户界面操作与应用服务器上的业务功能操作。
不管是网络环境、数据环境还是程序环境,都要进行系统集成。
这里特别强调社会环境,人们常说,信息系统建设不仅是一项计算机工程,而且是一项社会工程,就是这个道理。
1.13解释下列名词:开发文档、管理文档、初始化数据、元数据、过程、过程改进。
开发文档主要由项目组书写,用于指导软件开发与维护;管理文档主要由软件工程管理部门书写,用于指导软件管理和决策。
初始化数据是为软件系统提供运行条件的必备数据。
元数据是关于数据的数据,组织数据的数据。
例如,可将一个软件的生命周期划分为市场调研、立项、需求分析、策划、概要设计、详细设计、编程、单体测试、集成测试、运行、维护、退役几个过程,前一过程的终止点就是后一过程的起始点。
过程与阶段(Phase)有关,阶段与里程碑(Milestone)有关。
某些重要里程碑上的文档(通过评审和审计之后)又称为基线(Baseline)。
例如,《软件需求分析规格书》、《软件设计说明书》,它们都是基线。
过程改进是指利用过程改进模型CMMI,对软件组织内部的过程管理进行优化。
习题22.1软件生命周期是什么含义?它与软件生命周期模型有何关系?软件生命周期划分为市场调研、立项、需求分析、策划、概要设计、详细设计、编程、单体测试、集成测试、运行、维护、退役几个过程,前一过程的终止点就是后一过程的起始点。
软件生命周期与软件生命周期模型有关:不同的生命周期模型,可能对应着不同的生存周期。
生存周期不同,该软件的开发阶段划分、评审次数、基线标准都有所不同,甚至维护方法都有所区别。
2.2为什么说“软件生命周期模型是指在整个软件生命周期中,软件开发过程应遵循的开发路线图。
或者说,软件生命周期模型是软件开发全部过程、活动和任务的结构框架”?事实上,任何生命周期模型都是生命的路线图。
特别,软件生命周期模型是软件生命的路线图。
这里使用路线图,是为了将深奥的理论通俗化,实用化。
2.3为什么要选择软件开发模型?软件开发模型与软件生命周期有什么关系?因为软件开发模型是软件工程研究的5大内容之一,它虽然不是软件工程研究的重点,但是在宏观上特别重要。
软件公司的项目组在开发一个大项目或产品时,首先在技术上必须选择一个开发模型,使开发模型非常适合这个项目或产品的生存周期;随后通过对生存周期的裁减,给出适合于本项目或产品的软件生存周期定义。
2.4简述瀑布模型、增量模型、迭代模型、原型模型、XP等模型的优缺点。
软件开发模型比较表2.5软件公司的CMMI过程改进模型与软件开发模型有关吗?为什么?无关。
因为CMMI管理体系是一种过程与质量管理模型,它是适应于任何软件开发模型的,或者说它与任何开发模型无关。