当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]构件化软件的最主要特征[1]在于目标系统由大量可复用构件组成,从系统化构件复用过程来看,传统软件开发方法中的详细设计被划分到了构件制作阶段,与基于构件开发目标系统属于相对独立的不同阶段。构件化软件的设计是传统软件开发方法中的总体设计或高层设计,要求设计阶段就应设计出满足需求的软件体系结构。

自从构件技术提出以来,如何有效地划分构件、进行最大化的软件复用成为研究的热点。构件化软件的最主要特征[1]在于目标系统由大量可复用构件组成,从系统化构件复用过程来看,传统软件开发方法中的详细设计被划分到了构件制作阶段,与基于构件开发目标系统属于相对独立的不同阶段。构件化软件的设计是传统软件开发方法中的总体设计或高层设计,要求设计阶段就应设计出满足需求的软件体系结构。

1 面向构件的软件架构

软件架构[2]是指某个软件或计算机系统的软件架构,即组成该系统的一个或多个结构,构成软件的各个部分,形成该构件的外部可见属性及相互间的关系。基于构件的软件架构,更加强调构件的概念,架构时考虑两个方面:(1)与软件基础设施有关,(2)与构件在基础设施上的操作有关。基于这两方面的考虑,通常在架构时考虑技术架构和应用架构两个方面。

1.1技术架构

技术架构[3]定义了技术环境和软件基础设施,是支持组织以实现运作(非功能)需求(尤其是组织的应用程序和信息体系结构)的硬件和软件基础设施的体系结构。它描述了所使用的技术的结构和内部关系,以及这些技术如何支持组织的运作需求。

技术架构包括技术环境和技术基础设施两个部分。技术环境解决不同软硬件平台之间的差异性问题。技术基础设施包括在应用中可以被标准化的部分。标准化使得通用代码从面向业务的构件中移出,放到一个独立的可复用的软件基础设施中。软件基础设施可以通过预先构建的构件框架的方式提供,它处理构件行为中已经标准化的方面。

1.2 应用架构

应用架构[3]包括了构件开发者和组装者面临的架构问题。是自服务的体系结构,用于支持和实现这样的业务需求,包括该业务与其他应用程序之间的接口。它描述了应用程序的结构以及该结构如何实现组织的功能需求。图1所示为面向构件的软件构架模型[4]。


2 典型系统架构分析

 以一个门诊部信息管理系统为例,对基于构件技术的系统架构进行分析。

2.1 架构选型

根据需求分析过程中得到的用例模型,进行了如下选型过程[5]:

(1) 选择套装软件还是自行开发

先考虑了市场上套装软件的产品,希望借助成熟的产品加快实施进度,确保软件的质量和稳定性。但是通过考察,发现套装软件存在以下问题:

①从功能角度分析:市面上现有的系统虽然提供了丰富且强大的功能,但与本系统的需求交集只占了大约60%,此部分之外的需求需要花费很大的代价定制,而软件中约有50%的特性是本系统所不需要的。

②从实施周期角度分析:由于客户化的内容比较多,包括前期的需求映射和套装软件的模型调整,要完成实施,经过评估需要2年左右的时间,超出了用户的预期。

③从成本角度分析:套装软件相对比较昂贵,另外需要购买相应的咨询、实施服务,这样使得成本更大。

④从扩展性角度分析:套装软件集成了一套强大的模型,通过模型的配置,基本上可以满足业务上的变化,但是在条件不能满足的情况下,由于系统实现非常复杂,采用的技术手段包含了很多自由的标准,难于进行二次开发,不利于移植和维护。

基于以上的分析,选择了自行开发软件。

(2) 技术平台的选择

所谓“平台”就是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境。
技术平台是一套完整的、严密的服务于研制应用的软件产品及相关文件。真正的技术平台应该是选择合适的技术体系(如J2EE、.NET等),技术架构(一组设计模式如MVC的集合),充分发挥技术体系及技术架构的优势,能够大大提高应用软件开发速度,指导并规范应用软件分析、设计、编码、测试、部署各阶段工作,提炼用户真正需求,提高代码正确性、可读性、可维护性、可扩展性、伸缩性等软件工具。优秀的技术平台还包括一套高效的底层通用的代码,甚至还包括代码生成器、代码安全漏洞检查工具等。

2.2 三层软件架构

在总结基于构件的软件架构方法和进行架构选型分析后,在本系统中引入三层结构的设计思想,采用构件化的开发方法,将系统业务逻辑封装在应用服务器上,客户端应用程序自动从应用服务器上下载和更新业务逻辑,达到“应用逻辑与程序代码分离,数据与应用分离,应用与流程分离”,最大化地支持业务的灵活开展。图2所示为系统软件架构。

系统采用三层体系结构设计。所谓三层体系结构[6],即用户层、应用层和数据库服务器。用户层主要指用户界面,要求尽可能地简单,使最终用户不需要进行任何培训就能方便地访问信息;第二层是应用服务器,也就是常说的中间层,即组件层,所有的应用系统、应用逻辑、控制都在这一层,系统的复杂性也主要体现在应用层;最后的数据存储层中,数据库服务器存储大量的数据信息和数据逻辑,所有与数据有关的安全、完整性控制、数据的一致性、并发操作等都是在第三层完成。

在系统中,用户层采用Delphi7编制,为最终用户提供操作界面。用户在操作界面上可以输入信息,显示查询结果。具有操作简单,信息显示方式多样等特点。

业务逻辑层也采用Delphi7编制。这一层是整个系统的关键,系统每个功能的具体实现算法,各服务构件均在本层实现。

数据库服务器为Windows2003 Server+SQL Server2000模式。在数据库服务器上通过大量使用视图、触发器和存储过程实现数据的完整性控制、数据的一致性和并发操作。

采用三层体系结构设计可以有效降低开发和维护成本,简化管理,可适应不断变化的业务需求,有效提高系统安全性。这样的好处显而易见:

(1)由于数据访问是通过中间层进行的,因此客户端不再与数据库直接建立数据连接。即建立在数据库服务器上的连接数量将大大减少;

(2)可维护性得以提高。因为业务规则、合法性校验存在于中间层,因此当业务规则发生改变时,只需更改中间层服务器上的某个组件(如某个DLL文件),而客户端应用程序不需做任何处理,有些时候,甚至不必修改中间层组件,只需要修改数据库中的某个存储过程就可以了;

(3)良好的可重用性;

(4)事务处理更加灵活,可以在数据库端、组件层、MTS(或COM+)管理器中进行事务处理。
本文以一个门诊部信息管理系统软件架构为例,分析研究了基于构件技术的系统软件架构,为下一步系统设计与实现提供了重要依据。与传统软件开发方法按照设计进行编程以实现目标系统不同,构件化软件的基本功能单元已经以可复用构件的方式实现,所以按照设计好的软件架构来复用构件,如何尽可能充分、正确、有效地复用软件框架,成为了下一步构件化软件实现的主要工作之一。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭