您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 《软件工程》第8课面向对象分析
第8课面向对象分析知识回顾•软件需求工程•需求分析与建模•需求获取的常用方法–常规的需求获取方法、快速原型获取需求。•需求模型•软件需求描述•需求管理前馈及作业总结•前馈–这次普遍也都比较好。–还有个别人应付。•作业–没完成。别处(网上)图像粘贴过来。–电子版和纸质版只能用一个。–动态模型:时序图、状态图、活动图。–用Rose软件。–荣婉如、武羿竹、唐月前馈检查•面向对象分析模型组成结构?•典型的五层次模型?•面向对象分析OOA的建模步骤?•分析类的类型?•边界类主要包括?•时序图中的主要元素?讲授内容•软件(系统)分析概述–面向对象软件分析–面向对象分析模型•面向对象分析建模–识别与确定分析类–建立对象行为模型–建立对象关系模型•面向对象分析示例1.软件分析概述•软件需求(需求分析)–用户角度,注重软件外在表现。•软件分析(系统分析)–开发者角度,注重软件内部逻辑结构。面向对象软件分析•OOA的主要任务–理解用户需求•全面地理解和分析用户需求•明确所开发的软件系统的职责•形成文件并规范地加以表述–进行分析,提取类和对象,并结合分析进行建模•OOA的模型:模型核心是以用例为主体的需求模型。三种子模型。–类/对象模型:全部类。–对象-关系模型:静态关系。–对象-行为模型:动态行为。面向对象软件分析属性、操作、协作者对象-行为模型对象-关系模型类/对象模型以用例模型为主体的需求模型面向对象分析模型面向对象软件分析•OOA的优点(1)同时加强了对问题域和软件系统的理解;(2)改进包括用户在内的与软件分析有关的各类人员之间的交流;(3)对需求的变化具有较强的适应性;(4)很好地支持软件复用;(5)确保从需求模型到设计模型的一致性。•分析模型的特点–全面覆盖软件的功能需求。–分析模型与软件的实现无关。–分析模型的表述方法与所采用的分析技术有关。面向对象分析模型•典型五层次模型–建立类/对象层、建立属性层、建立服务层、建立结构层、建立主题层。•OOA共同特征–类和类层次的表示、建立对象-关系模型、建立对象-行为模型。•OOA建模步骤–需求理解–定义类和对象–标识对象的属性和操作–标识类的结构和层次–建立对象---关系模型–建立对象---行为模型–评审OOA模型面向对象分析模型软件需求模型软件成品分析模型设计模型实现模型OOAOODOOPOOT面向对象分析模型2.面向对象分析建模•基于用例的面向对象分析方法–回顾需求阶段产生的用例规约,补充必要的详细信息;–研究用例的事件流,将用例的职责分配给若干分析类;–基于这些职责分配以及分析类之间的协作,即可开始为分析类间的关系建模了–一旦分析了用例,就需要查看确定的类,确保它们被详尽地描述–并确保分析模型各个部分之间的一致。识别与确定分析类•三种分析类–边界类boundary:提供参与者或外部系统交互协议的接口。主要有:用户界面类、系统接口类和硬件接口类。–控制类control•封装用例所特有的流程控制行为。•边界类和实体类之间并非始终需要一个控制类。–实体类entity•系统存储的信息及其相关行为。三种分析类实体类边界类控制类系统边界系统信息协调用例行为实体类边界类控制类系统边界系统信息协调用例行为实体类边界类控制类系统边界系统信息协调用例行为查找分析类•为每对参与者/用例确定一个边界类。学生课程目录系统课程注册RegisterForCoursesFormCourseCatalogSystem学生学生课程目录系统课程注册课程目录系统课程目录系统课程注册课程注册RegisterForCoursesFormRegisterForCoursesFormCourseCatalogSystemCourseCatalogSystem查找分析类•为每个用例设置一个控制类。学生学生课程目录系统课程注册课程目录系统课程目录系统课程注册课程注册RegistrationController查找分析类•确定相关的各个实体(包括属性与方法)。课程目录课程表学生建立对象—行为模型•参与者-边界类-控制类-边界类-实体类。•绘制出选课用例创建课表事件流的时序图:Student:RegisterForCoursesForm:RegistrationController:Schedule:Student:CourseCatalog:CourseCatalogSystem显示本学期有效的课程提供的清单新建一个课程表1://createschedule()5://displaycourseofferings()2://getcourseofferings()3://getcourseofferings(forSemester)6://displayblankschedule()7://select4primaryand2alternateofferings()8://createschedulewithofferings()9://createwithofferings()显示空的课程表让学生选择课程10://addschedule(Schedule)4://getcourseofferings()在这一点,提交课程表子事件流被执行•绘制出选课用例创建课表事件流的协作图:Student:RegisterForCoursesForm:RegistrationController:Schedule:Student:CourseCatalogSystem5://displaycourseofferings()6://displayblankschedule()1://createschedule()7://select4primaryand2alternateofferings()2://getcourseofferings()8://createschedulewithofferings()9://createwithofferings()3://getcourseofferings(forSemester)10://addschedule(Schedule)4://getcourseofferings():CourseCatalog建立对象—行为模型•为分析类分配职责:消息和职责的对应关系,消息的接收者承担相应的职责。职责大多沿用消息名称,还不是类的操作,用“//”前缀。//PerformResponsibility:Client:SupplierSupplier//PerformResponsibility交互图类图//PerformResponsibility:Client:SupplierSupplier//PerformResponsibility交互图类图建立对象—行为模型•绘制状态图:用例行为比较复杂,并且分散到不同的事件序列中,这时就需要为这个类创建一个状态图。–针对一个类的状态变化。–研究该类的动态行为。建立对象—行为模型建立对象—关系模型•类的属性–分析类本身具有的信息。•类的关联–通过关联可以找到其他分析类。–链与关联的对应关系。•类图–表现分析类及其关系。其中描述某个用例的分析类图称为参与类图。VOPC。•类的合并–每个分析类都代表一个明确定义的概念,具有不相重叠的职责。链与关联的对应关系PerformResponsibility链关联协作图类图0..*Primesuppliers0..*ClientSupplier:Client:SupplierClientSupplierPerformResponsibility()选课用例的参与类图RegisterForCoursesFormboundaryCourseOfferingentityScheduleentity0..*primaryCourses0..4Studententity0..*1RegistrationControllercontrol110..1currentSchedule0..1分析类的合并RegisterforCoursesCloseRegistrationStudentCourseOfferingCourseOfferingStudentCloseRegistrationControllerRegistrationControllerCloseRegistrationFormCourseCatalogSystemScheduleCourseCatalogSystemCourseOfferingScheduleRegistrationControllerStudentCloseRegistrationControllerScheduleCourseCatalogSystemBillingSystemRegisterForCoursesFormRegisterForCoursesFormCloseRegistrationForm3.面向对象分析示例——注册用例3.面向对象分析示例——注册用例3.面向对象分析示例——注册用例3.面向对象分析示例——维护个人信息3.面向对象分析示例——维护个人信息3.面向对象分析示例——维护个人信息3.面向对象分析示例——维护购物车3.面向对象分析示例——维护购物车3.面向对象分析示例——维护购物车3.面向对象分析示例——从购物车中删除商品3.面向对象分析示例——修改购物车中的商品信息3.面向对象分析示例——生成订单3.面向对象分析示例——生成订单3.面向对象分析示例——生成订单3.面向对象分析示例——管理订单3.面向对象分析示例——管理订单3.面向对象分析示例——管理订单3.面向对象分析示例——管理订单3.面向对象分析示例——管理订单3.面向对象分析示例——管理订单3.面向对象分析示例——管理订单课堂互动•P164:9题,系统选定图书馆管理系统进行面向对象分析。小结•软件分析将软件需求阶段产生的需求模型转变为软件分析模型。分析模型其实就是从软件开发者的角度,在静态组成结构和动态行为两个方面来描述的待开发的软件系统。•面向对象分析利用面向对象的技术来分析问题、建立问题域的静态模型和动态模型,并用UML等工具来表示这一需求对应的类对象模型、对象--关系模型和对象--行为模型等,从而完成对问题域建模,形成面向对象的分析模型。•软件分析通常从用例分析开始,建立系统需求的静态结构模型和动态行为模型。课外任务•作业–P164:习题5、习题9(完善)。•从教学群下载“《软件工程》课程学案.doc”文件完成第9次课学案内容并填写“《软件工程》课程前馈表”于本周六17:00前由各组组长收集(每组集成到一个文件中)通过QQ群及时反馈。问题解答•每个用例配置一个控制类还是一个实体类配置一个控制类?欧阳瑞雪•控制类永远不会发生变更吗?怎样确定控制类?赵家仪•子事件在动态模型中处理的先后顺序怎么判断?张业•时序图中,关系类、控制类和实体类这三个类的加入顺序可以改变吗?张娜•怎样快速区分出边界类,控制类,实体类?韩椿义•为什么要先用ooA建立一个与具体现实无关的面向对象分析模型,再进行转化?不能直接建立一个现实的有实在意义的模型吗?杨聪颖•时序图中为什么没有画课程目录系统返回的开设课程信息?陈紫薇
本文标题:《软件工程》第8课面向对象分析
链接地址:https://www.777doc.com/doc-2804368 .html