软件的概念
软件是在计算机系统支持下能够完成特定功能和性能的程序、数据和相关文档
软件 = 知识+程序+数据+文档
软件危机
软件危机是指落后的生方式无法满足迅速增长的计算机需求,从而导致软件开发和过程维护出现一系列严重问题的现象。
软件工程的概念
软件工程定义的第一部分内容要求,软件开发、维护、和运行的过程是系统的规范的
软件工程的第二部分说明软件工程需要相关的科学研究做基础,需要方法学的支持。
软件过程模型
软件过程模型定义软件开发活动,给出他们之间的逻辑关系,管理软件工程进度表,为软件开发提供框架和方法。
软件过程模型—瀑布模型
1、软件过程模型又叫软件生命周期模型
2、特点:线性结构,前一阶段后后一阶段紧密联系,每一阶段之后都有评审活动。
3、局限性
确定需求后才能进行后续工作,不适应需求的变化
用户见面晚。
纠错晚,成本高。
软件过程模型—带反馈瀑布模型
特点:基于瀑布模型,每个阶段都有一个反馈线
综上,瀑布模型比较适合规模小,需求比较稳定的软件产品开发
软件过程模型—增量过程模型
特点:将需求分解,划分为一系列的增量,每个增量也划分为几个阶段
缺点:分解困难,针对相交情况的处理
优点:
核心功能见面再早、风险小
保持良好的体系架构
增量规模不能大(<20K行代码)
软件过程模型—原型建造模型
1、快速开发原型的途径:
2、快速建模的途径:
界面建模:
利用敏捷软件开发的方法快速开发一个工作原型;
找若干个类似软件向客户展示部分功能
3、原型分类:抛弃型,应用型
4、优点:与用户见面快,并发成功率高,适合需求不大确定的大系统
5、缺点:周期长,开发成本高
软件过程模型—螺旋模型
螺旋模型=瀑布模型+快速模型+风险分析
适合大型软件的开发。
软件过程模型—构件模型
软件过程模型—通用过程模型
敏捷开发
个体和交互胜过过程和工具
客户合作胜过合同谈判
响应变化要胜过遵循计划