- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 软件设计与实现;软件设计和实现是软件工程过程中的一个阶段。设计和实现活动是交叉进行的。
设计是创造性活动,基于客户的需求识别出系统组件及其关系,实现将设计转变为程序。
设计的细节层次取决于待开发系统的类型以及是否使用计划驱动或敏捷开发方法。
本章主要介绍如何使用面向对象方法进行设计以及实现中的有关重要问题。
嵌入式软件不一般的特性也是软件设计涉及到的一个重要方面。;7.1 面向对象设计;
本教材作者Sommerville认为面向对象设计的一般过程应有以下几个阶段:
(1)了解并定义系统上下文和与系统的外部交互
(2)设计系统体系结构
(3)识别出系统中的主要对象
(4)开发设计模型
(5)定义对象接口
上述活动交替进行,彼此影响,不断精化。
以下通过一个例子介绍面向对象的设计过程。
;7.1.1 系统上下文与交互; ? 系统上下文模型,是结构模型,描述系统环境中的实体及其关联。上下文模型可用关联(ER)图来表示,方框表示系统或子系统。也可用UML的包图来表示。下图说明了每个气象站所在环境中都包含一个气象信息系统,一个机载卫星系统和一个控制系统。; ? 交互模型,描述系统与外部角色有哪些交互。UML的用例模型是使用抽象方法表示系统与外部角色之间的交互。
;7.1.2 体系结构设计;?subsystem?
缺陷管理;7.1.3 对象识别;气象站;气象站类提供与环境之间的接口,它的操作反映了用例模型中给出的交互。
气象数据类负责处理报告气象数据指令,它的相关操作包括对数据的收集和汇总,源数据是不同仪器采集到的。
其他三个类与系统中的仪器直接对应,操作就是对这些硬件的控制。这些对象以某些特定频率自动采集数据并在本地存储,在得到请求时将数据传输给“气象数据”对象。;7.1.4 开发设计模型; 本教材作者认为有以下3个模型有助于为用例和体系结构模型增加细节:
? 子系统模型:给出系统的逻辑分组,每个分组构成一个子系统,可使用包图来表示。子系统模型说明如何能将设计组织成逻辑上相关的对象群。
? 时序模型:说明对象交互的时序,使用时序图或协作图来表示。
? 状态机模型:说明某个对象如何响应事件来改变它们的状态,使用状态图来表示。
下图给出了气象站系统包图以及关系。包图加上类图描述了系统的逻辑分组。;?subsystem?通信控制;:通信控制器; 时序图用来对一组对象的交互行为建模,状态机模型表示某个对象对不同事件的响应行为。
下图是气象站对象的状态图,给出了该对象如何响应各种不同服务的请求。;7.1.5 接口描述;对象与接口不是一对一的关系,一个对象会有若干接口。同样,一组对象可以通过同一个接口访问。
下图是气象站系统中定义的两个接口:;7.2 设计模式;
94年Gamma等4人(简称“Gang of Four”)合著的《设计模式:可复用面向对象软件的基础》提出了用设计模式解决重复出现的软件设计问题,并对设计模式进行了分类描述和解释。
96年由Buschmann等5人合著的《面向模式的软件体系结构》将模式跨越不同的抽象层次,提出了高层的体系结构模式、中层的设计模式和低层的习惯用法。 本节主要针对设计模式进行讨论。;Gamma等人定义了模式的四个基本要素:
(1)模式名称
(2)问题描述
描述设计模式所解决的问题,什么情况下可以应用该模式,或者说使用该模式可以在设计中避免的一些缺点。
(3)解决方案
通常以图形的方式描述设计方案的组成成分(对象)以及它们之间的关系、职责和协作方式。它不是一个具体的设计描述,而是一个设计方案的模版,可以用不同的方式实例化。
(4)结果陈述
说明应用该模式的结果和副作用,帮助设计者了解该模式在特定的环境条件下用是否有效。
教材P121图7-10展示了观察者模式的定义。
;例1:观察者模式;?interface?Subject;Observer将自己注册到主体对象Subject中,主体对象将观察者存放在一个容器(Container)里。
主体对象状态发生了变化,从容器中得到所有注册过的观察者,将变化通知观察者。
观察者模式通常与 MVC模式有关系。观察者模式可被用来降低 model 与 view 的耦合程度 , 主体便是模型加控制器,而观察者便是视图。
当一个对象数据更新时需要通知其他
您可能关注的文档
- 白果--吃法与注意事项.doc
- 百吃不厌饺子馅配方 绝密发布.doc
- 百合吃法与作用.doc
- 百合功效以和吃法.doc
- 百万英镑语言与写作教学设计.doc
- 百万英镑知识点和试题.doc
- 板弹塑性计算问题.doc
- 板塑性与弹性.doc
- 病句修改和答案.doc
- 畜牧生产和动物福利论文.doc
- 2022年9月衢州市直遴选面试真题回忆版汇总.docx
- 2022年2月马鞍山市直遴选面试真题附解析.docx
- 2022年2月黄石市直机关遴选公务员面试真题带详解.docx
- 2022年2月贵州省税务系统遴选面试真题回忆版汇总.docx
- 2022年2月衡水市直机关遴选公务员面试真题带题目详解.docx
- 2022年2月泰安市直遴选面试真题回忆版.docx
- 2022年2月遵义市直遴选面试真题回忆版汇总.docx
- 2022年2月百色市直机关遴选公务员面试真题回忆版.docx
- 2022年2月鄂州市直机关遴选公务员面试真题带题目详解.docx
- 2022年2月清远市直机关遴选公务员面试真题附详细解析.docx
文档评论(0)