• 系统架构设计师学习笔记——软件工程


    软件开发方法

    结构化法

    自顶向下,逐步分解求精严格分阶段,阶段产出标准化。应变能力差

    面向对象方法

    自底向上,阶段界限不明,更好应变,更好复用,符合人们的思维方式

    面向服务的方法

    粗粒度、松耦合、标准化和结构化
    抽象级别:操作(方法)【低】——> 服务【中】——>业务流程【高】

    原型法【需求阶段】

    原型法搭配其他开发方法使用,针对需求不明确
    按功能分:水平原型(界面)、垂直原型(复杂算法)
    按最终结果分:抛弃式、演化式

    其他开发方法

    形式化方法:数字模型化,所有东西都可以验明和验证,而不是测试。直接通过数学模型转化代码,过于理想化
    统一过程方法
    敏捷方法
    基于架构的开发方法

    软件开发模型

    开发模型是开发方法的下一层级,一个开发方法有多种开发模型

    瀑布+原型(结构化方法的模型)

    在这里插入图片描述

    瀑布模型

    在这里插入图片描述
    缺点:想着一口气开发完成,事实是需求总是变动的,无法一口吃个胖子

    迭代和增量

    在这里插入图片描述
    增量就是先具体完成一部分,在具体完成下一部分。迭代是所有功能大体完成,在一点点细化

    增量模型与螺旋模型

    在这里插入图片描述
    螺旋模型在瀑布模型的基础上加了增量和风险评估

    V模型和喷泉模型

    V模型(测试贯穿始终)

    在这里插入图片描述

    瀑布模型(早期著名面向对象模型,前面几个都是结构化方法)

    在这里插入图片描述

    构建组装模型

    在这里插入图片描述

    快速应用开发模型(RAD)

    CBSD(构建组装模型)+SDLC(瀑布模型)= RAD(快速应用开发模型)

    在这里插入图片描述

    统一过程

    在这里插入图片描述

    敏捷方法

    在这里插入图片描述

    4大价值观

    沟通:加强面对面沟通
    简单:不过度设计
    反馈:即使反馈
    勇气:接受变更的勇气

    12条过程实践规则

    简单设计
    测试驱动
    代码重构
    结对编程
    持续集成
    现场客户
    发行版本小型化
    系统隐喻
    代码集体所有制
    规划策略
    规范代码
    40小时工作制

    敏捷开发实际是一组开发方法

    极限编程:一些对费用控制严格的公司非常有效
    水晶方法:探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡
    开放式源码:程序开发人员在地域上分布很广【其他方法强调集中办公】
    SCRUM:明确定义可重复方法的过程
    功能驱动开发方法:开发人员分两类:首席程序员和“类”程序员
    ASD方法:核心是三个非线性的、重叠的开发阶段:猜测、合作与学习

    逆向工程

    逆向工程包括四个层级
    实现级:包括程序的抽象语法树、符号树、过程的设计表示
    结构级:反应程序部分之间相互依赖的信息,如调用图、结构图、程序和数据结构
    功能级:反映程序段功能及程序段之间关系的信息,例如数据和控制流模式
    领域级:反应程序分量或程序诸实体与应用领域概念之间的对应关系的信息,例如实体关系模型

    需求工程

    需求获取

    在这里插入图片描述

    需求分析

    在这里插入图片描述

    UML

    在这里插入图片描述

    UML4+1视图

    在这里插入图片描述

    UML图

    在这里插入图片描述

  • 相关阅读:
    vue双向绑定/小程序双向绑定?
    指针的进阶应用之双指针、三指针
    【mysql篇-进阶篇】SQL优化
    工作经验总结之 Eslint 报错和开发技巧。
    MySQL - 函数及约束命令
    速码!!BGP最全学习笔记:BGP概述
    物联网网关可以采集水质传感器哪些数据?
    73. 矩阵置零
    微服务介绍
    常见的屏幕接口
  • 原文地址:https://blog.csdn.net/qq_45672914/article/details/126198925