企业信息与系统设计
企业信息化战略与实施
1. 信息系统开发方法
- 结构化法
- 用户至上
- 严格区分工作阶段,每阶段由任务与成果
- 强调系统开发过程的整体性和全局性
- 系统开发过程工程化,文档资料标准化
- 自顶向下,逐步分解(求精)
- 缺点:一旦开发完成,他的结构是固化的,是不灵活的
- 原型法
- 适用于需求不明确的开发
- 包括抛弃式原型和演化式原型
- 面向对象方法
- 更好的复用性
- 关键在于建立一个全面、合理、统一的模型
- 分析、设计、实现三个阶段,界限不明确
- 面向服务方法
- SO方法有三个主要的抽象级别:操作、服务、业务流程
- SOAD分为三个层次:基础设计层(底层服务构件)、应用结构层(服务之间的接口和服务级协定)和业务组织层(业务流程建模和服务流程编排)
- 服务建模:分为服务发现、服务规约和服务实现三个阶段
2. 需求分类与需求获取
软件需求
- 获取方法
- 收集资料
- 联合需求计划
- 用户访谈
- 书面调查
- 情节串联板
- 现场观摩
- 参加业务实践
- 阅读历史文档
- 抽样调查
- 分类
- 业务需求
- 用户需求
- 系统需求
- 功能需求
- 性能需求
- 设计约束
- QFD
- 基本需求
- 期望需求
- 兴奋需求
3. 结构化设计
3.1 基本原则
-
主要分为:概要设计和详细设计
-
特点:自顶向下,逐步求精;信息隐蔽;模块独立(高内聚、低耦合、复杂度)
-
原则:
- 保持模块的大小适中;
- 尽可能减少调用的深度;
- 多扇入,少扇出;
- 单入口,单出口;
- 模块的作用域应该在模块之内;
- 功能应该是可预测的
3.2 内聚与耦合
内聚类型 | 描述 |
---|---|
功能内聚 | 完成一个单一功能,各个部分协同工作,缺一不可 |
顺序内聚 | 处理元素相关,而且必须顺序执行 |
通信内聚 | 所有处理元素集中在一个数据结构的区域上 |
过程内聚 | 处理元素相关,而且必须按特定的次序执行 |
瞬时内聚(时间内聚) | 所包含的任务必须在同一时间间隔内执行 |
逻辑内聚 | 完成逻辑上相关的一组任务 |
偶然内聚(巧合内聚) | 完成一组没有关系或松散关系的任务 |
耦合类型 | 描述 |
---|---|
非直接耦合 | 两个模块之间没有直接关系,他们之间的联系完全是通过主模块的控制和调用来实现的 |
数据耦合 | 一组模块借助参数表传递简单数据 |
标记耦合 | 一组模块通过参数表传递记录信息(数据结构) |
控制耦合 | 模块之间传递的信息包含用于控制模块内部逻辑的信息 |
外部耦合 | 一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息 |
公共耦合 | 多个模块都访问同一个公共数据环境 |
内容耦合 | 一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口 |
3.3 系统结构/模块结构
4.需求分析-OOA
对象
类(实体类、边界类、控制类)
抽象
封装
继承与泛化
多态
接口
消息
组件
模式和复用
系统设计
1. 面向对象设计
1.1 设计原则
- 单一职责原则:设计目的单一的类
- 开放-封闭原则:对扩展开放,对修改封闭
- 李氏(Liskov)替换原则:子类可以替换弗雷
- 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
- 接口隔离原则:使用多个专门的接口比使用单一的总接口要好
- 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
- 迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
明天做个整体的总结,软件设计师的学习就告一段了,最重要的一点还是要看题