欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    GIS软件工程第7章GIS软件工程的设计方法.ppt

    • 资源ID:241932       资源大小:13.60MB        全文页数:151页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    GIS软件工程第7章GIS软件工程的设计方法.ppt

    GIS软件工程,GIS Software Engineering(七),教材:毕硕本等.地理信息系统软件工程的原理与方法.科学出版社.2004.参考材料:(1)李存珠.软件工程概论传统方法学和面向对象软件工程.南京大学计算机科学与技术系.1999.(2)任一本软件工程书籍.,GIS软件结构化设计方法GIS软件Jackson设计方法GIS软件面向对象Booch设计方法GIS软件面向对象Coad设计方法GIS软件面向对象OMT设计方法GIS软件面向对象UML设计方法,第7章 GIS软件工程的设计方法,第一节 结构化设计方法,主要的GIS设计方法:结构化设计方法面向对象设计方法结构化设计方法的目的 系统结构图,问题:干吗要设计系统结构图?,一、系统结构图的基本组成四种基本模块类型(1)传入模块从下属模块取数据,处理后传给上级模块(2)传出模块从上级模块取数据,处理后传给下属模块(3)变换模块从上级数据模块取数据,处理后传给上级模块(4)协调模块协调所有下属模块,两种典型系统结构形式:变换型 系统结构图 线性结构:逻辑输入-主加工-逻辑输出系统的3步变换分析过程:取得数据变换数据输出数据系统结构图组成由输入中心变换输出事务型 系统结构图 某个加工将它的输入分析成一串平行的数据流,二、数据流图变换为系统结构图的方法1、变换分析设计方法4步:(1)重画数据流图需求分析 的 数据流图 如何加工数据重画数据流图的出发点 数据是如何流动要点 从物理输入物理输出 或 相反 不要出现控制逻辑 箭头表示数据流 不要理会:系统的开始和终止 省略加工的简单例外处理 当数据流进入和离开加工标记它们,不要重名 可用逻辑运算符,(2)确定系统的逻辑输入、逻辑输出和中心变换部分变换型系统结构图3个组成部分逻辑输入中心变换部分 几种数据的交汇处或关键计算部分逻辑输出,逻辑输入,中心变换,逻辑输出,(3)进行一级分解,设计系统模块结构的顶层和第一层一个主模块 系统的名字分支划分 输入-中心变换-输出第一层:为每一个逻辑输入设计一个输入模块 功能:为主模块提供数据为每一个逻辑输出设计一个输出模块 功能:为主模块提供数据输出为每个中心变换设计一个变换模块 功能:将逻辑输入转换成逻辑输出,(4)进行二级分解,设计输入、中心变换、输出部分的中、下层模块输入模块功能 向调用它的上级模块提供数据2个下属模块:接收数据把这些数据变换成它的上级模块所需的数据输入模块细化过程 若:输入模块已经是原子模块,即物理输入端 则:细化工作停止 在数据流图上向物理输入端方向逆向移动 输入模块 子输入模块 子变换模块输出模块 从调用它的上级模块接收数据,用以输出2个下属模块将上级模块提供的数据变换成输出的形式将它们变换后的数据输出,逻辑输入,中心变换,逻辑输出,2、事务分析设计方法事务 数据流图中,引发一个或多个处理、完成该作业要求的功能 的数据流 事务分析 对数据流程图进行事务分析、变换建立系统结构图的过程,事务分析的3步骤:(1)识别事务源 带有“请求”性质的信息(2)确定适当的事务型结构第一层:主层(P层)事务中心模块(主模块)第二层:事务层(T层)由承担事务处理的加工转换而来的模块事务层3类模块:取得事务处理事务给出结果,(3)识别各种事务和它们定义的操作原始事务 寻找事务及其操作从:软件需求规格说明书 系统内部产生的事务 定义操作事务模块的下层操作模块分解、扩展 A-层(活动层)D-层(细节层),3、系统结构图完善 完善:初始结构图 变换分析/事务分析 得到(1)模块功能完善(2)消除重复功能,改善系统结构 手段:变量定义、数据类型 模块合并(3)控制模块大小和子模块数,降低模块的复杂性(4)增加适当的说明 包括:处理说明、接口说明、数据结构说明等,三、结构化设计的审查 针对 数据流图、数据字典常见错误:(1)未标记的数据流(2)丢失数据流,得不到某处理过程需要的数据信息(3)纯记录性的数据流,某些数据未加以利用(4)改进过程中未保持数据一致性(5)遗失处理过程(6)包含了控制信息,1、正确性检查(1)数据守恒 规则:加工只能把流入的数据流,加上不变的信息,变换成输出信息的数据流 删去:加工没有使用的输入数据流无用(2)局部文件中间文件 注意:数据流的方向输入流数据流 局部文件输出流局部文件 数据流(3)父子图平衡问题 只修改:图的一部分,2、提高可理解性(1)简化加工之间的关系 加工之间的数据流越少,各个加工就越独立 尽量减少:加工之间的输入/输出数据流的数目(2)分解的均匀性 理想的分解:把一个问题分成大小均匀的几个部分(3)适当的命名,3、重新组合与分解 改进数据流图的办法步骤:(1)把要重新分解的几个子图合成一张图,把各接口连起来(2)重新划分子集,使其接口最简单(3)重新建父图,每一部分为一个加工(4)建新的子图(5)命名及编号,第二节 Jackson方法,一、概述 1、产生JSP Jackson结构化程序设计 70年代,M.Jackson 提出 面向数据结构,数据驱动JSD Jackson系统开发 80年代,M.Jackson&J.R.Cameron 开发 基于进程模块,事件驱动,2、基本思想 面向/围绕:数据结构 重点:内在数据结构 输入数据结构+输出数据结构 程序结构3、设计和数据结构的关系记录、表、结构 顺序控制结构数组、文件 循环的控制结构联合 选择控制结构1970s,代表性的“面向数据结构”的设计方法M.Jackson提出的Jackson 方法 J.Warnier提出的Warnier方法,4、SD方法与JSP方法的异同共同点:数据信息驱动不同点:面向数据流的设计(SD方法)根据数据流图,建立软件模块的层次结构软件体系结构面向数据结构的设计(JSP方法)以数据结构为指导的映射过程,输入、输出 数据结构 按一定的规则映射成软件的过程描述程序结构5、JSP方法的优缺点优点:简单,适合于规模不大的系统局限性:不适合于:大系统 一般:总体上用SD方法,局部范围用JSP方法,二、JSP方法适用于:中小型数据处理系统设计原则 程序结构 对应 数据结构描述工具 Jackson图纲要逻辑 描述算法过程的语言,类似于伪码 纲要逻辑的3类关键字:seq顺序结构iter重复结构sel-alt 选择结构,1、Jackson图 描绘:数据结构Jackson图的表示顺序结构 A由BCD 顺序执行组成选择结构 A由BCD 选择执行组成循环结构 A由 循环执行组成Jackson图的优点便于表示层次结构自顶向下逐步分解形象直观可读性好既能表示数据结构,又能表示程序结构,Jackson图应用实例,选择,循环,循环,顺序,2、纲要逻辑 类似于:伪码的语言 3个关键字:seq,iter,sel-alt 对应于:Jackson图顺序结构 A seq B C D A end,选择结构 A sel 条件1 B alt 条件2 C alt 条件3 D A end,问题:C+中有哪2种选择结构?,循环结构 A iter until(或while)条件 B A end,问题:C+中有哪3种循环结构?,3、开发步骤5步:(1)分析并确定输入数据和输出数据的逻辑结构 Jackson图描绘(2)找出输入数据结构和输出数据结构中有对应关系的数据单元(3)从描绘数据结构的Jackson 图 导出 描绘程序结构的Jackson 图 3条规则:有对应关系的数据单元 画:处理框 剩余的 输入数据结构 处理框剩余的 输出数据结构 处理框(4)列出操作和选择/循环条件(5)纲要逻辑表示seq顺序结构iter重复结构sel-alt 选择结构,4、结构冲突问题JSP适用于:输入数据和输出数据结构之间有对应关系的问题求解 开发:小型程序结构冲突 输入数据与输出数据结构找不到对应关系,结构冲突解决办法 增加:中间数据结构/中间文件输入数据与输出数据结构之间,三、JSD方法1、JSD概述(1)JSD的产生 扩充JSP,解决JSP的结构冲突(2)JSD的基本思想分而治之的原则 输入数据流 与 输出数据流 分离 独立的、彼此无关联的、结构简单的确定实体 系统的每个输入数据流现实的一个实体建立顺序进程 模拟:系统主题输入数据流的内含(客观世界及其动态行为)JSD适用于:时序特点较强的系统 如:数据处理系统,实时控制系统,(3)JSD方法的特点 建立现实世界的模型,确定功能需求用顺序进程的网络描述需求JSD描述的需求可:直接执行 快速原型法突出需求分析,编程分散 在 各个步骤,问题:快速原型法是啥方法?,2、JSD的基本概念(1)现实和系统现实物质世界系统开发的目标(2)顺序进程 实体和按时序执行的动作顺序进程 模拟:实体 及其动作 联系 模拟:实体间的交互作用 模型 一组顺序进程组成的 现实网络,(3)进程间的联系 模拟:实体之间的联系 使用:数据流/状态向量 数据流方式 针对:实体向另一个进程发送数据状态向量 一个进程的所有内部状态 针对:一个进程读另一进程的内部状态(4)模型和功能模型 一组顺序进程组成的 现实网络 反映 现实世界功能 系统做的事,3、JSD方法的开发步骤6步:(1)实体动作步 定义:系统所感兴趣的客观世界域 通过:客观实体 及其 执行/承受的动作,(2)实体结构步 描述:每个实体执行的动作及其时序 产生:实体进程的Jackson结构图,实体结构步实例餐厅会计,顺序,循环,选择,(3)初步模型步 顺序进程网络 构成 现实模型 产生:系统说明图描述模型的 纲要逻辑描述实体进程的,实体与进程的联系,实体,顺序进程或功能进程,实体,(4)功能步 描述:系统的功能 产生:完善的系统说明图 和 纲要逻辑(5)性能步 确定:系统性能需求、系统响应时间(6)实现步 软件系统说明 转换 软件系统 考虑:目标计算机环境物理限制 性能需求,第三节 Booch方法,一、面向对象设计概述 对象和对象层次结构模块+数据结构+接口 成员函数 参数面向对象的分析 OOP 通过:对象的认定,确定:问题空间中应当存在的对象和对象层次结构面向对象的设计 OOD 通过:对象的认定和对象层次结构的组织 确定:解空间中应存在的对象和对象层次结构 确定:外部接口和主要的数据结构,OOD目标:1、提高生产率 手段:重用类机制 类库2、提高质量 高质量分析过程+设计过程 高质量系统3、提高可维护性 设计有利于:将来的修改 手段:稳定部分 与 易变部分 分离 类 可变的服务,问题:为什么OOD能实现这些目标?,二、Booch方法的发展Booch方法的提出 1980s初,Booch提出Booch方法强调 反复的处理+开发人员的创造性Booch方法的软件开发过程 螺旋上升的过程每个螺旋周期的4个步骤(1)发现类和对象(2)确定类和对象的含义(3)找出类和对象之间的相互关系(4)说明每一个界面及其实现的类与对象,Booch开发模型的2个部分逻辑设计 包括2个文件:类图和对象图物理设计 包括2个文件:模块图和进程图Booch静态模型 系统的构成和结构Booch动态模型 系统在执行过程中的行为 手段:状态迁移图描述:类实例的语义 时序图描述:对象之间事件发生的时序Booch方法用于的系统 过程控制,存储管理,客户/服务器计算 人工智能,命令控制,三、Booch方法的过程 5步:,状态转换图,时序图,1、在一定抽象程度上确定类和对象对象词法分析问题说明文档类 抽象化对象2、确定这些类和对象的语义/含义 较困难3、确定这些类和对象之间的关系,并确定它们怎样进行交互继承关系实例关系使用关系Booch“机构”密切相关协同作业的一组对象4、实现这些类和对象 特定的编程语言 模块结构化的类和对象5、说明每一类的界面和实现,问题:使用关系在C+中通过什么实现?,问题:啥词作为对象?啥词作为成员函数?,问题:目前有哪些OOP语言?,四、Booch方法的特点(1)独立于任何语言的、开放式的实现过程(2)丰富的图示技术(3)逻辑和物理观点分离开来(4)可设计辅助工具 自动检测一致性、错误(5)开发代价与系统复杂程度成正比(6)最大的不足:怎样找到每个对象和类的操作?怎样进行建模?,取决于开发人员,五、基本模型静态模型 描述:系统的构成和结构逻辑模型 类图和对象图 基于:类和对象的含义 着重于:类和对象的定义物理模型 模块图和进程图 基于:软件系统的结构 着重描述:软件系统的构造和组成动态模型 系统执行过程中的动态行为状态图时序图,1、类图(1)类图的含义 类+类之间的相互关系(2)类图的组成类 关联 类之间的语义关系关系 类之间的继承关系、包含关系、使用关系(3)类图的表示虚线云图,(4)类图的示例“温室管理系统”,关联,使用关系,关联,关联,关联,2、对象图(1)对象图的含义 对象+对象之间的相应关系 某一时刻的场景(2)对象图的组成 对象+消息(3)对象图的表示 实线云图,消息传递的次序,(4)对象图的示例“温室管理系统”,3、状态图(1)状态图的含义 描述:系统中类的动态行为类的状态空间状态变化的事件状态变化执行的操作(2)状态图的组成 状态+事件+转换(3)状态图的表示,引起状态转换,开始状态,转换,(4)状态图的示例“温室管理系统”环境控制器类,开始状态,引起状态转换的事件,引起状态转换的操作,4、时序图(1)时序图的含义 几个对象在共同完成某一功能 的 交互关系 消息传递的序列(2)时序图的组成 对象+对象生命线+消息+消息传递(3)时序图的表示,一个对象向另一个对象发送消息,对象的生命线,对象的生命线周期,对象,(4)时序图的示例“温室管理系统”,对象,一个对象向另一个对象发送消息,对象的生命线,5、模块图(1)模块图的含义 类+对象 分配到 软件模块 文件 基本模块(2)模块图的组成 模块+模块的依赖关系 模块之间的编译依赖关系,(3)模块图的表示,依赖关系,箭头所指向的模块编译完后,另一端模块才可进行编译,模块,6、进程图(1)含义 多处理机系统将可同时执行的进程分配到不同的处理机上 单处理机系统描述:同时处于活动状态的对象(2)组成 进程+通信关系 进程之间的信息联系(3)表示 立方形的图符,通信关系,进程名,第四节 Coad设计方法,一、概述 Coad&Yourdon 提出,OOA阶段:5个层次,OOD阶段:4个组成部分,用户界面,二、设计问题域组元 4种组元:类与对象+结构+属性+操作/服务1、原因 保持问题域组织框架的完整性、稳定性2、内容 合并/分解:多组元模型 的 类与对象、结构、属性、服务3、策略(1)围绕4种组元(2)直接改进OOA结果(3)加入常规类完善:OOA结果,4、方法(1)利用重用设计加入现有类 加入:类库/现存类(2)将专门的问题域类组合在一起 形成:container 类,问题域类 作为其从属类(3)加入一般化类(抽象类)以建立协议 相似的一个协议/服务集合(4)调整继承的支持层次对于单重继承机制语言 多重继承 化为 单重继承对于不具备继承机制的语言 多重继承调整为 各个孤立的类,问题:何谓抽象类?,问题:何谓多重继承、单重继承?,5、提高效率 组合:多个问题域组元 高耦合 提高速度6、支持数据管理组元 2种数据存储方法:对象自己保存自己数据管理组元负责数据保存 各个对象将自己发送给数据管理组元,三、设计人机交互组元1、原因 用户-系统交互对用户使用系统影响较大2、内容 增加:人机交互的细节 包括:指定窗口 设计窗口的布局 设计报表的形式 原型法有利于:人机交互开发 多层次多组元模型有利于:人机交互组元设计,3、方法(1)分类用户按技能分 初级、中级、高级按组织级别分 总经理、部门经理、办事员按不同组织成员分 职员、顾客(2)描述用户及其任务脚本 各类用户使用的、各自的特征 包括:年龄、文化程度、关键的成功因素、技能水平、主要任务、任务脚本,文学剧本中词汇,(3)设计命令层次 细化 初始命令层 方法:自顶向下,逐步分解 细化命令层时要考虑:排列命令层次 最频繁的操作放前面,按用户工作步骤排列逐步分解 整体-局部模式 菜单层次短期记忆 菜单宽度、深度 3层之内减少操作步骤 点取、拖动、键盘操作减到最少,(4)设计详细交互一致性 术语、步骤、动作行为减少步骤 击键次数、鼠标次数、下拉菜单次数、响应时间尽量显示提示信息提供取消操作帮助,(5)设计人机交互组元的类 GUI界面从窗口及其组成开始,(6)根据图形用户界面进行设计图形用户界面组成:字型 字体+字号+样式+颜色 坐标系统 原点(基准点)+显示分辨率+显示维数 事件 操作将对事件作出响应事件的工作方式:直接方式 每个窗口中的项目有它自己的事件处理程序排队方式 事件池 当事件发生时系统把它排列到队列中,前面的先做,4、例子:传感器控制系统的人机交互组元,四、设计任务管理组元1、原因任务 处理的别名 用代码来定义的一个活动流多重任务 许多任务的并发执任务划分原则 按照:各个行为 的 协调关系、通信一个处理器支持多个任务时,划分:必须同时动作的任务相互排斥的任务,2、内容 确定:各种类型的任务 分配:任务 硬件/软件多重任务出现的情况(1)数据获取机制,控制局部设备(2)多窗口数据输入(3)多用户系统(4)多子系统 的 协调、通信(5)多处理器(6)需要与其他系统通信,3、设计(1)确定事件驱动型任务 由事件驱动而执行的 工作过程:任务睡眠,等待一个来自数据行或其他来源的中断 接到中断时,任务唤醒,读取需要的数据,执行它应做的事情,把结果送给目的地,再对需要知道此事者发出通知,再去睡眠(2)确定时钟驱动型任务 在特定时间内被触发执行的 工作过程:设置唤醒时间,进入睡眠状态 接收到中断,任务被唤醒并执行,通知有关的任务,又回到睡眠状态,(3)确定优先任务及临界任务优先任务高优先级 处理时间要求高前台处理低优先级 处理时间要求低后台处理临界/关键任务 有关系统成功/失败的临界处理 涉及:可靠性约束 安全性 如:数据库恢复(4)确定协调任务 协调3个以上任务的任务 描述手段:状态转换矩阵,(5)分析各个任务 保证:任务数目最少多任务系统中,选择任务的工程标准事件驱动时钟驱动优先级/关键任务协调者,(6)定义各个任务任务的内容 任务命名+任务描述如何协调 事件驱动 描述:触发它的事件时钟驱动 描述:触发该任务之前的时间间隔 一次性的时间/反复的时间段如何通信 从哪里取得数据值,把数据值发往何处,任务的定义:name名字description 描述priority 优先级services included 包含的操作communication via 经由通信,4、例子:传感器控制系统的任务管理组元模型 与传感器任务描述,每个任务的定义描述:namedescriptionpriorityservices includedcommunication via,五、设计数据管理组元 1、原因与内容数据管理组元 存储、检索、管理对象的基本结构 独立于:数据管理模式,2、设计(1)选择数据存储管理模式3种存储管理模式:文件管理系统关系数据库管理系统面向对象数据库管理系统,(2)设计数据管理组元数据存放格式设计文件关系数据库 面向对象数据库相应服务的设计 自己存储自己 类中增加属性+服务:存储、检索对象自己,3、例子:传感器控制系统数据管理组元,数据存储文件管理系统:报警设备文件报警事件文件建筑物文件传感器文件,第五节 OMT设计方法,一、系统设计 系统设计阶段系统总体的组织 系统体系结构 architecture系统设计者的任务:系统设计文档(1)子系统划分(2)问题中的继承层次确定(3)子系统的处理器和任务分配(4)数据存储管理选择(5)全局资源的访问处理(6)控制的实现方法选择位置控制、直接实现、一致的任务(7)边界条件处理(8)折衷条件的优先级设置,二、对象设计定义对象所属的类、关系定义对象所属的类、属性、关系数据结构定义对象所属的操作的算法,对象设计步骤8步:(1)合并3个模型来获得类的操作对象模型动态模型 功能模型(2)操作的算法设计(3)对数据的访问路径优化(4)外部交互控制,(5)调整类结构,增加继承层次(6)关系的实现设计(7)对象如何表示(8)在模块中结合类和关系设计文档:对象模型+动态模型+功能模型,三、OMT设计方法的缺点(1)记法复杂难以理解(2)缺乏对大型程序设计的系统分解方法(3)过分地受信息模型技术和数据库技术的影响 因:OMT开发方法数据驱动 破坏:封装性,第六节 UML方法,统一建模语言(Unified Modeling Language)1990年代中期标准建模语言统一:Booch方法、OMT方法,一、UML的形成1、面向对象开发方法发展的需要 面向对象建模语言1970s中期2、UML的发展历程1994年:Booch 和 Rumbargh统一方法UM 0.81996年:Jacobson加入 UML0.9、UML0.91更名:UML1997年:UML1.01997年:OMG(对象管理组织)采纳UML1.1标准建模语言,3、UML的应用UML目标 使用:面向对象图的方式 描述:任何类型的系统UML用于:软件系统建模非软件系统建模,2、UML的主要内容 UML语义+UML表示法(1)UML语义布尔表达式列表阶名字坐标字符串时间用户自定义类型,(2)UML表示法通用表示字符串有关模型的信息名字模型元素标号缚于图形符号的字符号特定字符串缚于模型元素的特性类型表达式属性变量、参数定制已有的模型元素 定义:新的模型元素,图形表示 5类10种图:用例图系统的功能、各功能的操作者静态图类图、对象图、包图 描述:系统静态结构行为图状态图、活动图 描述:系统的动态行为、对象之间的交互关系交互图顺序图、合作图 描述:对象之间的动态合作关系实现图构件图、配置图 描述:系统物理实现,3、UML用于软件的开发 适用于:系统开发各阶段(1)用户需求 使用:用例图 系统的功能(2)系统分析 分析:对象、类、关系 问题域静态模型 类图 系统结构 动态模型 状态图+顺序图+合作图 系统行为,(3)系统设计 技术细节 类 设计类:处理用户交互的接口类处理数据的类处理通信的类处理并行的类,(4)系统实现 使用:OOPL 转换:类 源程序 构件图 描述:代码构件的物理结构+构件之间的关系配置图 描述:软硬件 的 物理体系结构,4、UML的特点(1)统一面向对象方法的基本概念(2)建模能力更强 吸取:非面向对象方法 汇入:面向对象领域思想(3)独立于开发过程 建模语言与具体软件开发过程无关(4)UML提出许多新概念构造型职责扩展机制线程模式合作图活动图,二、通用模型元素1、模型元素(1)基元素类结点构件注释关联依赖,(2)构造型元素 在基元素基础上扩展的新的模型元素(3)构造型元素的表示 构造型元素 如:使用(4)构造型元素的创建 在已经有定义的元素的基础上扩展 但:仅能扩展基元素的语义 不能扩展基元素的语法结构,2、约束(1)约束的含义 约束条件 类、关系、关联、属性、操作(2)约束的表示 约束内容(3)约束示例abstract:类的约束抽象类complete:关系的约束完全分类hierarchy:关系的约束分层关系ordered:多重性的约束有序的目标对象bag:多重性的约束无序的目标对象多次出现,3、依赖关系(1)依赖关系的含义 元素Y依赖于元素X修改元素X的定义,可能引起对元素Y的定义的修改(2)依赖关系的表示 Y-X(3)依赖关系的使用 用于:类图、包图、构件图、配置图类的关系中依赖关系产生的原因 一个类向另一个类发送信息一个类是另一个类的数据成员一个类用另一个类作为它的某个操作的参数,4、细化关系(1)细化关系的含义 B元素细化A元素 B元素是A元素的详细描述(2)细化的表示 B-A(3)细化的使用系统分析时概念层次的类图:应用域的概念系统设计时说明层次的类图:软件接口部分系统实现时实现层次的类图:类的实现,5、注释 自然语言,注释体,注释连接,类,三、用例模型 采用:用例图用例为完成某一任务,系统执行的一组动作1、作用 解决:需求分析中,如何:寻找、实现、表达用户目标 描述:系统的功能需求 着重:从系统外部执行者的角度,描述:系统需要提供哪些功能 执行者是谁,3种元素:用例执行者连接2、用例 为达到某个目的,用户-计算机 的 一次交互作用3、执行者 系统中,用户扮演的角色 包括:人,组织,外界系统,4、连接 用例元素-执行者元素,用例元素-用例元素 之间的 联系3种连接:通信联系执行者-用例 的 联系使用用例-用例 的 泛化关系,在2个/多个用例中,出现重复描述,又想避免重复时扩展用例-用例,在一个用例基础上,增加一些动作 当描述一般行为的变化时,5、画用例图 项目初始阶段 的 工作(1)获取执行者 通过:询问用户问题:谁使用主要功能谁做日常工作谁维护、管理系统系统控制哪些硬件与其他哪些系统交互哪些人,哪些事物感兴趣系统结果,(2)获取用例 通过:询问执行者问题,分析目标系统询问执行者需要哪些功能读、产生、删除、修改或存储哪些类型的信息必须指出执行者的系统事件必须指出的系统事件,如何表示成用例中的功能分析目标系统何种输入输出输入从何处来,输出到何处去当前系统存在的问题(3)用例数量 10人年的项目 20 100个,6、用例图的示例“金融贸易系统”,执行者,系统,用例,四、静态模型 描述:系统结构3种图:类图对象图包图,1、类图(1)作用 描述:类+类之间的关系 属性、操作3种元素:类关联关系,(2)类表示分析阶段概念层次:类名设计阶段说明层次:接口设计,主要属性实现阶段实现层次:完整类属性定义 可见性 属性名:类型=缺省值 约束特性,类外是否可见公有+私有 受保护#,属性的数据类型,属性初始值,对属性的约束如:只读,操作定义 描述:类的动态行为成员函数设计阶段说明层次:公有操作实现阶段实现层次:公有、私有、受保护操作 可见性 操作名(参数表):返回类型 约束特性,类外是否可见公有+私有 受保护#,返回结果的数据类型,对操作的约束,(4)关联 类之间的语义联系表示导航表示单向关联双向关联多重性 1个关联的角色,由几个对象扮演限定关联关联类 保存关联信息的类,(4)关系 类之间的关系 3种关系:聚集关系 整体-部分组成关系 部分对象仅属于整体对象泛化关系 一般-特殊,(5)类图的示例“软件公司组织结构”UML不仅可用于 软件设计 而且可用于 其他领域,2、对象图(1)作用 类图的实例化 一组对象实例之间的一种动态协作关系2种元素:对象链,(2)对象(3)链 对象之间的关联,对象完整表示,简单表示特定对象,该类泛指的一个对象,(4)对象图的示例“学校教学管理系统”,课程,3、包图包(package)类的集合高内聚、低耦合 许多类的组合,类的分组机制(1)作用 描述:包中的类+包之间的关系3种元素:包依赖关系泛化关系,(2)包 将类分组成更高层次的单位 高内聚、低耦合的类集合包的内容:类的列表类图另一个包图嵌套,简单,(3)关系 包之间的依赖关系、泛化关系依赖关系泛化关系,(4)包图的示例“保险MIS”,依赖关系,包,泛化关系,嵌套包,五、动态模型 描述:系统的动态行为+控制结构 对象的 包括:(1)对象生存期内的可能状态(2)事件发生时,状态的转移(3)对象之间的交互作用 动态合作、交互过程、交互顺序(4)为满足用例要求所进行的活动 及活动之间的约束4种图:状态图活动图顺序图合作图,问题:用什么来刻画对象的状态?,1、状态图(1)作用 描述:一个对象在生存期中的行为 一个特定对象所有可能的状态+由各种事件引起的状态之间的转移2种元素:状态状态之间的转移,(2)状态 对象的属性值状态的类型 4种初态状态图的起点,仅1个终态状态图的终点,可多个中间状态状态图的常态复合状态可进一步细分为多个具有“与”、“或”关系 子状态的状态“与”关系/并发子状态 某时刻可同时到达多个子状态“或”关系子状态 某时刻只可到达一个子状态,内部转移域 在该状态下,对象为响应收到的事件 而执行的内部动作/活动 列表 内部转移域定义:事件名 参数表条件/动作表达式特定的内部转移域:Entry/动作表达式 进入该状态时,要执行的原子动作。无参数表、条件Exit/动作表达式 离开该状态时,要执行的原子动作。无参数表、条件回授 一个转移的出发点和终止点为同一状态,(3)转移 显示:2个状态之间的关系 描述:对象从一个状态进入另一个状态,执行包含的动作转移定义:事件名(参数表)条件/动作表达式,转移,状态转移时要执行的动作,非真即假的逻辑判断条件,引起状态转移的输入事件,(4)事件的种类 4种变化事件 当某个条件成立时,才出现的事件信号事件 一个对象接收到另一个对象的明显信号时,而发生的调用事件 一个对象接收到另一个对象的操作调用时,而发生的时间事件 某个时刻出现的事件,(5)状态图示例“订货管理系统”,一个订单对象:,初态,终态,回授,2、活动图 由状态图变化而来(1)作用 描述:需要做的活动+活动执行顺序 既可描述:操作的行为 又可描述:用例和对象 内部的工作过程5种元素:活动转移对象泳道信号,(2)活动 亦称:动作状态 具有内部动作的状态 活动图的核心 至少具有:一个隐含事件 触发该活动转移到另一状态概念层中表示:要完成的任务说明层、实现层中表示:类中的方法,仅1个起点所有活动开始,0/多个终点所有活动结束,判断特殊的活动,同步线特殊的活动引入的信息流同时到达引出的信息流同时触发,(3)转移 活动之间的关系 由隐含事件引起,转移,(4)泳道 按照一个特定类、人、组织,用垂直线,将活动划分成的纵向区域,泳道责任者,(5)对象流 对象作为活动的I/O(6)控制图符 表示:信号的发送、接收,对象,对象,活动,(7)活动图的示例“人”类中:“找饮料喝”活动,活动,转移,判断,同步线,3、顺序图(1)作用 描述:对象之间的动态合作关系+合作中的行为次序 注重:对象之间消息传递的时间顺序4种元素:对象对象生命线消息说明信息,(2)对象生命线 表示:对象的生存期,对象的创建,对象的删除,对象生存期,(3)消息 对象之间交互时的通信3种消息类型:简单消息 简单控制流同步消息 嵌套控制流异步消息 异步控制流 用于:并发控制消息串 包含:消息+控制信息 2种控制信息:条件控制信息 如:x 0重复控制信息*如:*i=1,2,n,(4)说明信息 说明:消息发送时间 动作执行情况 消息之间的时间限制 约束信息(5)顺序图示例“打电话”,对象生命线,消息,4、合作图(1)作用 描述:相互合作的对象之间的交互关系 消息连接关系 注重:哪些对象之间消息传递3种元素:对象链接消息流,(2)对象(3)链接,对象创建,对象删除,组成链接,聚集链接,限定链接,导航链接,(4)消息 对象之间链接关系连线上标注的消息定义:消息类型 标号 控制信息:返回值:=消息名 参数表消息类型简单消息同步消息异步消息,标号消息的执行顺序顺序执行整数 如:1,2,按大小顺序执行嵌套执行带小数点 如:1.1,1.2,整数部分模块号 小数部分按大小顺序执行并行执行带小写字母 如:1.1a,1.2a,并行执行控制信息条件控制信息 如:x 0重复控制信息*如:*i=1,2,n返回值 消息执行后,结果返回的地方消息名,(5)合作图的示例“电路布线设计”,消息,执行者,对象,构造型元素,六、实现模型 描述:系统实现时的特性 源代码的静态结构+运行时的动态结构包括:2种图构件图配置图,1、构件图(1)作用 显示:代码本身的逻辑结构 描述:系统中的软构件及其之间的依赖关系3种元素:构件依赖关系界面,(2)构件 物理代码模块 包、类3种:源代码构件 源文件 类、包二进制构件 目标代码文件、静态/动态 库文件可执行构件 可执行文件构件图符:,类名、包名可执行对象名,(3)界面 构件对外提供的 可见操作和属性界面图符:(4)依赖关系 构件之间在编译、链接、执行时的关系依赖关系图符:,(5)构件图示例 画圆、画矩形的C+程序,2、配置图(1)作用 显示:系统运行时的结构 描述:系统硬件的物理拓扑结构及在此结构上运行的软件2种元素:结点连接,(2)结点 代表:计算构件硬构件PC,Host,Server软构件可执行的物理代码模块结点图符:(3)连接 结点之间的通信路径 如:TCP/IP连接图符:,(4)配置图的示例“保险信息系统”,

    注意事项

    本文(GIS软件工程第7章GIS软件工程的设计方法.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开