一、 软件工程学概述
1.1软件危机
1.1.1 软件危机的介绍
软件危机是指计算机软件的开发和维护过程中所遇到的一系列的严重问题。
概括的说软件危机包含下述两方面的问题:
1. 如何开发软件,以满足对软件日益增长的需求
2. 如何维护数量不断膨胀的已有软件
具体的来说软件危机有一下具体的七个表现:
1. 对软件开发成本和进度的估计常常很不准确
2. 用户对”已完成的”软件系统不满意的现象经常发生
3. 软件质量往往不可靠
4. 软件常常是不可维护的
5. 软件通常没有适当的文档材料
6. 软件成本在计算机系统总成本中所占比例追念上升
7. 软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势
1.2 软件工程
1.2.1软件工程的介绍
概念:软件工程是指导计算机软件开发
和维护
的一门工程学科.
作用:采用工程的概念,原理,技术,和方法来开发和维护软件,把经过实践考验而证明正确的管理技术
和当前能够得到最好的技术方法
结合起来,以经济地开发出高质量的软件并有效的维护它。
目标:在给定成本、进度的前提下,开发出具有适用性
、有效性
、可修改性
、可靠性
、可理解性
、可维护性
、可重用性
、可移植性
、可追踪性
、可互操作性
和满足用户需求
的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
1) 付出较低的开发成本;
2)达到要求的软件功能;
3)取得较好的软件性能;
4)开发的软件易于移植;
5)需要较低的维护费用;
6)能 按时完成开发任务,及时交付使用;
7)开发的软件可靠性高
产生:面临着软件危机,具体有:
1. 软件费用
2. 软件可靠性
3. 软件维护
4. 软件生产率
5. 软件重用
1.2.3 软件工程方法学
定义:
软件工程方法学包括三个要素:方法
,工具
,过程
方法
是完成软件开发的各项任务的技术方法
工具
是为运用方法提供的自动或半自动的软件工程支撑环境
过程
是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤
①传统方法学
特点:将全部过程划分为若干个阶段,然后在按照顺序完成
②面向对象方法学
把数据和行为看得同等重要,他是一种以数据为主线,把数据和对数据的操作紧密结合起来的方法。强调主动地多次反复迭代
1.3 软件的生命周期
软件生命周期有软件定义,软件开发,运行维护这三个时期
八个阶段:问题定义,可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试,软件维护
1.4软件过程
☞瀑布模型:文档驱动、线性迭代、一次交付
☞快速原型:需求驱动、快速构建、边用边改
☞增量模型:构件驱动、逐步构建、分批交付
☞螺旋模型:风险驱动
☞喷泉模型:面向对象模型、阶段重叠
1.4.1 RUP软件开发周期
- 核心工作流
RUP中有9个核心工作流,前六个位核心过程工作流程,后三个为核心支持工作流程 - 工作阶段
- RUP迭代式开发
1.4.2 敏捷过程和极限编程
☞敏捷过程(四点宣言)
1. 个体和交互胜过过程和工具
2. 可以工作的软件胜过面面俱到的文档
3. 客户合作胜过合同谈判
4. 响应变化胜过遵循计划
☞极限编程
概念:极限编程是一个轻量级的、灵巧的软件开发方法,是一种控制开发过程的思想,不是定义一个具体的开发流程。
- 基线编程的有效实践
- 极限编程的整体开发过程
- 极限编程的迭代过程
敏捷过程能够较好的适应商业竞争环境下对小型项目提出的有限资源的有限开发时间的约束。