系统设计实例分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有效的模块设计—内聚
内聚是模块相对功能密度的度量 内聚的模块在软件过程中完成单一的任务,同程 序其它部分执行的过程交互很少。 内聚分类

巧合内聚
逻辑内聚 时间内聚
过程内聚
通信内聚

高内聚是以执行单独过程任务的模块为特征的
有效的模块设计—内聚
耦合是模块间相对独立性的度量 耦合类型

为什么设计如此重要?
软件设计的重要性可以用一个词来表
达—质量 设计是我们将能将用户需求准确地转化 为完整的软件产品或系统的唯一方法。
设计过程
软件设计是迭代的过程,通过它需求被变
换为用于构造软件的“蓝图”。 初始,蓝图描述了软件的整体视图。设计 在高的抽象层次上表示,在该层次可以直 接跟踪到特定数据、功能和行为需求。 随着设计迭代的开始,后续的精化导致更 低抽象级别的设计表示,这些表示仍然能 够跟踪到需求,但是连接更微妙。
系统设计实例分析
第一部分 设计基础
软件生命周期

粗粒度
分析 设计 实现

细粒度

需求确定 需求规格说明 体系结构设计 详细设计 实现 集成 维护
UML建模语言
UML是用于系统的可视化建模语言。
UML不是方法论,只是通用可视化建模
语言。 UML定义了系统的四个不同的视图—逻 辑视图、进程视图、实现视图和部署视 图。这些视图由第五个视图—用例视图 集成到一起。
良好设计的三个特征
设计必须实现所有包含在分析模型中的
显示需求,并且必须满足客户希望的所 有隐示需求 对于那些生成代码和那些进行测试并随 后维护软件的人而言,设计必须示可读 的、可理解的指南。 设计应该提供软件的完整面貌,涉及从 某个实现视角看到的数据、功能和行为 域。
设计质量评价标准与原则

设计概念(1)
抽象
软件过程中地每一个步骤都是软件解决方案
抽象级别上地求精
抽象级别
过程抽象
数据抽象
设计概念(2)

求精
– 是一种自顶向下设计策略,程序是通过过程
细节地连续地精化层次开发的,实际上是一 个详细描述的过程。

抽象和求精时互补地概念,抽象使得设 计者能够刻画过程和数据而同时忽略低 层细节,求精有助于设计者在数据过程 中揭示低层地细节,两个概念帮助设计 者在设计演化中构造出完整地设计模型
在测试及以后维护中需做变更时提供了 极大的优点。
有效的模块设计-功能独立性
功能独立性时模块化和抽象及信息隐藏
概念的直接产物。 时通过开发具有“单一”功能和“反对” 同其它模块的过分交互的模块而实现的。 有效模块化的软件更易于开发,独立的 模块更易于维护。 功能独立性时良好设计的关键,而设计 又是软件质量的关键
设计应该展示一种层次性结构 设计应该模块化,也就是说软件应该逻辑地划分 成完成特定功能和子功能地构件。 设计应该包含数据、体系结构、接口和构件地清 楚表示 设计应该导致适合于将被实现地对象和从可识别 地数据模式导出地数据结构 设计应该导致具有独立功能特征地构件 设计应该导致降低模块和外部环境间连接复杂性 地接口。 设计应该通过使用由软件需求分析过程中获得的 信息所驱动的可重复的方法导出。
设计的概念
设计是将要建造的某种东西的有意义的
工程表示。 设计关注于四个主要的方面
数据设计
体系结构设计
接口设计 构件设计
设计者的目标是生成一任何设计过程都有两个阶段
多样化 收敛
软件设计与软件工程
软件设计处于软件工程过程中的技术核
设计概念(3)
模块化
将软件划分成独立命名和可独立访问的部分。
模块化的标准
模块可分解性
模块可组装性
模块可理解性 模块连续性 模块保护
设计概念(4)
信息隐藏
信息隐藏的原则提出模块的特征在于每个模
块都对其它模块隐藏的设计决策
信息隐藏用做模块化系统的设计标准为

设计原则
设计过程不应该受“隧道视野”的限制 设计对于分析模型应该示可跟踪的 设计不应该从头作起 设计应该缩短软件和现实世界中问题的“智力距离” 设计应该表现出一致性和集成性 设计应该被构造以适应变更 设计应该被构造以使得即使遇到异常的数据、事件或 操作条件时也能够平滑、轻巧地降级 设计不是编码,编码也不是设计 在创建设计时应该能够评估质量,而不是在事情完成 之后 应该评审设计以减少概念(语义性)错误
数据耦合 印记耦合
控制耦合
外部耦合 共用耦合 内容耦合
针对有效模块化的设计原则
高内聚低耦合 用高扇出使结构最小化;当深度增加时争取提 高扇入 将模块的影响范围限制在模块的控制范围内 评估模块接口以降低复杂度和冗余并提高一致 性 定义功能可以预期的模块,但要避免过分限制 性的模块 力争“受控入口”模块,避免“病态连接”
心并且它的应用不考虑所使用的软件过 程模型。 软件设计是构造和验证软件所需的三项 技术活动(设计、代码生成和测试)之 一。 设计从需求模型开始。分析模型的每一 个元素都提供了创建设计模型所需的信 息。
软件设计种类
数据设计是将分析时创建的信息域模型 变换成实现软件所需的数据结构。 体系结构设计定义了软件的主要结构性、 可以用于达成针对系统而定义的需求的 “设计模式”以及影响体系结构设计模 式被应用方式的约束之间的关系。 接口设计描述了软件内部、软件和协作 系统之间以及同人之间如何通信。 构件级设计将软件体系结构的结构性元 素变换为软件构件的过程性描述。

设计文档

设计规约描述设计模型的不同方面
小节
软件设计种类 软件设计原则
设计概念
有效的模块设计
相关文档
最新文档