软件工程 |软件设计过程
软件开发的设计阶段涉及将 SRS 文档中描述的客户需求转换为可使用编程语言实现的形式。
软件设计过程可分为以下三个设计阶段:
- 界面设计
- 建筑设计
- 详细设计
界面设计:
界面设计是系统与其环境之间交互的规范。这个阶段在系统内部工作的高抽象层次上进行,即在界面设计期间,系统内部完全被忽略,系统被视为一个黑盒子。注意力集中在目标系统与其交互的用户、设备和其他系统之间的对话上。在问题分析步骤中产生的设计问题陈述应该识别统称为代理的人、其他系统和设备。
界面设计应包括以下细节:
- 环境中事件的精确描述,或系统必须响应的代理消息。
- 系统必须产生的事件或消息的精确描述。
- 数据规范,以及进出系统的数据格式。
- 指定传入事件或消息与传出事件或输出之间的顺序和时间关系。
建筑设计:
架构设计是系统主要组件、它们的职责、属性、接口以及它们之间的关系和交互的规范。在架构设计中,选择了系统的整体结构,而忽略了主要部件的内部细节。
建筑设计中的问题包括:
- 将系统粗略分解为主要组件。
- 将功能职责分配给组件。
- 组件接口
- 组件缩放和性能属性、资源消耗属性、可靠性属性等。
- 组件之间的通信和交互。
架构设计增加了界面设计过程中忽略的重要细节。直到设计的最后阶段才忽略主要组件的内部设计。
详细设计:
设计是对所有主要系统组件的内部元素、它们的属性、关系、处理以及通常它们的算法和数据结构的规范。
详细设计可能包括:
- 将主要系统组件分解为程序单元。
- 将职能职责分配给各单位。
- 用户界面
- 单位状态和状态变化
- 单元之间的数据和控制交互
- 数据打包和实施,包括计划要素的范围和可见性问题
- 算法和数据结构