设计概念
一、设计工程
- 四种设计
- data/class design
数据/类设计创造一个模块和信息代表着高水平模块抽象
data/class design creates a module and information that is represented at a high level abstraction
- architecture design
is equivalent to the floor plan(平面图) of house
- interface design
is equivalent to detailed drawings for doors windows and extern uilitity of house
- component design
a set of detailed for each room of house
- 良好的设计
- 设计必须实现分析模型中的需求
- 对于代码生成人员、测试人员,设计必须是可读、可理解的
- 设计提供软件的全貌,从实现角度说明数据域、功能域、行为域
- 质量属性(FURPS)
- functionality
- usability
- reliability
- performance
- supportalitity
- 信息隐蔽
模块应当精心设计,以使得模块包含的信息不被不需要这些信息的其他模块访问 内聚(cohesion)和耦合(couping)
内聚显示某个模块内部相关的程度
耦合表示不同模块依赖程度
好的设计应该高内聚低耦合- 良好的设计应该有以下几个特征
- 完整性和充分性
- 原始性
- 高内聚
低耦合
二、 体系结构设计
- 数据设计目标:将分析模型中的数据对象转化为软件构建中的数据结构,在必要时转化为应用程序级的数据库系统
- 软件体系结构 软件体系结构是指系统中的一个或多个结构,结构中包括构件、构件的可见外部属性和他们之间的联系,体系构建不是可运行的程序
体系结构包含
- a set of components
- a set of connectors
- constraints
- semantic models(语义模型)
- 与目标系统交互的软件为:上级系统、下级系统、同级系统、参与者
原始模型(archetype):是一个类或者一个模式,是软件体系结构设计的核心抽象,但是随着软件体系结构的进行,这些抽象需要进一步精化
三、 构件级设计
- 面向对象工程环境中,构件包含一系列协作类
- 传统构件中包含
- 控制构件
- 问题域构件
- 基础基础问题域
- 构件开发原则
- OCP对修改关闭,对扩展开放,无需对构件修改就可以实现功能的扩展
- 那些体现出层、功能、通信的内聚性的类和构件相对来说易于实现、测试和维护
- 结构化编程是局限于逻辑流的设计技术有三种构造:顺序型 条件型 重复型,优点是减少复杂性,可读性,可测试性,易维护性
面向对象观点注重细化来自问题域和基础设施的设计类,传统观念细化三种不同的构建
四、 用户接口设计
- 黄金法则:控制用户,减少用户记忆,界面一致
- 四种模型:用户模型、设计模型、心理模型、实现模型
用户界面分析框架活动:用户、任务环境分析和建模,接口设计,接口构建,接口确认。