软件设计方法
1 设计的概念
是在系统的约束条件下,为了实现系统的功能性需求和非功能性需求,而找到并描述的一种遵循高质量的通用原则的方法,其交付文档能够指导开发人员实现系统。
分为总体设计(概要设计、架构设计)和详细设计
设计的重要性
- 软件架构是软件系统的核心
- 应对复杂多变的情况,同时保持完整性
- 应对系统在扩展功能当中出现的问题
- 大规模复用的有效基础
- 项目管理的基础
设计的总体原则
- 不应陷入片面性
- 追踪分析模型
- 选择合适的技术
- 适度分解
- 可集成
- 提高抽象层次
- 可复用
- 可维护和可扩展的
- 有韧性
- 一致性
- 交互界面应该友好
- 设计评审
UML: 指系统的组织结构,它可以递归解构为通过接口交互的部件、连接部件的关系以及组装部件的一些限制条件,通过接口交互的部件有类、构件和子系统。
软件体系结构和其它开发任务的关系
详细设计在软件构架的基础上进一步确定如何实现目标系统
具体包括系统的模块(如类及其方法)逻辑的详细设计、系统数据结构的设计、系统数据库结构的设计、系统人-机接口的设计等
2 分治
架构设计 → \to →将系统分解为一组子系统或模块,以及子系统或模块之间的接口
详细设计 → \to →子系统或模块被再次细分为子模块
分治的优点
- 缩小问题空间,减少问题复杂度和工作量
- 便于并发执行,缩短开发周期
- 适合团队协作,降低了实施难度
- 预防了开发中的多米诺骨牌效应
- 容易产生可复用部件
分治要考虑的问题
- 分治是否可以无限分解,是否越细越好
- 从技术的角度讲,如何分治