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

2023-10-27

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

一、结构化方法:

结构化方法(Structured Methodology)采用了系统科学的思想方法,从层次的角度,自顶向下地分析和设计系统。结构化方法包括结构化分析(Structured Analysis,简称 SA)、结构化设计(Structured Design,简称SD)和结构化程序设计(Structured Program Design,简称 SP)三部分内容。其中,SA和SD主要属于学科抽象的内容,SP则主要属于学科设计方面的内容。[1]

    结构化方法遵循抽象原则,分解原则以及模块化原则,模型构建是结构化方法的核心,建模是为了更好地模拟现实世界。其大致过程是,先使用SA方法构建系统的环境模型,然后使用SD方法,确定系统的行为和功能模型;最后用SP方法进行系统的设计。

1.1结构化分析方法(SA):

结构化分析方法给出了一系列帮助系统分析人员产生功能规约的原理与技术。主要步骤如下:①分析当前的情况,做出反映当前物理模型的DFD;②推导出等价的逻辑模型的DFD;③设计新的逻辑系统,生成数据字典和基元描述;④建立人机接口,提出可供选择的目标系统物理模型的DFD;⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;⑥选择一种方案;⑦建立完整的需求规约。

 

1.2结构化设计方法(SD):

结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。主要步骤如下:①评审和细化数据流图;②确定数据流图的类型;③把数据流图映射到软件模块结构,设计出模块结构的上层;④基于数据流图逐步分解高层模块,设计中下层模块;⑤对模块结构进行优化,得到更为合理的软件结构;⑥描述模块接口。

1.3 结构化程序设计(SP):

结构化程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。它的三种基本结构是:顺序结构、选择结构和循环结构。

1.4可能用到的图形结构有:

a. 数据流图(DFD):

它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

b. 数据字典(DD):

数据字典就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。数据字典有四类条目:数据流、数据项、数据存储、基本加工。

c. 实体联系图(ER图):

它是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。

二、面向对象方法:

软件工程中的面向对象方法,主要思想是,使用现实世界的概念抽象地思考问题从而自然地解决问题。强调模拟现实世界中的概念而不强调过程或算法,支持重用。涉及到从面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)、面向对象测试(Object Oriented Testing,OOT)到面向对象软件维护(Object Oriented Software Maintenance,OOSM)的全过程。

2.1 面向对象分析(OOA):

OOA方法是把实体—关系图中的概念与面向程序设计语言中的主要概念结合在一起而形成的一种分析方法。在该方法中采用了实体、关系和属性等信息模型分析中的概念,同时采用了封闭、类结构和继承性等面向对象程序设计语言中的概念。它的5个基本步骤为①确定问题域②区分类和对象③区分整体对象以及组成部分④定义属性和服务⑤确定附加的系统约束

2.2 面向对象设计(OOD):

设计阶段则主要是确定实现用户需求的方法,即怎样做才能满足用户需求,并构造出系统的实现蓝图。OOD首先从OOA的结果开始,并将其从问题域映射到实现域;为满足实现的需要,还要增加一些类 、结构及属性和服务,并对原有类及属性进行调整。此外,还要完成应用控制、人机交互界面的设计等。OOA与OOD采用一致的表示法,使得从OOA到OOD不存在转换,只有局部的修改或调整,并增加了与实现有关的独立部分,因此,OOA与OOD之间不存在传统方法中分析与设计之间的鸿沟,成为面向对象方法的主要优势。

2.3 面向对象编程(OOP):

这是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。

2.4 面向对象测试(OOT):

这是指对于运用OO技术开发的软件,在测试过程中继续运用OO技术进行以对象概念为中心的软件测试。它以类作为基本测试单位,集中检查在类定义之内的属性、服务和有限的对外接口,大大减少了错误的影响范围。

2.5 面向对象软件维护(OOSM):

软件维护的最大难点在于人们对软件的理解过程中所遇到的障碍,在面向对象方法中,各阶段采用的表示是一致的,从而大大降低了理解的难度。

 

三、两方法的比较:

3.1不同点:

  1. 遵循的基本原则不同:

结构化方法遵循的基本原则有:抽象原则,分解原则以及模块化原则。面向对象模型遵循的基本原则有:抽象,封装,模块化,层次。

b. 处理问题的基本单位不同:

面向对象方法是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单位,期望计算机世界进一步向客观世界靠拢,以使问题的处理更直截了当些;而结构化方法则把客观世界的问题抽象成计算机可以演绎和处理的过程,处理问题的基本单位是能清晰表达过程的模块。

c. 数据的处理方式不同

面向对象方法将数据与对应的代码封装成一个能动的整体对象,原则上其他对象不能直接修改其数据,即对象的修改只能由自身的成员函数来完成;而结构化方法则是直接通过程序来处理数据,处理完毕后便可显示处理结果。

d. 一般采用的程序设计语言不同:

软件工程中的结构化方法,一般在程序设计阶段,采用的是结构化程序设计语言,典型的如C语言,而面向对象方法,采用的是面向对象程序设计语言,如Java语言。不同的语言使得设计过程出现差异。

3.2   相同点:

a.相同的预定目标:

向对象方法与结构化方法都是把客观世界中要解决的问题转向计算机上的实现作为预定目标。从抽象的意义上讲,面向对象方法与结构化方法从实现预定目标和组成上是完全一致的。[2]

b. 都具有重用性

重用性即复用性。复用性是软件或软件构件能够容易地构造其他新软件的一种能力。重用性与局部化密切相关,重用性是以局部化为基础的,即只有采用局部化设计原则,才有可能使被设计的软件具有重用性。在面向对象方法中,重用性往往是通过类继承和对象组合两个最基本的技术来实现的,而在结构化方法中,多通过基本模型的组合实现重用。

 

参考文献:

【1】    汪寒昊,谢加胜,邢跃.软件开发方法:结构化方法与面向对象方法比较[J].科技信息,2011,(第13期).

【2】    贺启宝,王军.面向对象方法与结构化方法[J].佛山科学技术学院学报(自然科学版),2004,(第4期).

转载于:https://www.cnblogs.com/why1012/p/6179020.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

结构化方法与面向对象方法的比较 的相关文章

随机推荐

  • 关于新手Myeclipse(最新V2019.12.5) 第一次创建web project,运行JSP,详细步骤,所遇到的问题及解决方案。

    Myeclipse 创建web project 运行JSP 详细步骤 具体Myeclipse的安装及环境配置我不再赘述 我在这里用的Myeclipse的版本为V2019 12 5 打开Myeclipse 创建一个新的Workspaces 点
  • 一文读懂微生物扩增子16s测序

    微生物多样性测序结果如何看 做过16s测序的小伙伴们都知道 测完之后会拿到一份结果报告 但这并不代表可以开始写文章了 看似一大堆数据图表却不知如何下手 这是很多人头疼的地方 那么怎样给报告中的数据赋予灵魂 让它真正成为对你有帮助的分析呢 一
  • 一起来用Websocket(一)开篇 Websocket!Socket在HTML5复活

    注 本文源代码点此下载 一起来用websocket 一 开篇 websocket socket在html5复活 前言 html5中有一个比较好用的特性 就是websocket 现在已集成在chrome的较新版本中 由于前段时间在项目中有用到
  • 《计算机网络》——第五章知识点

    可靠 保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的 确认重传不分家 TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段 流量控制 让发送方慢点 要让接收方来得及接收 TCP利用滑动窗口机制实现流量控制 在通
  • SpringBoot项目引入jar包

    在项目过程中 有时候需要引入本地的jar包 比如企业自己的jar包或者修改过的源码包 有两种方法可以使用 一 本地maven库 把jar包打到本地maven库 然后在pom文件中加上依赖 把jar和pom文件打到maven库的命令 mvn
  • Mybatis批量操作

    当下Java开发中 数据库操作多采用Mybatis框架 它支持定制化 SQL 存储过程以及高级映射 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 很多时候 我们需要进行大量的数据操作 如果通过循环去逐个操作 这样会导致多次请
  • 大大大模型部署方案抛砖引玉

    作者 Oldpan 编辑 oldpan博客 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 模型部署 技术交流群 借着热点 简单聊聊大模型的部署方案 作为一个只搞过CV部署的算法工程师 在最近L
  • 想找一家好公司入职或者合作?那么这块天眼查GUI版本非常适合你。

    前言 天眼查是咱们都知道的一个网站了 就是可以通过这个网站来知道咱们想了解公司的一些情况 比如是不是濒临破产 有没有什么法律纠纷 所以今天在找合作公司的时候 就突发奇想的想着写一个天眼查的gui脚本 大家喜欢的话可以拿走练练手 开发工具 P
  • STM32学习笔记---电源管理

    一 STM32电源管理简介 1 电源管理简介 电源对电子设备的重要性不言而喻 它是保证系统稳定运行的基础 而保证系统能稳定运行后 又有低功耗的要求
  • web app和本地app之争 及其 iOS和Android之争

    2011年末的文章 当时还在学校 没有发表 今天贡献出来 今天和 1 我觉得你说其实是web app和本地app之争 我原来也看过别人讨论 我觉得这个看法好 如果以后多种平台并存 比如Ios Android wmphone bb 那么显然w
  • GO语言网络编程(并发编程)runtime包

    GO语言网络编程 并发编程 runtime包 1 runtime包 1 1 1 runtime Gosched 让出CPU时间片 重新等待安排任务 大概意思就是本来计划的好好的周末出去烧烤 但是你妈让你去相亲 两种情况第一就是你相亲速度非常
  • 使用PLCSIM Advanced仿真博途S7-1500 OPC UA

    你知道工控人平时在哪里交流 博途工控人社区 你知道工控人平时在哪里交流 博途工控人社区 准备工具 博途软件 UaExpert软件 UaExpert软件可以关注公众号并回复UaExpert获取 创建一个S7 1500PLC 为方便记忆 命名为
  • 数论-欧拉函数

    欧拉函数 在数论 对正整数n 欧拉函数是小于n的正整数中与n互质的数的数目 1 1 此函数以其首名研究者欧拉命名 Euler s totient function 它又称为Euler s totient function 函数 欧拉商数等
  • metasploit使用介绍

    文章目录 前言 一 metasploit介绍 1 产生原因 2 metasploit框架介绍 3 发展与壮大 二 使用metaspliot 1 模块介绍 2 模块命令基本使用 1 启动MSF 2 管理数据库 3 Msfconsole接口 4
  • [苹果开发者账号]04 申请苹果开发者账号 美国报税表

    申请苹果开发者账号时 当银行信息完成后 要填写美国报税表 填写时注意的地方 1 首先 选择报税表 使用默认的美国 2 填写美国报税表 中国的公司和中国人 全选否 3 填写详细的报税表 记录下红色箭头部分 选Corporation 公司 写报
  • python资料大全

    前言 Python是一种高级编程语言 已经成为了当今最受欢迎的编程语言之一 它被广泛用于Web开发 数据科学 人工智能 机器学习等领域 Python具有易学易用的特点 同时也具有强大的功能和灵活性 本篇博客将介绍Python的学习过程以及它
  • 多线程学习----join()的用法

    join的用法一 join 方法可以使得一个线程在另一个线程结束后再执行 如果join 方法在一个线程实例上调用 当前运行着的线程将阻塞直到这个线程实例完成了执行 首先来看个例子 author QingHe Creation on 2005
  • 修复office 2007或2010安装程序找不到Proplas.ww/Proplsww.cab

    此情况一般是我们删除了缓存MSOCache出现的 在安装office2007或10的盘下 默认是C盘 有一个隐藏文件MSOCache 在里面的All Users文件下创建 90120000 0011 0000 0000 0000000FF1
  • 二叉树的遍历C#实现,递归以及非递归

    前序遍历 输出规则 根节点 左子树 右子树 二叉树的前序遍历规则是从根节点开始 依层 逐层取 左子节点 若此节点没有 左子节点 说明此节点是叶子节点 往上 回溯 取 最小父节点的右节点 再重复 此步骤 取左子节点 直到 没有左子节点 也没有
  • 结构化方法与面向对象方法的比较

    结构化方法与面向对象方法的比较 一 结构化方法 结构化方法 Structured Methodology 采用了系统科学的思想方法 从层次的角度 自顶向下地分析和设计系统 结构化方法包括结构化分析 Structured Analysis 简