软件工程4-4.ppt
- 文档编号:30872984
- 上传时间:2024-09-13
- 格式:PPT
- 页数:196
- 大小:2.40MB
软件工程4-4.ppt
《软件工程4-4.ppt》由会员分享,可在线阅读,更多相关《软件工程4-4.ppt(196页珍藏版)》请在冰豆网上搜索。
第四部分现代软件工程的需求过程现代软件工程现代软件工程传统的需求分析方法-1面向对象的需求分析方法-2基于UML的需求分析方法-3需求工程与需求管理实现-4第四部分第四部分现代软件工程的需求过程现代软件工程的需求过程第三章基于UML的需求分析方法UML概述-3.1需求获取与用例建模-3.2类与对象建模-3.3动态建模-3.4物理体系结构建模-3.5第四部分第四部分现代软件工程的需求过程现代软件工程的需求过程3.1UML概述UML统一OO方法大战的努力n1960年-70年代COBOL,FORTRAN,C结构化分析和设计技术n1980年-1990年前Smalltalk,Ada,C+,VisualBasic早期面向对象生成(代码)方法n1990年中晚期JavaUnifiedProcess什么是UML?
nUnifiedModelingLanguage(统一建模语言)是统一建模语言)是国际对象管理组织国际对象管理组织OMG制定的一个通用的、可视制定的一个通用的、可视化建模语言标准化建模语言标准n用于描述(用于描述(specify)、)、可视化(可视化(visualize)、)、构构造(造(construct)和记载(和记载(document)软件密集型软件密集型系统的各种工件系统的各种工件nUMLUML提供了一系列建模元素、概念、关系以及规则,提供了一系列建模元素、概念、关系以及规则,应用于软件开发活动应用于软件开发活动n详细内容,请学习详细内容,请学习统一软件开发过程统一软件开发过程(TheUnifiedTheUnifiedSoftwareDevelopmentProcessSoftwareDevelopmentProcess)(美)(美)IvarIvarJacobsonJacobson、GradyGradyBoochBooch、JamesJamesRumbaughRumbaugh著,周伯生、冯学民、樊著,周伯生、冯学民、樊东平译(机械工业出版社)东平译(机械工业出版社)UML概要概要nUML是一种语言:
可视化详细描述的构造性的文档化的nUML的价值是一个开发的标准支持完整的软件开发生命周期模型支持不同的应用领域是基于经验的和用户群体需要的被许多工具支持UML概念nUMLUnifiedModelingLanguage.组合了当前最好的面向对象软件建模方法UML三位主要贡献者n1.OMT方法(对象、动态、功能模型,JamesRumbaugh)n2.TheBoochmethod(5个步骤,GradyBooch)n3.OOSE(UserCase图,IvarJacobson)JamesRumbaughGradyBoochIvarJacobsonUML概念n1994年,Booch和Rumbaugh在Rational开始了UML的工作,但是的目标是创建一个“统一方法”n他们把Booch93和OMT2统一起来,与95年发布了UM0.8(UnifiedMethod)n1995年OOSE的创始人Jacobson加入到这个联盟中,开始把工作重点放到创建一种标准建模语言,UMLUnifiedModelingLanguage。
n他们以Booch方法、OMT方法、OOSE方法为基础,吸收了其他流派的长处,于96年6月、10月、97年1月、11月分别推出了UML0.9、0.91、1.0和1.1创建创建UMLBooch方法OMTUnifiedMethod0.8OOPSLA95OOSE其他方法UML0.9Web-June96公共公共反馈反馈最后提交给最后提交给OMG,Sep97第一次提交给第一次提交给OMG,Jan97UML1.1OMG认可认可,Nov1997UML1.3UML1.0UML团体团体UML概念
(1)nMethod方法告诉使用者做什么、怎么做、什么时候做、为什么做(特定活动的目的),方法包括模型nModeling模型用来描述使用某种方法的结果,例如,通过不同角度的简化视图,描述对象系统的设计与实现结果,模型用建模语言来表达nLanguage建模语言由记号(模型使用的符号)和一组规则(语法、语义等)组成UML概念
(2)nUML是一种语言遵循特定的规则允许创建各种模型并不告诉设计者需要创建哪些模型并不提供开发过程nUML是可视化语言UML是图形化语言图形便于交流(一幅图抵上千文字)nUML是用于构造系统或理解系统的语言UML既支持正向工程,又支持反向工程nUML是文档化语言将所建造的系统记录下来便于新程序员跟进开发产品新版本时很有用处UML的概念的概念(3)n模型元素n关系n扩展的机制n图表UML构成:
模型元素关系扩展的机制图表模型元素模型元素关系关系图表图表模型元素模型元素n结构元素类,接口,协作用例,主动类,构件节点n行为元素交互,状态机n组元素包,子系统n其它元素注解类、对象与接口n一个系统往往可以从不同的角度进行观察,一个角度构成了一个视图nUML有九种图表,构成5种视图:
1、用例图(usecasediagram)2、类图(classdiagram)3、对象图(objectdiagram)4、状态图(statediagram)5、时序图(sequencediagram)6、协作图(collaborationdiagram)7、活动图(activitydiagram)8、构件图(componentdiagram)9、部署图(deploymentdiagram)UML的图表与视图静态逻辑视图动态逻辑视图3-并发视图并发视图1-用例视图用例视图5-部署视图部署视图2-逻辑视图逻辑视图4-构件视图构件视图模型模型,视图视图,和图表和图表UseCaseDiagramsUseCaseDiagrams用例图用例图ScenarioDiagramsScenarioDiagrams协作图协作图StateDiagramsStateDiagrams组件图组件图ComponentDiagramsComponentDiagrams分布图分布图StateDiagramsStateDiagrams对象图对象图ScenarioDiagramsScenarioDiagrams状态图状态图UseCaseDiagramsUseCaseDiagrams时序图时序图StateDiagramsStateDiagrams类图类图活动图活动图模型模型是对一个系统从详细观察的角度的描述模型模型图表图表n图表是模型的视图表现给投资者看得详细的描述;提供了系统的局部详细描述;和别的视图保持语义一致;n在UML中,有九种标准图表静态视图:
用例图,类图,对象图,组件图,分布图动态视图:
时序图,协作图,状态图,活动图用例图用例图n捕获用户能够看到的系统通过对”场景”的描述,定义系统的功能和性能,并获得用户和开发团队的共同认可提供清楚和无二义的用户与系统的交互描述用例图n在开发过程的早期创建n目的:
详细说明系统的表达含义;捕获系统的需求;验证系统的体系结构;驱动实现和生成测试用例。
n由分析人员和领域专家开发UseCase图nUseCase图形描述了一个系统应该执行的什么或应该有什么外部系统它描述了存在的actors(外部系统)、usecase(该系统应该执行什么)以及它们的关系n在UseCase视图中可以包含以下的图形UseCase图:
包括:
包、actors、usecase和关系相互作用图(序列图或协同图):
包括:
对象和消息n符号表示:
系统名称系统用例名用例角色关联UseCase图例保险商务系统签定保险单销售统计客户统计客户保险销售员类图类图n捕获系统的词汇表n在开发过程中被创建和精确化n目的系统中的名字和模型概念详细描述协作关系详细描述逻辑数据库表n由分析人员、设计人员和代码实现人员开发类图ClassDiagram类图描绘系统的静态视图它描述了系统逻辑设计中存在的包、类以及它们之间的关系类图可以代表该系统中部分或全部的类结构学生姓名:
string学号:
string书书名:
string价格:
real1购买0.*属于对象图对象图n捕获实例和连接对象图对象图n捕获实例和连接n在分析和设计阶段创建n目的举例说明数据/对象结构详细描述瞬态图n由分析人员、设计人员和代码实现人员开发对象图ObjectDiagram王平:
学生姓名:
王平学号:
020106英语:
书书名:
英语价格:
26.5数学:
书书名:
数学价格:
21.8对象间关系n关联关系(Association)n聚集关系(Aggregation)n泛化关系(Generalization)n依赖关系(Dependency)n细化关系(Refinement)构件图构件图n捕获实现的物理结构构件图构件图n捕获实现的物理结构n作为体系结构规范的一部分实现n目的组织源代码构造一个可执行的发布版本指定物理数据库n由集成人员和程序人员创建分布图分布图n捕获系统硬件的拓扑结构分布图分布图n捕获系统硬件的拓扑结构n作为系统结构规范的一部分被创建n目的描述组件的分布标识系统性能瓶颈n由集成人员、网络工程师和系统工程师开发交互图n交互图描述了系统在逻辑设计中存在的对象及其间的关系它可以代表系统中对象的结构nUML中包含两种交互图,它们对同一交互操作提供了不同的浏览视角时序图n按时间顺序排列对象交互操作协作图n围绕对象及其间的链接关系组织对象的交互操作时序图时序图n捕获系统的动态行为(面向时间的)时序图时序图n捕获系统的动态行为(面向时间的)n目的模型流程的控制举例说明典型的脚本打印机就绪打印文件时序图(SequenceDiagram)打印机忙保存文件打印文件打印文件计算机打印服务器打印队列计算机协作图协作图n捕获系统的动态行为(面向消息的)协作图协作图n捕获系统的动态行为(面向消息的)n目的模型流程控制举例说明对象结构和控制的协调协作图(CollaborationDiagram)打印机忙保存文件打印机就绪打印文件打印文件计算机打印队列打印服务器打印机状态图n捕获系统动态行为(面向事件的)状态图状态图n捕获系统动态行为(面向事件的)n目的对象生命周期模型对象生命周期模型为起反作用的对象为起反作用的对象(用户接口、设备等)建模用户接口、设备等)建模状态图StateDiagram状态图描述了:
给定类的状态转换空间导致状态转换的事件导致状态改变的动作为类的重要动态行为建立状态转换图超时到达上楼上楼到达上楼到达在底楼向上移动向底楼移动向下移动空闲活动图活动图n捕获动态行为(面向活动的)活动图活动图n捕获动态行为(面向活动的n目的给商业工作流建模给操作建模活动图ActivityDiagramDiskfreeDiskfull显示磁盘满显示在打印删去显示信息建立打印文件Win.printAll()printer.print()体系结构和UML组织:
包,子系统动态交互状态机设计视图实现视图过程视图组件类,接口,协作活动类分布视图节点用例图用例UML静态图n用例图(UseCaseDiagram)n类图(ClassDiagram)n对象图(ObjectDiagram)n构件图(ComponentDiagram)n部署图(DeploymentDiagram)UML动态图n状态图(StateDiagram)n时序图(SequenceDiagram)n协作图(CollaborationDiagram)n活动图(ActivityDiagram)UML建模方法与视图n用例建模用例图n类和对象(结构)建模:
类图对象图n行为(动态)建模用例图交互图(顺序图、协作图)活动图状态图n物理体系结构建模构件图实施图UML过程nUML过程主要包括:
用例驱动(use-case-driven)以体系结构为中心(architecture-centric)反复(iterative)渐增式开发(incremental)UML过程n1、用例驱动:
用用例方法获取系统的功能需求,并以此驱动需求分析之后的所以阶段的开发在需求阶段,用例所包括的系统功能,需要用户的确认在设计和实现阶段,用例被实现在测试阶段,用例用于验证系统功能需求用例分析设计实现测试用例视图用例视图并发视图并发视图部署视图部署视图构件视图构件视图逻辑视图逻辑视图用例影响开发的所有阶段用例视图影响其他视图UML过程n2、以体系结构为中心项目开发的早期,除了需求以外,另一个最主要的工作就是确定系统的体系结构体系结构定义了系统的各部分、各部分的关系和交互、通信机制、如何增加和修改体系结构的规则体系结构决定了系统的功能和非功能部分n非功能部分包括:
性能、易理解性、易修改性、复用度在UML中,通过定义可以层次化的“包”,来实现把一个大系统划分成不同的小系统确定体系结构的基本方法是:
分析、选择、原型化、评估和精细UML过程n3、反复迭代用UML方法建模,可以反复多次,不需要一次完成通过反复,增加新信息、细化新的细节每次反复,应进行评估,评估的内容还应包括:
代价、风险n4、渐增式多次迭代,每次迭代增加新的用例和功能每次迭代,都是分析、设计、实现和测试的过程迭代的最大好处是分解了风险,不至于把失败的风险留到开发的最后才发现3.2需求获取与用例分析需求开发过程的阶段任务需求开发过程的阶段任务需求开需求开发过程的重要里程碑程的重要里程碑需求获取需求获取需求分析需求分析需求处理需求处理需求验证需求验证问题定义阶段需求分析阶段面向用户确认的需求描述面向实现的需求规格说明用户确认需求评审面向实现的细化面向管理的规范面向成果的验证基于UML的需求获取1、需求获取与业务建模、需求获取与业务建模n对于一个复杂的业务系统,我们可能涉及:
公司组对于一个复杂的业务系统,我们可能涉及:
公司组织、业务单位、部门和人员岗位、职责和功能、内织、业务单位、部门和人员岗位、职责和功能、内部和外边网络、客户、业务信息流、行政和财务流部和外边网络、客户、业务信息流、行政和财务流等等等等n为这个组织建立计算机系统,我们要回答:
为这个组织建立计算机系统,我们要回答:
为什么要建立这个系统为什么要建立这个系统这个系统的定位在何处这个系统的定位在何处我们如何确定哪些功能是最适宜放在系统的特定节点上我们如何确定哪些功能是最适宜放在系统的特定节点上我们何时采用计算机处理而何时采用人工处理我们何时采用计算机处理而何时采用人工处理为适应计算机处理,我们需要改变现有工作流程吗为适应计算机处理,我们需要改变现有工作流程吗n回答这些问题的技术,就是业务建模回答这些问题的技术,就是业务建模n业务建模的目的:
业务建模的目的:
建模过程是开发者和用户之间为导出需求规约而进行的交建模过程是开发者和用户之间为导出需求规约而进行的交互过程互过程因此:
因此:
理解现有业务组织的静态结构和动态运作方式理解现有业务组织的静态结构和动态运作方式确保客户、最终用户以及开发人员对业务组织有共同的理解确保客户、最终用户以及开发人员对业务组织有共同的理解系统的边界在那里?
功能是什么?
系统的边界在那里?
功能是什么?
理解如何部署新的系统以提高生产力,以及现有的哪一个系统会受理解如何部署新的系统以提高生产力,以及现有的哪一个系统会受到新系统的影响到新系统的影响n系统的功能由用例来表示:
系统的功能由用例来表示:
用例用来:
用例用来:
确定和描述系统的功能要求确定和描述系统的功能要求给出清晰和一致的系统做什么的描述给出清晰和一致的系统做什么的描述为验证系统所需的系统测试提供基准为验证系统所需的系统测试提供基准提供从功能需求到系统实际类和操作的跟踪能力提供从功能需求到系统实际类和操作的跟踪能力图例图例说明说明业务处理业务处理单位单位业务处理业务处理描述描述表格制作表格制作传递传递存储存储收集资料收集资料储户存折存取款单存折现金存折业务分类存款单折取款单折存款处理取款处理利息文件帐目文件存取款业务存取款业务传统方法:
业务流程图传统方法:
业务流程图存取款业务处理过程存取款业务处理过程在在UML中的建模结构就是中的建模结构就是业务用例模型业务用例模型和和业务对象模业务对象模型型n领域模型领域模型将系统语境中的重要概念描述为领域对象,将系统语境中的重要概念描述为领域对象,并建立这些领域对象之间的关系并建立这些领域对象之间的关系n业务模型业务模型是领域模型的超集,包括:
是领域模型的超集,包括:
a.业务用例模型:
说明系统所支持的业务过程业务用例模型:
说明系统所支持的业务过程b.业务对象模型:
领域模型和业务用例实现业务对象模型:
领域模型和业务用例实现n业务用例模型业务用例模型是业务系统预期功能的描述模型,是是业务系统预期功能的描述模型,是系统开发任务和作为产品提交时的最根本的系统工系统开发任务和作为产品提交时的最根本的系统工作描述作描述n业务对象模型业务对象模型描述了实体和相互交互完成业务用例描述了实体和相互交互完成业务用例所需要的功能,是业务用例的实现所需要的功能,是业务用例的实现n下面,我们用示例介绍下面,我们用示例介绍利用UML概念进行业务建模业务过程与业务用例n一个一个业务过程业务过程是根据组织目标而采用组织资源来是根据组织目标而采用组织资源来获得预定义结果的一组逻辑相关的活动获得预定义结果的一组逻辑相关的活动n用一个用一个业务用例业务用例代表一个业务过程代表一个业务过程n业务用例包括:
业务用例包括:
角色(与业务活动交互的人或系统)角色(与业务活动交互的人或系统)用例(角色与业务元素交互完成工作的事件序列)用例(角色与业务元素交互完成工作的事件序列)n建立业务用例的过程:
建立业务用例的过程:
确定行为者确定行为者确定用例确定用例确定行为者n行为者:
行为者:
与系统交互的人或其他系统与系统交互的人或其他系统交互:
发送、接收、交换信息交互:
发送、接收、交换信息行为者执行用例行为者执行用例行为者是一个角色,而不是具体个人行为者是一个角色,而不是具体个人n寻找行为者寻找行为者谁使用系统的功能谁使用系统的功能谁需要系统提供信息谁需要系统提供信息谁维护、管理、控制系统谁维护、管理、控制系统系统完成功能还需要得到其他系统的支持系统完成功能还需要得到其他系统的支持还有哪些人对系统的结果感兴趣还有哪些人对系统的结果感兴趣业务用例银行确定用例确定用例l一个用例是被行为者感受到的一个完整的功能一个用例是被行为者感受到的一个完整的功能UML的定义:
用例是给一个特定行为者的一个可观察的结果值的系统的定义:
用例是给一个特定行为者的一个可观察的结果值的系统所完成的一系列动作所完成的一系列动作这个动作除计算机内部完成的计算外,还包括与行为者的信息交互这个动作除计算机内部完成的计算外,还包括与行为者的信息交互用例通过关联与行为者进行交互用例通过关联与行为者进行交互用例总是被行为者所启动,并回答一个可识别的结果用例总是被行为者所启动,并回答一个可识别的结果类似于对象是类的实例,用例的实例是场景(类似于对象是类的实例,用例的实例是场景(scenario)。
)。
例如:
例如:
“用户在用户在ATM机上执行取款操作机上执行取款操作”用例的场景是:
用例的场景是:
“张三在张三在ATM机上取出机上取出300元人民币元人民币”寻找用例寻找用例行为者需求系统提供哪些功能?
行为者需求系统提供哪些功能?
行为者是否需要创建、读、写、修改、删除系统中的信息?
行为者是否需要创建、读、写、修改、删除系统中的信息?
行为者是否需要被系统提醒、启动系统的某个功能?
行为者是否需要被系统提醒、启动系统的某个功能?
系统能否帮助行为者做一些事情,来提高行为者的效率、便利系统能否帮助行为者做一些事情,来提高行为者的效率、便利寻找用例寻找用例考虑人和饮料贩卖机的交互,包括购买饮料,首考虑人和饮料贩卖机的交互,包括购买饮料,首先,放置货物(饮料)等,下面考虑购买饮料。
先,放置货物(饮料)等,下面考虑购买饮料。
l用用例例描描述述了了系系统统的的行行为为,包包括括行行为为者者和和系系统统之之间间的的交交互互以以及及系系统统与与系系统统之之间间的交互。
的交互。
n用例用例是系统提供的功能块。
演示了是系统提供的功能块。
演示了人们如何使用系统。
它来自于人们如何使用系统。
它来自于客户需求客户需求的分析的分析。
这个过程称为。
这个过程称为UseCase分析分析,是整个系统开发中非常关键的过程。
是整个系统开发中非常关键的过程。
我们设计一个饮料贩卖机,从用户的角度来考察它的功能:
我们设计一个饮料贩卖机,从用户的角度来考察它的功能:
问问:
“自动饮料贩卖机将为您做什么自动饮料贩卖机将为您做什么?
”答答:
“我我通过自动饮料贩卖机购买一听饮料通过自动饮料贩卖机购买一听饮料.”饮料贩卖机的主要功能是使得用户可以购买饮料,饮料贩卖机的主要功能是使得用户可以购买饮料,我们为这种机器标记一个叫我们为这种机器标记一个叫“买饮料买饮料”的的usecaseusecase.UML中的中的UseCase表示表示BuySodaUseCaseActorCommunicationCustomernusecase记录用户使用系统是从头到尾的一系列事件。
用户普遍称为“活动者”,它可以是人或另一个系统。
n每一个usecase包括“活动者”和一个表示usecase的椭圆。
UseCase活动者活动者活动者可以是人或另一个系统,它与当前的系统交互,向系统提供输入或从系统中获得输出。
ActorNameTelephoneSystem(电话系统)使用电话卡对方付款PhoneUser(电话用户)活动者活动者的标志的标志n谁对某一需求感兴趣?
n组织中哪一部分使用系统?
n谁从系统的使用中受益?
n谁向系统提供信息?
n谁将维护系统?
n系统使用外部资源吗?
n系统和已经存在的系统交互吗?
活动者活动者的的类型类型n实际的人,即用户,是最常用的角色,几实际的人,即用户,是最常用的角色,几乎每个系统都有。
命名这些角色的时候,乎每个系统都有。
命名这些角色的时候,要按作用来命名,而不是按照位置命名。
要按作用来命名,而不是按照位置命名。
n另外一个系统。
例如航空订票系统可能需另外一个系统。
例如航空订票系统可能需要与外部应用程序接口,验证信用卡以便要与外部应用程序接口,验证信用卡以便购买。
购买。
n可能隐蔽的角色:
时间。
例如商业促销项可能隐蔽的角色:
时间。
例如商业促销项目推出免费奖,每天下午三点,系统自动目推出免费奖,每天下午三点,系统自动选择向随机客户提供免费奖品。
选择向随机客户提供免费奖品。
在饮料自动贩卖机中,除了买饮料的在饮料自动贩卖机中,除了买饮料的顾客顾客,还有以下的还有以下的活动者活动者。
BuySodaRestockSodaCollectMoneyCustomerSupplierCollector每一每一种活种活动者动者具有具有自己自己的的usecase饮料贩卖机中的饮料贩卖机中的活动者活动者供应商供应商向向自动贩卖机添加饮料。
自动贩卖机添加饮料。
收银员收银员从从自动贩卖机收钱。
自动贩卖机收钱。
理解用例理解用例n用例用例独立于实现。
独立于实现。
用例用例关注的是作用而不是如关注的是作用而不是如何实现这个作用。
何实现这个作用。
n用例用例是系统的高级视图。
用例的集合应让客户是系统的高级视图。
用例的集合应让客户易于了解高层的整个系统。
易于了解高层的整个系统。
n最后,最后,用例用例关注系统外的用户。
每个关注系统外的用户。
每个用例用例应表应表示用户与系统间的完整事务,为用户提供一定示用户与系统间的完整事务,为用户提供一定价值。
价值。
用例用例应按业务术语命名,而不是按技术应按业务术语命名,而不是按技术术语命名,应让客户一目了然。
术语命名,应让客户一目了然。
n例如:
例如:
用例用例不要命名为不要命名为“客户与银行客户与银行ATM的交互界面的交互界面”,如果客户要买票,如果客户要买票,用例可以称为用例可以称为“客户购票客户购票”。
n用例分析有助于:
捕捉需求计划开发过程的循环往复。
验证系统。
n需求分析从用例分析开始,它驱动整个开发过程。
n在用例中描述了所有的功能需求。
标记标记用例用例n活动者希望这个系统执行什么任务。
n活动者在系统中访问哪些信息(创建,存储,修修改,删除等)?
n外部的哪个变化将要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程