精华内容
下载资源
问答
  • 博主选的是老师给出的第一个议题“面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?”,首先来讨论一下二者的定义。 结构化方法的基本思想是将待解决的问题看作一个系统从而用系统科学的思想...

    博主选的是老师给出的第一个议题“面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?”,首先来讨论一下二者的定义。

    结构化方法的基本思想是将待解决的问题看作一个系统从而用系统科学的思想方法来分析和解决问题。

    而面向对象方法是在设计中要映射现实世界中指定问题域中的对象和实体。

    结构化方法所需遵从的原则:1.抽象原则;2.分解原则;3.模块化原则

    面向对象方法所需遵从的原则:1.抽象原则;2.模块化原则;3.封装原则;4.层次原则

    结构化系统分析方法的特点:
    (1)面向用户,用户自始至终参与系统的分析工作;
    (2)强调调查工作的重要性;
    (3)对管理业务中的各种数据进行分解;
    (4)采用了层次分解的系统思想;
    (5)用图形工具来分析和构建新方案。
    结构化分析的图表工具主要由数据流程图、数据字典和数据处理说明组成。

    面向对象系统分析方法的特点:
    (1) 强调系统开发的整体性和全局性
    (2) 侧重于数据转换的过程而不是数据本身
    (3) 系统的开发周期长
    (4) 封装性
    (5) 继承性
    (6) 多态性
    (7) 易维护性

    转载于:https://www.cnblogs.com/rabbit1996/p/5282076.html

    展开全文
  • 结构化方法和面向对象方法的比较 ...文章通过介绍编程世界的这两种主要编程方法,结构化方法和面向对象方法的分析、设计和应用。并在最后对两种方法进行比较分析,比较结构化方法和面向对象方法编程思想的异...

    结构化方法和面向对象方法的比较

    翁松秀

    北京航空航天大学

        摘要:编程之精髓在于编程思想,而不同的编程方法有不同的编程思想。结构化程序设计方法一直以来都是编程人员基本的编程方法,而近年来流行的面向对象方法也备受人们青睐。文章通过介绍编程世界的这两种主要编程方法,结构化方法和面向对象方法的分析、设计和应用。并在最后对两种方法进行比较分析,比较结构化方法和面向对象方法编程思想的异同和两种方法的应用。

    关键词:结构化方法;面向对象方法;编程思想;再抽象;再模块化;

       前言

      结构化方法和面向对象方法是当前软件开发最常用的方法。基于“瀑布模型”的软件开发方法中,以软件架构为核心,采用结构化设计和分析方法将软件开发的生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护六个基本阶段。而在通过迭代式和增量式进行开发的敏捷软件开发方法中,主要采用面向对象的设计和分析方法。结构化方法与面向对象方法的使用,与具体的开发环境和开发方法有关,如传统软件工程中更适合用结构化方法,而敏捷软件开发方法中面向对象开发方法更受青睐。

      1   结构化方法

      结构化编程思想由艾慈格·迪杰斯特拉在1976年在《GOTO陈述有害论》中提出,1975年赖瑞·康斯坦丁和爱德华·尤登提出结构化设计,1978年汤姆·迪马克和爱德华·尤登等在1975年提出结构化分析,后来逐渐被完善,形成现在软件开发方法中主要采用的结构化方法。结构化方法从功能上对系统进行划分,将系统按功能划分成各个模块,将子模块编写成子程序,通过子程序之间的结构和层次之间的耦合来解决复杂的问题。结构化方法按软件周期可划分为结构化分析、结构化设计和结构化实现,这里主要讨论SA和SD。

      1.1 结构化分析(Structured Analysis)

      结构化分析是通过数据来对需求进行分析,功能模块之间通过数据进行联系,采用的建模技术有:数据流图DFD(Data Flow Diagram)、ERD(Entity Relation Diagram)和数据字典DD(Data Dictionary)等。数据在结构化分析方法中举足轻重,就相当于血管之于人体,系统的各个模块通过数据的传递进行沟通和联系,导致了功能模块的强耦合性,模块之间的耦合性降低了结构化程序的可重用性和可维护性。主要分析步骤如下:

      ①  分析当前的情况,做出反映当前物理模型的DFD;

      ②  推导出等价的逻辑模型的DFD;

      ③  设计新的逻辑系统,生成数据字典和基元描述;

      ④  建立人机接口,提出可供选择的目标系统物理模型的DFD;

      1.2 结构化设计(Structured Design)

      结构化设计阶段将分析阶段得到的目标系统物理模型的DFD表示的具体信息转化成程序结构的设计描述,过渡成软件结构。在这个过程中采用的建模技术有:系统结构图SSD(System Struct Diagram)。这个过程分两步完成,第一步是从分析得到的结果出发,构造一个设计方案,决定系统功能模块的结构。第二步进行详细设计,确定每个功能模块的内部控制结构和算法,最终产生每个功能模块的程序流程图。具体步骤如下:

      ①   评审和细化数据流图;

      ②   确定数据流图的类型;

      ③   把数据流图映射到软件模块结构;

      ④   基于数据流图逐层分解高层模块,设计中下层模块;

      ⑤   对模块的控制结构和算法进行优化;

      ⑥   描述模块接口;

      1.3 结构化方法的应用

      结构化方法对需求变化的适应能力比较弱,功能的改变甚至会牵一发而动全身,但由于结构化分析和设计对系统进行完整的架构和具体功能的分析以及实现的各个阶段严谨的测试,所以结构化程序可靠性高。基于结构化分析、设计和实现中的这些主要优点和缺点,结构化比较适合于像操作系统、实时处理系统等这样以功能为主的系统。比如绝大多数操作系统都是以结构化语言C语言写的。

      2   面向对象方法

      面向对象OO(Object Oriented)方法把面向对象的思想应用于软件开发,将系统中的数据和相关操作进行分类和封装,抽象成一种新的数据结构——类,并在系统的实现过程中实例化,实例化的对象与客观实体有直接对应关系,通过对象的属性和行为,以及对象之间的关系来解决实际问题。面向对象方法吸收了结构化的基本思想和优点,在数据抽象的基础上添加对操作的抽象,使面向对象程序具有高重用性。面向对象方法其实就是结构化的再抽象和再模块化。

      2.1 面向对象分析(Object Oriented Analysis)

      面向对象分析阶段通过分析,确定问题空间和解空间中所有对象及其属性,进而确定每个对象的操作,即对事务的处理能力,然后通过对象之间的行为来确定对象之间的关系。具体步骤如下:

      ①   确定问题域和解空间;

      ②   区分类和对象;

      ③   区分整体对象以及组成部分,确定类的关系以及内部结构;

      ④   定义类的数据(属性)和操作(处理事务的行为);

      ⑤   确定附加的系统约束

      2.2 面向对象设计(Object Oriented Design)

      面向对象设计阶段主要对分析阶段的结果进行进一步的规范化整理,以便后面的具体实现。OOA阶段和OOD阶段没有明显的划分界限,两者相互衔接,最能体现出这种关系的是近年来出现的新的软件生命周期模型——喷泉模型。如图(1)

                                                                                               图(1)

      面向对象设计阶段的主要步骤如下:

      ①   改进和完善分析阶段对系统的分析结果;

      ②   设计交互过程和用户接口;

      ③   设计任务管理、子系统以及任务之间的协调方式;

      ④   设计全局资源,确定任务或者子系统的资源分配;

      ⑤   设计对象;

      2.3 面向对象方法的应用

      面向对象方法从问题的模型开始,模拟人对事物的认识对事物进行分类,进而识别对象,通过整理对象的内部结构和对象之间的关系不断细化问题,它的本质就是敏捷开发方法中的迭代和递增。开发过程通过不断地对功能进行反复的迭代,使系统的功能不断完善。所以面向对象方法适用于SCRUM、XP(极限编程)、CRYSTAL(水晶编程)、PDD(特性驱动开发)等敏捷软件开发。

      3   结构化方法和面向对象方法的比较

      3.1 编程思想的比较

      软件开发的过程就是人们使用各种计算机语言将现实世界的问题翻译到计算机世界,可描述为图(2):

    图(2)

      结构化方法的编程思想是自上而下,逐步求精,按系统的功能进行模块化设计,将一个复杂和完整的系统按功能分解成小的模块,模块内由顺序、分支和循环等基本控制结构组成,各模块的功能由子程序进行实现。如图(3)

    图(3)

      而面向对象方法通过模拟人类日常的逻辑思维中经常采用的思想方法和原则,将系统中的事物进行抽象、分类、继承和封装。通过抽象出来的类之间的行为关系来确定整个系统的联系,并在系统中实例化需要的对象,在系统的设计中尽可能地运用人类的思维方式。与结构化相比面向对象更符合人们对事物和解决问题的过程和思维方法。如图(4)

    图(4)

      3.2 应用的比较分析

      结构化开发方法开发前期对系统的功能需求和非功能需求进行完整的架构,使软件具有高可靠性。开发过程自上而下,按照严谨的软件开发生命周期:计划、分析、设计、编码、测试和维护逐个阶段进行开发,各个阶段相互衔接,每一个阶段都要通过严格的审查,测试通过才能进入下一个阶段,保证了软件的高质量。所以比较适合于像操作系统、实时处理系统等这样以功能为主的系统。而由于面向对象方法迭代和递增的本质,所以面向对象方法更适合于在敏捷软件开发中使用。如SCRUM、XP(极限编程)、CRYSTAL(水晶编程)、PDD(特性驱动开发)等。

    参考文献:

    [1]雷西玲,谢天保,何文娟. 面向对象方法与结构化方法的比较. 2001

    [2]邵维忠,杨芙清. 面向对象的系统分析. 1998

    [3]蔡希尧. 面向对象技术. 2001

    [4]翁松秀. 敏捷软件开发与传统软件工程概述比较. 2016

    [5]张莉,裘国永. 结构化方法与面向对象方法的比较分析. 陕西师范大学学报. 2001

     

    https://www.cnblogs.com/maya389069192/p/6166238.html

    转载于:https://www.cnblogs.com/feng9exe/p/9884180.html

    展开全文
  • 简单地说结构化分析方法主要用来分析系统的功能,依据系统内部的逻辑关系将复杂的系统分解为易于理解分析的子系统,是一种直接根据数据流划分功能层次的分析方法,而面向对象分析方法则是根据获得的需求信息从中...

    简单地说结构化分析方法主要用来分析系统的功能,依据系统内部的逻辑关系将复杂的系统分解为易于理解和分析的子系统,是一种直接根据数据流划分功能层次的分析方法,而面向对象分析方法则是根据获得的需求信息从中抽象出类与对象并分析他们之间的静态关系,再结合实际问题,确定对象的动态行为以及对象间的信息传递,以此建立需求模型。

    结构化的分析方法较为传统,主要适用于数据处理,其主要以非专业人士也易于理解的图形符号来表示系统的基本功能;若遇到大型复杂的系统则根据其系统内部的逻辑关系将其划分为简单易懂的子系统,然后根据具体的实际情况确定系统内部的数据流以及交换关系,并用数据流图表示出来,以此更好的理解整个系统。

    描述手段:

    1、 一套分层的数据流图:表示系统的各部分,以及各部分之间的关系;

    2、  数据词典:为数据流图中出现的每个元素进行说明;

    3、  其他的补充材料

       面向对象分析方法主要分为问题分析和应用分析两个方面。问题分析主要是通过对需求信息的分析,从中将信息中的实体标识为问题域中的对象类,并定义出对象类之间的关系。应用分析则是描述对象之间的消息传递和协同工作的动态信息。由此可见面向对象的分析过程实质就是创建模型的过程。在解决一个问题的时候,首先将实际问题中所涉及到的实体以及实体之间的相互关系抽象为静态的对象模型,若问题中还涉及到用户与系统的交互过程,则需要构建动态模型。

    描述手段:

    1、  构建对象模型:根据实际问题确定对象与类,以及他们之间的静态关系;

    2、  构建动态模型:在实际问题中免不了存在时序关系和状态变化,通过构建动态模型来表示这种变化;

    3、  构建功能模型:以此来表示系统内部数据流的传递和处理。

    4、  定义类和对象中的操作:依据功能模型和动态模型来确定类中应提供的服务;

    综上所述:我觉得结构化分析注重于将问题分解,“化整为零,各个击破”;而面向对象分析则注重于创建模型,将实际问题抽象化以此来解决问题。

    转载于:https://www.cnblogs.com/Axiao1995A/p/5277967.html

    展开全文
  • 结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计结构化程序设计三部分有机组合而成的。结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化...

    1、 两者基本思想的比较  

     

    1.1结构化方法的基本思想 

     

    结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。它的要点是是把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。

     

    结构化方法的基本思想主要体现在三个方面。

    (1)自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。

     

    (2)模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。

     

    (3)语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。

     

    结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

    结构化分析的步骤如下:

    (1)通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型

    (2)去掉具体模型中非本质因素,抽象出当前系统的逻辑模型

    (3)根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型

    (4)完善目标系统并补充细节,写出目标系统的软件需求规格说明

    (5)评审直到确认完全符合用户对软件的需求

     

    结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下:

    ①评审和细化数据流图;

    ②确定数据流图的类型;

    ③把数据流图映射到软件模块结构,设计出模块结构的上层;

    ④基于数据流图逐步分解高层模块,设计中下层模块;

    ⑤对模块结构进行优化,得到更为合理的软件结构;

    ⑥描述模块接口。

     

    1.2面向对象方法的基本思想 

     

    面向对象技术:面向对象技术包括面向对象分析、面向对象设计及面向对象程序设计三部分内容。

    OOP是在结构化程序设计的基础上,于80年代初涌现的一种程序设计方法,但其真正显示力量和被产业界所重视还是最近几年的事。封装是整个OOP方法的基础,主要用于在数据段外围构造保护层,以限制外界变化的影响,所有的数据访问都由保护层内的过程间接处理。应用程序员不必再按照将程序设计语言逐句拼装的方式来构造整个软件,只需组合、重用由系统程序员开发、可供他人用来装配的软件集成块即可。例如,VB是一种面向对象的程序设计语言,与传统DOS下的Basic最大的差别在于它运用了面向对象的概念。VB建立了一个事件驱动的环境,供用户直接调用。程序设计人员只要专心数据的运算处理,其余诸如Windows应用程序下所见的滚动条、按钮、下拉式菜单和对话框等,都已经有对象供用户进行调用,而且每个对象又都有许多事件、属性和方法,供用户填入适当值或程序码,从而形成一个应用程序。

     

     

    2、主要特点的比较 

     

    2、1结构化分析方法的特点 

    (1)面向用户,用户自始至终参与系统的分析工作; 

    (2)强调调查工作的重要性; 

    (3)对管理业务中的各种数据进行分解; 

    (4)采用了层次分解的系统思想; 

    (5)用图形工具来分析和构建新方案。  

    2、2面向对象分析方法的特点 

    (1)强调系统开发的整体性和全局性 

    (2)侧重于数据转换的过程而不是数据本身 

    (3)系统的开发周期长 

    (4)封装性  

    (5)继承性 

    (6)多态性 

    (7)易维护性

     

    3.如何选择适合的开发方法

     

    (1)结构化方法最为成熟,对于预先制定需求的系统开发,非常有效。对于需求模糊或者随时间变化的系统开发,不太适应。

    从提高程序的重用性和可维护性的角度看,面向对象方法有较好的应用前景.

    形式化方法对于安全性要求很高的系统,比较适用。

    但面向对象程序设计方法的基础仍然是结构化程序设计

     

    (2)因为成本问题和技术变更,所以形式化方法在实际应用中受到限制。

     

    (3)SOFL方法集成了结构化方法,面向对象方法,和形式化方法于一体,

    在需求分析和规格说明阶段采用结构化方法,在设计和实现阶段采用面向对象方法。

    转载于:https://www.cnblogs.com/myHenryS/p/6218680.html

    展开全文
  • 开始找了一堆类,可是类间关系与协作一直搞不清,最近用结构化分析方法,从数据流图出发,从上而下,逐步细化,然后从数据流图经过转换,通过变换分析结合事务分析,形成系统结构图,划分到各个模块,同时还考虑模块的耦合,内...
  • 我们百度软件开发方法,在百科中列举了8种软件开发方法,而其中最为被广泛使用的就是结构化开发方法和面向对象开发方法,这二者也是被人们讨论的最多的。在这篇博客中,我们将介绍这两种开发方法并且将二者进行比较...
  • 软件开发方法指:在项目投资规模和时间限制内,设计、实现符合用户需求的高质量软件,根据软件开发的特点,提出的多种软件...结构化方法和面向对象方法都是计算技术中常用的软件开发方法,两种开发方法目前都非常流...
  • 结构化分析方法(Structured Method,结构化方法)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。 结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组...
  • 这里我们从结构化方法和面向对象方法在进行程序设计时的特点来进行研究和讨论。 结构化方法  结构化方法由结构化分析,结构化设计和结构化程序设计三部分有机组合而成。基本四巷在于把一个复杂问题的求解过程分...
  • 结构化分析方法(Structured Method,结构化方法)是面向过程的程序设计的方法,是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。...
  • 所谓的结构化方法和面向对象方法,就是两种不同的映射手段,结构化方法是以处理过程为中心,强调先定义数据结构(ER实体关系建模),然后分析处理逻辑(DFD数据流图);面向对象方法则主张两者之间的自然映射,在AT...
  • 结构化方法在软件工程中得到广泛接受和使用,而面向对象方法提出后,当代软件工程的发展面临着从传统的结构化方法到面向对象方法的转变,本文剖析了结构化方法和面向对象方法这两种软件开发方法具体的分析设计过程,...
  • 在软件开发的过程中,采用的开发方法主要有两种,分别为结构化开发方法和面向对象的开发方法,本文将对两种开发方法进行介绍和比较。 一. 结构化方法介绍 结构化方法,即面向过程开发是最早最传统的软件开发方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,088
精华内容 435
关键字:

结构化分析方法和面向对象分析方法