资源描述:
《面向对象软件工程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、董威面向对象软件工程国防科技大学计算机学院12021/7/241面向对象的软件开发方法学OO的思想体系OO的方法:OOA(面向对象的需求分析方法)OOD(面向对象的软件设计方法)OOT(面向对象的软件测试方法)OO的开发过程OO的开发工具主要内容22021/7/242主要内容3OO的思想体系OOAOODOOT基于OO的软件开发过程OO支持工具/环境2021/7/2431.掌握面向对象的软件开发方法学面向对象的思想体系面向对象的需求分析、软件设计的技术和方法面向对象的软件开发工具课程目标2.能够熟练利用面向对象的方法、技术和工
2、具,进行大、中型软件项目的需求分析、软件设计和软件测试43.为未来从事软件方法学的进一步研究奠定软件工程方面的基础2021/7/2441.在实践中体会面向对象的软件开发方法学的思想、方法和技术,在实践中提高学习方法2.课外实践与课堂教学同步展开53.培养自顶向下的抽象思维能力4.培养独立解决问题的能力和合作精神2021/7/2451.《软件工程》,齐治昌、谭庆平、宁洪,高等教育出版社,2004参考书目2.《UML精粹》,MartinFowler,中译本,20023.《UML应用建模实践过程》,尤克滨,机械工业出版社,2003
3、64.《MasteringUMLwithRationalRose》,电子工业出版社,20005.《统一软件开发过程》,IvarJacobson,et.al,机械工业出版社,20022021/7/2461.问题描述建立自动柜员机(ATM)系统软件。整个ATM系统包括ATM、中央服务器、ATM系统软件及界面软件。ATM系统软件的任务是处理ATM与银行电脑之间的交易:查账存款取款使用本系统的银行有多家。每家银行都有各自的电脑系统,处理其客户的帐号和交易。所有ATM均通过一台中央服务器与每家银行的电脑系统通信。对所有从ATM上发生的
4、交易,必须记录详细的日志信息。必须考虑系统未来的扩展,如增加Web客户端。面向对象的开发过程概览72021/7/2472.OOA(建立问题的OOA模型)面向对象的开发过程概览82021/7/2483.OOD(描述OOA模型中的对象如何协作完成任务)面向对象的开发过程概览92021/7/2493.OOD(描述OOA模型中的对象如何协作完成任务)面向对象的开发过程概览102021/7/24104.OOP(根据OOD模型生成C++/Java程序)面向对象的开发过程概览11classCATM:publicCAgent{public:
5、CATM(CStringstrId,CStringstrName,CStringstrLocation);virtual~CATM();public://get/setfunctionsCStringgetLocation()const;//commandfunctionsintlogin(CCard*pCard,CStringstrPsw,int*pnSessionId);intlogout(intnSessionId);private:CStringm_strLocation;};2021/7/24114.OOP(根据O
6、OD模型生成C++/Java程序)面向对象的开发过程概览12classCAccount{public:CAccount(CStringstrCustomerId,CStringstrCustomerName,floatfInitSaving);virtual~CAccount();public://get/setfunctionsCStringgetCustomerID()const;CStringgetCustomerName()const;//commandfunctionsintdeposit(floatfAmount
7、,intnDurationType);intdraw(floatfAmount);private:TransactionRecordm_transactionRecord;};2021/7/2412面向对象方法与结构化方法的区别13OO方法:对现实世界中的实体或者概念对象分进行建模对象各负其责对象通过消息进行协同,完成复杂的任务结构化方法:研究功能分解的方法通过复杂的功能组合实现系统功能2021/7/2413直观、自然、简单支持递增式开发支持软件重用软件结构更科学,更能够适应未来变化……面向对象方法的优越性142021/7/
8、2414第一章软件工程概论§1.2软件工程的原则§1.1软件工程的目标§1.3软件质量控制15§1.4软件工程与软件开发实践2021/7/2415在给定成本、进度的前提下,开发出具有:§1.1软件工程的目标正确性、可靠性、有效性、18可理解性、可修改性、可维护性、可移植性、可重用性和可追踪