文档介绍:第十章面向对象设计
面向对象的系统设计
系统设计是将分析模型变换到系统设计模型。
在系统设计的过程中,开发者定义了项目的设计目标,将系统分解为粒度更小的子系统。
开发者还要选择构造系统的策略,比如硬件/软件策略、持久性数据管理策略、全局控制流策略、访问控制策略、边界条件处理策略等。
系统设计后得到的是一个包括子系统分解和每个策略的清晰描述模型。
系统设计由一些活动组成,每一活动都专注于整个问题中某一个部分的系统分解,这些活动是:
标识系统目标。开发者标识并区分应进行优化的各种系统属性的优先次序。
设计初始子系统分解。根据用例和分析模型,开发者将系统分解成一些小部分。
求精子系统分解以对应设计目标。
系统的构建主要包括系统设计、对象设计和实现三个活动。
在系统设计过程中,我们将注意力放在实现系统所必需考虑的过程、数据结构和软硬件构件上面。许多彼此有冲突的准则和约束,在分解系统的时候必须得到折衷。
分析所得到的结果是需求模型,需求模型包括如下内容:
一个描述非功能需求和约束的集合,其内容涉及:最大响应时间、最小吞吐量、可靠性、操作系统平台等等;
一个用例模型,从参与者的视角描述了系统功能
一个对象模型,描述了系统所操纵的多个实体;
每一个用例对应一个顺序图,展示了参与用例的对象之间的交互顺序。
分析模型从参与者的视角描述了整个系统,但是,不包含系统内部的结构信息和硬件配置信息。
系统设计包括如下内容:
设计目标,描述了开发者应该进行优化的系统性质;
软件体系结构,描述了根据子系统任务进行的子系统分解、子系统之间的依赖关系、子系统到硬件的映射和诸如对控制流、访问控制和数据存储的决策;
边界用例,描述了系统的配置、起始点、关闭点和异常处理问题。
设计目标通过非功能需求获取。当需要在多个设计问题之间做权衡时,设计目标可以指导开发者做出正确的决策。
分解子系统构成了系统设计的主要内容。开发者将系统分解为多个容易管理的部分,每个子系统分配给一个团队,由该团队独立实现该子系统。
。
系统设计概念
系统设计的主要活动是进行子系统分解,并在此基础上定义子系统/构件之间的接口。
1. 子系统与类
为降低解域的复杂性,我们将一个系统分解成多个子系统,这些子系统由若干个表示解域的类构成。子系统与一定数量的任务相对应,这些任务由单个程序员或单个开发团队来处理。
通过将系统分解成多个相对独立的子系统,可以使多个团队在各个子系统上并发工作,也减少了彼此交流所产生的管理上的开销。