概要设计
概要设计目的
软件是实现业务流程的自动化并提供帮助用户执行业务任务的功能,软件的目的也体现概要设计目的。概要设计是满足用户的功能和服务质 量要求,包括性能、可用性、可伸缩性、安全性和完整性要求的设计。它还包括评估并选择运行应用程序所必需的软件和硬件,以及用于开发应用程序的工具和方法。
概要设计作用
概要设计在软件开发周期中处于需求调研和详细设计之间,所以可以说概要设计是用户需求和详细设计之间的一个桥梁,是在对用户需求的全面理解和深入分析的基础上,提出全面的、概要的解决方案,这个解决方案是后续详细设计的一个蓝图。
概要设计过程和环节
概要设计过程可以分:
Ø 需求分析,深入分析用户功能需求和非功能需求,因为我们的系统都是针对用户特定需求的,在分析需求的过程中需要从更高的角度看用户需求,为设计一个稳定的架构而努力;
Ø 选择技术路线:在了解了用户要求之后,根据自己对技术的了解,选择适合的技术来实现用户的要求;
Ø 划分系统总体结构:给出硬件、网络、操作系统、其他软件硬件的接口、将要开发软件的主要部件
Ø 划分将要开发软件的业务部件,将要开发的软件业务部件肯定包含多个业务活动和过程,我们应该将其分解出来,减小我们系统开发难度
Ø 定义系统接口:定义上面两个过程中形成的接口
Ø 确定运行模块:
Ø 验证概要设计:
Ø 编写概要设计文档
概要设计管理
Ø 概要设计成本管理:够用就好,不要为了设计过于完美的架构而提高了设计成本
Ø 概要设计需要验证:概要设计的想法要能够运行,否则是空想,没有意思
Ø 选择技术路线需要注意学习风险
Ø 概要设计应该是多人参与,一个人的知识毕竟有限
技术路线选择要求
Ø 熟悉主流技术框架,如spring、hibernate等
Ø 熟悉其他开源项目,如dwr等
Ø 对于网络、硬件了解
Ø 设计者请求相关技术行家支持,弥补自己的不足
Ø 技术路线方案应该是适合用户要求的
划分总体结构要求
Ø 全面理解需求,深入分析需求,提取系统公共和比较独立的部分作为单独部件
Ø 体现MVC结构
Ø 定义不同部件之间接口
划分业务部件要求
Ø 根据需求,按照不同业务分离出不同业务部件
Ø 定义不同部件之间接口
确定运行架构要求
Ø 用技术手段,以稳健架构为目的,搭建一个运行架构
Ø 掌握设计模式
Ø 反复重构
这篇文章想阐述系统架构的任务和如何架构好一个系统,由于本人水平有限,不妥和遗漏之处希望给与指正,不胜感激。