软件需求分析与系统设计笔记
简介
什么是软件?
软件是计算机系统中与硬件(hardware)相互依存的另一 部分,是程序、支持程序运行的数据以及与程序有关的文档的完整集合。
软件的特点:
- 灵活性
- 维护复杂
- 不会磨损和老化
- 软件依赖硬件和环境
- 软件的开发未全摆脱手工方式
- 软件是复杂的
- 软件是自定而非组装的
- 软件的成本相当昂贵
什么软件危机?
软件危机是在计算机软件的开发和维护过程中所遇到的一系列严重问题。
原因:
- 与软件本身的特点有关:逻辑部件、规模庞大
- 和软件开发与维护的方法不正确有关,如:
- 忽视需求分析
- 缺乏方法论指导
- 文档欠缺
- 忽视交流
- 忽视测试、维护
- 无质量保证休系
解决软件危机的途径:
- 对软件和软件开发的正确认识
- 推广和探索开发软件的成功技术和方法
- 开发和使用软件工具
什么是软件工程?
软件工程是使用系统化的、规范的、可量化的方法,指导软件开发、运行和维护的一门学
科。为建造高质量的软件提供一个框架。
软件工程三要素:工具、方法、过程。
软件过程模型
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,也叫过程模型。
典型的过程模型有:
- 瀑布模型(Waterfall model)
- 快速原型开发模型(Rapid Prototyping model)
- 增量模型(Incremental model)
- 螺旋模型(Spiral model)
其他模型有:
- 喷泉模型(Fountain model)
- 极限编程(eXtreme Programming)
- RUP(Rational Unified Process)
- 建造-修补模型(Build-and-fix model)
瀑布模型
定义:瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。
特点:
- 相邻阶段顺序性和依赖性
- 推迟实现的特点
- 质量保证的特点
优点:
- 迫使开发人员采用规范的方法
- 每个阶段必须提交文档
- 每个阶段的产品都必须质量验证
缺点:
- 需求难开始完全确定
- 文档驱动,风险大
- 灵活性差,一旦修改损失惨重
- 不支持软件复用和集成技术
适用范围:
- 需求稳定、变化小且开发人员能够一次性获取全部需求的项目
- 软件开发人员有丰富经验,对于应用领域非常熟悉
- 软件项目本身的风险很低
快速原型模型
快速构建起一一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。
基本思想:系统的需求定义贯穿于整个开发过程中,逐步精确与完善。
原型分类: 废弃型、追加型
快速原型特点:
- 线性开发模型(不带“反馈环”)
- 减少开发活动的盲目性和需求不确定
- 开发的系统能满足需求,修改较小
优点:
- 处理模糊需求
- 用户参与
- 可以快速构建出一个系统
缺点:
- 因为是快速构建,所以意味着功能简单
- 资源规划和管理较为困难
- 对开发环境要求高
适用范围:
- 已有产品(原型)
- 简单而熟悉的领域
- 有快速原型开发工具
- 进行产品移植或升级
增量模型
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。
特点:系统模块化和组件化
优点:
- 系统模块化,分批次地提交软件产品,使用户可以及时了解软件项目的进展
- 以组件为单位进行开发降低了软件开发的风险
- 开发顺序灵活
缺点:
- 要求待开发的软件系统可以被模块化
适用范围:
- 软件产品可以分批次地进行交付
- 待开发的软件系统能够被模块化
- 软件开发人员对应用领域不熟悉,难以- -次性地进行
- 系统开发
- 项目管理人员把握全局的水平较高
螺旋模型
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
特点:风险驱动
优点:风险分析、质量保证
螺旋模型适用于复杂的、高风险的大型软件项目
喷泉模型
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。
特点:迭代、无间隙
优点:
- 提高软件项目开发效率
- 节省开发时间
缺点:难以管理项目
喷泉模型适用于面向对象的软件开发
各模型优缺点:
未完待续...
标签:软件开发,模型,笔记,开发,原型,设计,软件,model From: https://www.cnblogs.com/hyjmango/p/16705953.html