面向对象的软件工程.pptx
《面向对象的软件工程.pptx》由会员分享,可在线阅读,更多相关《面向对象的软件工程.pptx(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1面向对象的软件工程面向对象的软件工程认识问认识问认识问认识问题题题题分析问分析问分析问分析问题题题题解决问解决问解决问解决问题题题题最终用户最终用户最终用户最终用户(提出问题提出问题提出问题提出问题)开发团队开发团队开发团队开发团队(解决问题解决问题解决问题解决问题)以以以以用户用户用户用户的身份站在的身份站在的身份站在的身份站在用户用户用户用户的角度认识问题的角度认识问题的角度认识问题的角度认识问题获取需求获取需求获取需求获取需求用例建模技术用例建模技术用例建模技术用例建模技术以以以以开发者开发者开发者开发者的身份站在的身份站在的身份站在的身份站在用户用户用户用户的角度分析问题的角度
2、分析问题的角度分析问题的角度分析问题分析需求分析需求分析需求分析需求用例分析技术用例分析技术用例分析技术用例分析技术以以以以开发者开发者开发者开发者的身份站在的身份站在的身份站在的身份站在开发团队开发团队开发团队开发团队的角度分析问题的角度分析问题的角度分析问题的角度分析问题解决需求解决需求解决需求解决需求面向对象设计面向对象设计面向对象设计面向对象设计第1页/共72页-3-内容安排内容安排n n理解需求n n需求,难在何处?n n以用例为中心组织需求n n基于用例的需求分析过程第2页/共72页-4-需求需求建造建造“正确正确”的系统的系统n n需求:系统必须满足的条件或具备的能力n nRob
3、ert Grady软件质量准则“FURPS”n n功能性(功能性(FunctionalityFunctionality)n n使用性(使用性(UsabilityUsability)n n可靠性(可靠性(ReliabilityReliability)n n性能(性能(PerformancePerformance)n n可支持性(可支持性(SupportabilitySupportability)非功能性需求非功能性需求非功能性需求非功能性需求第3页/共72页-5-内容安排内容安排n n理解需求n n需求,难在何处?n n以用例为中心组织需求n n基于用例的需求分析过程第4页/共72页-6-需求,
4、难在何处?需求,难在何处?n自己到底想要什么?n这是个问题第5页/共72页-7-需求:也需要开发需求:也需要开发客户客户/用户的要用户的要求求/想法想法/期望期望软件设计软件设计软件产品软件产品开开发发编码和测试编码和测试验收验收有价值的有价值的软件需求软件需求分析和设计分析和设计第6页/共72页-8-获取好的需求获取好的需求n n需求收集包括五个关键步骤n n找到可以帮助你理解这个系统的人找到可以帮助你理解这个系统的人n n倾听这些相关人员的描述,并从他们的角度来倾听这些相关人员的描述,并从他们的角度来理解系统理解系统n n利用一个容易理解的模型来描述用户希望如何利用一个容易理解的模型来描述
5、用户希望如何使用这个系统以及为他们提供的什么价值使用这个系统以及为他们提供的什么价值n n详细地描述系统和客户以及系统和外部系统之详细地描述系统和客户以及系统和外部系统之间的交互间的交互n n重构(重构(refactorrefactor)这个详细描述以保证它是可读)这个详细描述以保证它是可读且易懂的且易懂的第7页/共72页-9-内容安排内容安排n n理解需求n n需求,难在何处?n n以用例为中心组织需求n n基于用例的需求分析过程第8页/共72页-10-需求问题:对策需求问题:对策难捕获难捕获难捕获难捕获易变易变易变易变从用户视角看问题从用户视角看问题从用户视角看问题从用户视角看问题合理的结
6、构合理的结构合理的结构合理的结构用例用例用例用例第9页/共72页-11-以用例为中心组织需求以用例为中心组织需求用例用例用例用例可用性可用性可用性可用性可靠性可靠性可靠性可靠性网络协议网络协议网络协议网络协议业务规则业务规则业务规则业务规则硬件接口硬件接口硬件接口硬件接口界面约束界面约束界面约束界面约束性能性能性能性能第10页/共72页用例的相关概念用例的相关概念参与者(Actor)用例(Use Case)事件流第11页/共72页参与者参与者(Actor)n n参与者是在系统之外于系统进行交互的任何事物。参与者触发系统某项功能的执行(通过向系统输入某些信息,或请求系统输出某些信息)。n n最常
7、见的参与者n n人(操作人员或系统的服务对象)人(操作人员或系统的服务对象)n n设备(监控系统的摄像头等信息采集器)设备(监控系统的摄像头等信息采集器)n n外系统外系统第12页/共72页用例用例(Use Case)n n用例(use case):是对系统某个功能的一组动作序列的描述,系统执行这些动作序列将产生一个对某个特定的参与者有特定价值的结果。用例表示系统外部可见的功能单元。n n简言之:用例就是系统某功能一次执行的例子。简言之:用例就是系统某功能一次执行的例子。第13页/共72页事件流事件流n n事件流是系统完成需求行为的事件描述应尽量写的详细。事件流通常包括4部分:简要说明简要说明
8、前置条件前置条件主事件流和异常事件流(错误流)主事件流和异常事件流(错误流)事后条件(并不是每个用例都有)事后条件(并不是每个用例都有)第14页/共72页-16-内容安排内容安排n n理解需求n n需求,难在何处?n n以用例为中心组织需求n n基于用例的需求分析过程第15页/共72页-17-基于用例的需求分基于用例的需求分析过程析过程n n1.1.获取原始需求获取原始需求n n2.2.开发一个可以理解的需求开发一个可以理解的需求n n2.1 2.1 识别参与者识别参与者n n2.2 2.2 识别用例识别用例n n2.3 2.3 构建用例图构建用例图n n3 3 详细、完整地描述需求详细、完整
9、地描述需求n n进行用例阐述进行用例阐述n n4 4 重构用例模型重构用例模型n n4.1 4.1 识别用例间的关系识别用例间的关系n n4.2 4.2 对用例进行组织和分包对用例进行组织和分包第16页/共72页-18-基于用例的需求分析过程基于用例的需求分析过程n n1.1.获取原始需求获取原始需求n n2.2.开发一个可以理解的需求开发一个可以理解的需求n n2.1 2.1 识别参与者识别参与者n n2.2 2.2 识别用例识别用例n n2.3 2.3 构建用例图构建用例图n n3.3.详细、完整地描述需求详细、完整地描述需求n n进行用例阐述进行用例阐述n n4.4.重构用例模型重构用例
10、模型n n4.1 4.1 识别用例间的关系识别用例间的关系n n4.2 4.2 对用例进行组织和分包对用例进行组织和分包第17页/共72页-19-获取需求的技巧(获取需求的技巧(MSF)技巧技巧技巧技巧描述描述描述描述实地观察实地观察实地观察实地观察直接观察个人工作的情况,以发现现存的实践方式和问直接观察个人工作的情况,以发现现存的实践方式和问题题访谈访谈访谈访谈从个人处收集特定信息从个人处收集特定信息特定群体特定群体特定群体特定群体调查调查调查调查对一组人员进行调查,以便了解工作态度和共同看法对一组人员进行调查,以便了解工作态度和共同看法问卷调查问卷调查问卷调查问卷调查收集详细数据和统计意义
11、上比较重要的数据收集详细数据和统计意义上比较重要的数据用户指导用户指导用户指导用户指导让最终用户告诉你,他们是如何操作系统的让最终用户告诉你,他们是如何操作系统的原型制作原型制作原型制作原型制作模拟一个无法直接测试的系统模拟一个无法直接测试的系统统计版本统计版本统计版本统计版本使用具有统计功能的应用程序来记录用户完成任务的方使用具有统计功能的应用程序来记录用户完成任务的方式式 (RequisitePro)第18页/共72页-20-获取需求:应用程序获取需求:应用程序初次访谈记录初次访谈记录初次访谈记录初次访谈记录开发者开发者:谁将使用这个应用程序?客客 户户:所有用它来记录可记帐以及不可记帐的
12、工时的雇员开发者开发者:现在考勤卡应用程序是什么样的?客客 户户:每半个月就用一个Excel表格来记录。每个雇员都将通过他的表格填好,然后用电子邮件发给我。这个表格相当标准:纵向是收费项目代码,横向是日期。雇员可以在每个条目上填写说明。开发者开发者:这个收费项目代码可以从什么地方得到?开发者开发者:谁来管理收费项目代码?客客 户户:嗯,必要的时候由我来添加这个代码。而每个经理总会告诉他的下属应该填写什么。第19页/共72页-21-基于用例的需求分析过程基于用例的需求分析过程n n1.1.获取原始需求获取原始需求n n2.2.开发一个可以理解的需求开发一个可以理解的需求n n2.1 2.1 识别
13、参与者识别参与者n n2.2 2.2 识别用例识别用例n n2.3 2.3 构建用例图:确定参与者和用例之间的关系构建用例图:确定参与者和用例之间的关系n n3.3.详细、完整地描述需求详细、完整地描述需求n n进行用例阐述进行用例阐述n n4.4.重构用例模型重构用例模型n n4.1 4.1 识别用例间的关系识别用例间的关系n n4.2 4.2 对用例进行组织和分包对用例进行组织和分包第20页/共72页-22-2.1 识别参与者识别参与者n n参与者,Actorn n关键词:关键词:边界边界n n参与者:在参与者:在系统之外系统之外,透过,透过系统边界系统边界与系统进与系统进行行有意义交互有
14、意义交互的的任何事物任何事物第21页/共72页-23-参与者要点参与者要点n n系统外n n参与者代表在系统边界之外的真实事物,并不参与者代表在系统边界之外的真实事物,并不是系统的成分是系统的成分n n系统边界n n参与者透过系统边界参与者透过系统边界直接直接与系统交互,参与者与系统交互,参与者的确定代表的确定代表系统边界系统边界的确定的确定n n有意义的交互n n任何事物n n人、外系统、外部因素、时间人、外系统、外部因素、时间第22页/共72页-24-题外话:人与猪题外话:人与猪(1)第23页/共72页-25-人与猪人与猪(2)n n众所周知,众所周知,use case use case
15、图里的图里的actor actor 用一个小人表示。但是这个小人极用一个小人表示。但是这个小人极具误导性,往往让初学者(包括客户)理解为一个真实的人。大具误导性,往往让初学者(包括客户)理解为一个真实的人。大多数多数UML UML 学习者都要花好长一段时间来搞明白小人其实不一定代学习者都要花好长一段时间来搞明白小人其实不一定代表的是人,而是很抽象的系统不可控的外部因素,比如说另一个表的是人,而是很抽象的系统不可控的外部因素,比如说另一个系统。那么为什么不干脆用其它的符号来表示系统。那么为什么不干脆用其它的符号来表示Actor Actor 呢?呢?n n如果我开发一个猪圈自动供食供水系统,猪的前
16、蹄触发一个开关如果我开发一个猪圈自动供食供水系统,猪的前蹄触发一个开关系统就供食或供水。显然,这里的系统就供食或供水。显然,这里的Actor Actor 是小猪。那么在是小猪。那么在use case use case 图图里用小猪代替原来的小人不是更易于交流吗?里用小猪代替原来的小人不是更易于交流吗?第24页/共72页-26-思考:参与者与系统边界?思考:参与者与系统边界?n n某企业要求开发一个企业信息管理系统,并与原来已有的库存系统相连接n n某企业要求开发一个企业信息管理系统,并把原来已有的库存管理系统加以改造,成为企业信息管理系统的一部分第25页/共72页-27-思考:思考:识别参与者
17、?识别参与者?n n寻呼台系统:用户如果预定了天气预报,系统每天定时给他发天气消息;如果当天气温高于35度,还要提醒用户注意防暑;在这个叙述里,谁是寻呼台系统的在这个叙述里,谁是寻呼台系统的在这个叙述里,谁是寻呼台系统的在这个叙述里,谁是寻呼台系统的ActorActor?第26页/共72页-28-识别参与者思路识别参与者思路n n谁使用系统的主要功能谁使用系统的主要功能n n谁改变系统的数据谁改变系统的数据n n谁从系统获取信息谁从系统获取信息n n谁需要系统的支持以完成日常工作任务谁需要系统的支持以完成日常工作任务n n谁负责日常维护、管理并保证系统正常运行谁负责日常维护、管理并保证系统正常
18、运行n n系统需要应付(处理)那些硬设备系统需要应付(处理)那些硬设备n n系统需要和那些外部系统交互系统需要和那些外部系统交互n n谁(或什么)对系统运行产生的结果(值)感兴趣谁(或什么)对系统运行产生的结果(值)感兴趣n n时间、气温等内部外部条件时间、气温等内部外部条件n n第27页/共72页-29-识别参与者:考勤卡系统识别参与者:考勤卡系统开发者开发者:谁将使用这个应用程序?客客 户户:所有用它来记录可记帐以及不可记帐的工时的雇员雇员雇员雇员开发者开发者:现在考勤卡应用程序是什么样的?客客 户户:每半个月就用一个Excel表格来记录。每个雇员都将通过他的表格填好,然后用电子邮件发给我
19、。这个表格相当标准:纵向是收费项目代码,横向是日期。雇员可以在每个条目上填写说明。开发者开发者:这个收费项目代码可以从什么地方得到?开发者开发者:谁来管理收费项目代码?客客 户户:嗯,必要的时候由我(业务经理)(业务经理)(业务经理)(业务经理)来添加这个代码。而每个经理总会告诉他的下属应该填写什么。第28页/共72页-30-2.2 识别用例识别用例n n关键词:价值n n定义n n用例实例是用例实例是系统执行系统执行的的一系列动作一系列动作,这些动作,这些动作将生成特定将生成特定参与者可观测参与者可观测的的结果值结果值n n一个用例定义一个用例定义一组用例实例一组用例实例n n简洁:参与者使
20、用系统达到目标第29页/共72页-31-识别用例:考勤卡系统识别用例:考勤卡系统开发者开发者:谁将使用这个应用程序?客客 户户:所有用它来记录可记帐以及不可记帐的工时记录可记帐以及不可记帐的工时记录可记帐以及不可记帐的工时记录可记帐以及不可记帐的工时的雇员雇员雇员雇员开发者开发者:现在考勤卡应用程序是什么样的?客客 户户:每半个月就用一个Excel表格来记录。每个雇员都将通过他的表格填好,然后用电子邮件发给我。这个表格相当标准:纵向是收费项目代码,横向是日期。雇员可以在每个条目上填写说明。开发者开发者:这个收费项目代码可以从什么地方得到?开发者开发者:谁来管理收费项目代码管理收费项目代码管理收
21、费项目代码管理收费项目代码?客客 户户:嗯,必要的时候由我(业务经理)(业务经理)(业务经理)(业务经理)来添加这个代码。而每个经理总会告诉他的下属应该填写什么。第30页/共72页-32-用例要点用例要点n n可观测用例止于系统边界n n结果值用例是有意义的目标n n系统执行结果值由系统生成n n由参与者观测业务语言、用户观点n n一组用例实例用例的粒度第31页/共72页-33-要点:用例止于系统边界要点:用例止于系统边界描述交互,而不是内在的系统活动描述交互,而不是内在的系统活动描述交互,而不是内在的系统活动描述交互,而不是内在的系统活动第32页/共72页-34-要点:有意义的目标要点:有意
22、义的目标第33页/共72页-35-要点:结果值由系统生成要点:结果值由系统生成系统需要处理的,由系统生成系统需要处理的,由系统生成系统需要处理的,由系统生成系统需要处理的,由系统生成第34页/共72页-36-要点:业务语言而非技术语言要点:业务语言而非技术语言n n用户词汇,而不是技术词汇n n如:发票,商品,洗衣机如:发票,商品,洗衣机n n而不是:记录,字段,而不是:记录,字段,COMCOM,C+C+等等第35页/共72页-37-要点:用户观点而非系统观点要点:用户观点而非系统观点用户观点用户观点用户观点用户观点系统观点系统观点系统观点系统观点第36页/共72页-38-用例用例 VS.功能
23、功能呼叫某人呼叫某人接听电话接听电话发送短信发送短信记住电话号码记住电话号码传输传输/接收接收电源电源/基站基站输入输出(显示、键盘)输入输出(显示、键盘)电话簿管理电话簿管理用户观点用户观点用户观点用户观点系统观点系统观点系统观点系统观点第37页/共72页-39-用例的命名用例的命名n n执行者视角:执行者视角:n n(状语)动词(状语)动词+(定语(定语+)宾语)宾语第38页/共72页-40-要点:用例粒度要点:用例粒度-1n n用例要有路径,路径要有步骤;而这一切都是可观测的n n最常犯错误:粒度过细,陷入功能分解n n过细的粒度,一般都会导致技术语言的描述,过细的粒度,一般都会导致技术
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 软件工程
限制150内