Why is the designed software not easy to use? That's because of unfamiliarity with the software development model! Familiarize yourself with the software development model

foreword

  The previous article briefly introduced the computer composition principle and architecture , and this article will continue the software development model based on the summary records. I hope you will like it. I will introduce the basic knowledge of software design model through this article. I hope you will like it and learn and communicate together. If you need a mind map of the basic knowledge of software development models, you can leave a message under the question, and the author will contact you as soon as possible and send it to you.

  Because the knowledge involved in the software development model is very rich, this article introduces the knowledge points used in the software development model, which will provide reference and help for your systematic learning of the software development model.

software development model

  In the process of software development, we often need to pay attention to the software development process, activities and tasks. This architecture is the software development model. Borrowing from the encyclopedia description: the software development model refers to the structural framework of the entire process, activities and tasks of software development.

  Software development includes phases such as requirements, design, coding, testing, and sometimes maintenance.

  The software development model can express the whole process of software development clearly and intuitively, clearly defines the main activities and tasks to be completed, and is used as the basis for software project work. For different software systems, different development methods can be used, different programming languages ​​and people with different skills can be used to work, different management methods and means can be used, and different software tools and different software engineering methods can be used. surroundings.

  • rapid prototyping model

  The rapid prototyping model requires the rapid construction of a working software prototype in order to understand and clarify problems, so that developers and users can reach a consensus, and finally develop a customer-satisfying software product based on the identified customer needs. - Evolutionary Model - Spiral Model - Waterfall Model - Incremental Model

  • V model

    • process

      • demand analysis
      • Outline design
      • detailed design
      • coding
      • unit test
      • Integration Testing
      • System test
      • Acceptance Test
    • Features: test segmentation, requirement refinement, early detection of problems

  • RAD rapid development model

    • Composed of waterfall model and componentized model

    • process

      • business modeling
      • data modeling
      • Process modeling
      • application generation
      • test delivery
  • Agile development methods

    • agile development model

      • Adaptive development
      • crystal method
      • Feature Driven Development
      • SCRUM
      • Extreme programming
    • The basic principle

      • short and easy meeting
      • Small version release
      • less documentation
      • Cooperation is important
      • direct customer engagement
      • automated test
      • Adaptation plan adjustments
      • pair programming
      • Test Driven Development
      • Continuous Integration
      • refactor
    • Four Values

      • communicate
      • Simple
      • feedback
      • courage
    • Five principles

      • quick feedback
      • Simplicity assumption
      • step by step
      • advocate for change
      • 优质工作
  • 软件需求

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

    • 动态测试

      • 黑盒测试

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

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

    • 静态测试

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

      • 单元测试

      • 集成测试

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

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

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

  • 项目管理

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

    • 开发过程

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

    • 缺点:需求不明确

    • 结构化的开发

  • 螺旋模型

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

    • 引入了风险分析

    • 包含

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

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

    • 提高复用性

    • 过程

      • 需求分析和定义

      • 软件架构设计

      • 构件库的建立

        • 构件标准

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

      • 测试发布

  • 信息系统开发方法

    • 结构化方法

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

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

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

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

    • 概要设计

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

  • 软件维护

    • 可维护性

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

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

    • 阶段式

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

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

结语

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

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

I am participating in the recruitment of the creator signing program of the Nuggets Technology Community, click the link to register and submit .

Recommended reading

[Spring Boot Quick Start] 25. Introduce Spring Boot's quick access to Dingding group robots in detail

Halfway through 2022, it feels like yesterday in a trance, do you still remember the promise made that year?

Spring Boot column, Spring Boot Quick Start series. This column is for Java developers, especially those who are new to Spring Boot and technical staff who need to move from traditional Spring to Spring Boot development. Lots of examples for quick Spring Boot projects

Guess you like

Origin juejin.im/post/7122486371817619463