软件工程/架构/设计导论
外观
软件需求分析 (SRA) 的结果通常是规格说明书。设计帮助我们将此规范转换为工作系统。正如我们所见,存在不同类型的软件设计,IEEE Std 610.12-1990 软件工程术语标准词汇表[1] 定义了以下区别
- 架构设计:定义硬件和软件组件集合及其接口的过程,以建立计算机系统开发的框架。
- 详细设计:细化和扩展系统或组件的初步设计,使其设计完整到足以开始实现。
- 功能设计:定义系统组件之间工作关系的过程。
- 初步设计:分析设计方案并定义系统或组件的架构、组件、接口以及时间/尺寸估计的过程。
因此,软件设计包括架构视图,但也包括低级别的组件和算法实现问题。根据类型,软件设计可以是平台无关的,也可以是平台相关的。
在设计软件时需要考虑许多方面。每个方面的重要性应该反映软件试图达成的目标。以下是一些方面:
- 兼容性 - 软件能够与为与其他产品互操作而设计的其他产品一起运行。例如,软件可能与旧版本兼容。
- 可扩展性 - 可以在不大幅改变底层架构的情况下向软件添加新功能。
- 容错性 - 软件能够抵抗并从组件故障中恢复。
- 可维护性 - 软件可以在指定的时间内恢复到指定的条件。例如,防病毒软件可能包括定期接收病毒定义更新的功能,以保持软件的有效性。
- 修改 - 稍作修改或无需修改即可进行修改。
- 健壮性 - 软件能够在压力下运行或容忍不可预测或无效的输入。例如,它可以设计为对低内存条件具有弹性。
- 安全性 - 软件能够抵御恶意行为和影响。
- 可用性 - 软件用户界面必须对目标用户/受众可用。必须选择参数的默认值,使其对大多数用户来说是好的选择。
建模语言的存在为设计人员提供了帮助。它们可用于以由一组一致规则定义的结构表达信息、知识或系统。建模语言可以是图形化的或文本化的。软件设计的图形建模语言示例包括:
- 统一建模语言 (UML) 是一种通用建模语言,用于描述软件的结构和行为。它具有图形表示法,并允许使用配置文件 (UML) 进行扩展。
- 流程图是算法或逐步过程的示意图表示。
- 业务流程建模符号 (BPMN) 是流程建模语言的一个示例。
- 系统建模语言 (SysML) 是一种新的通用系统工程建模语言。
还有很多其他的语言,但我们将在下一章中重点关注 UML。
- ↑ http://standards.ieee.org/findstds/standard/610.12-1990.html IEEE Std 610.12-1990,IEEE 软件工程术语标准词汇表
2. Software Engineering[8th edition]-lan Sommerville publisher- Pearson