2.软件工程以及开发模型

软件危机和软件工程

 软件危机:

 落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现的一系列严重问题。
 引起软件危机的主要问题设是软件质量问题

 软件工程:

 软件开发技术:开发方法、软件工具、软件工程环境
 软件项目管理:软件质量、进度控制、人员组织、项目计划
 软件工程主要解决软件质量问题;
 软件测试是软件质量管理体系中一个非常重要的手段。

软件生命周期

生命周期模型:
 问题定义
 可行性分析
 需求分析(需求规格说明书)
 概要设计(架构文档)
 详细设计(详细文档)
 编码(源代码)
 测试(测试报告)和维护。系统测试

软件开发模型

瀑布模型

 最早提出的软件开发的过程模型。
 1.计划阶段——《项目计划》——定义阶段
 2.需求分析阶段——SRS(软件需求说明)《需求规格说明书》
 3.设计——概要设计HLD、详细设计LLD
 4.编码
 5.测试**——开发阶段**
 6.运行和维护**——维护阶段**
 存在问题
  强调时间顺序的严格执行。前阶段不完成,后阶段不开始,缺乏灵活性。
  将测试放在了编码之后,没有体现测试贯穿生命周期的原则。可以避免需求类问题延续到代码完成才暴露或者被发现。
 优点
  提供了按阶段划分的检查点
  前一阶段完成后、只需要去关注后续阶段
 缺点
  阶段之间产生大量文档,增加了工作量
  线性开发,整个过程末期才能见到开发成果、增加了开发风险
  不适用于用户需求的变化

螺旋模型

 引入了其他模型不具备的风险分析。使软件在无法排除重大风险时有机会停止,减少损失。适用于大型昂贵的系统级的软件应用。

迭代模型

 迭代表示在之前(稳定、可执行)版本的基础上再加强和迭代,技术更深入的开发。
 开发迭代是一次完整的经过所有工作流程的过程
 优点:
  降低了在一个增量上的开支风险
  降低了产品无法按照既定进度进入市场的风险
  加快整个开发进度。深入和优化
  使适应需求的变化会更容易些

敏捷模型-scrum(快速、灵活)

 敏捷宣言可以指导迭代的以人为中心的软件开发方法。
 需求——分解为story——开发——再划分——story完成——开发演示——回顾——交付潜在可交付产品

增量模型

 把软件分割成独立的模块,分批次完成和交付。
 缺点:打破原有软件结构和框架可能会带来一定的风险。
 一般和迭代模型一起运用。软件增加新功能;优化了……功能;修复了某些bug.

快速原型模型

 原型:可以模拟操作、简单运行
 应用和工具:Axure制作原型。
 早期确定用户需求,确认之后进行开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值