结构化开发方法vs面向对象开发方法

管理信息系统复习重点:从信息决策到开发方法的系统梳理 在数字化管理中,信息系统的核心价值在于将原始数据转化为支持决策的信息。理解“数据-信息-决策-知识”的层级关系,是掌握管理信息系统(MIS)的起点。从作业层的事务处理到管理层的报表汇总,再到决策层的决策支持系统(DSS),不同层次系统对应着不同的决策性质。开发方法论上,结构化生命周期、原型法与敏捷方法各有适用场景,而系统分析与设计中的数据流图(DFD)、ER图和用例图则是建模的关键工具。这些知识点共同构成了MIS复习的重点框架,帮助学习者在考试中快速辨析概念、掌握答题逻辑。 阅读详情

众所周知,在目前的软件开发领域存在两种比较主流的开发方法:结构化开发方法和面向对象开发方法。早期的C,Pascal和Basic等都是结构化的编程语言,而像C++,Java,C#和Ruby则属于面向对象的范畴。

1.结构化设计方法

所谓结构化程序设计方法主张把软件系统按功能(对应结构化程序中的最小单元函数)进行逐步的细分,因此也被称为面向功能的程序设计方法。这种设计方法的每个功能都负责都数据进行一次处理,即每个功能都接受一些输入数据,处理完后输出一些数据,这种处理数据的方式也被称为面向数据流的处理方式。


结构化设计采用自顶向下设计方法,在设计阶段需要考虑每个模块应该分解成哪些子模块,每个子模块又该分解成哪些更小的子子模块。。。以此内推,直到模块被细化为一个个函数。

这种结构化的设计方法显然是有局限性的:

    1.设计不够直观,与人类的思维方式不一致。因为开发者需要将客观世界的模型分解成一个个功能,每个功能用于完成一定的数据处理。

    2.适应性差,可扩展性不强。由于采用自顶向下的设计方法,当用户需求改变时,需要自顶向下的修改模块结构,维护的成本相当大。


程序的三种基本结构:顺序结构、选择结构和循环结构。


2.面向对象设计方法

面向对象程序设计方法的基本思想是使用类、对象、继承、封装和消息等概念进行程序设计。它从现实世界客观存在的事物(对象)出发来构造软件系统。强调尽可能用人类自然的思维方式思考问题,认识问题,从而将现实世界中的事物抽象成系统中的类,作为系统的基本构成单元。这样构建的系统能直接映射客观世界,更符合现实世界的本来面貌。


面向对象的基本哲学是世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通信构成了完整的现实世界。

从程序设计的角度看,面向对象的程序设计语言必须有描述对象及其相互之间的关系的语言成分。归纳起来即:系统中一切都是对象;对象是属性及其操作的封装体;对象可以按性质划分为类,对象是类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。


在面向对象的编程过程中,开发者要从自己的使用角度和认识角度出发来定义类,从而模拟客观世界的事物,并让自己明白这种事物是用来做什么的,对我们有什么意义。用抽象的方法忽略一个事物中与目标类无关的那些方面,充分地注意与当前目标有关的方面。

面向对象的设计方法的优点是:

1.与人类习惯的思维方式一致;

2.稳定性好

3.可重用性好

4.易于开发大型的软件产品

5.可维护性好

Hypermesh到Abaqus CEL网格转换全攻略:解决欧拉体导入难题 本文详细解析了Hypermesh到Abaqus CEL网格转换的全流程,重点解决欧拉体导入难题。通过单元类型转换、INP文件编辑和多组件合并技术,实现流固耦合仿真的高效前处理。文章包含实用脚本和工程案例,帮助工程师突破ABAQUS CEL分析中的网格转换瓶颈。 阅读详情

相关推荐

关于esp32蓝牙模块的使用——esp32学习笔记

关于esp32蓝牙模块的使用——esp32学习笔记 零、前言 esp32自带蓝牙模块可以让我们进行蓝牙连接并进行数据交换 一、经典蓝牙BT 首先来编写代码,经典蓝牙的使用非常简单,首先声明使用了BluetoothSerial这个库,然后使用SerialBT.begin函数设置蓝牙的名字,再然后就是设置配对码,由于这里没有用到配对码,所以我将注释掉。当配对成功我们就使用printf函数打印出蓝牙配对成功。 #include <Arduino.h> #include <BluetoothSer

qq_53965184的博客 5万+

【软件工程】面向对象开发全面总结

面向对象的含义、原则、方法

杰西笔记 1797

从无序到结构化:HAC框架如何用哈希网格重构3D高斯压缩范式 | ECCV2024技术解读

本文深入解读了ECCV 2024提出的HAC框架,它通过引入二值哈希网格为无序的3D高斯锚点建立空间结构,并利用上下文模型进行自适应量化,从而实现了对3D Gaussian Splatting模型的高效压缩。该方法将压缩范式从单纯削减数据转向智能理解数据关系,在保持高质量渲染的同时,显著提升了压缩率,为移动端部署和实时应用提供了新方案。

yolo5detector的博客 459

面向对象的开发方法(总结)

面向对象分为面向对象的分析(OOA),面向对象的设计(OOD)和面向对象的程序设计(OOP)。 OOA的是利用抽象构造问题的对象模型 OOD是设计对象和对象之间的关系,如层次和集成;对象之间的通信方式,例如消息。对OOA的结果进行细化,使其可以被OOP接收 OOP指对系统功能的编码面向对象是当前主流的开发方法,拥有很多不同的分支体系, 如OMT(对象建模技术),OOSE(面向对象的软件工程)

define_us的专栏 2万+

Confluence安装Drawio插件

记录confluence安装drawio插件步骤

devotedwife的博客 7377

微信4.1.5.16升级后,你的自动化脚本失灵了?手把手教你用C#让UI树“复活”

微信4.1.5.16版本更新导致自动化脚本失效?本文深入解析微信UI树隐藏的原因,并提供C#实战解决方案,通过UIAutomation技术恢复UI树结构,帮助开发者重新实现自动化操作。涵盖技术原理、代码实现及优化策略,适合RPA开发者和自动化脚本编写者参考。

weixin_30879169的博客 519

面向对象的开发方法

面向对象方法的基本出发点就是尽可能地按照人类认识世界的方法和思维方式来分析和解决 问题。面向对象的方法以对象作为最基本得元素,它是分析问题、解决问题的核心。计算机 实现的对象与真实世界具有一一对应的关系。

Code365 1919

假新闻检测论文分享(30)MMDFND: Multi-modal Multi-Domain Fake News Detection

现有的假新闻检测方法通常集中在单一领域的新闻上,如健康或政治。然而,社交媒体上的新闻往往来自多个领域,这给单一领域的假新闻检测方法带来了两个主要挑战:数据稀缺性:处理较小、单一领域的新闻数据集时,由于训练数据的稀缺,模型的有效性显著下降。跨领域检测的准确性下降:单一领域的假新闻检测方法在跨领域新闻数据集上的准确性大幅降低。缓解领域间模态语义偏差:通过DPLE网络提取跨领域和领域特定的知识,缓解了不同领域间文本和图像的语义差异。

weixin_41964296的博客 669

面向对象开发方法

系统架构师、软考、软考高级

犇叔的博客 3110

1个PID回路如何连接2个执行器(算法和代码)

我们先看下位置型PID的控制框图:2、PID是基于error的控制 所以反馈信号跳动、干扰非常大的话,对PID的闭环控制影响是非常大的,所以对于反馈信号、一定要抗干扰和滤波处理。3、下图是增量型PID的控制框图:4、一个PID输出回路如何连接2个执行器?(有些系统会设置热阀和冷阀才能满足控制要求)。

RXXW_Dor的博客 1810

基于扩散模型的图像去噪与修复:原理、实现与性能分析【附核心代码】

扩散模型(Diffusion Models)在图像修复、去噪、风格化、超分辨率等领域的应用,展示了其强大的生成能力和灵活性。通过模拟图像逐步加噪声再去噪的过程,扩散模型不仅能够恢复图像的细节,还能生成高质量的图像。本文详细探讨了扩散模型在图像修复和增强中的应用,并通过具体代码示例展示了如何使用扩散模型进行去噪、风格化、图像超分辨率等任务。扩散模型在图像修复中通过逐步去噪修复损坏的区域,在图像去噪中则能够去除图像中的噪声并保留细节;在图像风格化中,扩散模型通过结合目标风格和内容生成富有艺术性的图像;

一键难忘的博客 2929

Java面向过程/对象开发方式

对于小型项目(功能),采用面向过程的方式进行开发,效率较高,不需要前期进行对象的提取,模型的建立,采用面向过程方式可以直接开始干活,一上来直接写代码,编写因果关系,从而实现功能。 采用面向对象的方式进行开发,更符合人类的思维方式。人类就是以“对象“的方式去认识世界的。所以面向对象更容易然我们接受。

zip7986的博客 540

Python爬虫实战:抓取统计数据并生成年度对比图表详解

国家统计局网站(静态HTML页面Excel文件JSON接口(部分新版API)我们将重点演示从统计公报页面抓取数据,结合解析Excel文件,实现多种数据格式爬取处理。本文从零开始搭建了一个爬取国家统计数据并制作年度对比图表的完整流程。读者可以根据实际需求调整爬取目标,丰富数据分析维度,甚至结合机器学习模型预测未来趋势。欢迎你在评论区留言分享你的爬虫实践,或提出改进建议!

2201_76125261的博客 1000

结构化方法VS面向对象方法

  结构化方法和面向对象方法都是现在软件工程领域应用比较广泛的软件开发方法,要探讨两者的区别,必须先把两者的概念搞清。   首先对比一下两者的基本原则: 一、基本原则  1.结构化方法遵循的基本原则   结构化方法的基本思想就是将待解决的问题看作一个系统从而用系统科学的思想方法来分析和解决问题结构化方法遵循以下基本原则(1)抽象原则  抽象原则是一切系统科学方法都必须遵循的基本原...

Apathy2014的博客 1058

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Structure vs OO

子夜将至,窗外零星灯火,偶得一书,不忍释卷。时而皱眉,时而喃喃,时而怔怔,时而抿唇。或言之“得惊世之奇书乎?”余乃示书名,但见一考试指导之书也,庸庸之属何奇哉。乃其珍也在于发人之思,通一窍而醒其身尔。于是伏案疾书,既恨无潘江陆海之才,又恐见笑于大方之家。     actually,上面文绉绉的瞎扯不过是深夜无人解闷时的自我娱乐,看文之诸君(倘若有的话),尽可付之一笑。  ...

a398767057的博客 170

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【软件工程 一题典藏】面向对象 vs 结构化:一道选择题背后的架构生死局!零基础也能秒懂“设计稳定性”

亲爱的读者朋友们,希望通过这篇长文,你们不仅搞懂了这道题的答案,更对软件工程的两大流派有了深刻的理解。总结一下今天的收获答案锁定:面向对象相对于结构化方法的优点是设计稳定(A)。原理掌握:理解了变换分析、事务分析是结构化的工具,而封装、继承、多态是OOP的武器。实战感悟:通过代码对比,看到了“泥潭”与“花园”的区别。思维升级:从关注“怎么做”转变为关注“如何适应变化”。💡 最后的建议语言只是工具,架构才是灵魂。“如果明天需求变了,我需要改多少地方?“我的代码是否足够独立,能够抵御变化的冲击。

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 298

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【软工视频】软件开发方法与模型

总结软件开发方法与开发模型,分析它们之间的区别。。

Dwyane 1843

《Java面向对象编程》学习笔记1——面向对象开发方法

1.传统的面向过程的结构化开发方法 Vs 以对象为最小系统的面向对象的开发方法 2.对象模型: 1)自底向上的抽象:抽象三层次 把问题领域中的事物抽象为具有特定属性和行为的对象。 把具有相同属性和行为的对象抽象为类 若多个类之间存在一些共性(具有相同的属性和行为),把这些共性抽象到父类中。 注意在Java中抽象有两种意思: a.作为动词,指的是上述思维过程。 b.作为形容词,可...

xiaoer 112

【Java面向对象总结】详细!

语法:访问修饰符 返回值类型 方法名([参数列表]){//(1)驼峰命名规则(小骆驼)(2)有意义[return 返回值]注意:访问修饰符目前使用public公共的没用返回值时使用void,return 可以省咯方法名一般使用小骆驼命名当类有了带参构造方法之后,系统不再自动生成默认的无参构造方法,若使用需重新定义//构造方法一般都是public的,才能被系统调用。自定义构造方法> 方法名相同> 参数项不同> 与返回值、访问修饰符无关带参构造方法this关键字。

Ktugihv的博客 880

【Java】《Java疯狂讲义》自学笔记-第二章

两种主流的开发方法:结构化开发方法和面向对象开发方法。 C++,Java,C#,Ruby均是后者。面向对象的三种基本特征 : 继承,封装和多态。     封装:对对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能     继承:面向对象实现软件复用的重要手段,当子类继承父类,子类作为一种特殊的父类,将直接获得父类的属性和方法;     多态:子类对象可以直接

HHLab 449

【读书笔记】Java面向对象编程

初步: 1.传统的面向过程的结构化开发方法 Vs 以对象为最小系统的面向对象的开发方法 2.对象模型: 1)自底向上的抽象:抽象三层次 把问题领域中的事物抽象为具有特定属性和行为的对象。 把具有相同属性和行为的对象抽象为类 若多个类之间存在一些共性(具有相同的属性和行为),把这些共性抽象到父类中。 注意在Java中抽象有两种意思: a.作为...

weixin_34123613的博客 134

第一章 面向对象及软件建模概述

n1.软件与软件工程 n2.生存周期和开发模型的演变 n3.软件开发方法概述 n4.模型 n5.面向对象的软件建模 n6.统一建模语言UML 1 软件与软件工程   软件: 程序+文档+数据   特点:  (1)软件规模大。  (2)软件开发规范并趋于标准化。  (3)软件开发方法多,有大量的软件工具支持。  (4)注重软件开发的管理。  (5)软件维护相

yongchaocsdn的博客 7785

基于django的南京某高校校园外卖点餐系统

系统根据现在南京某高校校园外卖点餐现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对南京某高校校园外卖点餐的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的图表,在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”的思想,在南京某高校校园外卖点餐系统模块实现了个人中心、美食分类管理、用户管理、商家管理、美食信息管理、工作人员管理、安全检查管理、系统管理、订单管理等的功能性进行操作。最终,对基本系统开展了检测,包含系统功能测试、还对测试进行分析;

qq 79856539的博客 928

信息系统设计与分析(期末总复习!!!)(一)

《信息系统设计与分析》课程期末总复习

linmu__ykx的博客 2199
上一篇: 百度的"深度学习"之路
下一篇: 线程、进程和程序
hxwhou
博客等级 码龄16年 100粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值