第一章软件工程简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【习题】
四、问答题
1.什么是软件?它的特点是什么?
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。
软件的特点是:
(1)、依赖性:软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。软件不能完全摆脱硬件单独活动。在开发和运行中必须以硬件提供的条件为依据。有的软件依赖于某个操作系统。
(2)、可移植性:为了解除这种依赖性,在软件开发中提出了软件移植的问题,并且把软件的可移植性做为衡量软件质量的因素之一。
(3)、复用性:软件的开发至今尚未完全摆脱手工艺的开发方式。由于传统的手工艺开发方式仍然占据统治地位,开发的效率自然受到很大的限制。为此,人们在软件技术方面做了许多卓有成效的工作,提出了许多新的开发方法,例如充分利用现成软件的复用技术、自动生成技术,也研制了一些有效的软件开发工具或软件开发环境。
(4)、复杂性:软件本身是复杂的。软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。软件开发,特别是应用软件的开发常常涉及到其它领域的专门知识,这对软件人员提出了很高的要求。
(5)、昂贵性:软件成本相当昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它的成本是比较高的。然而,也并非在所有软件开发上的花费都能获得成果。
(6)、社会性:相当多的软件工作涉及到社会因素。许多软件的开发和运行涉及机构、体制及管理方式等问题,甚至涉及到人的观念和人们的心理。它直接影响到项目的成败。
2.试比较软件发展的三个时期的特点,从软件所指、软件工作范围、软件开发组织、决定质量的因素、开发技术和手段等几个方面说明它们的差别。
3.软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素?试说明之。
软件工程包括三个要素:方法、工具和过程。
软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
软件工具是指为了支援软件人员的开发和维护活动而使用的软件。例如项目估算工具、需求分析工具、设计工具、编程和调试工具、测试工具和维护工具等。使用了软件工具后可以大大提高软件的生产率和质量。
软件工程的过程则将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。
4.软件工程过程有哪几个基本过程活动?试说明之。
软件工程过程通常包含四种基本的过程活动:
P (Plan): 软件规格说明。规定软件的功能及其运行的限制;
D (Do): 软件开发。产生满足规格说明的软件;
C (Check): 软件确认。确认软件能够完成客户提出的要求;
A (Action):软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。
5.软件产品的质量一直是用户高度重视的问题,简述有哪些评论质量的观点。
用户的观点:质量是恰好达到目的
制造的观点:质量是与需求说明的一致
产品的观点:质量是与产品的内在特性相联系的
基于价值的观点:质量取决于顾客愿意支付的金额
超越的观点:质量是可以认识而不能定义的
6.什么是软件质量?如何度量软件质量?
ANSI/IEEE Std 729-1983定义软件质量为"与软件产品满足规定的和隐含的
需求的能力有关的特征或特性的全体"。M.J. Fisher 定义软件质量为"所有描述计算机软件优秀程度的特性的组合"。也就是说,为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。
1991年ISO发布的ISO/IEC9126质量特性国际标准定义了6个质量特性,即功能性、可靠性、可维护性、效率、可使用性、可移植性;并推荐了21个子特性,如适合性、准确性、互用性、依从性、安全性、成熟性、容错性、可恢复性、可理解性、易学习性、操作性、时间特性、资源特性、可分析性、可变更性、稳定性、可测试性、适应性、可安装性、一致性、可替换性,但不做为标准。
7.软件产品质量评价金三角“产品运行、产品修改、产品变迁”中的“产品变迁”包含哪些质量要素和与之对应的评价标准。
产品变迁包含的质量要素和与之对应的评价标准为:
可移植性:简单性、软件系统独立性、硬件独立性
可复用性:简单性、通用性、模块化、软件系统独立性、硬件独立性
互用性:模块化、通信通用性、数据通用性
8.什么是CMM-SEI能力成熟度模型?其五级成熟度水平是什么?
CMM-SEI能力成熟度模型(Capability Manurity Model for Software,CMM)是软件工程协会SEI(Software Engineering Institution)在卡内基.梅隆大学开发完成的对一个组织软件开发能力进行评价的标准,它侧重于对软件开发过程和开发方法论的考察。
CMM五级成熟水平:
初始级
可重复级:有纪律的过程
已确定级:标准一致的过程
已管理级:可预测的过程
优化级:不断改进的过程
9.解释系统(system)的概念。
A system (系统)is a collection of things: a set of entities, a set of activities, a description of the relationships among entities and activities, and definition of the boundary of the system.。系统是一组事务的集合:实体的集合、活动的集合、实体和活动之间关系的描述以及系统边界的定义。
10. 软件工程要达到的基本目标是什么?
软件工程需要达到的基本目标是:付出较低的开发成本、达到要求的软件功能、取得较好的软件性能、开发的软件易于移植、需要较低的维护费用、能按时完成开发工作及时交付使用。
11.软件工程的基本原则有哪些?试说明之。
在软件开发过程中必须遵循下列软件工程原则。
抽象 : 采用分层次抽象,自顶向下、逐层细化的办法进行功能分解和过程分解,可以由抽象到具体、由复杂到简单,逐步得到问题的解。
信息隐蔽 : 遵循信息封装,使用与实现分离的原则,将模块设计成“黑箱”,可以将实现的细节隐藏在模块内部,使用者只能通过模块接口访问模块中封装的数据。