软件工程----过程模型、敏捷开发
软件的概念
软件基于计算机系统的支持,在特定功能与性能要求下具备相应的程序代码、数据结构和文档资料。
软件=知识体系+程序代码+数据结构+文档资料
软件危机
该现象表明传统方法由于计算机需求急剧增长而显得力不从心。
由于软件需求急剧增长而导致传统方法逐渐暴露出诸多重大挑战。
该现象主要表现为传统方法难以应对日益快速增长的计算机需求。
在软件开发过程中以及维护过程中出现了诸多重大的挑战。
软件工程的概念
软件工程定义的第一部分对内容提出了要求, 其中涉及的软件开发、维护以及运行过程被视为系统的规范。
软件工程的第二部分强调了该领域需建立在相关科学研究的基础上, 并需借助方法学来支持。
软件过程模型
通过软件过程模型来定义和规划软件开发活动,在项目实施过程中揭示各环节之间的内在联系,并对整个系统的运行状态进行实时跟踪和监控;同时构建起系统化的实施框架,并提供了具体的开发策略。
软件过程模型—瀑布模型
1、软件工程过程模型又被称作软件生命周期模型。
2、其主要特点表现为呈现出线性结构特征,在前后相邻两个阶段之间具有紧密的关联性,在每个阶段结束后都会有相应的评估环节。
3、其主要局限包括:
在项目初期若未明确需求就难以启动后续工作这一现象使得系统的需求难以及时响应发生变化。
在某些情况下可能出现用户与系统工程师见面延迟的情况。
当出现错误时发现并纠正需要较长时间这会增加修复的总成本。
软件过程模型—带反馈瀑布模型
核心特征:遵循瀑布模型,在各个阶段均设有反馈机制
总体而言,采用瀑布模型特别适用于那些规模较小且需求较为稳定的应用软件开发项目。
软件过程模型—增量过程模型
特点:通过需求分解为一系列增量和阶段来实现功能
缺点:分拆困难及应对相交情况的问题存在
优点:
提前实现核心功能可降低风险
维持良好的系统架构有助于稳定运行
增量规模设定为不超过20K行代码以确保可管理性
软件过程模型—原型建造模型
1、快捷实现原型的方法:
2、高效完成建模任务的方式:
界面设计:
通过敏捷软件开发方法快速搭建工作原型模型;并可参考多个类似软件产品展示关键功能模块3、模型类型划分:分为弃用型和应用型两大类
4、优势特点:操作简便且上手迅速,在需求尚不明确的情况下特别适合大规模系统设计
5、不足之处:耗时较长且成本较高
软件过程模型—螺旋模型
螺旋模型=瀑布模型+快速模型+风险分析
适合大型软件的开发。
软件过程模型—构件模型
软件过程模型—通用过程模型
敏捷开发
个人互动超越过程与工具
客户合作超出合同商谈
快速反应超越按部就班
