精华内容
下载资源
问答
  • 面向对象方法优点

    千次阅读 2017-03-10 17:06:00
    1.与人类习惯的思维方法一致  面向对象的软件技术以对象为核心,这种技术开发出的软件系统由对象组成。...面向对象方法学的基本原则是按照人类习惯的思维方法建立问题域的模型,开发出尽可能直
    1.与人类习惯的思维方法一致
           面向对象的软件技术以对象为核心,用这种技术开发出的软件系统由对象组成。对象是由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作(对象的动态行为),封装在一起所构成的统一体。面向对象的设计方法基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。

    面向对象方法学的基本原则是按照人类习惯的思维方法建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统。面向对象的软件系统中使用的对象,是对客观世界中实体的抽象。

    2.稳定性好
           面向对象的软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功能的分解,所以,当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。由于现实世界中的实体是相对稳定的,因此,以对象为中心构造的软件系统也是比较稳定的。

    3.可重用性好
           对象固有的封装性和信息隐藏机制,使得对象的内部实现与外界隔离,具有较强的独立性。对象是比较理想的模块和可重用的软件成分。面向对象的软件技术在利用可重用的软件成分构造新的软件系统时,有很大的灵活性。有两种方法可以重复使用一个对象类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。

    4.较易开发大型软件产品
           用面向对象方法学开发软件时,构成软件系统的每个对象就像一个微型程序,有自己的数据、操作、功能和用途,因此,可以把一个大型软件产品分解成一系列本质上相互独立的小产品来处理,这就不仅降低了开发的技术难度,而且也使得对开发工作的管理比较容易。

    5.可维护性好
    面向对象的软件稳定性比较好。面向对象的软件比较容易修改。面向对象的软件比较容易理解。易于测试和调试。

    展开全文
  • 用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。 一个典型的软件系统使用数据结构(对象模型),执行操作(动态...

    在面向对象分析中,主要由对象模型、动态模型和功能模型组成。对象模型是最基本、最重要、最核心的。

    面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。

    一个典型的软件系统使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。
    对任何大系统来说,上述3种模型都是必不可少的。用面向对象方法开发软件,在任何情况下,对象模型始终都是最重要、最基本、最核心的。
    在面向对象分析过程中,构造出完全独立于实现的应用域模型;在面向对象设计过程中,把求解域的结构逐渐加入到模型中;在实现阶段,把应用域和求解域的结构都编成程序代码并进行严格的测试验证。

    复杂问题(大型系统)的对象模型通常由下属五个层组成

    主题层、类与对象层、结构层、属性层、服务层

    展开全文
  • 《软件工程——快速掌握结构化开发方法》一文中,我们讲述了如何结构化开发方法开发一个简单项目案例,并重点讨论了结构化分析和结构化设计阶段使用事件、数据流图模型、数据字典、ER模型、结构图模型完成...

    在《软件工程——快速掌握结构化开发方法》一文中,我们讲述了如何用结构化开发方法开发一个简单的项目案例,并重点讨论了在结构化分析和结构化设计阶段使用事件、数据流图模型、数据字典、ER模型、结构图模型完成项目的分析与设计的整个过程。

    在结构化开发方法中,利用数据流图模型对系统进行层层分解,将一个大的系统分解为多个程序模块,数据流图中需要存储的信息通过ER图建立数据模型,其功能模型和数据模型是分离的,也就是说在结构化开发方法中,程序和数据是分离的。另外,程序的结构要遵循每个程序模块只有一个入口和一个出口,在程序模块内部只能采用顺序、选择、重复三种基本的控制结构。

     

    什么是面向对象方法?

    当前主流的软件开发方法除了前面讨论的结构化开发方法外,还有面向对象开发方法。面向对象开发方法尽可能模拟人类习惯的思维方式来分析软件项目,按照现实世界的问题域来构建解决现实问题的系统。例如在《软件工程——快速掌握结构化开发方法》一文项目案例中,要求开发一款名片自动识别APP产品,按照人类认识一个新事务的思维方式,会把名片看作一个新的事务,名片有哪些属性(名称、职务、地址等)? 名片能做什么(交际、拓展人脉等)?就如同我们找一个新工作时,会考虑这个新工作有哪些属性(工资、工作时间、工作类型等)?这个新工作主要做什么(编写程序、销售产品等等)?

    面向对象开发方法把系统看作是一起工作来完成某项任务的相互作用的事务集合,事务也称为对象。面向对象开发方法主要有面向对象分析、面向对象设计、面向对象编程三个阶段,分别对应软件开发生命周期的系统分析、系统设计、系统实施三个阶段。面向对象分析识别出系统中的所有对象以及对象之间的关系,在面向对象分析中主要使用的图形模型有用例图和类图;面向对象设计对已识别的对象进行细化,并定义出其全部属性和方法,在面向对象设计中主要使用的图形模型是类图、顺序图;面向对象编程使用具体的语言或环境来实现这些对象。

    面向对象开发方法与结构化开发方法完全不同,在面向对象方法中,既没有程序和过程,也没有数据实体和文件,系统只是由对象组成。也可以这么说,面向对象开发方法中的对象是结构化开发方法中的实体、数据和程序模块的组合体,它具有属性和行为,同时可以对系统发出的消息进行响应。

    面向对象方法采用的模型主要是UML建模语言,UML从系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图等九种图。这些图形模型从不同的侧面对系统进行描述。在实际分析和设计中,这九种图形模型不一定全部用到,常用的图形模型有用例图、类图、顺序图、部署图。

     

    面向对象分析

    虽然面向对象开发方法和结构化开发方法有很大不同,但前期的系统需求调查是完全相同的。在《软件工程——快速掌握结构化开发方法》一文中,项目经理小王的系统需求调查结果事件列表,完全可以应用到面向对象分析中,下表是小王在名片自动识别APP项目案例中的需求调查事件列表。

    表1 名片自动识别APP事件

     

    有了需求事件列表,就可以归纳和抽象出系统相关角色了。需要注意的是,角色不是指具体的人和事务,而是表示人或事物在系统中所扮演的角色。例如图书管理系统有管理员和借书者两个角色,小张既可以是管理员角色,也可以是借书者角色。从事件列表中归纳和抽象出来的角色就是系统中要识别的对象。

    表1的事件涉及的角色有使用者(用户)、名片、百度图像识别接口、数据库。对识别的角色编号,可以采用字母R开头加序号的编号规则,例如R001,R002等。下表是角色列表。

    表2 识别的角色列表

     

    识别出角色后,就可以建立角色用例图了,角色用例图从系统的角度描述了角色(对象)的行为及角色间的关系。类似数据流图要配备数据字典一样,角色用例图也要配备用例规约,用例规约描述了用例图中每个用例的用例名称、参与角色、与其它用例间的关系、前置条件、后置条件、操作流程、输入与输出数据项等内容。下图是表2角色的系统用例图。

     

    图1 名片识别APP角色用例图

    在上图所示的角色用例图中,分别列出了使用者、名片、百度AI接口、数据库角色的用例。角色使用者有【注册】、【登录】、【添加名片】三个用例,其中【注册】和【登录】用例依赖于角色数据库的【存取信息】用例;角色名片有【扫描名片】和【识别名片】两个用例,其中【识别名片】用例依赖于角色百度AI接口的【调用百度AI接口用例】和角色数据库的【存取信息】用例;角色数据库有【存取信息】用例;角色百度AI接口有【调用百度AI接口】用例。

    角色用例图确定后,还需要对每个用例配置用例规约,用例规约内容组成没有强制要求,以能够为面向对象设计提供充分的参考依据为原则。下面给出角色数据库【存取信息】用例的用例规约。

    表3 角色数据库【存取信息】用例规约

     

    角色用例模型分析完成后,下一步的工作就是分析系统中的对象及对象间的关系,描述模型使用UML建模语言中的类图。类图描述了系统对象的名称、属性及行为,以及对象与对象之间的关系。一般说来,前面分析的系统角色就是系统中的对象。当然角色还可以细分,例如数据库角色就可以细分为使用者数据库角色和名片数据库角色,细分后的角色可以继承原有角色的所有行为和属性,这也体现了对象的继承关系。下图是名片识别APP的类图。

     

    图 2 名片识别APP类图

    至此,分析阶段的用例和类图的建模已经完成,后续还需要根据用例和类图模型建立界面模型。例如,User类有登录、注册、添加名片的行为,就需要为User类提供执行这些行为的界面模型。有很多图像绘制工具支持界面模型的建模,如常用的PhotoShop等工具。

     

    图 3 登录界面模型

     

    面向对象设计

    分析阶段完成后,就可以进入面向对象的设计阶段了。面向对象分析主要关心系统的功能和业务,无需关心与计算机实现相关的内容。到了面向对象设计阶段,就要充分考虑系统体系结构、运行环境、编程语言等与计算机实现相关的内容。例如BS架构或CS架构的设计思路和方案就完全不同,在BS架构中,不同的设计框架其设计方案也不完全相同。

    在BS架构中,比较流行的设计框架是MVC框架,它将业务逻辑、数据、界面显示分离的方法来组织程序,业务逻辑放到一个部件或模块中。这样做的好处是,当修改用户界面时,不需要重新编写业务逻辑。MVC框架是模型(Model)、视图(View)、控制器(Controller)的缩写,Model可以理解为实体对象,只有属性没有行为,实体对象的所有行为都放置在控制器中;View可以理解为用户界面,如JSP、aspx页面等;Controller是控制器,负责处理与实体对象相关的业务逻辑,并从视图接收和回传数据到视图。

    在UML建模语言中,也提供了一种划分类的方式,分为边界类、实体类和控制类。边界类主要用于描述用户与系统之间的交互对象,例如JSP、aspx页面等,边界类与MVC中的视图对应;实体类主要用于描述具体的实体对象,通常映射到数据库表或文件中,实体类与MVC中的模型对应;控制类主要用于描述系统中业务逻辑,例如分析阶段中类的行为,在设计阶段可以放置到控制类中实现,控制类与MVC中的控制器对应。设计类图如下图所示。

     

    图 4 名片识别APP设计类图

    在上面的设计类图中,UserControll类和CardControll类是MVC框架的控制器类,login.jsp、register.jsp、card.jsp前端页面是MVC框架的视图,User是MVC框架的实体类。

    给出设计类图后,还需要给出控制器类每个业务处理方法的顺序图,以明确业务逻辑处理过程。下面给出UserControll类register()业务处理方法的顺序图。

     

    图 5 UserControl类register业务处理方

    上图给出了使用者注册业务逻辑处理过程,整个过程从使用者进入注册页面开始,涉及到register.jsp页面、UserControll对象、User对象和DataBase对象。

    在面向对象设计阶段,除了给出设计类图、顺序图等设计模型外,还需要给出数据库设计、界面设计、软件部署等设计模型,这里就不再一一给出了。

     

    面向对象的编程实现

    面向对象的编程实现是在面向对象设计的基础上,将设计阶段的设计模型映射为计算机编程结构。映射工具可以是代码自动化生成工具,代码自动化生成工具可以根据设计类图自动生成类代码。但大部分编码还需要人工来实现,如MVC框架中JSP页面的实现、控制器类的业务逻辑处理代码、服务类的实现代码等。

    在面向对象编程过程中,面向对象的封装、继承、多态、抽象等特征已经在设计阶段完成,因此在编程阶段无需考虑对象的封装、继承、多态、抽象等特征的实现。

     

    小总

    1、面向对象开发方法与结构化开发方法完全不同,在面向对象方法中,既没有程序和过程,也没有数据实体和文件,系统只是由对象组成。也可以这么说,面向对象开发方法中的对象是结构化开发方法中的实体、数据和程序模块的组合体,它具有属性和行为,同时可以对系统发出的消息进行响应。

    2、面向对象开发方法分为面向对象分析、面向对象设计和面向对象编程实现三个阶段。其中最重要的是面向对象分析和面向对象设计两个阶段。面向对象开发方法主要的分析和设计模型是UML建模语言,面向对象分析一般用到UML建模语言的用例图、类图等模型,面向对象设计一般用到UML建模语言的实现类图、顺序图、部署图等模型。

    展开全文
  • 面向对象建模

    千次阅读 2017-03-10 17:50:39
    用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。 一个典型的软件系统使用数据结构(对象模型),执行操作(动态...
    用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型描述系统控制结构的动态模型描述系统功能的功能模型
    一个典型的软件系统使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。
    对任何大系统来说,上述3种模型都是必不可少的。用面向对象方法开发软件,在任何情况下,对象模型始终都是最重要、最基本、最核心的。
    在面向对象分析过程中,构造出完全独立于实现的应用域模型;在面向对象设计过程中,把求解域的结构逐渐加入到模型中;在实现阶段,把应用域和求解域的结构都编成程序代码并进行严格的测试验证。
    展开全文
  • 面向对象分析

    2017-03-23 17:04:00
    面向对象分析 1、面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程... 在面向对象方法中为了获取用户需求常常场景和用例描述用户需求。一个场景是用户与系统之间一系列交互,描述了一个系统实...
  • 面向对象编程是一种程序的范式,它把程序看成是对不同对象的相互调用,对现实世界建立的一种模型进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法。 什么是类 ...
  • 面向对象

    2016-08-14 19:32:21
      程序设计早期,程序流程图和自顶向下的方法设计。采用这种设计方法,程序员会将一个大问题分解成更小任务... 建立对象模型,将问题域化为不同的对象去处理。 区别:1.结构化编程中,程序围绕着要
  • 用面向对象的思维解决问题重点 当遇到一个需求时候不用自己去实现,如果自己一步步实现那就是面向过程;应该找一个专门做这个事人来做。 面向对象(object-oriented ;简称: OO) 至今还没有统一概念 我们可以...
  • 面向对象的分析过程

    2007-07-04 10:37:00
    最近看了一些有关面向对象设计方法方面文章,自我感觉有了些收获,于是写这里,欢迎大家来pp~~!步骤:一、初步划分子系统:根据功能对系统进行拆分,找出各个子系统输入及输出,降低系统复杂性。各个子系统...
  • Java 面向对象(一)

    2019-03-05 17:58:20
    结构化编程(面向过程): 程序设计早期,程序流程图和自订向下的方法设计,采用这种设计方法,程序员会将一个大问题分解成更小任务,然后为每个更小任务编写一个过程(或函数)。 面向对象编程(Object...
  • 建立用例模型

    千次阅读 2011-02-26 22:56:00
    用例驱动系统分析与设计方法已成为面向对象的系统分析与设计主流。用例建模技术是从用户角度描述系统功能需求宏观上给出模型的总体轮廓。 一、需求分析与用例建模  用例模型(Use case model)描述是...
  • 功能分解法 功能分解法=功能+子功能+功能接口 ...OOD(Object-oriented design(OOD))用面向对象的方法为真实世界建立一个计算机虚拟模型 软件系统其实是现实世界一种模拟 要开发一个软件系统,就i需
  • 几乎所有重要软件开发都使用了某种方法学,哪怕是一个非常不...UML是一种描述面向对象设计模型的语言,不是方法全部。 UML以若干视图描述系统不同特性和不同用途。 模型中包含信息图以图形形...
  • 本书论述运用UML(统一建模语言)和模式进行对象建模的方法和技巧,重点讨论了如何使用面向对象的分析和设计技术来建造一个健壮和易于维护系统。 全书叙述清晰、图文并茂、实例丰富,是一部来自于大量经验...
  • 举个例子讲:我要黄金浇筑一块砖,我会一个模型里进行,这样才能有砖形状,那模型即是类,浇筑好砖便是对象。 2.构造函数(构造方法)和成员方法 构造函数也叫构造方法,据说之所以叫做构造函数就是为了...
  • 本书是一部独具特色的面向对象技术著作。书中结合代码示例生动透彻地讲述了面向对象思想精髓,让读者真正学会以对象方式进行思考。此外,本书还讨论了各种与面向对象概念密切相关应用主题,包括XML、UML建模语言...
  • 1.1.4 用面向对象编程解决问题 5 1.2 理解对象模型 7 1.3 术语 8 1.4 理解消息、方法和实例变量 8 1.4.1 对象中包含内容 9 1.4.2 实例化(或创建)对象 11 1.5 什么可以作为类 11 1.6 什么...
  • FISHGUI项目组决定用面向对象的方法完成项目,也决定采用迭代开发模型。现在终于进入到面向对象分析阶段了。 面向对象分析该从哪里开始呢?要完成些什么工作呢?第一次采用面向对象开发项目组都会碰到这样或...
  • 提出一种面向城市应急管理监控视频智能解析方法,利用计算机视觉库获取视频中监控对象的数量和位置,生成其运动轨迹并匹配预设异常运动模板,从而构建应急事件规范化情境模型用以分析和预警。以某大学校园开放...
  • 对充血模型的疑问

    2011-01-28 11:27:16
    小弟我坛子上看到关于贫血模型和充血模型的讨论后一直再想这对于我这种代码小工意味着啥? 是否可以更快更迅速更敏捷完成代码完成开发。 一直做项目都是SSH 然后分层 action,service,dao,entity;...
  • 面向对象软件工程 面向对象软件工程是面向对象方法在软件工程领域全面应用它包括: 面向对象分析OOA 面向对象设计OOD 面向对象编程OOP 面向对象测试OOT 面向对象软件维护OOSM 面向对象软件开发 ...
  • 数据挖掘各行业应用论文

    热门讨论 2010-04-19 09:40:57
    用户访问模式数据挖掘的模型与算法研究.caj 数据仓库的建设与数据挖掘技术浅析.caj 分类特征规则的数据挖掘技术.caj 数据挖掘技术的主要方法及其发展方向.caj OLAP和数据挖掘技术Web日志上的应用.caj 数据挖掘技术...
  • Delphi实现Word文件预览

    热门讨论 2005-07-13 15:37:57
    如果是按真正面向对象的方法,应该定义一个类代表一个子图形,可能是作为 BufferedImage 一个子类,但由于我们是探索使用 BufferedImage 对象技巧,因此一个 createSprite() 方法来画出 BufferedImage 对象...
  •  面向对象方法使用OOA定义类,对现实世界建模。OOA主要任务是要问题域上构建具有主题层、对象层、结构层、属性层和服务层OOA模型,实现模型的主要工具有用例图(Use-Case)和类图(Class Di...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 225
精华内容 90
关键字:

在用面向对象方法建立的模型