面向对象软件开发技术(OOA-OOD-OOP)
- 格式:ppt
- 大小:1.85 MB
- 文档页数:38
浅谈OOA,OOD,OOP的理解OOA(⾯向对象分析)、OOD(⾯向对象设计)、OOP(⾯向对象编程),这3个概念,对于我们JAVA程序员来讲,或多或少应该都有所了解,或者说⾄少都听说过。
但是要谈到对其理解,可能对于多数⼊⾏不深的从业者来说,确实不是那么容易做到。
特别是对于绝⼤多数的3年以内的低中级软件⼯程师⽽⾔。
因为他们的⼯作更多是需要按照项⽬经理分配的任务来编写功能代码,很少有多余的时间去阅读或者思考⼀些概念性的东西。
说起这个问题,我也在⽹络上也搜索过很多的资料,⼤多摘录⾄书籍,⽐较官⽅化。
让初学者⽆从理解。
为了⼴⼤的新从业者或者应聘者,在这⾥,我们以⼀种实例的⽅式来对这3个概念进⾏重新的阐述:业务场景:建⾏卡持有者,张三与李四两⼈,现在需要张三给李四转账⼈民币5000元整。
按照业务分析后的流程图如下:对于分析业务流程,常见的2种:⾯向过程分析(POA),⾯向对象分析(OOA)⾯向过程分析(Procedure Oriented Analysis):是⼀种以过程为中⼼的编程思想,以数据流向为主要导向。
为了解决问题,将解决问题的业务过程,按照⼀定的顺序划分成为⼀个⼜⼀个的事件,然后再封装成⼀个⼜⼀个的函数,最后由⼀个函数统⼀的按照顺序⼀步⼀步的调⽤即可。
在⾯向过程分析中,顺序很重要,要实现功能只需要按照⼀定的顺序相互调⽤函数即可。
上述业务场景按照⾯向过程分析出来的结果就是:1. 程序检查张三卡中余额是否⾜够5000元⼈民币(事件1,满⾜则调⽤事件2)2. 程序从张三卡中扣除5000元⼈民币(事件2)3. 程序向李四卡中加⼊5000元⼈民币(事件3)4. 程序检测李四卡中是否正常⼊账(事件4,满⾜则结束整个业务)5. 程序向张三卡中加⼊5000元⼈民币(事件5)在上述过程中,我们将这个业务过程,分成了5个步骤,也叫做5个事件,那么如果需要在程序中完成该转账业务的话,那么我们只需要按照1-2-3-4-5这样的顺序依次调⽤函数⽅法即可。
面向对象分析方法名词解释
面向对象分析(Object-Oriented Analysis, 简称OOA),是一种基于软件工程中面向对象思
想的软件分析方法,旨在搭建软件需求分析基础模型,以识别、分析和实现客户软件需求,制定出对软件研发工作与设计有效的管理模型。
OOA 是拔高软件开发进程中最重要的步骤,它旨在满足客户对于软件的要求,使客户能够在满意的时间,满意的经费以及满意的套大成果得到期望的软件。
OOA 的拥有者一般是由软件项目经理控制的全职专职软件分析师,他们会使用OOA 快速获取软件要求信息,这
些信息是从客户的说明开始的形式,因此将比研发者在识别需求时所需要的时间更少。
OOA 的主要任务就是使软件发展过程更加高效。
Face-to-face(面对面)会谈,讲解,文
档研究以及运用建模工具等方法将客户提出的需求进行阐明,并把客户的大部分需求变成
客观的功能和属性的可操作的模型,因此OOA 的设计方法也称为可重用组件的设计(Reusable Components Design)。
OOA 的模型通常有以下几种:系统架构,逻辑和物理;在实现系统架构中,把客户提出的需求变成给定的抽象模型即为系统拓扑。
在逻辑模型中,将系统拓扑拆分为不同的构件,
以表达客户关心的系统服务和非功能性要求,而在物理模型中,关于客观和完整的描述系统结构,有细粒度的描述和定义每个构件的不同的属性。
面向对象分析也可以用于检验软件开发过程中的系统是否符合预期的情况,也可以用于发现并实施软件系统的改进与更新。
只要对OOA 方法有正确的运用,软件开发项目就容易
得到客户的满意和顺利实施。
面向对象程序设计的软件开发方法面向对象(Object-Oriented,简称为OO)程序设计是一种以对象为基本的软件开发方法。
相对于传统的结构化编程方法而言,面向对象编程具有更高的抽象层次和更强的模块化特性。
因此,它在当前软件开发领域中越来越受到欢迎。
本文将从以下四个方面来讨论面向对象程序设计的软件开发方法。
一、面向对象编程的基本概念面向对象编程的最基本的概念就是对象(Object)。
在面向对象编程中,对象被定义为具有一定状态和行为的实体。
它们具有封装性(从外部不能直接访问内部状态),继承性(可以从已有的类派生出新的子类),和多态性(同一操作作用于不同的对象上会产生不同的行为)。
对象可以被看作是“自包含”的,对于不同的对象我们可以分别定义其不同的属性和方法,并且让其进行不同的内容展示。
二、面向对象编程的优点相对于传统的结构化编程方法而言,面向对象编程具有以下优点:1.提高了程序的可重用性在面向对象编程中,我们可以将具有相同的属性和方法的对象封装成一个类,从而实现代码的重用。
当需要使用某个对象时,只需要实例化这个对象即可,这样就避免了代码的重复,提高了程序的效率和可维护性。
2.提高了程序的可扩展性由于面向对象编程的继承性,我们可以很容易地将某个类派生出新的子类,在不改变原有代码的前提下进行扩展。
这样可以保证原有代码的稳定性,同时又能满足新的需求。
3.提高了程序的可读性在面向对象编程中,我们可以通过封装将某些属性和方法隐藏起来,只对外部提供有限的访问接口。
这样就减少了程序代码的冗杂性,增加了程序代码的可读性和可维护性。
三、面向对象程序设计的开发流程在面向对象编程中,通常需要遵循以下开发流程:1.需求分析在需求分析阶段,我们需要对用户要求进行分析,确定系统的功能需求和性能需求。
这是后续开发工作的基础。
2.设计阶段在设计阶段,我们需要根据需求分析结果进行概要设计和详细设计。
概要设计包括系统的总体设计和模块的划分,而详细设计则是对每个模块进行详细设计,并且根据需求实现相应的代码。
第5章面向对象的软件开发过程5.1软件开发过程软件开发过程指开发软件产品的一整套活动,其中主要包括软件描述、软件开发、软件有效性验证和软件演化。
不同的软件开发商,针对不同的开发项目可能会采用不同的方式组织上述4项活动的实施。
软件开发模型软件开发模型是对软件开发的全过程、活动和任务的抽象描述。
选择合适的软件开发模型将有利于提高软件开发的效率、软件产品的质量,以及日后的软件维护能力。
5.1.1软件开发面临的主要问题软件开发主要面临以下几个迫切需要解决的问题:1.软件可靠性软件可靠性是指软件系统能否在既定环境下运行并达到预期的结果。
尽管通过对软件进行调试和测试可以排除大约40%的错误,任何人也不能保证任何一个软件产品没有错误。
2.软件生产率计算机硬件的迅猛发展,带动了人们对软件需求的急剧增长。
与计算机硬件的发展速度相比,软件的生产效率极其低下。
3.软件重用性不同的应用领域要开发不同的应用软件,既使相同的应用目的也会由于需求上的微小差别,导致重新开发整个应用软件。
4.软件维护性多么优秀的软件开发队伍也无法保证软件产品在使用过程中不会出现任何错误,因此,日后的维护工作将显得格外重要,而修改和完善软件产品在使用过程中显现出来的错误和不足之处是软件维护阶段的主要任务。
5.1.2软件的生命周期软件工程将按照工程化的方法组织和管理软件的开发过程,具体地说,它将软件开发过程划分成若干个阶段,每个阶段按照制定的规范标准完成相应的任务。
软件的生命周期是指从某个软件的需求被提出并开始着手开发到这个软件被最终废弃的整个过程。
通常在这个过程中,应该包括制定计划、需求分析,系统设计、程序编码、系统测试、系统运行及维护阶段。
1.制定计划在正式开始开发软件项目之前,充分地研究、分析待开发项目的最终目标,整理出其功能、性能、可靠性及接口等方面的需求,计算出所需人力、物力的资源开销,推测日后可能获取的经济效益,提供支持该项目的技术能力以及给出开发该项目的工作计划。
浅谈面向对象的软件开发方法作者:姚东铌来源:《价值工程》2014年第06期摘要:面向对象开发方法是软件技术的一次革命,在软件开发史上具有里程碑的意义。
本文介绍了面向对象的软件开发方法,它已经发展成为软件开发领域的一种新的方法论及信息技术,并且逐渐成为目前软件开发领域的主流。
Abstract: Object-oriented development method is a revolutionary of software technology and a milestone in the history of software development. This paper describes the object-oriented software development method, which has become a new methodology and information technology in the field of software development, and gradually become the mainstream of current software development.关键词:面向对象;开发方法;OMT;UMLKey words: object-oriented;development method;OMT;UML中图分类号:TP311 文献标识码:A 文章编号:1006-4311(2014)06-0194-020 引言面向对象软件开发方法正席卷整个软件领域。
相比较传统的开发方法,面向对象的软件方法采用了自底向上的归纳、自顶向下的分解的方法,通过对对象模型的建立,能够真正建立基于用户的需求,而且系统的可维护性大大改善。
它是归纳和演绎思想的综合体现,对于软件设计起到了很好的作用。
1 传统开发方法存在的问题传统开发方法存在以下方面的问题:①软件复用性差。
《软件工程》填空题二、填空题(请把答案写在相应的横线上,每小题分)1、软件是数据、计算机程序及其说明程序的各种文档。
2、概要设计主要是把各项功能需求转换成系统的体系结构。
3、面向对象开发方法包括 OOA 、OOD 、 OOP 三部分。
4、结构化设计中以数据流图为基础的两种具体分析设计方法是变换分析、事物分析设计。
5、在单元测试时,需要为被测模块设计驱动模块和桩模块。
6、CMM把软件过程从无序到有序的进化分成5个阶段,排序而形成5个逐层提高的等级,分别是初始级、可重复级、已定义级、已管理级和可优化级。
7.子类自动共享父类的属性和操作的机制称为继承。
8. 软件工程管理的具体内容包括对开发人员、组织机构、用户、文档资料等方面的管理。
9、可行性研究的三个方面是技术可行性、社会可行性和__经济可行性__。
10、在软件概要设计阶段,建立软件结构后,还应为每个模块写一份处理说明和_接口说明__。
11、在画分层的DFD时,父图与子图的输入输出数据流要__平衡__。
12、在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的__数据结构_进行设计。
13. 对象的抽象是___类___。
14. 基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。
因此,基线可以作为项目的一个___检查点__。
15. 包括软件开发技术和__软件工程管理__两大部分内容。
16、开发过程管理包括项目计划、控制和___任务管理__等。
17、CASE是多年来在软件开发管理、软件开发方法、软件开发环境和__软件工具__等方面研究和发展的产物。
18、数据字典中有四类条目,分别是___数据流、数据项、数据存储、基本加工。
19、用于描述基本加工的小说明的三种描述工具是结构化语言、判定表、判定树_。
20、子类只继承一个父类的属性和操作,这称为__单重继承__。
21、 McCabe复杂性度量又称__环路度量_。
22、喷泉模型是一种以用户需求为动力,以__对象__为驱动的模型。
面向对象编程(Object-Oriented Programming, OOP)是一种程序设计范式,它将现实世界中的事物抽象为程序中的对象,并通过对象之间的交互来实现各种功能。
在面向对象编程中,对象可以是具体的实体,也可以是抽象的概念,它们都可以拥有属性和方法,通过这些属性和方法可以描述和操作对象的特性和行为。
面向对象编程是现代软件开发中最常用的编程范式之一,它具有高内聚、低耦合的特点,能够提高代码的复用性、可维护性和可扩展性。
面向对象编程的核心思想包括封装、继承和多态。
1. 封装(Encapsulation)封装是面向对象编程的重要特性之一,它通过将数据和方法封装在对象内部,隐藏对象内部的实现细节,只暴露特定的接口给外部使用,从而保护数据的安全性和完整性。
封装可以使对象的内部状态只能通过指定的方法进行访问和修改,提高了程序的安全性和稳定性。
2. 继承(Inheritance)继承是面向对象编程中的另一个重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,并且可以对其进行扩展或修改。
通过继承,可以减少重复的代码,提高代码的复用性和可维护性,同时也能够构建出更加抽象和通用的数据模型。
3. 多态(Polymorphism)多态是面向对象编程的另一个重要特性,它允许不同的对象对同一个消息做出不同的响应,即同一操作作用于不同的对象上可以有不同的结果。
通过多态,可以实现更加灵活的程序设计,减少代码的复杂度,提高程序的可扩展性和可维护性。
面向对象编程是软件开发中非常重要的一部分,它已经广泛应用于各种编程语言和评台上。
通过面向对象编程,可以更加方便地描述和模拟现实世界中的问题,提高程序的抽象能力和可扩展性,减少程序设计和开发的复杂度,从而提高软件开发的效率和质量。
面向对象编程是一种强大而灵活的编程范式,它通过封装、继承和多态等特性,使代码更加具有可读性、可维护性和可重用性,是现代软件开发不可或缺的一部分。
第25卷 第5期2009年10月 忻州师范学院学报JOURNAL OF X I N ZHOU TE ACHERS UN I V ERSI TY Vol.25 No.5 Oct.2009 面向对象的OOA、OOD软件开发技术分析任胜兰(太原师范学院,山西太原030012)摘 要:面向对象是当前计算机界关心的重点,是上个世纪90年代软件发展的主流,实际上,面向对象的概念和应用已经超越程序设计和软件开发,而且已经渗透到了系统模拟、数据库、多媒体、图形技术、网络管理系统、CAD技术、人工智能等多个领域。
文章主要讨论面向对象的开发方法OOA和OOD,并且对面向过程与面向对象加以比较,阐述了面向对象的OOA、OOD之不足及适用范围,同时也分析了发展中存在的争论问题。
关键词:面向对象;OOA;OOD;软件开发中图分类号:TP311 文献标识码:A 文章编号:1671-1491(2009)05-0039-04 面向对象(Object-O riented,简称OO)技术是一种以对象为中心的分析和解决问题的新方法,它克服了传统方法中对象与行为之间联系松散的缺点,更能体现软件开发中的三个重要概念,即抽象、信息隐蔽和模块化。
因此面向对象技术已广泛应用于软件开发的各个阶段,从而产生了面向对象的分析方法OOA(Object-O riented Analysis),面向对象的设计方法OOD(Object-O riented Design)等面向对象的技术。
面向对象(OO:Object-O riented)是当前计算机界关心的重点,是90年代软件发展的主流,实际上,面向对象的概念和应用已经超越程序设计和软件开发,而且已经渗透到了系统模拟、数据库、多媒体、图形技术、网络管理系统、CAD 技术、人工智能等多个领域。
一些新的工程概念及其实现,如并发工程、综合集成工程等,也需要面向对象的支持。
实践证明,采用面向对象的方法在提高软件的可靠性、可理解性和可维护性,提高软件质量和生产效率,降低生产成本等方面都具有重要的意义。