《第7章软件设计与实现》由会员分享,可在线阅读,更多相关《第7章软件设计与实现(63页珍藏版)》请在金锄头文库上搜索。
1、苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务第7章 软件设计与实现n面向对象设计n实现中有关问题n开源开发n嵌入式系统的设计与实现1苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务n软件设计和实现是软件工程过程中的一个阶段。设计 和实现活动是交叉进行的。n设计是创造性活动,基于客户的需求识别出系统组件 及其关系,实现将设计转变为程序。n设计的细节层次取决于待开发系统的类型以及是否使 用计划驱动或敏捷开发方法。n本章主要介绍如何使用面向对象方法进行设计以及实 现中的有关重要问题。n嵌入式软件不
2、一般的特性也是软件设计涉及到的一个 重要方面。2苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务7.1 面向对象设计n面向对象设计将面向对象分析创建的分析模型变换为 设计模型,它将作为软件实现的蓝图。但由于面向对 象分析与设计活动是一个迭代与演化的过程,概念与 表示方法的一致性使得分析与设计阶段平滑过渡。n传统的设计方法将问题域分解成一系列功能模块来完 成,这些模块形成过程式软件的基本结构。面向对象 方法把问题域分解为一系列相互作用的对象,在此基 础上构造出基于对象及其交互的软件系统结构。3苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论
3、服务型机器人项目路演文档企业文化建设操作实务本教材作者Sommerville认为面向对象设计的一 般过程应有以下几个阶段:(1)了解并定义系统上下文和与系统的外部交互(2)设计系统体系结构(3)识别出系统中的主要对象(4)开发设计模型(5)定义对象接口上述活动交替进行,彼此影响,不断精化。以下通过一个例子介绍面向对象的设计过程。4苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务7.1.1 系统上下文与交互例:气象站系统:气象站部署在远程的区域,每个气 象站记录当地的气象信息,并通过卫星将这些信息 定期传输给气象信息系统。n软件设计首先了解待开发
4、系统与外部环境之间的关 系,帮助确定系统提供哪些功能以便有效地与外部 环境进行通信。n有两个模型可以表达系统与环境之间的关系:5苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务 系统统上下文模型,是结结构模型,描述系统环统环 境中 的实实体及其关联联。上下文模型可用关联联(ER)图图来表 示,方框表示系统统或子系统统。也可用UML的包图图来表 示。下图说图说 明了每个气象站所在环境中都包含一个气象 信息系统,一个机载卫载卫 星系统统和一个控制系统统。气象站气象信息系统卫星系统控制系统11111nnn1气象站系统上下文6苏教版初三语文广告多棱镜专
5、题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务 交互模型,描述系统统与外部角色有哪些交互。 UML的用例模型是使用抽象方法表示系统统与外部角 色之间间的交互。重新启动关闭气象站重新配 置软件设定节 电模式控制系统远程控制其 他气象站气象信息系统报告气象数据报告设备状态气象站系统用例图(图7-2)教材图7-3给出了该 用例的模版描述气象站气象站 7苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务7.1.2 体系结构设计n系统与环境间交互的定义可以作为系统体系 结构设计的基础,还要结合业务知识和设计 的一般知识进行体系结构
6、的设计。n首先识别出系统的主要组件及它们之间的关 系,然后运用一种体系结构模式来组织这些 组件。n气象站系统运用了广播模型。8苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务subsystem缺陷管理subsystem配置管理subsystem电源管理subsystem通信控制subsystem数据采集subsystem仪仪器通信链路气象站系统高层体系结构当该子系统接收到“关机” 命令,其它与该命令相关 的子系统也能关机9苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务7.1.3 对象识别n面向
7、对象分析识别问题域的对象,面向对象设计是 识别求解域的对象。求解域的对象一部分来自于问 题域,一部分来自于与设计相关的系统描述。n如何识别对象?方法同面向对象分析. 根据以上思想识别识别 出的对对象见见下图图。10苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务气象站identifierreportWeather()reportStatus()powerSave(instruments)remoteControl(commands)reconfigure (commands)restart (instruments)shutdown(instr
8、uments)气象数据airTemperaturesgroundTemperatureswindSpeedswindDirectionspressuresrainfallcollect()summarise()地表温度计temperatureget()test()风速计windSpeed windDirection get() test()气压计pressure Height get() test()气象站系统的对象(类)gt-identan-identbar-ident提供了与 环境交互 的接口11苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作
9、实务n气象站类提供与环境之间的接口,它的操作反映了用例 模型中给出的交互。n气象数据类负责处理报告气象数据指令,它的相关操作 包括对数据的收集和汇总,源数据是不同仪器采集到的 。n其他三个类与系统中的仪器直接对应,操作就是对这些 硬件的控制。这些对象以某些特定频率自动采集数据并 在本地存储,在得到请求时将数据传输给“气象数据”对 象。12苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务7.1.4 开发设计模型n设计模型包含了对象类以及它们之间不同类型的关系, 是系统需求和系统实现之间的桥梁。n设计过程中的一个重要活动是决定需要什么样的设计模 型
10、和设计模型的细节层次,依赖所开发的系统类型。n不一定为系统建立所有的模型.n一般要进行两类模型的设计: 静态态模型 描述系统统的静态结态结 构(如气象站系统统 的类图类图 ) 动态动态 模型 描述系统统的动态结动态结 构(交互、状态变态变 化)。13苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务本教材作者认为认为 有以下3个模型有助于为为用例和体 系结结构模型增加细节细节 : 子系统统模型:给给出系统统的逻辑逻辑 分组组,每个分组组构 成一个子系统统,可使用包图图来表示。子系统统模型说说明 如何能将设计组织设计组织 成逻辑逻辑 上相关的对对象
11、群。 时时序模型:说说明对对象交互的时时序,使用时时序图图或 协协作图图来表示。 状态态机模型:说说明某个对对象如何响应应事件来改变变 它们们的状态态,使用状态图态图 来表示。下图给图给 出了气象站系统统包图图以及关系。包图图加上 类图类图 描述了系统统的逻辑逻辑 分组组。14苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务subsystem 通信控制气象站subsystem 数据采集气象数据仪器状态subsystem 仪器空气温度计地表温度计雨量计气压计风速计风向标气象站系统(包图加上类图描述了系统逻辑分组)下图给出了气象信息系统向气象站请求
12、汇总数据时 发生的的交互序列:通信控制器15苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务:通信控制器:气象站:气象数据request(report)reportWeather( )summarise()send(report) reply(report)acknowledge设计的时候,应该为每个重要的交互(用例模型中的用 例)创建一个时序图或协作图。应答表示消息发送者 不等待回复气象信息系统acknowledgeacknowledgeacknowledge16苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企
13、业文化建设操作实务时序图用来对一组对象的交互行为建模,状态机 模型表示某个对象对不同事件的响应行为。下图是气象站对象的状态图,给出了该对象如何 响应各种不同服务的请求。shutdownRunningtransmittingtestingsummarizingCollectingrestart ()shutdown()clockcollection done reportWeather()weather summary completetest completetransmission donereportStatus()remoteControl()operationConfiguringre
14、configure()powerSave()configuration doneControlled响应远程控制 的另一组消息17苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务7.1.5 接口描述n接口提供了一种方法,把组件基于操作的功能说明与 具体实现区分开来,使得任何依赖和使用接口的客户 程序不必依赖于接口的具体实现,有利于接口实现的 替换。n接口要精确的定义,以便能由其他对象使用。n接口描述可以用UML类图模板,省略属性说明, interface要包含在类名部分中。n也可以用程序设计语言来定义接口,以便用编译器来 发现接口描述中的错误和
15、不一致。18苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务n对象与接口不是一对一的关系,一个对象会有若干接 口。同样,一组对象可以通过同一个接口访问。n下图是气象站系统中定义的两个接口:interface ReportingreportWeather(WS-Ident):WreportreportStatus(WS-Ident):SreportinterfaceRemoteControlstartInstrument(Instrument):iStatusstopInstrument(Instrument):iStatuscollectDat
16、a(Instrument):iStatusprovideData(Instrument):string报告接口远程控制接口直接映射到气象站对象中的操作每一个操作都编码成气象站对象中 remoteControl方法所关联的一个命令字符串19苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务7.2 设计模式n模式(Pattern)的概念最初来自于建筑学领域,用模 式描述建筑物的建筑元素(Alexander,1977),概 括了被认为是好的设计的实践经验。n模式是对问题和解决方案的基本内容的描述。模式 是积累的经验和智慧的描述,可以帮助人们在软件 开发过程中对于经常重复出现的问题制定成功解决 的方案,即解决方案可以在不同的设置下被复用。20苏教版初三语文广告多棱镜专题课件证券投资的技术分析理论服务型机器人项目路演文档企业文化建设操作实务n94年Gamma等4人(简称“Gang of Four”)合著的设计 模式:可复用面向对象软件的基础提出了