系统架构师 笔记0323


--
冯·诺依曼结构
也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
--
系统工程概念

最先进不计成本,先进东西来自于战争(二战)
--
系统工程方法

霍尔三维结构
    逻辑维度
    时间维度
    知识维度

切克兰德方法 核心不是 最优化,而是比较和探寻。

并行工程方法 制造过程与支持过程并行
综合集成法 钱学森命名

--
霍尔三维结构
    逻辑维
    时间维
    知识维
--
系统工程生命周期阶段

信息系统生命周期
产生阶段
开发阶段
运行阶段
消亡阶段
--
信息系统建设原则

高层管理人员介入原则
    如CIO介入 一把手工程
用户参与开发原则
    用户确定范围/核心用户全程参与/用户深度参与
--
信息系统开发方 法
结构化法
面向对象方法
面向服务的方法

--
TPS 业务处理系统 电子数据处理系统
批处理 批量处理
--
MIS系统 由业务处理系统发展而成,
是在TPS基础上引进大量管理方法对企业整体信息进行处理。
MIS 系统四大部件 信息源、信息处理器、信息用户和信息管理者。
--
ES 专家系统 内部含有某个领域具有专家水平的大量知识与经验,能够利用人类专家的知识和解决问题的方法来处理该领域的问题。

决策
--

软件工程

--
瀑布模型

需求分析 
软件设计
程序设计
    编码实现
    单元测试
    集成测试
    系统测试
        运行维护
        
需求说明书 SRS

特点
1 严格区分阶段,每个阶段因果关系紧密相连
2 只适合需求明确的项目(软件开发失败率比较高)

缺点
1 软件需求完整性、正确性难确定
2 严格串行化,很长时间才能看到结果
3 瀑布模型要求每个阶段一次性完全解决该阶段工作,这不现实。(是串行执行 的)
--
原型模型

步骤 (原型开发)
需求分析
软件设计
程序设计
    
    虚线
    编码实现
    单元测试
    集成测试
    系统测试
    原型维护
    
说明 做一个小系统展示核心功能

适合需求不明确的项目

原型模型两个阶段
1 原型开发阶段
2 目标软件开发阶段

两个分支
1 抛弃型原型

2 演化型原型
--
原型及相关模型

增量模型
--
V模型
测试贯穿于始终
测试分阶段,测试计划提前

需求分析  验收测试
        系统测试
概要设计  集成测试 (模块接口能不能正常)
详细设计  单元测试(单个模块的性能)
编码
--
迭代与增量
增量
    一块一块增加
迭代
    一轮一轮在变好

如影随形
--
螺旋模型
以快速原型为基础+瀑布模型 
考虑了风险问题

风险分析
开发和有效性验证
评审

适合大型系统
--
构件组装模型
优点 易扩展、易重用、降低成本、安排任务更灵活。
缺点 构件设计要求经验丰富的架构师、设计不好的构件难重用。

建立构件库 构件获取、构件管理
    建立库的成本低

模型建立 速度快、成本低

构件标准
    CORBA
    SUN J2EE
    Microsoft DNA
--

敏捷开发方法
--
基于构件的软件工程(CBSE)
CBSE 体现了【购买而不是重新构造】的哲学

可组装性 所有外部交互必须通过公开定义的接口进行。
可部署性:能独立实体平台上运行。
文档化 
独立性 可以在无其他特殊构件
标准化:符合某种标准化的构件模型。
--
构件组装模型
顺序组装 可以用两个已经存在的构件创建一个新的构件。
层次组装 两个构件间调用 接口兼容
叠加组装 多个构件合并形成新构件,对外提供接口。
--
快速应用开发模型(RAD)

RAD:
 SDLC瀑布+CBSD(构件) 
 
 业务建模
 数据建模
 过程建模
 应用生成
 测试与交付
--
统一过程(UP)

用例驱动
以架构为中心
迭代和增量

初始阶段 确定系统范围
细化阶段 设计及确定系统架构
构造 构件 开发剩余构件和应用程序功能   
移交 用户 

四个阶段
初始 细化 构造 移交

9个核心工作流
1 业务建模
2 需求
3 分析与设计
4 实现
5 测试 
6 部署
7 配置与变更管理
8 项目管理
9 环境
--
敏捷方法 (2000年逐步提出来)

发展
1 无软件开发方法
2 传统软件开发方法(瀑布模型)
    预设性、以开发过程为本、整体分阶段
3 敏捷方法
    适应性的、以人为本、增量迭代,小步快跑、适合小型项目

敏捷宣言
    个体和交互胜过过程和工具
    可工作的软件胜过大量文档
    客户合作胜过合同谈判
    响应变化胜过遵循计划
--
敏捷方法-XP

4大价值观
沟通
简单
反馈
勇气

12条过程实践规则
    简单设计
    测试驱动
    代码重构
    结对编程
    持续集成
    现场客户
    发行版本小型化
    系统隐喻
    代码集成所有制
    规划策略
    规范代码
    40小时工作机制
--
敏捷方法 SCRUM

产品待办列表 抽多少个需求
迭代4周 将这个迭代完成
每天站会 - 迭代评审会议 - 
--
敏捷方法
极限编程 XP :价值观【交流、朴素、反馈、勇气】、近螺旋式的开发方法。
水晶方法:提倡“机动性”,不同场景项目
SCRUM:侧重于项目管理。
特征驱动开发方法(FDD):有效开发3要素: 人、过程、技术。定义了6种关键的项目角色:项目经理、首席架构设计师、开发经理、主程序员、程序员和领域专家。

开放式源码
ASD方法
动态系统开发方法(DSDM) :倡导以业务为核心。
--
敏捷提倡 小步快跑、适合小型项目
--
逆向工程
是设计的恢复过程
反向分析

现有系统 - 再工程 -新系统

再工程包含:逆向工程 考虑新需求 正向工程

实现级 程序的抽象语法树、
结构级 程序之间相互依赖关系的信息
功能级 程序段功能及程序段之间关系的信息,如数据和控制流模型。
领域级 实体关系模型
--
逆向工程
重构、重组 
设计恢复   

--
净室软件工程

技术手段
统计过程控制下的增量式开发: 控制迭代
基于函数的规范和设计 盒子结构
正确性验证 净室工程的核心
统计测试和软件认证: 使用统计学原理,总体太大时必须采用抽样方法。

缺点
太理论化 正确性验证的步骤比较困难且耗时
开发小组不进行传统的模块测试,这是不现实的
脱胎与传统软件工程,不可避免带有传统软件工程的弊端。
--

...
--
结构化设计 

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值