1.1 软件危机
软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机主要有以下典型表现:
1 对软件开发成本和进度的估计常常很不准确。
2. 用户对“已完成”的软件系统不满意的现象经常发生。
3. 软件产品的质量往往靠不住。
4. 软件常常是不可维护的。
5. 软件通常没有适当的文档资料。
6. 软件成本在计算机系统总成本中所占的比例逐年提升。
7. 软件开发生产率提高的速度,远远跟不上需求。
产生软件危机的原因:
1软件本身的特点有关
2软件开发和维护的方法不正确(忽视需求分析,轻视软件维护)
3面对日益增长的软件需求,人们显得力不从心。
拓展:
如何解决软件危机(方法和工具)+ 管理,1968年软件工程应运而生。
软件维护费用大约占软件总费用的55%~70%。
1.2 软件工程
是指导计算机软件开发和维护的一门工程学科。
软件工程的7条基本原理:
1、用分阶段的生命周期计划严格管理;
2、坚持进行阶段评审;
3、实行严格的产品控制;(主要实行基准配置管理,基准配置又叫基线配置);
4、采用现代程序设计技术;
5、结果应能清楚的审查;
6、开发小组的人员应该少而精;
7、承认不断改进软件工程实践的必要性。
软件工程方法学三要素:方法、工具和过程。
软件工程方法学:1 传统方法学,也成生命周期方法学或结构化泛型。2 面向对象方法学。
1.3 软件生命周期
三个阶段:计划定义、开发设计、运行维护
八个时期:
(计划定义阶段)问题定义、可行性研究、需求分析。
(开发设计阶段)总体设计、详细设计、编码、综合测试。
(运行维护阶段)运行维护
1.4 软件过程
通常使用生命周期模型简洁的描述软件过程,又叫过程模型。
一、 瀑布模型
特点:
1、阶段具有顺序性和依赖性(文档驱动)
2、推迟实现;
3、质量保证;
缺点:1、几乎完全依赖于书面的规格说明,可能导致最终产品不能真正满足客户需要。
2、不能变更需求。
3、适用于需求明确的中小型项目开发。
二、快速原型模型
不带反馈环,用户参与面广,迭代过程(用户根据原型提出修改意见,直到最终确定功能)。
适合需求模糊的小型软件开发
三、增量模型
也称渐增模型,可以动态变更需求。
适合容易分块的大型软件开发
四、螺旋模型(瀑布模型+快速原型模型)
增加了风险分析,适合具有不明确性的大型项目开发。
增量模型和螺旋模型属于演化模型,它遵循迭代的思想,又叫迭代化开发模型。
五、喷泉模型
面向对象的软件过程模型(无缝、迭代)
六、构件集成模型
适合领域工程、行业的中型软件开发
下面介绍形式化方法模型:
七、转换模型(一种理想模型,尚无成熟工具支持):是将形式化软件开发和程序自动生成技术相结合的一种软件开发模型。
八、净室模型
形式化的增量开发模型,力求在分析和设计阶段就消除错误,然后再“洁净”的状态下实现软件的制作。
开发团队要熟悉形式化方法。
九、统一过程(RUP)
特点:迭代和面向对象。
4个阶段,9个核心工作流如下:
阶段:初始、细化、构造、迁移。
6个核心过程工作流:业务建模、需求、分析与设计、实现、测试、部署。
3个核心支持工作流:配置与变更管理、项目管理、环境。
在细化阶段,设计并确定系统的体系结构。RUP通常以架构为中心。
RUP具有多功能性和广泛适用性。
RUP软件设计活动:
1、体系结构设计
2、用况设计
3、对类设计
RUP测试活动:
1、计划测试
2、设计测试
3、实现测试
十、敏捷过程
目的:更具灵活性。
4个简单价值观:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!