一、软件生命周期
1、软件定义期:
软件定义是由软件系统分析人员和用户合作,确定软件是什么,针对有待开发的软件系统进行分析、规划和规格描述,为今后的软件开发做准备。
(1)软件任务立项
(2)项目可行性分析
(3)制定项目计划
(4)软件需求分析
2、软件开发期:
在驿软件 规格完成定义以后,接着可以说在此基础上对软件 实施开发,并由此制作出软件 产品。这个时期需要分阶段地完成以下几项工作。
(1)软件概要设计( 也称总体设计)
概要设计是从总体上对软件进行设计
(2)软件详细设计
以概要设计为依据,用于确定软件结构中每个模块的内部细节,为编写程序提供最直接的依据。
(3)编码与单元测试
(4)系统集成测试
(5)系统确认验证
3、软件运行和维护期
软件的维护过程,也就是修正软件错误,完善软件功能。
二、软件开发过程模型
软件过程模型是人们在软件开发实践中总结出来的、适用于具有某一类特征项目的标准开发过程。
常见的软件开发过程模型很多,包括瀑布模型、演化模型(包括原型模型、增量模型和螺旋模型)、喷泉模型、RUP过程等等。
在实践中,软件项目开发团队必须依据拟开发项目的特点以及对用户需求的把握程序,选择某一开发过程模型做一定的剪裁,设计出适合具体项目的软件开发过程。
(1)瀑布模型(也称线性顺序模型,出现的时期最早,使用最多的)
计划、需求分析、设计(概要设计、详细设计)、编码、测试、运行维护
瀑布模型中的“瀑布”意味着过程中的开发活动是严格线形的,就像山顶倾泻下来的水,逐级下落。
(文档是瀑布模型中每个阶段的体现)
特征:
需求稳定、变化很小且开发人员能够一次性获取全部需求的项目
软件 开发人员具有丰富经验
风险
(2)原型模型
收集需求、快速原型、构建、移交部署、收集需求
(2.1)快速原型方法
快速原型方法是原型模型在软件分析、设计阶段的应用,用来解决用户对软件 每户在需求上的模糊认识,或用来试探某种设计是否能够获得预期结果。
快速原型方法具有以下一些特点:
A、快速原型用来获取用户需求,或是用来试探设计是否有效。
B、快速原型是暂时使用的,因此并不要求完整。
C、快速原型不能贯穿软件
(2.2)原型进化模型
原型进化对开发过程的考虑是,针对有待开发的软件系统,先开发一个原型系统给用户使用,然后根据用户使用情况的意见 反馈,对原型系统不断修改,使它逐步接近并最终到达开发目标。
原型进化模型的优点与缺点(手机照片)
(3)增量模型
增量模型具有以下特点:
增量模型主要适用于有以下特点的项目:(书P10)
(4)螺旋模型
螺旋模型既是一种引入了风险分析与规避机制的过程模型,又是瀑布模型、快速原型方法和风险分析方法的有机结合。
(5)喷泉模型
喷泉模型是专门针对面向对象软件开发方法而提出的。
(6)统一软件开发过程
三、软件企业过程能力评价模型(分为五级)
第一级:初始级
第二级:可重复级
第三级:定义级
第四级:管理级
第五级:优化级
CMMI:是IT企业持续提高经营能力的基础。
四、面向对象技术
面向对象 方法是近20年来出现并繁荣的一种新的软件开发方法,它是由
面向对象分析 (OOA——Object-Oriented Analysis);
面向对象设计(OOD——Object-Oriented Design);
向对象编程(OOP——Objict-Oriented Programming)组成。
面向对象的基本概念包括对象、类、消息等等。
对象:对象是要研究的任何事物。
类:类是对象的模板。
消息:消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。
面向对象技术的基本特征是:封装、继承、多态。
封装性:封装是一种信息隐蔽技术,它体现于人类的说明 。
继承性:继承性是子类自动共享父类之间数据和方法的机制。
多态性:对象根据所接收的消息面做出的动作。