软件制造工程期末复习知识点汇总(一)——软件工程概述

传统的瀑布式开发
缺点:不能适应需求的动态变更

敏捷开发
概念:一种以人为核心、迭代、循序渐进的开发方法。
力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。
实现:SCRUM,XP(极限编程),Crystal Methods、FDD

1.了解软件工程学产生的背景和原因

背景:1960~1970软件危机
时间:1968年

软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题

典型表现:
(1)对软件开发成本和进度的估计常常很不准确;
(2)软件成本在计算机系统总成本中所占的比例逐年上升
(3)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势 。
(4)软件通常没有适当的文档资料
(5)软件常常是不可维护的;
(6)软件产品的质量往往靠不住
(7)用户对“已完成的”软件系统不满意的现象经常发生;

软件≠程序
软件=程序+数据+文档

2.了解软件工程的基本原理、概念和方法

软件工程:是指导计算机软件 开发 和 维护 的一门工程学科。
基本原理
分阶段的生命周期计划严格管理
坚持进行阶段评审
实行严格的产品控制
采用现代程序设计技术
开发小组的人员应该少而精
特性:
在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品
开发软件的效率非常重要
软件工程的中心课题:控制复杂性
软件经常变化
软件必须有效地支持它的用户
和谐地合作是开发软件的关键

软件工程包括 技术管理 两方面的内容

技术方面:
技术,即方法学(又称范型)
三个要素:方法工具过程

方法:
传统方法学(生命周期方法学/结构化范型):划分为若干个阶段,强调自顶向下,采用 结构化技术 来完成软件;
面向对象方法学:强调主动地多次反复迭代
面向对象方法=+对象+继承+用消息通信

3.掌握软件生命周期模型

组成:三个时期八个阶段
软件制造工程期末复习知识点汇总(一)——软件工程概述_第1张图片
问题定义:问题是什么=》关于系统规模和目标的报告书
可行性研究:问题是否有解决方案=》系统的高层逻辑模型(数据流图、成本效益分析),可行性论证报告
需求分析:必须做什么=》系统的逻辑模型(数据流图、数据字典、简要的算法描述),需求规格说明书
概要设计:如何解决已提出的问题=>系统流程图、成本效益分析,系统体系结构(层次图或结构图)
详细设计:怎样具体实现该系统=》程序流程图、PAD图、N-S图
编码和单元测试:得到正确的程序模块=》代码和测试报告
综合测试:得到符合要求的软件=》测试计划、详细测试方案以及实际测试结果,完整一致的软件配置
软件发布、运行、维护:使系统持久地满足用户的需要=》完整准确的维护记录
其中维护占生命周期的一半以上,维护又细分为:完整性维护(对应用户需求)>适应性维护(软件运行环境)~改正性维护(Bug)>预防性维护(预防Bug)

4.为特定的项目选择适合的模型

软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤

软件过程模型:
软件过程模型 要点 优点 缺点 适用范围
瀑布模型 每个阶段都有文档产出 文档驱动的有序方法 只能通过文档了解产品,交付产品可能不符合客户的要求 项目周期较短。需求是预知的,软件实现方法是成熟的;
快速原型模型 不带反馈环,线性顺序进行,本质是“快速 确保交付的产品符合客户的要求 没有证明无懈可击 无完整的需求说明,只有一些基本要求
增量模型 每一个增量均发布一个可操作产品 增大投资的早期回报,能在较短的时间内,提供可完成部分工作的初步产品给用户; 要求较高,要求开放的结构,可能退化为建造-修补模型 需求经常改变,开发人员数量不够
螺旋模型 强调风险分析(快速原型+瀑布模型)+风险分析 结合上述所有模型的特性,风险驱动 开发成本,只能用于大型的内部软件产品,开发者必须精通风险分析和风险排除 适用于庞大、复杂并具有高风险的系统。
喷泉模型 无间隙 各个阶段没有明显的界限,开发人员可以同步进行开发。 不利于项目的管理,要求严格管理文档,使得审核的难度加大 适用于面向对象的软件开发过程。
Rational统一过程(RUP) 迭代的,以架构为中心的,用例驱动的软件开发方法。四个阶段:初始阶段,精化阶段,构建阶段,移交阶段
敏捷过程之极限编程(XP) 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。极限编程(XP)是敏捷过程中最富盛名的一个 高适应性,以人为本,以测试为驱动 需求模糊,规模小进度紧、需求变化大、质量要求严的项目。不适合项目团队超过10人的中大型项目,团队人员异地分布的项目;
微软过程 每一个生命周期发布一个递进的版本,各生命周期持续快速地迭代循环 综合了Rational统一过程和敏捷过程的优点 对方法、工具和产品等方面不够全面

你可能感兴趣的:(课程学习)