软件工程 史济民

合集下载

软件工程7-史济民

软件工程7-史济民
2. 系统元素设计
• 系统元素包括组成系统的类、子系统与接口、包等。系统 元素设计是对每个设计元素进行详细设计。主要的设计内 容是:
• 类/对象设计; • 子系统设计; • 包设计。
模式的应用
• 提倡在OOD中充分应用设计模式。 • 模式的定义
• 模式是解决某一类问题的方法论,也是对通用问题 的通用解决方案。
① 确定任务的特征。 ② 定义一个协调者任务和与之关联的对象。 ③ 集成其他任务和协调者。
• 任务管理部件的设计一般遵循如下的步骤 与策略:
① 识别由事件驱动和时间驱动的任务。
② 识别关键性任务、任务优先级以及任务管理 类。任务管理类是为了实现而引入的专门用 于管理和协调其他任务的任务。
③ 定义任务。说明任务的名称、功能、优先级 任务与其他任务的通信方式。
属性、操作、协作 者
类/对象 模型
用例 模型
对象关系模型
对象-行为模型
责任设计
消息设计 类及对象设计 系统架构设计
面向对象设计的任务
• OOD的软件设计可划分为两个层次,即系统架构 设计和系统元素设计。设计过程是循环渐进的。
1. 系统架构设计
• 软件系统架构是指系统主要组成元素的组织或结构,以及 其他全局性决策,组成元素之间通过接口进行交互。系统 架构包含关于软件系统组织的许多重要决定。
<<Interface>>
ICourseCatalogSystem
0..*
1 (from External System Interfaces)
4、分布式实现机制
• 为实现分布式结构,需完成以下工作。 1. 确定网络拓扑配置 2. 将设计元素分配到网络节点
• 节点容量(指内存量和处理能力) • 通信介质带宽(总线、LAN、WAN) • 硬件与通信链路的可用性、重选路由 • 对冗余与容错能力的要求 • 响应时间要求 • 吞吐量要求

参考文献

参考文献

参考文献1 张海藩. 软件工程导论(第三版). 北京:清华大学出版社,19982 杨文龙,姚淑珍,吴云. 软件工程. 北京:电子工业出版社,19973 陈松乔,任胜兵,王国军. 现代软件工程. 北京:清华大学出版社,20044 Ian K. Bray. 需求工程导引. 舒忠梅等译. 北京:人民邮电出版社,20035 郭荷清等. 现代软件工程——原理、方法与管理. 广州:华南理工大学出版社,20046 Jim Arlow等. UML和统一过程:实用面向对象的分析和设计. 方贵宾等译. 北京:机械工业出版社,20037 Ian Sommerville. 软件工程. 程成等译. 北京:机械工业出版社,20038 Stephen R. Schach. 面向对象与传统软件工程. 韩松等译. 北京:机械工业出版社,20039 郑人杰. 软件工程(中级). 北京:清华大学出版社,199910 万建成,卢雷. 软件体系结构的原理、组成与应用. 北京:科学出版社,200211 齐治昌,谭庆平,宁洪. 软件工程. 北京:高等教育出版社,199712 Roger S.Pressman. 软件工程——实践者的研究方法(第四版). 黄柏素,梅宏译. 北京:机械工业出版社,199913 胥光辉,金风林,丁力. 软件工程方法与实践. 北京:机械工业出版社,200414 Penny Grubb,Armstrong A Tankang. 软件维护:概念与实践(第二版). 韩柯,孟海军译. 北京:电子工业出版社,200415 史济民,顾春华,李昌武. 软件工程——原理、方法与应用(第二版). 北京:高等教育出版社,200216 Rex Black. 软件测试过程管理(第二版). 龚波,但静培,林生等译. 北京:机械工业出版社,200317 Brian Marick. 软件子系统测试. 韩柯等译. 北京:机械工业出版社,200318 James A.Whittaker. 实用软件测试指南. 马良荔,俞立军译. 北京:电子工业出版社,200319 Paul C. Jorgensen. 软件测试(第二版). 韩柯,杜旭涛译. 北京:机械工业出版社,200320 Dirk Huberty等. 软件质量与软件测试. 马博,赵云龙译. 北京:清华大学出版社,200321 Joseph Raynus. CMM软件过程改进指南. 邱仲潘等译. 北京:电子工业出版社,200222 Sami Zahran. 软件过程改进. 陈新,罗劲枫等译. 北京:机械工业出版社,200223 郑人杰,王伟,王方德. 基于软件能力成熟度模型(CMM)的软件过程改进——方法与实施. 北京:清华大学出版社,200324 Kim Caputo. CMM实施与软件过程改进. 于宏光,王家锋等译.北京:清华大学出版社,200325 James R. Persse. CMM实施指南. 王世锦,蔡愉祖译.北京:机械工业出版社,200326 卡耐基-梅隆大学软件工程研究所. 能力成熟度模型(CMM):软件过程改进指南. 刘孟仁等译. 北京:电子工业出版社,200127 郑人杰. 实用软件工程(第二版). 北京:清华大学出版社,200128 王庆育. 软件工程. 北京:清华大学出版社,200429 刘润彬、张华. 软件工程简明教程. 大连:大连理工大学出版社,199530 Ian Sommerville. Software Engineering(影印版/第7版). 北京:机械出版社,200331 李刚. 软件工程分析与考试指导. 北京:高等教育出版社,200232 邓良松,刘海岩,陆丽娜. 软件工程. 西安:西安电子科技大学出版社,200033 周苏,王文. 软件工程教程. 北京:科学出版社,200234 钟珞. 现代软件工程学. 北京:国防工业出版社,200435 钟珞. 计算机软件基础. 武汉:武汉理工大学出版社,200236 钟珞. 系统分析员知识精要与试题分析. 北京:中国物质出版社,2005。

图书管理系统项目计划任务书

图书管理系统项目计划任务书

图书管理系统项目任务计划书(项目简称:图书管理系统)[制作单位:小辣椒软件开发有限公司]1 概述图书管理系统项目是一个由人、计算机等组成的能进行管理信息的收集、传递、加工、保存、维护和使用的系统。

利用信息控制企业的行为;帮助企业实现其规划目标。

在现代大中型企业纷纷利用的系统。

图书馆管理系统,能进行图书馆管理系统能实测国民经济和企业的各种运行情况;利用过去的数据预测未来;从企业全局出发辅助企业进行管理决策;利用信息控制企业的行为;帮助企业实现其规划目标。

图书馆管理系统合运用了管理科学,系统科学,运筹学,统计学,计算机科学等学科的知识。

可以通俗的简化的描述图书馆管理系统的三要素:系统的观点、数学的方法以及计算机的应用。

1.1 项目情况项目名称:图书管理系统。

项目简介:图书管理1.2 参考文献[1] 史济民. 软件工程[M]. 第三版. 北京:高等教育出版社, 20092 项目人员2.1 项目团队角色分工2.1.1组长杜飞团队负责人,负责人的工作任务为:<一>,内部工作协调,包括1)计划作成、2)进度控制、3)向老师汇报工作。

<二>,外部工作协调,包括1)与用户进行协调、2)工作汇报。

<三>,开发人员的开发过程的后勤保障工作。

<四>,项目周报文档作成,包括项目进度、项目重大问题、项目风险报告、风险解决方案。

(附项目周报格式)<五>,召集内部例会。

<六>,部分编码的编写。

<七>,总体方案做成、包括软件架构及各种交付文档,确定需求分析和概要设计的规格(表现形式和内容)及提纲。

2.1.2 组员闪露工作任务为:<一>,与老师进行部署方面的技术沟通。

<二>,组织培训向老师讲解软件的使用,向老师提供技术支持。

<三>,完成产品部署说明图及说明。

<四>,负责部分代码编写<五>,组织例会向老师进行工作汇报。

软件工程设计实践变电器校验软件工程部分

软件工程设计实践变电器校验软件工程部分

上海##学院课程设计报告课程名称软件工程设计实践变电器校验院(系)计信学院专业计算机系年级2003级#学生#时间2006-2007第一学年19周-20周设计地点学院机房307指导老师签名:教研室主任(系主任)签名:学生签名:变电器校验管理系统一、课题背景、目的变电器校验管理系统是供电局对下属变电所以及变电所内的各变电器的校验信息管理。

它能通过数据的统计对各变电所的变电器提供定期的校验和管理,使总部在业务上实现了有效的管理和及时提供有效应对措施。

二、课题的内容需求分析变电器校验管理系统得需求分析分为两个过程,一是理解需求,二是分析需求。

1、理解需求(1)进入主界面,点击年份、变电所和变电器名称,查询并显示符合条件的变电器资料。

(2)主界面,点击某行取得须校验的变电器信息,查询并显示符合条件的变送器遥测量数据。

(3)单击主界面上的校验报告按钮,可显示所有的变电器校验信息。

(4)点击校验信息上的修改按钮,可以修改变电器的各属性信息。

(5)也可将校验日期,校验人,结论,结论分析添加后点击修改按钮将对应的内容添加到数据库。

(6)点击校验报告界面上的刷新按钮,即不提交修改后的数据重新初始化界面内的数据。

(7)点击校验报告界面上的退出按钮,。

2、分析需求变电器校验管理是对指定年份下的指定变电所的变电器的测量数据以及结果进行校验和确认。

共分为四个部分:安装区域,变电器遥测量数据,变电器遥测量数据的校验数据,校验结论。

变电器校验的基本功能:(1)变电器安装区域根据用户指定的信息(如年份、变电所、变电器名称),显示变电器的信息方便用户确认。

(2)变电器遥测量数据用户在变电器安装区域中显示的内容中选取需要校验的的变电器后会在本区域显示需要的变电器遥测量数据。

(3)变电器遥测量数据的校验数据此模块可以修改有关变电器以及变电器遥测量数据各个属性值。

(4)校验结论可以根据给定的校验公式进行数据的校验,然后将校验后的数据(包括校验人,校验日期,结论,结论分析)保存到数据库。

软件工程的发展及应用

软件工程的发展及应用

『 崔杜 武.o rul r .从基 础到 应 用. 民邮 电 出版 社 4 1 P we ie 0 B d 8 人

8 — 6
参考 文献 :
f 史 济 民. 工程 . 教 育 出版 社 , 0 1 1 软件 高等 2 2 0 [ 张 海藩 . 件 工程 导论 . 华 大学 出版 社 2 】 软 清
『 马承 志.o r u d r . 程 实例 与技 巧 . 械 工业 出版社 3 1 P we i e 8 编 B l 0 机
针算机硬件技术的迅速发展 , 要求软件系统能与之相适应。然
而 , 期的软件 生产具 有作坊 式、 早 个体 化特 点, 软件 开发平 台单一 , 开发 工具相对 落后 , 序设计 语言功 能差 。 其是 软件维 护工作 复 程 尤 杂 ,耗费大 量的物力 、人 力与计算 机资源 , 量程序 的个 体化特 性 大 使得它们 无法维 护与修 改 。而且 ,软件 的结构变 得越来越 复杂 ,规 模 也越来 越大 ,软件维护 与管理 开发 费用 不断 增加 ,这种软 件开发 工具 、 术与生产 方式落 后的状 况与计 算机行 业对软 件的需 求 日益 技 增加形成 了很大 矛盾 。为了解 决这一 困境 , 究人员 把工程 技术 的 研 思想 引入 到软件领 域 , 软件技术 走上 工程学科 的途 径 。 欧与美 使 西 国的一些 软件研 究人 员于 16 98年 首先提 出 “ 软件工程 ”这 一学科 名 词 ,从此 软件工程 得到 了相关研 究与发 展 。 ( )软件 工程 的定 义 一 软件工 程是 一 门研 究用工 程 化 的方法 维护 与 构建 实用 的 、有 效 的 与高质 量 的软件 学科 。它 涉 及到 数据 库 、系 统平 台 、程序 设 计 语言 、软件 开 发工 具 、设计 模 式与 标准 等方 面 的 内容 。在现 代 信 息社会 中,软 件应 用在 许多 方面 。典型 的软 件如 嵌入 式 系统 、 办 公套 件 、编 译 器 、数据 库 、 电子 邮 件与游 戏 等 。工业 、银 行 、 政 府部 门、农业 、航 空 等 。这些 实 际应 用 促进 了社 会 与经 济 的 迅速 发展 ,以方 面提 高 了生活 质量 , 另一方 面 ,使 人们 的 工作 更 加 高效 。 三 、软件 工程 的方 法 与技术 当前 ,软 件 工程 中主 要使 用 的技 术 与方 法可 以分成 管理 与技 术两 类 。从技 术 角度 来看 ,软件 工程 理 论在 实 践 中应 用 时重 点在 软件 复用 。参 照 目前成 熟 的产 品 的开发模 式 , 软件 复用 可 以在软 件开 发 中规避 重复 劳动 , 以现有 成果 为基 础 ,利 用过 去 开发 应用 系统 中积 累 的经验 与理 论知 识 ,将开 发 的重 点放 在新 应用 的特有 构成 成分 上 。 从管 理的 角度 来看 ,软 件项 目管 理与 其 他项 目管 理相 比,具 有一 些不 同的特 性 。软件 项 目管 理需 要平 衡 资源 、质 量 、工 期 、 需求 这 四者之 间 的关系 ;依 靠规 范 的项 目过 程来 控制 项 目进度 , 并能 确保 及 时发现 、解 决 问题 。大 规 模 的软件 工 程项 目需要 拆

软件工程(史济民第三版)-原理、方法及应用课后习题

软件工程(史济民第三版)-原理、方法及应用课后习题

软件工程(史济民第三版)-原理、方法及应用课后习题软件工程(史济民第三版)-原理、方法及应用课后习题软件工程是一门涉及软件开发和维护的学科,具有原理、方法和应用三个方面的内容。

本章将探讨史济民第三版的软件工程课后习题,包括问题分析、需求规格说明、软件设计、软件测试等方面的内容。

1. 问题分析问题分析是软件工程中的第一步,它涉及对问题的背景、需求和目标进行分析。

在史济民第三版的课后习题中,有许多问题需要进行分析和解决。

例如,习题1要求分析一个给定的场景,找出需求和问题,进而提出解决方案。

对于这类问题,我们可以采用以下的分析步骤:1. 理解问题背景和需求:阅读习题中的场景,了解涉及的业务领域和需求。

2. 识别问题:找出场景中存在的问题和挑战,例如效率低下、错误率高等。

3. 提出解决方案:基于问题的分析,提出改进措施和解决方案,例如引入自动化工具、优化算法等。

2. 需求规格说明需求规格说明是软件工程中的重要环节,它涉及对软件系统需求进行详细描述和规定。

在史济民第三版的习题中,有许多涉及需求规格的问题。

例如,习题2要求对给定的场景进行需求分析,并书写需求规格说明。

在完成这类习题时,我们可以参考以下的格式:1. 概述:对软件系统的背景和目标进行简要描述。

2. 功能需求:详细列出系统需要实现的功能和特点。

3. 非功能需求:描述与系统性能、安全性等相关的需求。

4. 约束:列出系统开发过程中需要遵守的限制条件。

3. 软件设计软件设计是软件工程中的核心环节,它涉及软件系统的整体结构和模块设计。

在史济民第三版的习题中,有许多关于软件设计的问题。

例如,习题3要求设计一个给定场景下的软件系统。

在进行软件设计时,我们可以使用以下的设计方法:1. 模块化设计:将软件系统划分为不同的模块,并设计各个模块的功能和接口。

2. 流程图和数据流图:使用图形化的工具描述软件系统的流程和数据流动。

3. 面向对象设计:基于对象和类的概念进行系统设计,强调封装、继承和多态等特性。

软件工程(史济民第三版)软件工程

软件工程(史济民第三版)软件工程

软件工程——原理、方法与应用绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

1.软件维护费用急剧上升,直接威胁计算机应用的夸大。

2.软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。

采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。

3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。

答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。

当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。

新方法在推行初期,总有人不愿接受和采用。

若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。

(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。

软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。

所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。

4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。

答:用C开发一个软件,是校园一卡通的模块。

首先,要在编辑程序支持下在计算机中输入源程序。

然后编译程序,把源程序翻译成目标程序。

如果发现错误,就重新调入编辑程序对源程序进行修改。

编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。

编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。

离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。

“软件工程导论”重点、难点

“软件工程导论”重点、难点

“软件工程导论”的授课内容重点、难点--供期末考试(教考分离)命题参考一、教材:软件工程—原理、方法与应用(第3版),史济民等编著,高等教育出版社二、任课教师: 陈征、于海雯三、授课内容及重点、难点第1章绪论重点:软件的基本概念,软件危机,软件工程学的范畴,传统软件工程和面向对象软件工程的比较。

第2章软件生存周期与软件过程重点:软件生存周期的基本概念,传统软件开发模型(瀑布模型、快速原型模型、增量模型、螺旋模型)的特点,可行性研究的内容,风险分析的3项活动。

第3章结构化分析与设计重点:结构化分析的任务和步骤,数据流图的组成符号,画分层的数据流图,数据字典的条目,加工逻辑的描述工具(判定表和判定树等),结构化设计的任务和步骤,面向数据流的设计方法(变换映射和事务映射),模块划分的原则,详细设计的目的与任务,常用的详细设计工具(程序流程图和N-S图等)。

难点:画分层的数据流图,画判定表和判定树,变换映射和事务映射。

第4章面向对象与UML重点:面向对象的基本概念,UML中的9种图(4种静态图、5种动态图)的基本结构,类与类之间的4种关系(关联、聚集、泛化、依赖)的含义,类图的画法。

难点:类图的画法。

第7章7.1 软件设计概述重点:软件设计的基本概念(模块化、抽象与细化、信息隐藏、模块独立性),内聚性(7种类型)和耦合性(7种类型)的含义。

第8章编码与测试重点:编码的风格,编码语言的选择,测试的目的,黑盒测试和白盒测试的测试用例设计方法,多模块程序的测试策略(单元测试、集成测试、确认测试和系统测试)。

难点:黑盒测试和白盒测试的测试用例设计。

第9章软件维护重点:软件维护的种类,维护的副作用,软件配置管理的含义。

第11章软件工程管理重点:软件估算模型、软件成本估计、人员的分配与组织、项目进度安排(计划评审技术图和Gantt 图)。

第12章软件质量管理重点:质量保证和质量认证的基本概念,软件可靠性的概念,软件容错技术,CMM软件能力成熟度模型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生
课程表
课程目录
建立对象—行为模型
• 用例规约中给出了事件流,依据这些事 件流来绘制动态图,包括时序图和协作 图。
绘制出选课用例创建课表事件流的时序图
: Student
: RegisterForCoursesForm
: RegistrationController : CourseCatalogSystem
第6章 面向对象分析
软件分析概述 面向对象分析建模 面向对象分析示例
湘潭大学
6.1 软件分析概述
• 软件需求与软件分析
• 软件需求:用户角度,注重软件外在表现 • 软件分析:开发者角度,注重软件内部逻辑
结构
• 面向对象软件分析 • 面向对象分析模型
面向对象软件分析OOA
• OOA的主要任务
• 理解用户需求
在这一点,提交课程表子事件流被执行
绘制出选课用例创建课表事件流的协作图
5: // display course offerings( ) 6: // display blank schedule( )
: RegisterForCoursesForm
: Course Catalog
4: // get course offerings( ) : CourseCatalogSystem
OOA OOD OOP OOT
软件需求模型 分析模型 设计模型 实现模型 软件成品
6.2 面向对象分析建模
• 通常把从用例开始的分析过程称为用例分 析,这一阶段定义的类称为分析类。
• 基于用例的面向对象分析步骤是:
• 回顾需求阶段产生的用例规约,补充必要的 详细信息;
• 研究用例的事件流,将用例的职责分配给若 干分析类;
• 有些类所涉及的用例行为比较复杂,并且分 散到不同的事件序列中,这时就需要为这个 类创建一个状态图。
• 针对一个类的状态变化。 • 研究该类的动态行为。
建立对象—关系模型
• 分析类的属性
• 指分析类本身具有的信息。类可以用属性来存储信息。
• 分析类的关联
• 通过关联可以找到其他分析类 • 链与关联的对应关系
• 边界类<<boundary>>:代表系统与外部环境交 互的边界。
• 控制类<< control>>:代表系统在运行中的控 制逻辑。
• 实体类<<entity>>:代表系统要存储和维护的 信息。
三种分析类
边界类 系统边界
控制类 协调用例行为
实体类 系统信息
• 边界类<<boundary>>:提供对参与者或外部 系统交互协议的接口,隔离系统与外界的变 化。用于对系统中依赖于环境的那些部分建 模。
8
面向对象分析方法
• Coad&Yourdon方法,采用五层次的OOA模型。
五层次图
• 主题(或范畴)的概念。
• 主题是指导读者(包括系统分析员、软件设 计人员、领域专家、管理人员、用户等,总 之,“读者”泛指所有需要读懂系统模型的 人)理解大型、复杂模型的一种机制。
• 也就是说,通过划分主题把一个大型、复杂 的对象模型分解成几个不同的概念范畴。
RegisterForCoursesForm
CourseCatalogSystem
查找分析类
• 为每个用例设置一个控制类
学生
课程注册
课程目录系统
RegistrationController
随着分析的逐步深入, 该控制类有可能分解为 多个控制类或与其他控 制类合并。
查找分析类
• 确定相关的各个实体(包括属性与方法)。实体信息 可以定义成类,或定义成类的属性。如果一个拟建的 实体类A仅被另一个实体类B引用,可将A作为B的属性。 如果某一个实体信息可能被多个类引用,或者该实体 信息具有明显的行为特征,则通常将其定义为一个独 立的实体类。
• 基于这些职责分配以及分析类之间的协作, 即可开始为分析类间的关系建模了。
• 一旦分析了用例,就需要查看确定的类,确 保它们被详尽地描述并确保分析模型各个部 分之间的一致。
识别与确定分析类
• 从以文字说明的软件需求过渡到以图形来 描述的分析模型,是一个渐进的过程。
• 查找一种备选的分析类,通常是这个过程 的第一步。三种分析类:
员之间的交流; (3)对需求的变化具有较强的适应性; (4)很好地支持软件复用; (5)确保从需求模型到设计模型的一致性。
• 分析模型的特点
• 全面覆盖软件的功能需求 • 分析模型与软件的实现无关 • 分析模型的表述方法与所采用的分析技术有关
面向对象分析方法
面向对象分析方法有许多不同的版本,典型的有:
• 分析类对象可区分为消息的发出者和接收者。 接收者通过承担相应的职责,作为对发出者的 回应,一个分析类的实例在事件序列中接收的 消息集合,就是该分析类应承担职责的依据。
为分析类分配职责
• 分析类的职责可以从交互提供的消息中得到,对每一条消 息,首先检查接收它的对象所属的类,如果职责不存在, 则创建一个新的职责以便提供需要的行为。职责大多沿用 消息的名称,它还不是类的操作。
CloseRegistration Form
Course Catalog System
Billing System
CloseRegistration Student Controller
G.Booch的
OOD,
J.Rumbaugh的 OMT,(对象,动态,功能模型)
I.Jacobson的 OOSE,(特别强调use case)
Coad&Yourdon的 OOAD, (最易学)
和综合了OOD,OMT,OOSE 而提出的 UM
教材主要介绍基于OOAD(Coad&Yourdon方法)
的需求建模方法。
• 全面地理解和分析用户需求(多视角检验需求) • 明确所开发的软件系统的职责 • 形成文件并规范地加以表述
• 进行分析,提取类和对象,并结合分析进行建模。 基本步骤(反复进行):
• 标识类,定义属性和方法;刻画类的层次;表示对象间的 关系;为对象的行为建模 。
• OOA的模型
• 需求模型 • 类/对象模型 • 对象-关系模型 • 对象-行ister for Courses
Close Registration
RegisterFor CoursesForm
Registration Controller
Course Catalog System
Course Offering
Student Schedule
• 分析类图
• 表现分析类及其关系 • 描述某个用例的分析类图称为参与类图(VOPC)。从逻辑上说,每
个用例可对应于一张完整的参与类图。具体实践中,一个用例可以 绘制多张类图,用每张类图展示不同的侧重点。
• 分析类的合并
• 每个分析类都代表一个明确定义的概念,具有不相重叠的职责。一 个类可以参与任何数量的用例,就这个系统而言,需要把具有相似 行为的类合并为一个。
• 在后续的开发活动中,分析类将逐步演变为具体的设计元 素,相应地,分析类的职责逐步演变为设计元素的行为, 即设计类的操作和子系统接口的行为。
交互图
:Client
:Supplier
// PerformResponsibility
类图
Supplier // PerformResponsibility
绘制状态图
动词
动作、用户可做的事情或可能 发生的事件
分析模型组件
端点或数据存储 (DFD)
参与者(用例图) 实体或属性(ERD) 类或类属性(类图)
加工(DFD)
用例(用例图) 关系(ERD) 转换(STD) 活动6 (活动图)
面向对象分析
• OOA的优点(与传统分析方法相比)
(1)同时加强了对问题域和软件系统的理解; (2)改进包括用户在内的与软件分析有关的各类人
: Schedule
: Student
: Course Catalog
1: // create schedule( )
2: // get course offerings( )
新建一个 课程表
3: // get course offerings(forSemester) 4: // get course offerings( )
: Student
10: // add schedule(Schedule) 9: // create with offerings( ) : Schedule
: Student
为分析类分配职责
• 动态图将用例所要求的行为分派到分析类的过 程,是从软件需求过渡到OOD的重要环节。其 核心概念是消息和职责的对应关系。
• 实体类<<entity>>:用于对必须存储的 信息和相关的行为建模,其主要职责是 存储和管理系统中的信息。它通常具有 持久性,即属性和关系需要长期保存。
• 一个实体类对象通常不是某个用例所特 有的,甚至不专用于一个系统,其属性 和关系的值通常来自于参与者。实体类 对象独立于外部环境。
查找分析类
显示本学期有效的 课程提供的清单
5: // display course offerings( )
显示空的课程 表让学生选择 课程
6: // display blank schedule( )
7: // select 4 primary and 2 alternate offerings( ) 8: // create schedule with offerings( ) 9: // create with offerings( ) 10: // add schedule(Schedule)
相关文档
最新文档