首页 > 其他分享 >软件需求分析与系统设计笔记

软件需求分析与系统设计笔记

时间:2022-09-18 22:03:02浏览次数:77  
标签:软件开发 模型 笔记 开发 原型 设计 软件 model

软件需求分析与系统设计笔记

简介

什么是软件?

软件是计算机系统中与硬件(hardware)相互依存的另一 部分,是程序、支持程序运行的数据以及与程序有关的文档的完整集合。
在这里插入图片描述
软件的特点:

  • 灵活性
  • 维护复杂
  • 不会磨损和老化
  • 软件依赖硬件和环境
  • 软件的开发未全摆脱手工方式
  • 软件是复杂的
  • 软件是自定而非组装的
  • 软件的成本相当昂贵

什么软件危机?

软件危机是在计算机软件的开发和维护过程中所遇到的一系列严重问题。

原因:

  1. 与软件本身的特点有关:逻辑部件、规模庞大
  2. 和软件开发与维护的方法不正确有关,如:
  • 忽视需求分析
  • 缺乏方法论指导
  • 文档欠缺
  • 忽视交流
  • 忽视测试、维护
  • 无质量保证休系

解决软件危机的途径:

  1. 对软件和软件开发的正确认识
  2. 推广和探索开发软件的成功技术和方法
  3. 开发和使用软件工具

什么是软件工程?

软件工程是使用系统化的、规范的、可量化的方法,指导软件开发、运行和维护的一门学
科。为建造高质量的软件提供一个框架。

软件工程三要素:工具、方法、过程。

软件过程模型

生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,也叫过程模型
典型的过程模型有:

  • 瀑布模型(Waterfall model)
  • 快速原型开发模型(Rapid Prototyping model)
  • 增量模型(Incremental model)
  • 螺旋模型(Spiral model)

其他模型有:

  • 喷泉模型(Fountain model)
  • 极限编程(eXtreme Programming)
  • RUP(Rational Unified Process)
  • 建造-修补模型(Build-and-fix model)

瀑布模型

定义:瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。
特点:

  1. 相邻阶段顺序性和依赖性
  2. 推迟实现的特点
  3. 质量保证的特点

优点:

  • 迫使开发人员采用规范的方法
  • 每个阶段必须提交文档
  • 每个阶段的产品都必须质量验证

缺点:

  • 需求难开始完全确定
  • 文档驱动,风险大
  • 灵活性差,一旦修改损失惨重
  • 不支持软件复用和集成技术

适用范围:

  1. 需求稳定、变化小且开发人员能够一次性获取全部需求的项目
  2. 软件开发人员有丰富经验,对于应用领域非常熟悉
  3. 软件项目本身的风险很低

快速原型模型

快速构建起一一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。
基本思想:系统的需求定义贯穿于整个开发过程中,逐步精确与完善。
原型分类: 废弃型、追加型
快速原型特点:

  1. 线性开发模型(不带“反馈环”)
  2. 减少开发活动的盲目性和需求不确定
  3. 开发的系统能满足需求,修改较小

优点:

  • 处理模糊需求
  • 用户参与
  • 可以快速构建出一个系统

缺点:

  • 因为是快速构建,所以意味着功能简单
  • 资源规划和管理较为困难
  • 对开发环境要求高

适用范围:

  1. 已有产品(原型)
  2. 简单而熟悉的领域
  3. 有快速原型开发工具
  4. 进行产品移植或升级

增量模型

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

特点:系统模块化和组件化
优点:

  1. 系统模块化,分批次地提交软件产品,使用户可以及时了解软件项目的进展
  2. 以组件为单位进行开发降低了软件开发的风险
  3. 开发顺序灵活

缺点:

  1. 要求待开发的软件系统可以被模块化

适用范围:

  • 软件产品可以分批次地进行交付
  • 待开发的软件系统能够被模块化
  • 软件开发人员对应用领域不熟悉,难以- -次性地进行
  • 系统开发
  • 项目管理人员把握全局的水平较高

螺旋模型

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
特点:风险驱动
优点:风险分析、质量保证
螺旋模型适用于复杂的、高风险的大型软件项目

喷泉模型

喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。
特点:迭代、无间隙
优点:

  • 提高软件项目开发效率
  • 节省开发时间

缺点:难以管理项目
喷泉模型适用于面向对象的软件开发

各模型优缺点:

各模型的优缺点在这里插入图片描述

未完待续...

标签:软件开发,模型,笔记,开发,原型,设计,软件,model
From: https://www.cnblogs.com/hyjmango/p/16705953.html

相关文章

  • 20201322陈俊池学习笔记3
    第十章sh编程一、知识点归纳10.1sh脚本sh脚本是一个包含sh语句的文本文件,命令解释程序sh要执行该语句。创建mysh: #!/bin/bash #commentline echohello使......
  • 软件工程初认识
    我对软件的最深的印象就是手机上的app,电脑上的客户端,那软件实质上是什么呢?专业的解释是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、......
  • 《收获,不止Oracle(第二版)》笔记
    第1章意识少做事从学习开始(怎么学习这本书)1.1先学什么颇有学问数据库应用可以分为以下4类:开发、管理、优化和设计。1.2善于规划分类才有效果数据库角色可以分为以下......
  • 2022-2023-1 20221308 《计算机基础与程序设计》第三周学习总结
    作业信息班级的链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求的链接:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03教材学习内容总结《c......
  • Javaweb学习笔记第八弹
    继续MyBatis学习SQL语句警告提示问题产生原因:IDEA和数据库没有建立连接,不识别表的信息解决方式:在IDEA中配置MySQL数据库连接在IDEA的Maven项目中,如果想要直接通过IDEA......
  • 2022-2023-1 20221319《计算机概论和程序设计》第三周学习总结
    这个作业属于那个班级:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业模板:https://www.cnblogs.com/rocedu/p/9577842.html#JXJC作业要求:https://www.cnblog......
  • python爬虫入门笔记(随便记记,持续更新)
    准备:安装库pip3installbeautifulsoup4apt-getinstallpython-lxmlpip3installparse 一、获得从baidu.com中能够跳转到的页面(的链接)importrequests......
  • leetcode 622.设计循环队列
    622.设计循环队列难度中等402  设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它......
  • 第十章读书笔记
    SH编程1.sh脚本2.c和sh的区别3.命令行参数4.Sh变量$A相当于C语言中的指针。5.sh中的引号即需要转义(将原本具有特殊意义的字符普通化)6.sh语句(简......
  • 《计算机基础与程序设计》第3周学习总结
    2022-2023-120221405《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程<2022-2023-1-计算机基础与程序设计>这个作业要求在哪里<《计算机......