河北工业大学软件工程期末复习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程期末复习总结
第一讲概述(选择U填空U简答)
软件工程的研究内容
软件工程要考虑专业软件开发所需要的理论、方法和工具----工程技术问题
软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题
什么是软件?
软件包括:---软件的内涵
①能够提供客户所需功能与性能的计算机程序;
②使程序能够适当的操作信息的数据结构;
③用以描述程序开发过程及使用的文档。
软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。
软件产品可以分成:
一个新的软件并不一定是全新开发,可以由现有软件或可复用软件成分配置形成。
什么是软件工程?
软件工程是涉及软件生产各个方面的一门工程学科
软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。
软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法.
——IEEE[IEE93]
什么是成功的软件项目
一个成功软件项目的三个要素包括:
按时交付不超预算满足用户要求。
软件过程与软件生命周期的相关概念
软件过程是指开发或制作软件产品的一系列活动及其成果.
所有的软件过程中都包括四个基本活动:(填空)
1. 描述( Specification)- 系统应该提供的功能及其开发约束;
2. 开发( Development)- 软件产品的生产过程;
3. 有效性验证(Validation )- 检验软件产品是否满足了客户的需要;
4. 进化( Evolution )- 按照用户的变更要求不断的改进软件。
软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。
什么是优良软件的属性? P8 (填空U选择)
优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性和可用性:(选择题,考法内涵匹配)
可维护性(Maintainability)
Software must evolve to meet changing needs;
可依赖性(Dependability)
Software must be trustworthy;
有效性(Efficiency)
Software should not make wasteful use of system resources;
可接受性(Acceptability)
Software must be accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.
第二讲软件过程(画法+特点+结构+缺点+适用场合)
瀑布模型(顺序模型)(特点:变更少)(画法+特点+结构+缺点+适用场合)
1.需求分析和定义
2.系统和软件设计
3.实现和单元测试
4.集成和系统测试
5.运行和维护(中文解释)
瀑布模型的缺点和适用情况
这种模型生硬的把一个软件过程划分成几个界限清晰的阶段,而且这些阶段前后有严格的顺序,这导致它很难对用户的需求变更做出及时的调整;
因此,瀑布模型只适合需求非常清楚和需求变更被严格限制的情况下。
实际的软件开发过程中,几乎没有多少业务系统具有稳定的需求。
瀑布模型反映了工程设计的基本思想。
进化式开发模型(画法+特点+结构+缺点+适用场合)
基本思想:通过开发系统原型和用户反复交互,以明确需求,使系统在不断调整与修改中得以进化成熟。又叫做原型式开发方法。
两种基本类型:
探索式开发;
抛弃式原型法.
对于大型项目而言,系统需求的变更是无法避免的,因此开发过程的反复是软件开发的必要手段;
过程反复可以和任何一种一般过程模型结合使用。
两种支持过程反复的过程模型:
增量式开发;
螺旋式开发。
增量式开发
增量式开发的特点
在这种开发方式中,系统不是作为一个整体交付,而是被分解成若干个增量,每个增量交付系统的部分功能。
用户的需求按优先级排队,优先级最高的需求被放入最早交付的增量中。这样,优先级最高的系统功能就得到最多的测试,系统的可靠性较高。
由于每个增量可以交付部分系统功能,因此软件可以较早的交付用户使用(部分功能);早期交付的增量可以作为后期增量的原型帮助后期需求的确定;
项目总体的失败率较低;
优先级最高的系统功能得到最多的测试。
螺旋式开发
这种模型用螺旋线表示软件过程,而不是采用一系列活动及活动间的反馈;
螺旋中的每个回路表示软件过程中的一个阶段;
这种模型充分考虑了软件开发所面临的风险,并贯穿软件过程始终。
螺旋线划分成四部分
目标设置、风险评估和规避、开发与有效性验证、规划
基于构件的软件工程
软件复用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素(通常称为可复用构件、组件或软部件)的过程。
软构件是标准的、可以互换的、经过装配可随时使用的软件模块。
在UML中,软构件被定义为系统中某一定型化的、可配置的和可替换的部件,该部件封装了实现并暴露一系列的接口。
软件复用的意义
软件复用的出发点是使软件系统的开发不再“一切从零开始”,能够充分利用已有的知识和经验。
软件复用能够在软件开发中避免重复劳动,充分利用已有的开发成果,,提高开发效率,降低开发成本。
软件复用还可以避免全新开发可能引入的错误,从而提高软件的开发质量。
构件的基本概念
构件是为组装服务的!
软件构件是指可以独立生产、获取和部署的、可以被组装到一个功能性系统中去的可执行单元。
软构件是标准的、可以互换的、经过装配可随时使用的软件模块。
基于构件的软件工程
第三讲需求工程(概念+综合分析(面向对象建模UML+分析))