为什么设计的软件不好用?那是因为不熟悉软件开发模型!一文熟悉软件开发模型

前言

  上一文简单介绍了计算机组成原理及体系结构,本文将继续基于总结记录的软件开发模型。希望酒友们喜欢,将通过本文介绍软件设计模型的基础知识,希望掘友们喜欢,一起学习交流。需要软件开发模型基础知识思维导图的可以在问下留言,作者会第一时间联系掘友,发送给掘友。

  由于软件开发模型涉及到的知识非常丰富,本文介绍软件开发模型中用到的知识点,将为您系统的学习软件开发模型提供参考和帮助。

软件开发模型

  在我们做软件开发的过程中,经常需要关注软件开发过程、活动和任务,这个架构就是软件开发模型。借用百科描述:软件开发模型是指软件开发全部过程、活动和任务的结构框架。

  软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。

  软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。

  • 快速原型模型

  快速原型模型需要迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。 - 演化模型 - 螺旋模型 - 瀑布模型 - 增量模型

  • V模型

    • 过程

      • 需求分析
      • 概要设计
      • 详细设计
      • 编码
      • 单元测试
      • 集成测试
      • 系统测试
      • 验收测试
    • 特点:测试细分,需求细化,及早发现问题

  • RAD快速开发模型

    • 由瀑布模型和构件化模型组合而成

    • 过程

      • 业务建模
      • 数据建模
      • 过程建模
      • 应用生成
      • 测试交付
  • 敏捷开发方法

    • 敏捷开发模型

      • 自适应开发
      • 水晶方法
      • 特征驱动开发
      • SCRUM
      • 极限编程
    • 基本原则

      • 短平快的会议
      • 小型版本发布
      • 较少的文档
      • 合作为重
      • 客户直接参与
      • 自动化测试
      • 适应性计划调整
      • 结对编程
      • 测试驱动开发
      • 持续集成
      • 重构
    • 四大价值观

      • 沟通
      • 简单
      • 反馈
      • 勇气
    • 五大原则

      • 快速反馈
      • 简单性假设
      • 逐步修改
      • 提倡更改
      • 优质工作
  • 软件需求

    • 分类:业务需求、用户需求、系统需求
    • 功能需求、性能需求、约束设计
    • 基础需求、期望需求、兴奋需求
  • 软件测试

    • 动态测试

      • 黑盒测试

        • 等价类划分
        • 边界值分析
        • 错误推测
        • 因果图
      • 白盒测试

        • 基本路径测试
        • 循环覆盖测试
        • 逻辑覆盖测试
      • 灰盒测试

    • 静态测试

      • 桌前检查
      • 代码走查
      • 代码审查
    • 软件测试阶段

      • 单元测试

      • 集成测试

        • 一次性组装
        • 增量式组装
      • 确认测试

        • 内部确认测试
        • Alpha测试
        • Beta测试
        • 验收测试
      • 系统测试

  • 环路复杂度计算 :边数-结点数+2

  • 项目管理

    • 范围管理
    • 时间管理
    • 成本管理
    • 质量管理
    • 人力资源管理
    • 沟通管理
    • 风险管理
    • 采购管理
    • 整体管理
  • 瀑布模型SDLC

    • 开发过程

      • 软件计划
      • 需求分析
      • 软件设计
      • 程序编码
      • 软件测试
      • 运行维护
    • 适合场景:需求明确;二次开发

    • 缺点:需求不明确

    • 结构化的开发

  • 螺旋模型

    • 包含:瀑布模型、原型、增量模型、演化模型的特征

    • 引入了风险分析

    • 包含

      • 制定计划
      • 风险分析
      • 客户评估
      • 实施过程
  • 喷泉模型

    • 迭代
    • 无间隙
    • 面向对象的模型
  • 构建组装模型CBSD

    • 提高复用性

    • 过程

      • 需求分析和定义

      • 软件架构设计

      • 构件库的建立

        • 构件标准

          • CORBA
          • EJB
          • COM/DCOM/COM+
      • 应用软件建立

      • 测试发布

  • 信息系统开发方法

    • 结构化方法

      • 用户至上
      • 严格区分阶段
      • 系统开发的整体性和全体性
      • 自顶向下,逐步求解
    • 原型方法

      • 适用于需求不明确
      • 包括抛弃式原型和演化式模型
    • 面向对象方法

      • 更好的复用性
      • 全面合理统一的模型
      • 分析设计实现界限不明确
    • 面向对象方法

      • 操作服务业务
      • 基础设计层、应用结构层和业务组织层
      • 服务发现、服务规约、服务实现
  • 结构化设计

    • 概要设计

      • 自顶向下,逐步求精
      • 信息屏蔽
      • 模块独立,低耦合高内聚
    • 详细设计

  • 软件维护

    • 可维护性

      • 易分析性
      • 易改变性
      • 稳定性
      • 易测试性
    • 维护类型

      • 改正性维护
      • 适应性维护
      • 完善性维护
      • 预防性维护
  • 软件过程改进CMMI

    • 阶段式

      • 过程管理
      • 项目管理
      • 工程
      • 支持
    • 连续式(组织能力成熟度)

      • 混乱
      • 已管理级
      • 已定义级
      • 定量管理级
      • 优化级

结语

  好了,以上就是软件开发模型基础的介绍,感谢您的阅读,希望您喜欢,如对您有帮助,欢迎点赞收藏。如有不足之处,欢迎评论指正。下次见。

  作者介绍:【小阿杰】一个爱鼓捣的程序猿,JAVA开发者和爱好者。公众号【Java全栈架构师】维护者,欢迎关注阅读交流。

我正在参与掘金技术社区创作者签约计划招募活动,点击链接报名投稿

推荐阅读

【Spring Boot 快速入门】二十五、详细介绍Spring Boot快速接入钉钉群机器人

2022年已经过半,恍惚之间犹如昨日,还记得那年许下的诺言吗

Spring Boot专栏,Spring Boot 快速入门系列。本专栏用于 Java 开发人员,尤其是初学 Spring Boot 和需要从传统 Spring 转向 Spring Boot 开发的技术人员。大量示例快速Spring Boot进行项目

猜你喜欢

转载自juejin.im/post/7122486371817619463