第二章:软件过程

来源简介:本文章为一系列,软件工程学习笔记,根据《软件工程理论与实践》一书以及上课总结的笔记,单纯的笔记如有不完善请指出。
章节简介: 软件过程:软件的诞生和生命周期时一个过程,是为了开发出软件产品。



1. 传统软件生命周期的各个阶段

  • 可行性研究: 确定待开发软件产品所要解决的问题,需要多和用户交流。完成可行性分析报告
  • 需求分析: 解决用户提出的问题,目标系统需要做什么。完成需求规格说明书
  • 软件设计: 在需求分析的基础上,软件开发人员通过制定设计方案,把需求文档中表述的功能可视化操作。关注每个模块的细节
  • 编码: 编写程序代码
  • 软件测试: 发现软件产品中存在的软件缺陷,保证软件质量。
  • 软件维护: 软件错误修复,产品的更新,确保符合市场需求和软件能正常运行

2. 软件过程模型

软件开发模型是软件工程思想的具体化,反应了软件在其生命周期中各个阶段之间的衔接和过渡关系。把软件生命周期中的各个活动或步骤安排到一个框架中,将软件开发的全过程清晰直观的表达出来。

(1) 瀑布模型

  • 其和传统的生命周期差不多
  • 在软件开发的过程中,需求很少发生变化,开发人员可以一次性的获取到全部需求
  • 瀑布模型具有较差的可回溯性,在后续阶段中需求经常性的变更需要付出高昂的代价
  • 软件开发人员具有丰富的经验
  • 软件项目的风险较低

(2) 快速原型模型

本质是“快速”,开发人员尽可能块的建造出原型系统,以加快软件开发过程。

  • 已有产品或产品的原形(样品),只需要客户化的工程项目。
  • 简单而熟悉的行业或领域
  • 有快速原形开发工具
  • 进行产品移植或升级
收集需求
快速模型
构建
移交部署

(3) 增量模型

把待开发的软件系统模块化,将每个模块作为一个增量组件,从而进行分批次的分析,设计,编码和测试这些增量组件。

  • 相对于瀑布模型,增量模型不需要一次性将整个软件交给用户,而是分批次的提交。
  • 将待开发的软件系统模块化,使得用户及时了解软件项目的进展
  • 以组件为单位进行开发降低了软件开发风险
  • 开发顺序灵活
  • 软件产品可以分批次进行交付
  • 带开发软件系统能够进行模块化
  • 项目管理人员把握全局的水平较高
分析
设计
编码
测试
分析
设计
编码
测试
...

(4) 螺旋模型

螺旋模型是一种用于风险较大的大型软件项目开发的过程模型。该模型将瀑布模型与快速原型模型结合起来,并加入了两种模型所忽略的风险分析。

  • 四个活动:制定计划,风险分析,实施工程,客户评估
  • 优点:风险分析扩展到各个阶段,大幅度降低了软件开发的风险
  • 缺点:管理比较麻烦,可操作性不强,对管理人员要求高

(5) 喷泉模型

喷泉模型是一种面向过程的模型,同时也支持面向对象的开发。

  • 分析阶段:建立对象-关系和对象-行为模型
  • 设计阶段:从现实角度对模型进行修改和扩展
  • 编码阶段:使用面向对象语言和方法实现设计模式

3. 基于组件的开发模型

在实际中,很少的新产品开发完全是从零开发,都是或多或少的使用现有的组件或系统开发框架。

  • 需求分析后,开发人员从现有的组件库中筛选合适的组件。
  • 筛选完后,开发人员需要使用这些组件,一些无法利用的主键需要进行单独开发。
  • 最后将所有组件集成一起,进行系统测试。
需求定义
组件分析
需求修改
面向复用的系统设计
开发和集成
系统验证
组件库

4. 统一软件开发过程模型(RUP)

RUP模型是基于UML统一建模语言的,是一种面向对象软件开发模型;其适用的范围极为广泛,单是对开发人员素质要求极高

5. 敏捷开发

敏捷开发时一种轻量型软件工程方法,更强调开发过程中各种变化的必然性,需要团队成员之间充分的交流与沟通。

  • 尽早的交付有价值的软件让客户满意
  • 软件开发过程中可以进行需求变更,利用变更为客户创建竞争优势。
  • 经常交付软件,2到3周一次
  • 业务人员多和开发人员待在一起工作
  • 激励个人构建项目
  • 团队内部,消息传递是面对面交谈
  • 尽量时工作简单化
  • 每隔一段时间,团队一个反省如何才能有效地工作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值