软件工程-期末复习提纲完美版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程》复习提纲
1 软件与软件工程
1.1软件的基本概念(例如,软件的定义、文档、软件的特点等)
简单地说,软件由程序和文档两部分组成,一是机器可以执行的程序及有关的数据,二是机器不能执行的文档,
软件的两种普遍定义:
①软件是与计算机系统操作有关的程序,规程、规则及任何与之相关的文档和数据。
②软件是程序以及开发,使用和维护程序所需要的文档,包括机器运行所需要的各种程序及有关资料。程序:为了解决某一问题而按事先设计的功能和性能要求执行的指令系列,或者说,用程序设计语言描述的适合于计算机处理的语句序列。
数据:使程序能正常操纵信息的数据结构。
文档:描述程序、数据和系统开发以及使用的各种图文资料。它具有永久性并能供人或机器阅读。
软件的基本特点:
·①计算机软件产品是一种逻辑产品部件而不是物理产品部件。
·②软件产品的生产主要是研制,是通过人们的智力活动,把知识与技术转化成信息的一种产品。
·③软件具有“复杂性”,其开发和运行常受到计算机系统的限制。而且,软件投入使用后,仍需要进行维护,这就带来软件维护复杂性的问题。
·④软件不存在磨损,物理上不会老化,但存在软件退化问题。
·⑤软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。
1.2软件危机的概念
软件危机是指在软件开发和维护过程中所遇到的一系列严重问题。
【由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。】
“软件危机”主要表现在两个方面:
(1)软件产品质量低劣,甚至开发过程就夭折;
(2)软件生产率低,不能满足需要。
1.3软件工程学的概念(定义)、研究的内容(三要素)
1993年IEEE定义:(1)把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;(2)研究(1)中提到的途径。
三要素:软件工程方法与技术、软件工具与环境和软件过程
1.4软件工程学的原理、原则
①软件工程的基本原则
抽象(abstractian)
模块化(modularity)
信息隐蔽(information hiding )
局部化(localization)
一致性(consistency)
完备性(completeness)
可验证性(verifiability)
②软件工程的基本原理【可以考虑以下的7条】:
用分阶段的生命周期计划严格管理;
坚持进行阶段评审;
实行严格的产品控制;
采用现代软件开发技术;
结果应该能审查;
开发小组的人员应该少而精;
承认不断改进软件工程实践的必要性。
1.5软件工程的基本(主要)目标【多目标特性】
付出较低的开发成本;
达到要求的软件功能;
取得较好的软件性能;
开发的软件易于移植;
需要较低的维护费用;
能按时完成开发工作,及时交付使用。
1.6软件开发模型概念(常用的几种)
软件生命期的概念:指软件产品从形成概念(构思)开始,经过定义、开发、使用和维护,直到最后被废弃为止的全过程。按照传统的软件生命周期方法学,可以把软件生命期划分为软件定义、软件开发、软件运行与维护3个阶段。
软件过程模型的基本概念:
它是从某一个特定角度提出的软件过程的简化描述,模型的主要特点是简单化。软件过程是制作软件产品的一组活动以及结果,这些活动主要由软件人员来完成。通常包括以下4类基本过程:
1. 软件规格说明(软件描述):规定软件的功能及其运行环境(使用的限制)。
2. 软件开发:也就是软件的设计和实现,软件工程人员制作产生满足规格说明的软件。
3. 软件确认(有效性验证):软件必须经过严格的验证,以保证能够满足客户的需求;
4. 软件演进(进化):软件随着客户需求的变化不断地改进。
①瀑布模型
瀑布模型(waterfall model)描述了软件生命的一些基本过程活动,所以它称为软件生命周期模型。这些活动从一个阶段到另一个阶段逐次下降,它的工作流程形式上又很像瀑布,人们更多的把它称为瀑布模型,该模型如图所示。
②原型模型
原型模型(prototype model)又称快速原型。由于瀑布型的缺点,人们借鉴建筑师或是工厂中的工程师建造原型的经验,提出了原型模型。该模型如图所示。
③螺旋模型
螺旋模型(spiral model)是在快速原型的基础上扩展而成,也有人把螺旋模型归到快速原型,实际上,它是生命周期模型与原型模型的一个结合,该模型如图所示。
④构件组装模型
事实上,在许多的软件项目中,都存在一些重用软件,当软件人员意识到某一个项目中的设计或者代码是另一个项目重复出现时,重用就自然地发生了,构件也正是基于这一思想而产生的。构件的重用又导致软件的可靠性和易维护性,程序在进行修改时产生较少的副作用。近几年来,以组件为基础的软件工程方法出现了,基于构件组装的软件过程模型也随之产生,并且逐渐地被广泛使用,该模型如图所示。
⑤基于面向对象的模型
自从面向对象技术问世后,很快被人们所接受,并得到广泛的应用。面向对象技术确实有很多的优点,其中构件重用是非常重要的技术之一。对象技术强调了类的创建与封装,一旦一个类创建与封装成功,就可以在不同的应用系统重用。
对象技术为基于构件的软件过程模型提供了更强的技术框架,基于面向对象的模型,是综合了面向对象和原型方法以及重用技术的一种模型。该模型如图所示。