面向对象分析与设计(一、二)

一、复杂性

1.2.2 为什么软件在本质上是复杂的

1.问题域的复杂性
2.管理开发过程的困难性
3.软件中随处可能出现的灵活性
4.描述离散系统行为的问题

1.3 复杂系统的5个属性

1.层次结构
	复杂性常常以层次结构的形式存在。复杂的系统由一些相关的子系统组成,这些子系统又有自己的系统,如此下去,直到达到某种最低层次的基本组件。
	复杂系统的架构是它所有的组件以及这些组件之间的层次结构的函数。
2.相对本原
	选择哪些作为系统的基础组件相对来说比较随意,这在很大程度上取决于系统观察者的判断。
	对于一个观察者来说很基础的东西,对另外一个观察者可能具有很高的抽象层次。
3.分离关注
 	组件内的联系通常比组件间的联系更强。这一事实实际上将组件中高频率的动作(涉及组件的内部结构)和低频率的动作(涉及组件间的相互作用)分离开来。
 	组件内部作用和组件间作用的差异让我们在系统的不同部分之间实现“分离关注”,让我们能够以相对隔离的方式来研究每个部分。
4.共同模式
	层次结构通常只是由少数不同类型的子系统按照不同的组合和安排方式构成的。
	复杂系统具有共同的模式。这些模式可能涉及小组件的复用。
5.稳定的中间模式
	复杂系统毫无例外都从能工作的简单系统演变而来的,从头设计的复杂系统根本不能工作,也不能通过打补丁的方式使其工作。必须从头开始,从能工作的简单系统开始。
	随着系统的演变,曾经被认为是复杂的对象就变成了基础对象,在这些的基础上构建更复杂的系统。

1.4有组织和无组织的复杂性

基本上所有的复杂系统都具有相同的规范的形式。我们将系统的类结构和对象结构统称为它的“架构”
没有一种特定的架构可能被真正认为是“正确的”。这也是使得系统架构具有挑战性的原因——在可能的许多种系统组件结构中、复杂系统的5种属性中以及系统用于的需求中寻找平衡。
经验表明:最成功的复杂软件系统就是在设计中包含了深思熟虑的类结构和对象结构,并具备了前一节所描述的复杂系统的5中属性。

1.5从混沌到有序

1、分解的作用
	面向对象分解极大地降低了构建复杂软件系统的风险,因为它们的思路是从我们有信心的、较小的系统开始增量式地演进。而且通过帮助我们明智地决定对巨大的状态空间进行分离关注,面向对象分解直接关注了软件的内在复杂性。
2、抽象的作用
	不能够全面掌握一个复杂的对象,我们就选择忽略它的非本质的细节,转而处理这个对象的一般化的、理想化的模型。
	我们仍然受到同时可以理解的事物数量的限制,但是通过抽象,我们利用了信息的分块和不断增大的语义内容。当我们采用面向对象的观点来看世界时,尤其是这样,因为对象作为真实世界中实体的抽象,代表了特定的一块密集而内聚的信息。
3、层次结构的作用
另一种增加单块信息的语义内容的方法,是在复杂的软件系统中显式地组织类和对象层次结构。
对象结构很重要,因为它展示了不同的对象之间如何通过一些交互模式进行协作,我们把这些交互模式称为“机制”
类结构也同样重要,因为它强调了系统中的公共结构行为。

1.6 复杂系统的设计

程序设计任务是应用抽象的大规模练习。

二、对象模型

2.2面向对象基础

OOP:面向对象编程是一种实现的方法,在这种方法中,程序被组织成许多组相互协作的对象,每个对象代表某个类的一个实例,而类则属于一个通过继承关系形成的层次结构。
OOD:面向对象设计是一种设计方法,包括面向对象分解的过程和一种表示法,这种表示法用于展现被设计系统的逻辑模型和物理模型、静态模型和动态模型。
OOA:面向对象分析是一种分析方法,这种方法利用从问题域的词汇表中找到类和对象来分析需求。

2.3对象模型要素

主要要素:
1.抽象
	对一个系统的一种简单的描述或指称,强调系统的某些细节或属性同时抑制另一些细节或属性。
	抽象描述了一个对象的基本特征,可以将这个对象和所有其他类型的对象区分开来,因此提供了清晰定义的概念边界,它与观察者的视角有关。
	对于给定的问题域决定一组正确的抽象,就是面向对象设计的核心问题。
	从那些准确地为问题域实体建模的对象到那些实际上没有什么理由存在的对象,存在一系列的抽象,按最有用到最没有用次序排列:实体抽象、动作抽象、虚拟机抽象、偶然抽象
2.封装
	封装是一个过程,它分隔构成抽象的结构和行为的元素。封装的作用是分离抽象的概念接口及其实现。
	抽象和封装是互补的概念:抽象关注对象的可以观察到的行为,而封装关注这种行为的实现。
	抽象“帮助人们思考他们做什么”,而封装“让程序可以借助最少的工作进行可靠地修改”。
3.模块化
	模块化是一个系统的属性,这个系统被分解为一组高内聚、低耦合的模块。
	分割程序的更大理由是它在程序内部创造了一些良好的、有文档描述的边界。这些边界或者叫做接口,对于理解程序是非常有价值的。
4.层次结构
	层次结构是抽象的一种分级或排序。二种层次结构:类结构(“是一种”层次结构)和对象结构(“组成部分”层次结构)。
	
次要要素:
1、类型
2、并发
3、持久
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动控制节水灌溉技术的高低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国高效农业发展的主要原因。本文就此问题研究了单片机控制的滴灌节水灌溉系统,该系统可对不同土壤的湿度进行监控,并按照作物对土壤湿度的要求进行适时、适量灌水,其核心是单片机和PC机构成的控制部分,主要对土壤湿度与灌水量之间的关系、灌溉控制技术及设备系统的硬件、软件编程各个部分进行了深入的研究。 单片机控制部分采用上下位机的形式。下位机硬件部分选用AT89C51单片机为核心,主要由土壤湿度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。上位机选用586型以上PC机,通过MAX232芯片实现同下位机的电平转换功能,上下位机之间通过串行通信方式进行数据的双向传输,软件选用VB高级编程语言以建立友好的人机界面。系统主要具有以下功能:可在PC机提供的人机对话界面上设置作物要求的土壤湿度相关参数;单片机可将土壤湿度传感器检测到的土壤湿度模拟量转换成数字量,显示于LED显示器上,同时单片机可采用串行通信方式将此湿度值传输到PC机上;PC机通过其内设程序计算出所需的灌水量和灌水时间,且显示于界面上,并将有关的灌水信息反馈给单片机,若需灌水,则单片机系统启动鸣音报警,发出灌水信号,并经放大驱动设备,开启电磁阀进行倒计时定时灌水,若不需灌水,即PC机上显示的灌水量和灌水时间均为0,系统不进行灌水。
智慧农业是一种结合了现代信息技术,包括物联网、大数据、云计算等,对农业生产过程进行智能化管理和监控的新模式。它通过各种传感器和设备采集农业生产中的关键数据,如大气、土壤和水质参数,以及生物生长状态等,实现远程诊断和精准调控。智慧农业的核心价值在于提高农业生产效率,保障食品安全,实现资源的可持续利用,并为农业产业的转型升级提供支持。 智慧农业的实现依赖于多个子系统,包括但不限于设施蔬菜精细化种植管理系统、农业技术资料库、数据采集系统、防伪防串货系统、食品安全与质量追溯系统、应急追溯系统、灾情疫情防控系统、农业工作管理系统、远程诊断系统、监控中心、环境监测系统、智能环境控制系统等。这些系统共同构成了一个综合的信息管理和服务平台,使得农业生产者能够基于数据做出更加科学的决策。 数据采集是智慧农业的基础。通过手工录入、传感器自动采集、移动端录入、条码/RFID扫描录入、拍照录入以及GPS和遥感技术等多种方式,智慧农业系统能够全面收集农业生产过程中的各种数据。这些数据不仅包括环境参数,还涵盖了生长状态、加工保存、检验检疫等环节,为农业生产提供了全面的数据支持。 智慧农业的应用前景广阔,它不仅能够提升农业生产的管理水平,还能够通过各种应用系统,如库房管理、无公害监控、物资管理、成本控制等,为农业生产者提供全面的服务。此外,智慧农业还能够支持政府监管,通过发病报告、投入品报告、死亡报告等,加强农业产品的安全管理和质量控制。 面对智慧农业的建设和发展,存在一些挑战,如投资成本高、生产过程标准化难度大、数据采集和监测的技术难题等。为了克服这些挑战,需要政府、企业和相关机构的共同努力,通过政策支持、技术创新和教育培训等手段,推动智慧农业的健康发展。智慧农业的建设需要明确建设目的,选择合适的系统模块,并制定合理的设备布署方案,以实现农业生产的智能化、精准化和高效化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值