1.设计目标:
创作出坚固,适用和令人愉悦的模型或表示
设计良好的建筑应该展现出坚固,适用和令人愉悦的特点:
坚固:程序应该不含任何妨碍其功能的缺陷。
适用:程序应该符合开发的目标
愉悦:使用程序的体验应是愉悦的。
2.软件工程中的设计
数据设计或类设计将类模型转化为设计类的实现以及软件实现所要求的数据结构;
体系结构设计定义了软件的主要结构化元素之间的关系﹔
接口设计描述了软件和协作系统之间,软件和使用人员之间是如何通信的;
构件级设计将软件体结构的结构化元素变换为对软件构件的过程性描述。
3.设计概念
- 抽象:数据抽象--描述数据对象的具名数据集合,过程抽象将利用数据抽象的属性中包含的信息,控制。
- 求精:所有抽象的详细说明--抽象和细化是互补的概念,抽象能够说明内部过程和数据,但对“外部使用者”隐藏了低层细节;细化有助于在设计过程中揭示低层细节
- 体系结构:软件的整体结构
- 模式:对于竞争时间中某确定环境下重复出现的问题,它承载了已证实的解决方案的精髓
- 关注点分离:任何复杂问题如果被分解为可以独立解决或优化的若干块,该复杂问题能够更容易的得到处理。(关注点是一个特征或是一个行为,被指定为软件需求模型的一部分)
- 模块化:数据和功能的划分,模块化是软件的单一属性,它使程序能被智能化的管理,为了容易理解,都应当将设计划分成许多模块,这样做的结果是降低构建软件所需的成本
- 信息隐蔽-控制接口
- 功能独立-单一功能和低耦合(内聚性+耦合性)
- 方面-理解全局需求如何影响设计的机制
- 重构-简化设计的重组技术
- 设计类-提供细节以实现分析类。
4.详细设计
- 数据设计元素:
- 在程序构件级,数据结构设计以及处理这些数据的相关算法对于创建高质量的应用程序是至关重要的。
- 在应用级,从数据模型(源自于需求工程)到数据库的转变是实现系统业务目标的关键。
- 在业务级,收集存储在不同数据库中的信息并重新组织为“数据仓库"要使用数据挖掘技术或知识发现技术。
- 体系结构设计元素,从一下三个来源导出︰
- 关于将要构件的软件的应用域信息
- 特定的需求模型元素,如数据流图或分析类,现有问题中他们的关系和协作。
- 可获得的体系结构风格和模式。
- 接口设计元素
接口是一组描述类外部可观察行为的操作,并提供对其公共操作的访问三个重要的元素︰
- 用户界面
- 其他系统,设备,网络,信息生成者或使用者的外部接口
- 各种设计构件之间的内部接口
5.构建级设计
软件的构件级设计完整的描述了每个软件构件的内部细节。定义了
- 所有本地数据对象的数据结构
- 所有组件处理函数的算法细节
- 允许访问所有组件操作的接口
使用UML组件图、UML活动图、伪代码(PDL)建模,有时还使用流程图
6.部署级设计
部署级设计元素指明软件功能和子系统将如何在支持软件的物理计算环境内分布。
使用UML部署图建模
- 展示部署图计算环境,但不指明配置细节
- 标识特定命名硬件配置的实例表单部署图是在设计的后期阶段开发的