




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
结构化与面向对象的需求分析与设计 蒋建民博士 jjm 福建师范大学数学与计算机学院 目录 面向数据流的需求分析面向数据流的设计面向对象的需求分析面现对象的设计 目录 面向数据流的需求分析数据建模和ERD功能建模和DFD行为建模 略 面向数据流的设计面向对象的需求分析面现对象的设计 1 结构化分析方法结构化分析方法是一种建模技术基于计算机的系统是数据流和一系列的转换构成的在模型的核心是数据词典 它描述了所有的在目标系统中使用的和生成的数据对象 围绕着这个核心的有三种图 ERD DFD STD2 分析模型的组成数据建模和对象描述功能建模和数据流图基本加工逻辑说明行为建模数据词典 面向数据流的分析方法概述 ERD用于数据建模DFD用于功能建模STD用于行为建模 结构化分析的分析模型 数据流图 DFD 描述数据在系统中如何被传送或变换 以及描述如何对数据流进行变换的功能 子功能 实体 关系图 ERD 描述数据对象及数据对象之间的关系 状态 迁移图 STD 描述系统对外部事件如何响应 如何动作 数据建模及ER图 1 数据建模 数据模型包括三种互相关联的信息数据对象 描述对象的属性 描述对象间相互连接的关系 2 数据对象 是需被目标系统所理解的复合信息的表示 它具有若干不同特征或属性的信息 数据对象可以是外部实体 事物 角色 行为或事件 组织单位 地点或结构 数据对象只封装了数据 没有包含作用于这些数据上的操作 3 属性 定义了数据对象的特征 它可用来 为数据对象的实例命名 描述这个实例 建立对另一个数据对象的另一个实例的引用主码 为了唯一地标识数据对象的某一个实例 定义数据对象中的一个属性或几个属性为关键码 key 书写为 id 例如在 学生 数据对象中用 学号 做关键码 它可唯一地标识一个 学生 数据对象中的实例4 关系 各个数据对象的实例之间有关联 如一个学生 张鹏 选修两门课程 软件工程 与 计算机网络 学生与课程的实例通过 选修 关联起来 数据建模及ER图 实例的关联有三种 一对一 1 1 一对多 1 m 多对多 n m 这种实例的关联称为 基数 基数表明了 重复性 如1位教师带学生班的30位同学 就是1 m的关系 但也有1位教师带0位同学的情形 所以实例关联有是 可选 还是 必须 之分 用 O 表示关系是可选的 用 表示关系必须出现1次 这表明了关系的 参与性 E R图 段描述数据对象和它们之间的关系图E R图中表示实体关联的符号如下 4 E R图 Entity RelationshipDiagram 一个X与一个Y相关联 一个X与一个或多个Y相关联 一个X与零个或一个Y相关联 一个X与零个 一个或多个Y相关联 一个X与一个Y或Z相关联 一个X与一个Y与Z相关联 在E R图中 每个方框表示数据对象或属性 方框之间的连线表示数据对象之间 或对象与属性之间的关联 出现在连线上的短竖线可以看成是 1 而圆圈隐含表示 0 举例 教学管理系统教师 学生 课程ER图一个教师可以教授零门 一门或多门课程 每位学生也需要学习几门课程 涉及的对象 实体型 有学生 教师和课程 由于 多对多 的关联在计算机表达时有困难 引入 选课 对象作为关联对象 可将 多对多 的关联改为两个 一对多 的关联 确定属性 为每一个数据对象建立数据对象表 描述其属性 如此可得 教学 数据模型 学生 学号 姓名 性别 出生年月 专业课程 课程号 课程名 学分 学时数等属性 教师 职工号 姓名 年龄 职称等属性 1 功能建模 用抽象模型的概念 按照软件内部数据传递 变换的关系 自顶向下逐层分解 直到找到满足功能要求的所有可实现的软件为止 2 数据流图 根据DeMarco的论述 功能模型使用了数据流图来表达系统内数据的运动情况 而数据流的变换则用结构化英语 判定表与判定树来描述 3 数据流图中的主要图形元素数据加工 数据处理 数据变换 转换 数据源点或终点 外部实体 数据流数据存储文件 功能建模和数据流图DFD 描述银行取款过程的数据流图 为了表达数据处理过程的数据加工情况 需要采用层次结构的数据流图 按照系统的层次结构进行逐步分解 并以分层的数据流图反映这种结构关系 能清楚地表达和容易理解整个系统在多层数据流图中 顶层流图仅包含一个加工 它代表被开发系统 它的输入流是该系统的输入数据 输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图 它处在最底层中间层流图则表示对其上层父图的细化 它的每一加工可能继续细化 形成子图 数据流图的层次结构 分层的数据流图 这个数据流图只是一个高层的系统逻辑模型 它反映了目标系统要实现的功能数据流图绘制步骤首先确定系统的输入和输出 系统的边界 根据商店业务 画出顶层数据流图 以反映最主要业务处理流程 封闭 经过分析 商店业务处理的主要功能应当有销售 采购 会计三大项 主要数据流输入的源点和输出终点是顾客和供应商 然后从输入端开始 根据商店业务工作流程 画出数据流流经的各加工框 逐步画到输出端 得到第一层数据流图 从左到右 商店业务处理系统 第一层数据流图 加细每一个加工框 不封闭 销售细化 加细每一个加工框采购细化 DFD上所有图形符号只限于前述四种基本元素DFD主图必须包括前述四种基本元素 缺一不可DFD的主图上的数据流必须封闭在外部实体之间每个加工至少有一个输入数据流和一个输出数据流在数据流图中 需按层给加工框编号 编号表明该加工所处层次及上下层的亲子关系规定任何一个数据流子图必须与它上一层的一个加工对应 两者的输入数据流和输出数据流必须一致 此即父图与子图的平衡可以在数据流图中加入物质流 帮助用户理解图上每个元素都必须有名字 编号数据流图中不可夹带控制流初画时可以忽略琐碎细节 以集中精力于主要数据流一个处理逻辑 在下一层分解时不宜超过9个处理逻辑不要表现分支条件和循环 数据流程图的注意点 目录 面向数据流的需求分析面向数据流的设计概述变换映射事务映射面向对象的需求分析面现对象的设计 面向数据流的设计方法 面向数据流的设计的方法 就是通常所说的结构设计法 是根据需求阶段对数据流的分析设计软件结构 需求阶段对数据流的分析一般用数据流图和数据字典表示 面向数据流的设计方法根据数据流图的特性定义两种映射 变换流映射事务流映射这两种映射能机械地将数据流图转换为程序结构 基本概念和设计过程 设计过程首先研究 分析和审查数据流图 从软件的需求规格说明中弄清数据流加工的过程 修改数据流图 明确新系统做什么 确定新系统的逻辑模型 要点 去除掉非本质的因素这个处理逻辑是否必须这样 这个数据存储是否一定需要 这个数据的流向是否合理 确定新系统在DFD中变化部分将DFD分解成没有变化的部分 和将有变化的部分重新分析将有变化的部分DFD 需凭经验重新分解该处理 确定人机边界 重画数据流图 区分有效 逻辑 输入 有效 逻辑 输出和中心变换部分 进行一级分解 设计上层模块 进行二级分解 设计输入 输出和中心变换部分的中 下层模块 设计过程 传入模块 从下属模块取得数据 经过某些处理 再将其传送给上级模块 它传送的数据流叫做逻辑输入数据流 传出模块 从上级模块获得数据 进行某些处理 再将其传送给下属模块 它传送的数据流叫做逻辑输出数据流 变换模块 它从上级模块取得数据 进行特定的处理 转换成其它形式 再传送回上级模块 它加工的数据流叫做变换数据流 协调模块 对所有下属模块进行协调和管理的模块 系统结构图 变换型数据处理问题的工作过程大致分为三步 即取得数据 变换数据和给出数据 相应于取得数据 变换数据 给出数据 变换型系统结构图由输入 中心变换和输出等三部分组成 变换型系统结构图 进行一级分解方法 进行二级分解方法 它接受一项事务 根据事务处理的特点和性质 选择分派一个适当的处理单元 然后给出结果 在事务型系统结构图中 事务中心模块按所接受的事务的类型 选择某一事务处理模块执行 各事务处理模块并列 每个事务处理模块可能要调用若干个操作模块 而操作模块又可能调用若干个细节模块 事务型系统结构图 事务分析的映射方法 目录 面向数据流的需求分析面向数据流的设计面向对象的需求分析UML概述用例模型领域模型顶层架构模型面现对象的设计 UML概述 UML是UnifiedModelingLanguage缩写 面向对象的分析与设计 OOA D 方法的发展在80年代末至90年代中出现了一个高潮 UML是这个高潮的产物 它不仅统一了Booch Rumbaugh和Jacobson的表示方法 而且对其作了进一步的发展 并最终统一为大众所接受的标准建模语言 历史1994年10月 GradyBooch和JimRumbaugh开始致力于这一工作 他们首先将Booch93和OMT 2统一起来 并于1995年10月发布了第一个公开版本 称之为统一方法UM0 8 UnfitiedMethod 1995年秋 OOSE的创始人IvarJacobson加盟到这一工作 经过Booch Rumbaugh和Jacobson三人的共同努力 于1996年6月和10月分别发布了两个新的版本 即UML0 9和UML0 91 并将UM重新命名为UML UnifiedModelingLanguage UML概述 1996年 一些机构将UML作为其商业策略已日趋明显 UML的开发者得到了来自公众的正面反应 并倡议成立了UML成员协会 以完善 加强和促进UML的定义工作 当时的成员有DEC HP I Logix Itellicorp IBM ICONComputing MCISystemhouse Microsoft Oracle RationalSoftware TI以及Unisys 这一机构对UML1 0 1997年1月 及UML1 1 1997年11月17日 的定义和发布起了重要的促进作用 2003年 发布UML2 0 UML是一种定义良好 易于表达 功能强大且普遍适用的建模语言 它溶入了软件工程领域的新思想 新方法和新技术 它的作用域不限于支持面向对象的分析与设计 还支持从需求分析开始的软件开发的全过程 UML说明 首先 UML融合了Booch OMT和OOSE方法中的基本概念 而且这些基本概念与其他面向对象技术中的基本概念大多相同 因而 UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言 其次 UML不仅仅是上述方法的简单汇合 而是在这些方法的基础上广泛征求意见 集众家之长 几经修改而完成的 UML扩展了现有方法的应用范围 第三 UML是标准的建模语言 而不是标准的开发过程 尽管UML的应用必然以系统的开发过程为背景 但由于不同的组织和不同的应用领域 需要采取不同的开发过程 UML构成 UML由视图 views 图 diagrams 模型元素 Modelelements 通用机制 generalmechanism 等构成 图 视图 UML UML总结 基于UML的需求分析 需求分析步骤利用用例及用例图表示需求从业务要求描述出发获取执行者和场景对场景进行汇总 分类 抽象 形成用例确定执行者与用例 用例与用例的关系 生成用例图利用包图及类图表示目标软件系统的总体框架结构根据领域知识 业务需求和既往经验设计目标软件的顶层架构从业务需求提取 关键概念 生成类图以上两步骤可以并行展开 用例模型 用例模型的构成执行者用例用例与执行者的关系用例与用例的关系子系统 可选 执行者 执行者 Actor 是指外部用户或外部实体在系统中扮演的角色定义是直接与系统相互作用的系统 子系统或类的外部实体的抽象 它是用户所扮演的角色 是系统的用户 每个参与者定义了一个角色集合 通常 一个参与者可以代表一个人 一个计算机子系统 硬件设备或者时间等角色 典型的参与者如销售部经理 销售员和结帐系统 图形表示用小人图符表示 用例 定义对一组动作序列的描述 系统通过执行这一组动作序列为参与者产生一个可观察的结果用例特征说明了系统具有的一种行为模式说明了一个参与者与系统执行的一个相关的事件序列提供了一种获取系统需求的方法提供了一种与最终的用户和领域专家进行沟通的方法提供了一种测试系统的方法图形表示用椭圆形表示 事件流事件流是用例完成需求行为的事件描述 事件流的目的是建立用例中逻辑流程的文档 详细描述系统用户的工作和系统本身的工作 既包括正常状态下系统完成需求行为的事件 也包括在其他状态下不能完成需求行为的事件 事件流通常包括 简要说明前置条件事件流后置条件事件流一般用UML活动图来描述 用例 关系 执行者与用例的关系 触发执行和信息交换用例与用例的关系包含 使用 include 在基用例之上插入附加行为 并且具有明确的描述 包含公共用例扩展 extend 在基用例上插入基用例不能说明的扩展部分泛化 用例之间的一般和特殊关系 其中特殊用例继承了一般用例的特性并增加了新的特性关联 执行者与执行的用例之间存在通信路径 例子 用活动图表示用例的事件流 UML活动图一个在学校首次报名的UML活动图 用例的活动图表示 建立顶层架构 顶层架构是对软件系统建立结构和分划UML包图是表示顶层架构的适当机制1UML包图包是对类进行分组的一种机制包的划分是实现 分而治之 的重要手段将关系比较密切的关联类分在一个包中包与包的关系依赖构成用连接器来表示包与包交换信息 包图的例子 架构模式流程处理模式客户 服务器模式模型 视图 控制器模式分层模式需要综合考虑的因素包的数量包之间的耦合度软件元素的稳定性软件元素的必然性软件系统运行的物理网络拓扑软件元素的安全开发团队的技术 软件顶层架构的设计 架构模式 建立领域概念模型 UML类图是表示领域概念模型的适当机制UML类图在UML中 用类表示概念 用类图表示领域概念模型类图包含 名称 属性列表和方法列表类之间的关系继承 聚集 合 aggregation 整体与部分的直接模拟 分普通聚集和构成关联 类之间的相关性 存在稳定的消息传递通道依赖 是关联的弱化 存在临时消息传送通道总之 关联是依赖的强化 聚集是关联的强化 构成是聚集的强化 标识关键概念需求描述与用例说明业务领域中的相关规范 标准和术语定义反映业务领域知识的既往经验建立类建立类之间的关系 领域概念模型的建立 类图例子 目录 面向数据流的需求分析面向数据流的设计面向对象的需求分析面现对象的设计概述构建交互图精化类图精化体系结构设计配置图 设计概述 面向对象的 需求 分析模型 主要由顶层架构图 用例与用例视图 领域概念模型构成设计模型 包含包图表示的软件体系结构图 以交互图表示的用例实现图 完整精确的类图 针对复杂对象的状态图和用来描述流程化处理过程的活动图等设计人员的任务 针对分析模型中的用例 设计实现方案设计技术支撑设施设计用户界面设计出完整 精确的类图 顺序图 顺序图用来描述对象之间动态的交互关系 着重表现对象间消息传递的时间顺序 对象位于水平轴 垂直轴表示时间标识方式 对象名 类名垂直虚线表示对象生命线生命线上的矩形表示对象在此时的活动生命线下方用叉号 表示对象的生命终结消息自调用和非自调用 表示多次发送消息 顺序图例子 协作图 协作图用于描述相互合作的对象间的交互关系它强调交互对象间的静态链接关系消息标示于链接之上 箭头指明消息的传递方向可以用消息序列号表达时间顺序 状态图 状态图 用来描述一个特定类的对象的所有可能状态以及因事件而引起的状态转移 状态节点包含 状态名和活动活动包括 Entry活动Exit活动Do活动On event活动状态图的状态转移边上可以附加信息 事件名 参数 条件表达式 动作事件目标 事件名 参数 一个状态可以细分为多个子状态 状态图举例 构造交互图 交互图是用例精确实现方案用例中的事件流是用活动图来描述事件流中的事件应直接对应于交互图中的消息事件间的先后关系体现为交互图中的时序对消息的响应则构成消息接收者的职责 职责则将被确立为类的方法在复杂的用例中 不仅需要设计控制类 边界类和实体类 而且要设计辅助类 精化类图 在交互图中 对每个类的对象都规定了它必须响应的消息以及类的对象之间的消息传递通道 响应的消息对应类的操作 消息的传递对应类的连接关系精化类图就是定义类的属性与操作一个消息的响应对应一个操作 也可以多个消息响应一个操作 类之间的聚合和组合关系均可提供消息传递通道 精化体系结构 目的是寻找一种理想的包划分方案包中包含类的数量应适中 包的边界清晰 耦合程度低包的耦合度取决包中类之间的关系类间的耦合度从高到低是继承关系构成关系聚合关系关联关系依赖关系两个类的对象受同一执行者变化的影响 包图表示了目标系统的顶层
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术新课程教学实施方案及评价标准
- ‘一带一路’倡议全文解读与政策分析
- 企业法务风险防范与合同管理指南
- 初中英语复习教案与课堂设计
- 智能物流系统技术方案与应用
- 教师专业发展培训需求调查
- 装修工程全流程劳务合同范本
- 小学数学课堂教学设计与评价体系
- 四年级平行四边形与梯形专项练习册
- 初中数学二次根式教学重点总结
- 不明原因肺炎病例监测、排查和管理方案2025年修订版
- 呼吸衰竭护理疑难病例讨论
- 高考英语阅读理解1200个高频
- 2025安全生产法律法规专题知识培训
- 《狼来了》寓言故事演讲课件
- 《瑞吉欧课程模式》课件
- 校园传染病防控班主任培训
- 《大肠癌的治疗进展》课件
- GB/T 15268-2024桑蚕鲜茧
- GYK运行记录智能分析系统研究
- 计划生育服务站劳动合同
评论
0/150
提交评论