版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件文档编写技巧编写目的用户公司名称前期已做工作将要涉及项目的开发目的可行性研究的前提 项目基本要求 项目基本目标 项目开发条件、假定和限制项目基本要求 主要功能 性能要求 系统的输入输出 安全和保密要求 项目与其它软件系统的关系 完成期限要求所建议系统概况 所建议系统概述 所建议系统的处理流程和数据流程 所建议系统对现有系统的改进、影响和局限性可行性分析 技术可行性 经济可行性 可行性分析结论思考、涉及的几个问题如何定义系统需求?v如何识别、获取需求? 你能够采取何种手段与用户进行交流沟通?v何为需求建模? 你如何理解模型与建模?需求分析软件需求分析的几个阶段问题分析问题分析问题评估和方案综
2、合问题评估和方案综合建模建模规约规约复审复审 系统分析员的主要系统分析员的主要焦点焦点是是 “做什么(做什么(whatwhat)” ,不是,不是 “怎样做(怎样做(howhow)”需求获取需求获取的目的需求获取的目的 清楚地理解所要解决的问题清楚地理解所要解决的问题 完整地获取用户需求完整地获取用户需求编号提出问题1您在哪个部门工作?您在哪个部门工作?2出版业务流程是什么?出版业务流程是什么?3您每日都处理那些文件、数据、报表?您每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响工作中手工处理什么问题
3、解决不了?影响效率的问题有哪些?效率的问题有哪些?6您认为提高工作效率,节省工作时间,减您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?轻工作强度可采取哪些办法?编号提出问题7您的部门需要成本核算和统计的内容有哪您的部门需要成本核算和统计的内容有哪些?些?8您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解哪些问题是目前传统手工方法根本无法解决的?决的?11出版社计算机管理信息系统需要解决什么问题? 计算机学科的发展计算机学科的发展计算机科学计算机科学(CS)计
4、算机科学计算机科学 (CS)计算机工程计算机工程(CE)软件工程软件工程(SE)信息系统信息系统(IS)计算学科计算学科(computing discipline)当前当前系统系统目标目标系统系统物理物理模型模型逻辑逻辑模型模型逻辑逻辑模型模型物理物理模型模型模型化模型化抽象化抽象化具体化具体化实例化实例化怎怎么么做做做做什什么么当前当前系统系统目标目标系统系统需需求求定定义义模型的作用模型的作用建模的原因:建模的原因:为系统的维护提供文档为系统的维护提供文档 模型的类型模型的类型当前当前系统系统目标目标系统系统物理物理模型模型逻辑逻辑模型模型逻辑逻辑模型模型物理物理模型模型模型化模型化抽象化
5、抽象化具体化具体化实例化实例化怎怎么么做做做做什什么么当前当前系统系统目标目标系统系统需需求求定定义义学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书107张张教务科教务科206王王会计室会计室206李李出纳员出纳员303赵赵教材科教材科学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书审查审查有效性有效性开发票开发票开领开领书单书单发书发书学学生生学学生生购书单购书单发票发票领书单领书单审查并审查并开发票开发票开领开领书单书单无效书单无效书单分析阶段中常用的模型(逻辑模型)分析阶段中常用的模型(逻辑模型)某系统某系统的第的第1 1层层DFD控制控制面板面
6、板与用户与用户交互交互控制控制面板面板显示显示密码密码电话号码拨音电话号码拨音传感器状态传感器状态显示显示信息信息配置请求配置请求用户命令用户命令和数据和数据配置配置系统系统警警铃铃电电话话线线传感器传感器配置信息配置信息显示信息显示信息和状态和状态监控监控传感器传感器激活不激活不激活系统激活系统传感器信息传感器信息密码密码处理处理警告类型警告类型检验检验idid信息信息开始开始停止停止状态信息状态信息 客户客户保险销售人员保险销售人员签订一份签订一份保险单保险单销售统计销售统计客户统计客户统计使用用例图举例使用用例图举例 u状态图状态图 例:例:状态状态1Do:活动活动1状态状态2 .事件事
7、件1条件条件1 / 动作动作1结束结束事件事件初始初始事件事件空闲空闲可视菜单可视菜单左边按钮按下左边按钮按下/显示弹出菜单显示弹出菜单左边按钮弹起左边按钮弹起/擦除弹出菜单擦除弹出菜单光标移动光标移动/高亮菜单项高亮菜单项 弹出菜单动作弹出菜单动作 接电话的顺序图接电话的顺序图 :受话者受话者交换机交换机远程交换机远程交换机受话者受话者拿起话筒拿起话筒听通话声听通话声拨号码拨号码.铃响信号铃响信号铃响铃响铃响停止信号铃响停止信号拿起话筒拿起话筒铃响停止铃响停止10 deabcb-a1e-d5c-b 20 20 20 20 15% 15% 5% 5% 20% 20% 30% 30%条件类别条件
8、类别四种条件组合四种条件组合操作操作条件组合下操作的执行条件组合下操作的执行1 16,10,116,10,11月月处理名处理名: :计算折扣率计算折扣率(MHGP534MD)(MHGP534MD)编号编号: 5.3.4: 5.3.4激活条件激活条件: :收到预订票信息收到预订票信息处理逻辑处理逻辑: :计算折扣率计算折扣率执行频率执行频率: : 实时实时旅游时间旅游时间订订 票票 量量折折 扣扣 量量7 79 9,1212月月1 16,10,116,10,11月月20202020 20 20 20 20 15% 15% 5% 5% 20% 20% 30% 30%判定树判定树(Decision
9、决策树决策树) 条件条件1 1 条件条件2 2 结果结果计计 7 79,9, 订票量订票量2020: : 15%15%算算 1212月月 订票量订票量2020: : 5%5%折折扣扣 1 16,6, 订票量订票量2020: : 30%30%量量 10,1110,11月月 订票量订票量2020: : 5%5%二二. 结构化分析实施步骤结构化分析实施步骤1. 1. 确定系统边界确定系统边界, , 画出系统环境图画出系统环境图2. 2. 自顶向下,画出各层数据流图自顶向下,画出各层数据流图3. 3. 定义数据字典定义数据字典4. 4. 定义小说明定义小说明三三. . 需求规格说明书需求规格说明书(
10、(SRS) ) (Software Requirement Specification)需求分析阶段要完成的文档。需求分析阶段要完成的文档。 SRSSRS的作用:的作用:开发者与用户间事实上的技术合同书开发者与用户间事实上的技术合同书开发者下一步设计和编码的基础开发者下一步设计和编码的基础测试验收目标系统的依据测试验收目标系统的依据SRS大纲(模板)大纲(模板) 引言引言 任务概述任务概述( (项目概述项目概述) ) 数据描述数据描述(DFD(DFD、DD)DD) 功能描述功能描述 接口接口 性能需求性能需求 属性属性 其它需求其它需求三三. . 需求验证需求验证(1) (1) 正确性正确性(
11、2) (2) 无二义性无二义性(3) (3) 完整性完整性(4) (4) 可验证性可验证性(5) (5) 一致性一致性(6) (6) 可理解性可理解性(7) (7) 可修改性可修改性(8) (8) 可被跟踪性可被跟踪性(9) (9) 可跟踪性可跟踪性(10)(10)设计无关性设计无关性(11)(11)注释注释需求文档的陈述与改进举例(需求文档的陈述与改进举例(1 1) 产 品 必产 品 必须在固定的须在固定的时间间隔内时间间隔内提供状态消提供状态消息,并且每息,并且每次时间间隔次时间间隔不得小于不得小于6060秒。秒。 后台任务管理器后台任务管理器( (BTM) )应该应该在用户界面的指定区域
12、显示状态在用户界面的指定区域显示状态消息。消息。 a. 在后台任务进程启动之后,消后台任务进程启动之后,消息必须每隔息必须每隔60(60( 1010) )秒更新一次,秒更新一次,并且保持连续的可见性。并且保持连续的可见性。 b. 如果正在正常处理后台任务进如果正在正常处理后台任务进程,那么后台任务管理器程,那么后台任务管理器( (BTM) )必须显示后台任务进程已完成的必须显示后台任务进程已完成的百分比。百分比。 c. 当完成后台任务时当完成后台任务时,后台任务后台任务管理器管理器( (BTM) )必须显示一个必须显示一个“已已完成完成”的消息。的消息。 d. 如果后台任务中止执行,那么如果后
13、台任务中止执行,那么后台任务管理器后台任务管理器( (BTM) )必须显示必须显示一个出错信息。一个出错信息。需求文档的陈述与改进举例(需求文档的陈述与改进举例(2 2) 产品必须产品必须在显示和隐藏在显示和隐藏非打印字符之非打印字符之间进行瞬间切间进行瞬间切换。换。 用户在编辑文档时,用户在编辑文档时,通过激活特定的机制,通过激活特定的机制,可以在显示和隐藏所有可以在显示和隐藏所有HTML标记之间进行切换。标记之间进行切换。3.4 分析建摸方法q结构化分析结构化分析(传统建模方法传统建模方法)q面向对象分析面向对象分析OOAOODOOP 3.4.2 3.4.2 面向对象分析方法面向对象分析方
14、法 思考题v软件开发中为什么要使用面向对象 方法?v面向对象分析方法与结构化分析方 法有哪些相似之处?有何区别?v面向对象方法是对过去的一个完全 突破,还是“换汤不换药”?对象对象(object)面向对象的主要特征:q封闭性 (Encapsulation)q 继承性 (Inheritance)q 多态性 (Polymorphism)类(类(class)对象、实体与类对象、实体与类封装封装过程1过程2过程3数据实体属于该对象的数据对象处理数据的方法传统方法和面向对象方法的比较传统方法和面向对象方法的比较继承继承 (继承性(继承性inheritance) 继承性是父类和子继承性是父类和子类之间共享
15、数据和类之间共享数据和方法的机制方法的机制 继承性具有传递性继承性具有传递性 继承性包括单继承继承性包括单继承和多重继承和多重继承 子类继承部分增加部分父类共性部分继承性作用继承性作用多态(多态性多态(多态性polymorphism)多态性的作用多态性的作用消息消息(message)为什么对面向对象方法感兴趣为什么对面向对象方法感兴趣? ? 可复用性(可重用性)可复用性(可重用性) reusebilityreusebility可扩展性可扩展性可管理可管理性性可复用性(可重用性) 面向对象技术允许复用的不仅仅是面向对象技术允许复用的不仅仅是代码代码, , 通过面向对象技术通过面向对象技术, ,
16、我们可以复我们可以复用需求、分析、设计、测试计划、用户用需求、分析、设计、测试计划、用户界面以及体系结构等等界面以及体系结构等等, , 事实上事实上, , 软件软件工程生存期中的每个部分都可以复用工程生存期中的每个部分都可以复用。 传统系统分析传统系统分析: :面向功能面向功能 , ,把系统看成把系统看成 一组功能一组功能OOA: : 把问题当作一组相互作用把问题当作一组相互作用 的实体,并确定实体间关系的实体,并确定实体间关系面向对象技术是一个有全新概念的面向对象技术是一个有全新概念的开发模式开发模式, ,其特点是其特点是: : (1)(1)方法是对软件开发过程所有阶段进方法是对软件开发过程
17、所有阶段进 行综合考虑而得到的行综合考虑而得到的; ;(2)(2)从生存期的一个阶段到下一个阶段从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连所使用的方法与技术具有高度的连 续性续性; ;(3)(3)将将OOA、OOD、OOP集成到生存集成到生存 期的相应阶段期的相应阶段. .开发方法的组合分析设计编程结构化结构化结构化结构化面向对象面向对象结构化结构化面向对象面向对象面向对象面向对象面向对象面向对象结构化结构化第三代或第四代语言第三代或第四代语言面向对象面向对象面向对象面向对象第三代或第四代语言第三代或第四代语言面向对象面向对象面向对象面向对象传统编程与面向对象的混合传统编程
18、与面向对象的混合面向对象面向对象面向对象面向对象面向对象面向对象 OO方法的开发过程方法的开发过程 OOOO方法改进了在生存期各个阶段方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开间的界面,因为生存期各个阶段开发出来的发出来的“部件部件”都是都是类类,在面向,在面向对象生存期的各个阶段对各个对象生存期的各个阶段对各个类类的的信息进行细化,信息进行细化,类类成为分析、设计成为分析、设计和实现的和实现的基本单元基本单元。 类的生存期模型类的生存期模型类的规格说明从废弃型开发既存类的复用渐增式的实现渐增式的测试求精和 维护 测试用例和测试 的开发实现从既存类演变类的设计与实现类的设计与实现
19、类的规格说明指导对存放现存类的软类的规格说明指导对存放现存类的软件库进行查找件库进行查找现存类提供当前应用所需功能现存类提供当前应用所需功能三种可能利用现存类的方向三种可能利用现存类的方向: 现存类的复用现存类的复用 从现存类进行演变从现存类进行演变 从废弃类进行开发从废弃类进行开发 面向对象方法开发软件面向对象方法开发软件通常建立的三种形式的模型通常建立的三种形式的模型 描述系统数据结构的描述系统数据结构的对象模型对象模型 描述系统控制结构的描述系统控制结构的动态模型动态模型 描述系统功能的描述系统功能的功能模型功能模型 三种模型从三个不同但由密切相关的三种模型从三个不同但由密切相关的角度模
20、拟目标系统。角度模拟目标系统。 对象模型对象模型是最重要、最基本、最核心的。是最重要、最基本、最核心的。 对象模型对象模型 对象模型表示静态的、结构的系对象模型表示静态的、结构的系统数据的性质。统数据的性质。 对模拟客观世界实体的对象以及对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了对象彼此之间的关系的映射,描述了系统的静态结构。系统的静态结构。 OO方法强调围绕对象而不是功方法强调围绕对象而不是功能来构造系统能来构造系统。 类及对象间常见的联系类及对象间常见的联系 分类关系分类关系 (归纳关系、一般与特殊的关系)(归纳关系、一般与特殊的关系) 组成关系组成关系 (组合关系、整体
21、(组合关系、整体/ /部分的关系)部分的关系) 对象属性之间的静态的联系对象属性之间的静态的联系 对象行为的动态联系对象行为的动态联系 分类关系分类关系(一般与特殊的关系一般与特殊的关系)示例示例学生本科生研究生组成关系组成关系(整体与部分的关系整体与部分的关系)示例示例学科部办公室学院实验室 对象模型中表现对象模型中表现上述联系的结构和连接上述联系的结构和连接(1)(1)分类结构(一般分类结构(一般/ /特殊结构)特殊结构) 分类是对象抽象的基础分类是对象抽象的基础 分类结构表现的是事物的一般与分类结构表现的是事物的一般与特殊的关系,即特殊的关系,即“is-ais-a”关系。关系。 面向对象
22、术语中常把一般与特殊面向对象术语中常把一般与特殊的关系称为的关系称为泛化(泛化(GeneralizationGeneralization)与与特化(特化(SpecializationSpecialization)联系联系 存户一般/特殊结构举例 一般类(父类、基类、超类) 特殊类(子类、具体类)继承一个特殊类中的所有对象可继承一般类中的属性、服务、关系账号姓名余额存款取款 支票存户 储蓄存户利息率(2)(2) 组装结构(整体组装结构(整体/ /部分结构)部分结构) 组装结构表示对象类之间的组成组装结构表示对象类之间的组成关系,即整体与部分的关系。关系,即整体与部分的关系。 整体对于部分是整体对
23、于部分是“has-ahas-a”关系。关系。 ( (部分对于整体是部分对于整体是“a-part-ofa-part-of”关系关系) ) 组装结构体现了面向对象方法的组装结构体现了面向对象方法的 聚合(也叫聚集聚合(也叫聚集 Aggregation)原则。原则。整体整体/ /部分结构表示法举例部分结构表示法举例 微机1+电源主机箱键盘监视器鼠标内存CPU硬盘o(3)(3)实例连接实例连接(Instance Connection)(Instance Connection) 实例连接表现了对象之间的静态实例连接表现了对象之间的静态联系,通过对象的属性来表现对象之联系,通过对象的属性来表现对象之间的依
24、赖关系。间的依赖关系。 面向对象术语中把对象之间的实面向对象术语中把对象之间的实例连接称为例连接称为链接链接(Link)(Link),把类之间的,把类之间的实例连接称为实例连接称为关联关联(Association)(Association) 实例连接示例及表示实例连接示例及表示教师 指导论文0,m 1学生教师为学生指导论文:教师 教学0,m 0,n 学生教师为学生授课:关联关系关联关系( (链属性链属性) )的表示的表示 允许实例连接带有一组属性,这些属允许实例连接带有一组属性,这些属性通过关联来描述性通过关联来描述 类 1 连接名称m n类 1连接属性 关联关系关联关系 ( (链属性链属性)
25、 )为之工作工资职务雇主雇员 个人名字身份证号公司名字地址题目答辩时间成绩 教师学生 指导论文0,m 1(4)(4)消息连接消息连接 ( (Message Connection)Connection) 对象之间的对象之间的通信通信联系。联系。 一需要另一个对象的服务,便向它一需要另一个对象的服务,便向它发出个对象请求服务的消息,接收发出个对象请求服务的消息,接收消息的对象响应消息,触发所要求消息的对象响应消息,触发所要求的服务操作。的服务操作。 消息连接体现了对象行为的消息连接体现了对象行为的动态联动态联系系。一家公司的对象模型(一家公司的对象模型(OMT)示例示例管理 0,1姓名身份证号码地
26、址员工名字电话号码主要产品地址公司职务雇用解雇项目名预算优先级项目产品名成本重量产品工人经理部门部门名主持参加1+1+1+1+1+生产网上商店对象模型网上商店对象模型( (部分部分) )示例示例( (UML) )销售代表 0 . 1定货nameaddress顾客creditRating( ):String产品雇员1dataReceivedisPrepaidnumber:Stringprice:Money协作顾客contactNamecreditRatingcreditLimitcreditCard#个人顾客creditRating( )=“poor”定货作业线dispatch( )close(
27、 )remind( )billForMonth( )Quantity:Integerprice:MoneyisSatisfied:Boolean1*1物品 面向对象的方法论面向对象的方法论 方法论是如何对复杂系统方法论是如何对复杂系统进行进行“抽象抽象”的工作,以及的工作,以及如何建立抽象模型。如何建立抽象模型。二二. .面向对象分析建模面向对象分析建模( (OOA) ) 面向对象分析方法确实不同于结构化面向对象分析方法确实不同于结构化分析方法吗?分析方法吗? Fichman,R.G and C.F.Kemerer,Fichman,R.G and C.F.Kemerer, 在在“Object-
28、oriented Conventional Analysis Object-oriented Conventional Analysis and Design Methodologies and Design Methodologies” 中阐述:中阐述: 我们的结论是面向对象分析方法表现了相我们的结论是面向对象分析方法表现了相对面向过程的方法学(如结构化分析)的根本性对面向过程的方法学(如结构化分析)的根本性变化,而且相对面向数据的方法学仅仅是增量性变化,而且相对面向数据的方法学仅仅是增量性的变化。面向过程的方法学在建模过程中的关注的变化。面向过程的方法学在建模过程中的关注点不是对象的内在性
29、质,从而导致了和面向对象点不是对象的内在性质,从而导致了和面向对象的三个基本原理相正交的问题域模型。的三个基本原理相正交的问题域模型。 面向对象分析方法使得软件工程师能面向对象分析方法使得软件工程师能够通过对象、属性和操作(作为主要的建够通过对象、属性和操作(作为主要的建模成分)的表示来对问题建模。模成分)的表示来对问题建模。建立分析模型5个基本原则:(1)建模信息域;(2)描述模块功能;(3)表示模型行为;(4)分解以模型显示更多细节;(5)早期模型表示问题的本质,而后期模型提供实现细节。 OOA的意图的意图是定义所有和被求解的问题相关的类是定义所有和被求解的问题相关的类(及同类关联的关系和
30、行为),为了达到这个目(及同类关联的关系和行为),为了达到这个目标,必须完成以下任务:标,必须完成以下任务:(1 1)必须在客户和软件工程师之间沟)必须在客户和软件工程师之间沟 通了解基本的用户需求;通了解基本的用户需求;(2 2)必须标识类)必须标识类( (定义属性和方法定义属性和方法) );(3 3)必须刻划类层次;)必须刻划类层次;(4 4)表示对象对象关系(对象连接);)表示对象对象关系(对象连接);(5 5)必须建模对象行为;)必须建模对象行为;(6 6)任务)任务( (1)1)到到(5)(5)递进地反复使用,直至递进地反复使用,直至 完成建模完成建模流行的几种面向对象方法流行的几种
31、面向对象方法: :Booch方法方法Coad-Yourdon方法方法Rumbaugh 方法方法(简称简称OMT)(Object Modeling Technology) Jacobson 方法(简称方法(简称OOSE)由由Rumbaugh 、 Booch 、 Jacobson 提出的统一建模语言提出的统一建模语言 (Unify Modeing Language简称简称UML)目前流行的目前流行的OOA方法概述方法概述Coad-Yourdon方法方法Coad-Yourdon的的OOA过程概述:过程概述:使用使用“寻找什么寻找什么”标准来标识对象标准来标识对象定义一般定义一般/ /特殊结构特殊结构
32、定义整体定义整体/ /部分结构部分结构标识主题(子系统构件的表示)标识主题(子系统构件的表示)定义属性定义属性定义服务定义服务 目前流行的目前流行的OOA方法概述方法概述Booch方法方法Booch的的OOA宏观开发过程概述:宏观开发过程概述:标识类和对象标识类和对象标识类和对象的语义标识类和对象的语义标识类和对象间的关系标识类和对象间的关系进行精化进行精化 目前流行的目前流行的OOA方法概述方法概述Rumbaugh方法方法(简称简称OMT)Rumbaugh的的OOA过程概述:过程概述:开发对问题的范围陈述开发对问题的范围陈述建造对象模型建造对象模型开发动态模型开发动态模型构造系统的功能模型构
33、造系统的功能模型不同面向对象分析方法的相似步骤:(1 1)使用基本需求作为指南选择)使用基本需求作为指南选择类类 和对象;和对象;(2 2)为对象标识属性和操作;为对象标识属性和操作;(3 3)定义组织)定义组织类的结构和层次;类的结构和层次;(4 4)建造对象建造对象- -关系模型的;关系模型的;(5 5)建造)建造对象对象- -行为模型。行为模型。统一的统一的OOA方法方法 由由Rumbaugh 、 Booch 、 Jacobson 提出的统一建模语言提出的统一建模语言 (Unify Modeing Language简称简称UML) UML是一种定义良好,易于表达,功能强大且普遍实用的建模
34、语言。 UML的开发历程的开发历程Booch91其它方法OMT-1OOSEBooch93OMT-2UML 0.8UML 0.9&0.91UML 1.0UML 1.1UML同行专家意见OMG认证10/9510/96 & 9/96OMG审核,1/97OMG修正,9/97OMG采用,11/97UML 1.3 对象模型技术对象模型技术 (OMT, Object Model Tech.)对象模型动态模型功能模型基本模型:三个模型分别从不同角度分析系统 分析模型分析模型对象模型对象模型: 描述静态结构描述静态结构, 定义做定义做 事情的实事情的实体体功能模型功能模型: 描述处理描述处理(数据变换数据变换)
35、, 指明系统应指明系统应“做什么做什么”动态模型动态模型: 描述交互过程描述交互过程, 规定什么规定什么 时候做时候做 OMT模型系统分析和设计过程概观图模型系统分析和设计过程概观图产生需求结构及对象设计建立模型问题描述对象模型、动态模型、功能模型详细的对象模型详细的动态模型详细的功能模型分析阶段设计阶段 实例:饮料自动售货机系统实例:饮料自动售货机系统设置设置 一个饮料自动售货机可以放置五种不同或部分相同的一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,并可随时重饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置新设置售价,但售货
36、机最多仅能放置5050罐饮料,其按罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。毕,则售完灯会亮。销售销售 顾客将硬币投入售货机,经累加金额足额的饮料选择顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。掉出,并自动结算及找钱。取消交易取消交易 顾客可在按下选择键前任何一个时刻,拉动退币杆取顾客可在按下选择键前任何一个
37、时刻,拉动退币杆取消交易收回硬币。消交易收回硬币。步骤:(1)找出对象及其关联(2)赋予类及关联的属性数据(3)组织类的结构OMT的对象图 找出饮料自动售货机系统中的对象找出饮料自动售货机系统中的对象设置设置 一个饮料自动售货机可以放置五种不同或部分相同的一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,并可随时重饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置新设置售价,但售货机最多仅能放置5050罐饮料,其按罐饮料,其按钮设计在各种饮料样本的下方,若经钮设计在各种饮料样本的下方,若经金额计算器金额计算器累计累计金额足够,则选择键
38、灯会亮;若某一种饮料已销售完金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。毕,则售完灯会亮。销售销售 顾客顾客将硬币投入将硬币投入售货机售货机,经累加金额足额的饮料,经累加金额足额的饮料选择选择键键灯亮,等顾客按键选择。顾客按键后饮料由取物楼灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。掉出,并自动结算及找钱。取消交易取消交易 顾客可在按下选择键前任何一个时刻,拉动顾客可在按下选择键前任何一个时刻,拉动退币杆退币杆取取消交易收回硬币。消交易收回硬币。 对象模型对象模型 描述系统内部对象结构,包括对象本描述系统内部对象结构,包括对象本身的定义、对象的属性、
39、操作,以及对象身的定义、对象的属性、操作,以及对象与其它对象之间的关系。与其它对象之间的关系。 对象模型是对象模型是OMT方法论中最重要的部方法论中最重要的部分,动态模型、功能模型都将依次而建立分,动态模型、功能模型都将依次而建立 对象模型以对象图形式呈现,对象图由类构对象模型以对象图形式呈现,对象图由类构成。成。饮料自动售货机系统对象图贩卖机饮料号码价格投币-接受饮料掉出金额显示按纽退币杆售完显示存量计算器饮料号码存量递减售完显示重置选择钮选择钮状态灯亮灯熄售完灯亮按钮顾客姓名硬币投币-置入拿取饮料退币杆退币杆状态拉动金额计算器金额累加找零重置购买选取被拉动属于属于属于属于 建立数据字典建立
40、数据字典 为所有模型实体准备一个数为所有模型实体准备一个数据字典据字典, ,精确描述每一个对象类精确描述每一个对象类, ,包括包括: : 成员成员 约束约束 关联、属性、操作关联、属性、操作 动态模型动态模型 用来描述系统与时间相关的动态用来描述系统与时间相关的动态行为即系统的控制逻辑,表现对象彼行为即系统的控制逻辑,表现对象彼此间经过相互作用后,随时间改变的此间经过相互作用后,随时间改变的不同运算顺序。不同运算顺序。 动态模型以动态模型以“事件事件”(Events)和)和“状态状态”(States)为其模型的主要概)为其模型的主要概念。念。 动态模型以状态图形式呈现,动态模型以状态图形式呈现
41、, 事件事件: 瞬时发生的行为;瞬时发生的行为; 引起对象状态转换的控制信息引起对象状态转换的控制信息。 事件类和属性举例:事件类和属性举例: 飞机起飞(航线、航班号、城市)飞机起飞(航线、航班号、城市) 按动鼠标按钮(按钮、位置)按动鼠标按钮(按钮、位置) . 脚本和事件踪迹脚本和事件踪迹 脚本是系统某一次特定运行时期内发脚本是系统某一次特定运行时期内发生的事件序列。生的事件序列。(脚本也叫场景)脚本也叫场景) 事件追踪图事件追踪图 侧重说明发生于系统执行过程中的一侧重说明发生于系统执行过程中的一 个特个特 定定“场景场景( (scenarios)”。 通话脚本(只包括影响电话线的事件)通话
42、脚本(只包括影响电话线的事件)17. 打电话者挂断电话16. 电话切断15. 接电话者挂断电话14. 通电话12. 接电话者电话停止振铃13. 铃声在打电话者电话中消失11. 接电话者回答10. 铃声在打电话者电话传出9. 接电话者的电话开始振铃8. 打电话者拨数字(3)7. 打电话者拨数字(7)6. 打电话者拨数字(3)5. 打电话者拨数字(2)4. 电话忙音结束3. 打电话者拨数字(8)2. 电话忙音开始1. 打电话者拿起听筒 状态状态: 对象属性和对象关联的抽象形式对象属性和对象关联的抽象形式状态的特征表示方法举例:状态的特征表示方法举例:状态:状态:闹铃响闹铃响描述:描述:闹铃响表示预
43、定时间到闹铃响表示预定时间到产生本状态的事件序列:产生本状态的事件序列: 设置闹钟(预定时间)设置闹钟(预定时间) 不包括清除闹铃的任何后续操作不包括清除闹铃的任何后续操作 当前时间当前时间= =预定时间预定时间表征本状态的条件:表征本状态的条件: 闹铃闹铃= =开,从预定时间起没有按键的情况下,开,从预定时间起没有按键的情况下, 目标时间目标时间 当前时间当前时间 目标时间目标时间=20=20秒秒本状态接受的各种时间:本状态接受的各种时间: 事件事件 动作动作 下一个状态下一个状态当前时间当前时间= =目标时间目标时间+20 +20 重新设置闹钟重新设置闹钟 正常正常按下按钮(任意按钮)按下
44、按钮(任意按钮) 重新设置闹钟重新设置闹钟 正常正常 动态模型表示方法 状态图状态图 状态和事件的网络,侧重描述每一类对象状态和事件的网络,侧重描述每一类对象 的动态行为。的动态行为。 状态图状态图 例:例:状态1Do:活动1状态2 .事件1条件1 / 动作1结束事件初始事件空闲可视菜单左边按钮按下/显示弹出菜单左边按钮弹起/擦除弹出菜单光标移动/高亮菜单项 弹出菜单动作举例:举例:饮料自动售货机饮料自动售货机系统系统的状态图的状态图 投入硬币(有效的)按下选择饮料键Do:显示售货机在备用 所有灯都关闭 Do:显示金额总数 Do:显示金额已够 饮料选择灯亮 取出饮料 结算找零 扣减存量 完成交
45、易 饮料“售完”灯亮 投入硬币金额 (1元、5元、10元)金额不足再投币存量为零无效的硬币 取消 取消 回到备用状态 回到备用状态 事件追踪图举例:事件追踪图举例:打电话的事件追踪图打电话的事件追踪图挂断电话电话切断挂断电话通 话通 话停止振铃停止振铃响应电话电话振铃铃 声拨 号(3)拨 号(7拨 号(3)拨 号(2)电话忙音结束拨 号(8)电话忙音开始拿起听筒电话线接电话者打电话者 存量为零找零扣减存量灯亮余额饮料结算选择键 #选择按纽灯亮金额总够显示总额总额累加投入硬币金额计算器存量计算器顾客售货机选择键举例:饮料自动售货机系统的事件追踪图售完灯 3. 3. 功能模型功能模型 用来描述系统
46、中数据的变换。用来描述系统中数据的变换。 传统传统DFD + DFD + 控制流控制流对象A对象B过程1过程2数据存储区控制流数据流基于三个模型的分析步骤基于三个模型的分析步骤 需求陈述需求陈述 对象建模对象建模 动态建模动态建模 功能建模功能建模 添加添加操作反复建模操作反复建模OMT支持整个软件生命周期:需求分析、系统设计、系统实现、测试与维护。1. 分析阶段 理解应用问题,建立对象模型、动态模型和功能模型,说明对象关联、控制流及数据变换。2. 系统设计阶段 确定系统框架,考虑并发任务、通讯机制和数据存储策略。3. 对象设计阶段 从实现的角度细化分析对象模型、动态模型和功能模型OMT方法的
47、特点:方法的特点: 开发重点在分析阶段 强调数据结构而不是功能 形式化描述能力强 开发步骤的衔接良好 重复性的开发过程Yourdon的的OOA方法方法 以类与对象图及对象状态图为辅助工以类与对象图及对象状态图为辅助工具,建立问题域的五层模型具,建立问题域的五层模型. OOA模型被划分为五个层次模型被划分为五个层次 ( (五个视图五个视图) )OOA的结构的结构 类的边界Class &object layer (类及对象层)Attribute layer (属性层)Service layer (服务层)Structure layer (结构层)Subject layer (主题层)实例的边界实例
48、连接消息连接主题服务属性分析阶段由五个活动组成:分析阶段由五个活动组成:(1) (1) 标识类及对象标识类及对象(2) (2) 标识结构标识结构(3) (3) 标识主题标识主题(4) (4) 定义属性及实例连接定义属性及实例连接(5) (5) 定义服务及消息连接定义服务及消息连接五个步骤常根据需要交叉进行五个步骤常根据需要交叉进行步骤步骤1 1:识别类与对象识别类与对象 (1)(1)发现对象发现对象主要策略主要策略: : F 考虑问题域考虑问题域人员人员组织组织物品物品设备设备事件事件表格结构表格结构F 考虑系统边界考虑系统边界人员人员设备设备外系统外系统F 考虑系统责任考虑系统责任F 问题域
49、描述中的问题域描述中的名词名词, ,往往是候选的往往是候选的 及对象及对象; ;根据问题域结构可提取候选根据问题域结构可提取候选 的类及对象的类及对象; ; 例例: : 银行储蓄管理系统银行储蓄管理系统F与系统发生作用的与系统发生作用的其它系统其它系统和必要和必要 的的设备设备可作为候选的类及对象可作为候选的类及对象; ; 如:如: 打印机等打印机等 ( (分析阶段可不把与实现有关的计算分析阶段可不把与实现有关的计算 机部件作为候选的类及对象机部件作为候选的类及对象) )F系统必须观测、系统必须观测、记忆记忆的与时间有关的的与时间有关的 事件事件可作为候选的类及对象可作为候选的类及对象; ;
50、如:建立帐户的日期如:建立帐户的日期 打开一个帐户等打开一个帐户等F与系统发生交互的与系统发生交互的人人及系统必须保留及系统必须保留其信息的人其信息的人, ,可作为候选的类及对象可作为候选的类及对象; ; 如:柜员、储户等如:柜员、储户等F这些人所属的这些人所属的组织组织单位,可作为候选单位,可作为候选的类及对象的类及对象; ; 如:总行、分行等如:总行、分行等F系统必须记忆、且不在问题域约束中系统必须记忆、且不在问题域约束中 的顺序的顺序操作过程操作过程( (为了指导人机交互为了指导人机交互) ) 可作为候选的类及对象可作为候选的类及对象; ; 如:柜员事务、远程事务等。如:柜员事务、远程事
51、务等。 其中属性是操作过程名其中属性是操作过程名, ,操作特权及操作操作特权及操作 步骤的描述步骤的描述; ;F系统需了解掌握的物理位置、办公系统需了解掌握的物理位置、办公 地点地点等可作为候选的类及对象等可作为候选的类及对象; ; 如:如:ATMATM机器、帐户等机器、帐户等(2)(2)审查和筛选审查和筛选, ,F 舍弃无用的类舍弃无用的类F 对象的精简对象的精简只有一个属性的对象只有一个属性的对象只有一个服务的对象只有一个服务的对象F 推迟到推迟到OOD考虑的对象考虑的对象 帐册上级系统接口供货员销售事件商品特价商品计量商品收款机商品一览表超市销售管理系 统(对象层)步骤步骤2 2: 定义
52、属性与服务定义属性与服务定义属性定义属性定义服务定义服务对象的状态与状态转换图对象的状态与状态转换图例:栈的状态例:栈的状态/ /服务对照表服务对照表空空半满半满满满压入压入可执行可执行可执行可执行不可执行不可执行弹出弹出不可执行不可执行可执行可执行可执行可执行例:栈状态转换图例:栈状态转换图空半满满创建压入(未满)弹出(未空) 压入 (报错)弹出(报错)弹出(已空)压入弹出压入(已满)定义服务定义服务 对象行为分类对象行为分类 发现服务的策略发现服务的策略 审查与调整审查与调整 识别对象的主动行为识别对象的主动行为 服务的详细说明服务的详细说明( (服务解释、消息协议、服务解释、消息协议、消
53、息发送、约束条件、服务流程图消息发送、约束条件、服务流程图) )帐册前班节余销售事件表收入累计上交款本班节余接班计帐报帐交班上级系统接口帐目目册消息发送查帐报帐价格更新种类增删供货员缺货登记表缺货登记供货销售事件收款人购物清单应收款销售计划入帐商品编号名称单价架上数量下限售出补充价格更新特价商品开始日期结束日期计量商品*单价计量单位计价方式*售出*补充*价格更新收款机本班收款员开始时间结束时间登录 售货 结帐商品一览表商品目录检索种类增删超市销售管理系 统(特征层) 建立数据字典建立数据字典 为所有模型实体准备一个数据字典为所有模型实体准备一个数据字典, , 精确描述每一个对象类精确描述每一个
54、对象类, ,包括包括: :成员成员约束约束关联、属性、操作关联、属性、操作对象字典举例:对象字典举例:类名类名 父类父类 提供的服务提供的服务 需要的服务需要的服务帐户帐户 ATM 银行银行 出纳员出纳员 步骤步骤3 3:定义结构与连接定义结构与连接初步确定关联初步确定关联对应于描述性动词或动词短语对应于描述性动词或动词短语需求陈述中隐含需求陈述中隐含根据问题域知识得出根据问题域知识得出筛选筛选完善完善分析标识对象之间的关系分析标识对象之间的关系对象之间的分类关系:一般对象之间的分类关系:一般- -特殊结构特殊结构对象之间的组成关系:整体对象之间的组成关系:整体- -部分结构部分结构对象之间的
55、静态联系:实例连接对象之间的静态联系:实例连接对象之间的动态关系:消息连接对象之间的动态关系:消息连接从一般类发现特殊类从一般类发现特殊类公司职员股东姓名身分证号码股份职员工资公司职员姓名身分证号码股份工资?从特殊类发现一般类从特殊类发现一般类公司职员股东姓名身分证号码股份职员工资股东姓名身分证号码股份职员姓名身分证号码工资?收款机ABC现钞收款机DEF现钞收款机ABCDEFXYZZXY为支持复用建立结构收款机类成为可供本领域其它系统复用的领域构件 取消没有特殊属性的特殊类取消没有特殊属性的特殊类大学生研究生研究方向指导教师学生姓名学号班级研究生研究方向指导教师学生姓名学号班级 通过增加属性简
56、化一般通过增加属性简化一般- -特殊结构特殊结构人员男人女人美国人日本人人员性别国籍中国人两种结构的变通两种结构的变通冷藏车汽车制冷设备冷藏车汽车制冷设备仅用一般-特殊结构两种结构同 用冷藏车汽车制冷设备仅用整体-部分结构用整体用整体- -部分结构实现复用部分结构实现复用车床机床刨床起重机电动机钻床送料车筛选:筛选:删除下列关联删除下列关联已删去的类间的关联已删去的类间的关联无关或实现关联无关或实现关联瞬时事件瞬时事件三元关联三元关联派生关联派生关联 中央计算机总行通信ATM拥有分行计算机出纳工作站远程业务现金卡分行帐户储户出纳员出纳业务通信授权存取拥有拥有持有组成拥有拥有雇佣进入被进入修改修
57、改进入ATM系统的初始对象图步骤步骤4 4:定义服务及消息连接定义服务及消息连接 分析和认识对象之间在行为上的往分析和认识对象之间在行为上的往来关系。来关系。顺序系统中的消息传递顺序系统中的消息传递主动对象Aa被动对象Bb被动对象Cc被动对象Dd1d2运行开始运行结束服务执行消息发送控制点返回示意 并发系统中并发系统中 的消息传递的消息传递主动对象A主动对象B被动对象D任务Task1 线程Ta控制线程之间的消息连接控制点返回示意被动对象C被动对象E控制线程内部的消息连接任务Task2 线程Tb多个控制线程之间的消息与顺序系统中消息的不同之处多个控制线程之间的消息与顺序系统中消息的不同之处(1)
58、并发执行的控制线程之间传送的消息的不同用途:并发执行的控制线程之间传送的消息的不同用途:向向接收者发出访问请求接收者发出访问请求向接收者提交数据向接收者提交数据向接收者发布通知或事件信息向接收者发布通知或事件信息向接收者传递同步控制信号向接收者传递同步控制信号(2)消息的同步与异步消息的同步与异步(3)接收者对消息的不同响应方式接收者对消息的不同响应方式(4)发送者对消息处理结果的不同期待方式发送者对消息处理结果的不同期待方式(5)消息的接收者是否唯一消息的接收者是否唯一定向消息定向消息广播消息广播消息OOA对消息的表示对消息的表示消息连接消息连接 消息连接是消息连接是OOA(或(或OOD)模
59、型中对对象)模型中对对象之间行为依赖关系的表示之间行为依赖关系的表示 识别和表示的主要问题:识别和表示的主要问题:对象之间是否存在消息?对象之间是否存在消息?消息是同一线程内部的还是不同线程之间的?消息是同一线程内部的还是不同线程之间的?每一种消息是从发送者哪个服务发出的?每一种消息是从发送者哪个服务发出的? 由接收者哪个服务响应处理的?由接收者哪个服务响应处理的?消息是同步还是异步?消息是同步还是异步?发送者发送者是否等待消息的处理结果?是否等待消息的处理结果?如何建立消息连接如何建立消息连接 (1)(1)建立控制线程内部的消息连接建立控制线程内部的消息连接 基本策略:基本策略:“服务模拟服
60、务模拟” “执行路线追踪执行路线追踪” 具体做法:具体做法:人为地模拟当前服务的执行,通过考虑需要人为地模拟当前服务的执行,通过考虑需要请求其它对象的服务来发现新消息。请求其它对象的服务来发现新消息。分析该消息的发送者与接收者在执行时是否分析该消息的发送者与接收者在执行时是否属于同一控制线程属于同一控制线程(2)(2)建立控制线程之间的消息连接建立控制线程之间的消息连接 对每个控制线程考虑:对每个控制线程考虑:它在执行时是否需要请求其它控制线程中的对它在执行时是否需要请求其它控制线程中的对象为它提供服务?由哪个对象发出?由哪个对象为它提供服务?由哪个对象发出?由哪个对象中的服务处理?象中的服务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省泸州市泸州高级中学校2024-2025学年七年级上学期1月期末道德与法治试卷(含答案)
- 湖北省武汉市部分重点中学2024-2025学年高二上学期期末生物答案
- 2024琴行演奏员劳动合同范本发布3篇
- 2024上音乐教学计划(32篇)
- 2024版房地产钢筋材料采购协议版B版
- 2024货车运输承包合同
- 福建省南平市岚谷中学高三语文测试题含解析
- 2025年宾馆租赁经营权转让及收益分成合同3篇
- 2024招投标与合同管理实战案例分析习题集3篇
- 2024用人单位二零四年度劳动合同解除与补偿协议3篇
- 拆机移机合同范例
- 艺考培训合作合同协议书2024年
- 智能停车充电一体化解决方案
- 小学二年级数学口算练习题8套
- 化学验室安全培训
- 项目管理年终总结汇报
- GB/T 18916.15-2024工业用水定额第15部分:白酒
- 部编四年级道德与法治下册全册教案(含反思)
- 工程伦理(2024东莞理工)学习通超星期末考试答案章节答案2024年
- 2024年湖北三江航天江河化工科技限公司招聘高频500题难、易错点模拟试题附带答案详解
- 体育场馆运营管理与服务标准规范
评论
0/150
提交评论