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

软件开发方法

结构化法

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

面向对象方法

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

面向服务的方法

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

原型法【需求阶段】

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

其他开发方法

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

软件开发模型

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

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

在这里插入图片描述

瀑布模型

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

迭代和增量

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

增量模型与螺旋模型

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

V模型和喷泉模型

V模型(测试贯穿始终)

在这里插入图片描述

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

在这里插入图片描述

构建组装模型

在这里插入图片描述

快速应用开发模型(RAD)

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

在这里插入图片描述

统一过程

在这里插入图片描述

敏捷方法

在这里插入图片描述

4大价值观

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

12条过程实践规则

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

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

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

逆向工程

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

需求工程

需求获取

在这里插入图片描述

需求分析

在这里插入图片描述

UML

在这里插入图片描述

UML4+1视图

在这里插入图片描述

UML图

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值