1 / 23

面向对象软件工程

面向对象软件工程. 1. 主要内容. 面向对象的软件开发方法学 OO 的思想体系 OO 的方法: OOA( 面向对象的需求分析方法 ) OOD( 面向对象的软件设计方法 ) OOT( 面向对象的软件测试方法 ) OO 的开发过程 OO 的开发工具. 2. 主要内容. OO 支持工具 / 环境. 基于 OO 的软件开发过程. OOA. OOD. OOT. OO 的思想体系. 3. 课程目标. 1 . 掌握面向对象的软件开发方法学 面向对象的思想体系 面向对象的需求分析、软件设计的技术和方法 面向对象的软件开发工具.

jerry-king
Download Presentation

面向对象软件工程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 面向对象软件工程 1

  2. 主要内容 • 面向对象的软件开发方法学 • OO的思想体系 • OO的方法: • OOA(面向对象的需求分析方法) • OOD(面向对象的软件设计方法) • OOT(面向对象的软件测试方法) • OO的开发过程 • OO的开发工具 2

  3. 主要内容 OO支持工具/环境 基于OO的软件开发过程 OOA OOD OOT OO的思想体系 3

  4. 课程目标 1.掌握面向对象的软件开发方法学 • 面向对象的思想体系 • 面向对象的需求分析、软件设计的技术和方法 • 面向对象的软件开发工具 2. 能够熟练利用面向对象的方法、技术和工具, 进行大、中型软件项目的需求分析、软件设计 和软件测试 3. 为未来从事软件方法学的进一步研究奠定软件 工程方面的基础 4

  5. 1. 在实践中体会面向对象的软件开发方法学的思 想、方法和技术,在实践中提高 学习方法 2.课外实践与课堂教学同步展开 3.培养自顶向下的抽象思维能力 4.培养独立解决问题的能力和合作精神 5

  6. 参考书目 1. 《软件工程》,齐治昌、谭庆平、宁洪, 高等教育出版社,2004 2.《UML精粹》, Martin Fowler, 中译本,2002 3.《UML应用建模实践过程》,尤克滨, 机械工业出版社,2003 4.《Mastering UML with Rational Rose》, 电子工业出版社, 2000 5.《统一软件开发过程》,Ivar Jacobson, et.al, 机械工业出版社,2002 6

  7. 面向对象的开发过程概览 1. 问题描述 • 建立自动柜员机(ATM)系统软件。整个ATM系统包括ATM、中央服务器、ATM系统软件及界面软件。 • ATM系统软件的任务是处理ATM与银行电脑之间的交易: • 查账 • 存款 • 取款 • 使用本系统的银行有多家。每家银行都有各自的电脑系统,处理其客户的帐号和交易。 • 所有ATM均通过一台中央服务器与每家银行的电脑系统通信。 • 对所有从ATM上发生的交易,必须记录详细的日志信息。 • 必须考虑系统未来的扩展,如增加Web客户端。 7

  8. 面向对象的开发过程概览 2. OOA(建立问题的OOA模型) 8

  9. 面向对象的开发过程概览 3. OOD(描述OOA模型中的对象如何协作完成任务) 9

  10. 面向对象的开发过程概览 3. OOD(描述OOA模型中的对象如何协作完成任务) 10

  11. 面向对象的开发过程概览 4. OOP(根据OOD模型生成C++/Java程序) class CATM : public CAgent { public: CATM(CString strId, CString strName, CString strLocation); virtual ~CATM(); public: // get/set functions CString getLocation() const; // command functions int login(CCard * pCard, CString strPsw, int * pnSessionId); int logout(int nSessionId); private: CString m_strLocation; }; 11

  12. 面向对象的开发过程概览 4. OOP(根据OOD模型生成C++/Java程序) class CAccount { public: CAccount(CString strCustomerId, CString strCustomerName, float fInitSaving); virtual ~CAccount(); public: // get/set functions CString getCustomerID() const; CString getCustomerName() const; // command functions int deposit(float fAmount, int nDurationType); int draw(float fAmount); private: TransactionRecord m_transactionRecord; }; 12

  13. OO方法: • 对现实世界中的实体或者概念对象分进行建模 • 对象各负其责 • 对象通过消息进行协同,完成复杂的任务 • 结构化方法: • 研究功能分解的方法 • 通过复杂的功能组合实现系统功能 面向对象方法与结构化方法的区别 13

  14. 面向对象方法的优越性 直观、自然、简单 支持递增式开发 支持软件重用 软件结构更科学,更能够适应未来变化 …… 14

  15. 第一章 软件工程概论 §1.1 软件工程的目标 §1.2 软件工程的原则 §1.3 软件质量控制 §1.4 软件工程与软件开发实践 15

  16. §1.1 软件工程的目标 在给定成本、进度的前提下,开发出具有: • 正确性、可靠性、有效性、 • 可理解性、可修改性、可维护性、可移植性、 • 可重用性和可追踪性 的软件产品 18

  17. §1.2 软件工程的原则 • 抽象 • 信息隐藏 (局部化) • 模块化(高内聚,低耦合) • 一致性 • 完全性 • 可验证性 19

  18. §1.3 软件质量控制 §1.3.1 软件质量要素 1.关于软件的运行特征 正确性:软件满足规格说明及完成用户目标的程度 可靠性:在给定时间间隔内,软件成功运行的概率 有效性:软件的时空效率 完整性:控制未被授权人员访问程序和数据的程度 可用性:使用软件的难易程度 21

  19. 2.关于软件承受修改的能力 可理解性:结构清晰,直接反映问题需求,易理解 可维护性:软件交付使用后进行修改的难易程度 灵活性:改变软件的功能或行为所需的工作量 3.关于软件对新环境的适应能力 可移植性:软件从一个环境移到另一个的难易程度 可重用性:软部件可以在多种场合应用的程度 可互操作性:多个软件交换信息并相互使用已交换 信息的能力 22

  20. §1.3.2 软件质量控制方法 • 系统化的开发方法与工具 例如,OOA, OOD & OOP • 良好的软件结构: 高内聚,低耦合 信息隐藏 局部化 • 标准化,文档化 23

  21. §1.4 软件工程与软件开发实践 1.程序设计规则: • 统一的、有意义的变量命名与函数命名方法 • 统一的编码风格与格式 • 统一的、准确的、完整的程序注解 • 变量与函数的作用域尽量小 • 尽量采用简单的算法 • 模块之间的接口尽量简单、自然 24

  22. 2.软件开发规则: • 开发未始,规则先行 • 勿因小失大 • 软件质量是首要目标 • 软件结构至关重要 • 文档和程序同样重要 25

  23. 本章小结 • 软件工程的目标 • 软件工程的原则 • 软件质量控制方法 • 程序设计与软件开发规则 26

More Related