6章 OO方法与UML
- 格式:ppt
- 大小:1020.00 KB
- 文档页数:64
UML各章知识点小结第一章面向对象分析和设计在OO开发中,至关重要的能力是什么?为软件对象分配职责什么是分析?▪强调的是对问题和需求的调查研究,而不是解决方案▪澄清两个概念:需求分析:对需求的调查研究面向对象分析:对领域对象的调查研究什么是设计?▪强调的是满足需求的概念上的解决方案(在软件方面和硬件方面),而不是其实现。
面向对象分析(做正确地事)▪强调的是在问题领域内发现和描述对象(或概念)面向对象设计(正确地做事)▪强调的是定义软件对象以及它们如何协作以实现需求。
OOAD 最关心流程与元件1. 描述流程(剧情) ---- 分析2. 安排主/配角(元件)演出---- 设计OOAD 最主要的工具UML (Unified Modeling Language)第一章思维导图第二章迭代、进化和敏捷动机:迭代和进化式瀑布生命周期▪在编程之前就预先完成需求和设计步骤▪软件项目的高失效率迭代和进化式开发▪及早地引入编程和测试,并重复这一循环▪会在还没有详细定义所有需求的情况下假设开发开始▪使用反馈来明确和改进演化中的规格说明▪依赖于短时快速的开发步骤、反馈和改写来不断明确需求和设计▪软件项目的较高成功率什么是迭代和进化式开发如何在迭代项目中处理变更抱以接受变更和改写的态度,是迭代和进化式开发真正本质的驱动力!!迭代反馈和进化向预期系统的方向发展。
需求和设计的不稳定性随着时间逐步下降迭代开发的优点⏹减少项目失败可能性,提高生产率、降低缺陷率⏹在早期缓解高风险⏹早期可见的进展⏹早期反馈、用户参与和调整,会产生更接近涉众真实需求的精华系统⏹可控复杂性⏹一次迭代中的经验可以被系统地用于改进开发过程本身UP的阶段第三章案例研究案例研究中涵盖的内容☐一个应用程序通常包括:✓UI元素✓核心应用逻辑✓数据库访问✓与外部软硬件的协作用户界面应用逻辑层其它层或构件较少关注讨论如何与其它层连接案例研究主要关注讨论如何设计对象次要关注UP 思维导图敏捷开发 思维导图第四章初始不是需求阶段初始阶段是建立项目共同愿景和基本范围的比较简短的起始步骤它包括:▪10%的用例进行分析▪关键的非功能需求的分析▪业务案例创建▪开发环境的准备▪初始阶段需解决的问题:本项目的愿景(vision)和业务案例(business case)?可行性(Feasible)?购买/开发(Buy and/or build)?粗略估计成本(cost): 1万-10万,还是百万?项目是进行下去还是停止?什么是初始阶段用一句话来概括初始阶段:预见项目的范围、愿景和业务案例用一句话来概括初始阶段要解决的主要问题:涉众是否就项目愿景基本达成一致,项目是否值得继续进行认真研究。
(一)OO与UML产生背景上个世纪四五十年代产生的计算机技术大大的推动了人类社会科技的进步,也从各个方面改变了人们的生活方式。
随着微电子技术的发展,计算机硬件的性能价格比每十年提高一个数量级,但所需的软件却很难在成本、性能、价格等方面达到要求。
到了20世纪60年代末期,软件已经成为制约计算机发展的“瓶颈”,计算机的发展经历了“软件危机”。
为了解决“软件危机”,计算机学家们提出了“软件工程”的概念,试图用工程化的思想解决这次危机。
软件工程提出了多种软件开发方法,如模块化方法、结构化方法、面向数据结构方法和面向对象的方法。
针对日趋复杂的软件需求的挑战,软件业界发展出了面向对象(OO)的软件开发模式。
目前作为针对“软件危机”的最佳对策,OO技术已经引起人们的普遍关注。
相对与传统的SA方法,面向对象具有很多优点。
从认知学的角度讲,面向对象方法符合人们对客观世界的认识;面向对象方法开发的软件系统易于理解、扩充、修改;面向对象方法的继承机制有力的支持软件的复用。
面向对象的建模不仅仅是新的编程语言的汇总。
它是一种新的思维方式,一种关于计算和信息结构化的新思维。
由于面向对象的技术还比较新,目前存在许多种面向对象的分析和设计方法。
面向对象的分析(OOA)建立于以前的信息建模技术的基础之上,可以定义为是一种以从问题域词汇中发现的类和对象的概念来考察需求的分析方法。
OOA的结果是一系列从问题域导出的“黑箱”对象。
OOA通常使用“剧情(scenarios)”来帮助确定基本的对象行为。
一个剧情是发生在问题域的一个连续的活动序列。
在对一个给定的问题域进行OOA时,“框架”(Frameworks)的概念非常有用。
框架是应用或应用子系统的骨架,包含一些具体或者抽象的类。
或者说,框架是一个特定的层次结构,包含描述某一问题域的抽象父类。
当下流行的所有的OOA方法的一个缺点就是他们都缺乏一种固定的模式(formality)。
在面向对象的设计(OOD)阶段,注意的焦点从问题空间转移到了解空间。
软件工程第6章面向对象方法学与UML 首先,面向对象方法学是一种软件工程中常用的方法论,其核心思想是将系统中的各种实体看作是一个个独立的对象,对象之间通过消息传递进行通信,从而实现系统的功能。
与传统的过程化开发方法不同,面向对象方法注重对问题域的建模和抽象,通过将真实世界中的实体抽象成对象,以及将对象之间的关系抽象成类、继承、多态等概念,使得系统更易于理解、维护和扩展。
面向对象方法学的主要特点包括封装、继承和多态。
封装指的是将数据和操作封装在一个对象中,隐藏对象的内部细节,只对外提供有限的接口,从而保证了数据的安全性和代码的模块化。
继承表示一个类可以继承另一个类的属性和方法,通过继承可以实现代码的重用和易于扩展。
多态则是指在继承关系中,一个对象可以根据其具体的类型执行不同的操作,提高了代码的灵活性和可扩展性。
与面向对象方法学密切相关的是UML,它是一种用于描述、可视化和说明软件系统的语言和工具。
UML提供了一系列的图形符号和语义规则,用于描述软件系统的结构、行为和交互等方面。
通过使用UML,开发人员可以更好地理解和沟通软件系统的设计和实现,从而提高开发效率和质量。
UML的主要图形符号包括用例图、类图、对象图、状态图、活动图、序列图和组件图等。
其中,用例图用于描述系统的功能需求和用户角色,类图用于描述系统的静态结构,对象图用于描述系统的动态结构,状态图用于描述系统的状态转换,活动图用于描述系统的工作流程,序列图用于描述对象之间的交互,组件图用于描述系统的模块组织和依赖关系等。
通过一个应用实例来说明面向对象方法学和UML的应用。
假设我们要设计一个图书馆管理系统,可以通过使用面向对象方法学进行建模和设计。
首先,我们可以将图书馆、读者和图书等看作是对象,它们之间通过借书、还书等消息进行交互。
然后,可以通过类图描述系统的静态结构,包括图书馆类、读者类和图书类,以及它们之间的关系。
接着,可以使用用例图描述系统的功能需求,例如用户登录、借书、还书等。