需求驱动的软件体系结构设计

合集下载

软件体系结构与软件架构

软件体系结构与软件架构

软件体系结构与软件架构作为一名软件工程师,无论是在学术界还是工业界,软件体系结构和软件架构都是我们必须要熟悉并掌握的重要知识点。

不仅如此,软件体系结构和软件架构还被视为软件开发生命周期中最关键的决策点。

本文将从什么是软件体系结构和软件架构、软件体系结构和软件架构之间的关系、软件架构对软件开发生命周期的影响以及当前流行的软件架构模式等多方面对软件体系结构和软件架构进行详细探讨。

一、什么是软件体系结构和软件架构软件体系结构和软件架构是软件开发过程中最重要的两个概念,它们建立了软件设计的基础,可以理解为软件的设计蓝图。

软件体系结构是指软件系统中组件、模块、接口和它们之间的关系,而软件架构则是指软件系统的高层结构和组成方式,即系统在结构上的解决方案。

可以看出,软件体系结构和软件架构是密不可分的概念,一个好的软件架构必须基于一个合理的软件体系结构,二者相互影响、相互依存。

二、软件体系结构和软件架构之间的关系软件体系结构和软件架构之间的关系是紧密相连的。

软件架构是由软件体系结构派生而来的,软件架构决定了软件体系结构的多个方面,例如组件、模块、接口和应用程序的架构模式等。

在软件开发过程中,软件架构起到了至关重要的作用。

它决定了软件系统的性能、可维护性、可重用性、可扩展性等方面,因此,软件架构的设计应该尽早开始,这也是我们说软件架构是软件开发过程中的决策点的原因。

三、软件架构对软件开发生命周期的影响软件架构不仅仅是为软件系统提供了一个高层次的结构,它还影响到了整个软件开发生命周期,从需求分析和设计到实现和维护都有重要的作用。

首先,软件架构有助于对需求进行分析和界定。

在软件开发过程中,软件架构定义了软件系统的范围和需求。

因此,软件架构可以帮助我们定义功能需求,以及在交付的软件系统中哪些功能将被包括。

其次,软件架构为系统设计提供了一个框架。

设计应当被视为软件架构上的一个节点,它是在软件开发的初期阶段最重要的部分。

软件架构指定了系统的大部分建设策略和规则,因此,它对系统的设计产生了深远的影响。

如何进行软件架构设计和开发

如何进行软件架构设计和开发

如何进行软件架构设计和开发软件架构设计和开发是构建高质量软件系统的关键步骤。

一个好的软件架构可以帮助我们理清系统的结构和组织,使得软件系统具有可扩展性、可维护性和可重用性。

下面,我将详细介绍软件架构设计和开发的步骤。

1. 需求分析首先,我们需要明确软件系统的需求和目标。

这包括功能需求、非功能需求和约束条件等。

通过与用户和相关利益相关者的沟通,我们可以全面了解软件系统的需求,以便在后续的架构设计和开发过程中进行指导。

2. 架构设计在需求分析的基础上,我们可以开始进行架构设计。

架构设计是指确定系统的整体结构和组织,包括软件组件之间的关系、模块化和层次结构等。

以下是一些常用的架构设计模式:a) 分层架构:将软件系统划分为多个层,每个层负责不同的功能b) 客户端-服务器架构:将软件系统划分为客户端和服务器端,实现分布式处理c) 事件驱动架构:通过事件和消息进行组件之间的通信和协同d) 微服务架构:将软件系统拆分为多个独立的服务,每个服务处理一个小的业务功能3. 选择合适的编程语言和技术在进行软件架构设计和开发之前,我们需要选择适合的编程语言和技术。

编程语言和技术的选择应该根据系统的需求和目标、开发团队的经验和技能来确定。

一些常用的编程语言和技术包括Java、Python、.NET、Spring Framework、Node.js等。

4. 模块化开发在进行架构设计和开发之前,我们还需要将软件系统划分为多个模块进行开发。

每个模块负责处理一个小的功能或任务。

模块化开发可以提高开发效率,减少代码的重复和冗余。

5. 设计模式的应用在开发过程中,我们还应该考虑使用一些常用的设计模式来解决特定的问题。

设计模式是一种常见的解决方案,可以帮助我们实现可重用、可扩展和可维护的代码。

6. 进行代码实现和调试在进行代码实现之前,我们应该先进行详细的设计和规划。

这包括开发任务的分解、接口和数据结构的定义等。

在实现代码的过程中,我们需要遵循编码规范和最佳实践,确保代码的可读性和可维护性。

软件架构——精选推荐

软件架构——精选推荐

软件架构软件架构(体系结构)概述软件架构设计,主要关注软件构件的结构,属性和交互作⽤,并通过多种视图全⾯描述特定系统的架构。

架构设计⽣命周期需求分析,根据需求模型构建软件架构模型,模型转换的可追踪性设计阶段,组成元素,体系结构描述语⾔ADL,4+1视图实现阶段,项⽬组织结构,配置管理,中间件,程序设计语⾔,逐步细化构件组装阶段部署阶段后开发阶段,4+1视图5个不同的视⾓,包括逻辑视图,进程视图,物理视图,开发视图,场景视图来描述软件架构。

开发视图和场景视图来描述软件架构。

1、逻辑视图,最终⽤户:功能需求。

在逻辑视图中,系统分解成⼀系列功能抽象,这些抽象主要来⾃问题领域。

这种分解不但可以⽤来进⾏功能分析,⽽且可以⽤做标识在整个系统的各个不同部分的通⽤机制和设计元素。

在⾯向对象技术中,通过抽象,封装,继承,可以⽤对象模型来代表逻辑视图。

逻辑视图通常包括类图,对象图,状态图和协作图。

是描述系统各部分的抽象描述。

2、开发视图:编程⼈员:软件管理,也叫做模块视图,主要侧重软件模块的组织和管理。

开发要考虑软件内容的需求,如软件开发的容易些,软件的重⽤,和软件的通⽤性。

要充分考虑由于具体开发⼯具不同带来的局限性。

开发视图⽤系统输⼊输出关系的模型图和⼦系统图来描述,可以在确定了软件包含所有元素之后描述完整的开发⾓度,也可以正确的每个元素前列出开发视图原则。

该视图包含包图和组件图。

3、进程视图:也叫做过程视图,主要描述系统中的进程,系统集成⼈员:性能,可扩充性,吞吐量,侧重于系统的运⾏特性,主要关注⼀些⾮功能性的需求,例如系统的性能和可⽤性,进程视图强调并发性,发布性,系统集成性和容错能⼒,以及逻辑视图中的主要抽象的进程结构,他也定义逻辑视图中各个类的操作具体在哪个现场中执⾏.该视图通常包括活动图4、物理视图:系统⼯程⼈员:系统拓扑,按照,通信等, 主要考虑如何把软件映射到硬件上,通常要考虑到节级系统拓扑结构,系统安装,通信等问题。

软件体系结构

软件体系结构

软件体系结构在软件开发过程中,软件体系结构是一个至关重要的概念。

软件体系结构是指软件系统中的各个组件、模块和它们之间的关系。

一个优秀的软件体系结构可以提高软件系统的可维护性、可扩展性和可重用性,同时也有利于降低开发成本和提高软件质量。

软件体系结构的定义软件体系结构是指软件系统中各个部分相互之间的组织方式。

它包括软件系统中的组件、组件之间的关系,以及这些组件和关系在整体上所形成的结构。

软件体系结构描述了软件系统的整体结构,以及各个组件之间的相互作用。

软件体系结构的重要性软件体系结构在软件开发过程中起着至关重要的作用。

一个良好的软件体系结构可以帮助开发人员更好地理解软件系统的结构和设计,从而更容易进行软件开发、测试、部署和维护。

此外,良好的软件体系结构还可以提高软件系统的性能、可靠性和安全性,降低软件开发和维护的成本。

软件体系结构的组成一个软件系统的体系结构通常由以下几个组成部分组成:1.组件(Components):软件系统中的各个部分。

2.接口(Interfaces):组件之间进行通信和交互的方式。

3.关系(Relationships):描述组件之间的依赖关系,如依赖、引用、调用等。

4.约束(Constraints):对组件之间交互的限制条件。

5.配置(Configurations):软件系统中各个组件的布局和部署方式。

软件体系结构的类型软件体系结构可以分为多种类型,常见的软件体系结构包括:•分层体系结构:软件系统按层次结构组织,每一层负责不同的功能。

•客户端-服务器体系结构:软件系统分为客户端和服务器,客户端负责用户界面,服务器负责处理业务逻辑。

•面向服务的体系结构:软件系统以服务为中心,各个组件之间通过服务进行通信和交互。

•事件驱动体系结构:软件系统通过事件进行通信和控制。

•管道和过滤器体系结构:软件系统通过一系列过滤器进行数据处理。

软件体系结构的设计原则在设计软件体系结构时,需要遵循一些设计原则,以确保软件系统的质量和可维护性:1.模块化:将软件系统划分为多个独立的模块,每个模块负责一个特定的功能。

软件体系结构

软件体系结构

软件体系结构软件体系结构是指软件系统中各个组件之间的关系和结构的抽象描述。

它是构建软件系统的基础,对软件系统的设计和开发起着重要的指导作用。

本文将从软件体系结构的定义、目标和应用领域等方面对其进行详细的介绍。

一、软件体系结构的定义软件体系结构是指软件系统中各个组件之间的关系和结构的抽象描述,它包括软件系统的静态结构和动态行为。

静态结构是指软件系统中组件的组织方式和相互之间的关系,动态行为是指软件系统中组件的交互方式和相互之间的通信方式。

二、软件体系结构的目标软件体系结构的目标是实现软件系统的可重用性、可维护性、可扩展性和可伸缩性。

可重用性是指软件系统中的组件能够被多次使用,可维护性是指软件系统中的组件能够被轻松地修改和维护,可扩展性是指软件系统能够根据需求进行功能的扩展,可伸缩性是指软件系统能够根据需求进行性能的扩展。

三、软件体系结构的应用领域软件体系结构广泛应用于各个领域的软件系统开发,特别是大型跨平台和分布式系统的开发。

在金融领域,软件体系结构被应用于交易系统和风险管理系统的开发;在电子商务领域,软件体系结构被应用于在线购物系统和支付系统的开发;在物流领域,软件体系结构被应用于供应链管理系统和运输管理系统的开发。

四、软件体系结构的基本原则软件体系结构的设计应遵循以下基本原则:1. 模块化:将软件系统分为独立的模块,每个模块只负责特定的功能,通过接口进行通信和交互。

2. 松耦合:各个模块之间的依赖应尽量降低,避免模块之间的紧密耦合,以提高系统的灵活性和可维护性。

3. 高内聚:模块内部的各个元素之间应紧密关联,功能相关的元素应放在同一个模块中,以提高系统的内聚性。

4. 分层:将软件系统分为多个层次,每个层次负责不同的功能,上层层次通过接口调用下层层次的功能。

5. 可伸缩性:系统的设计应考虑未来的扩展需求,能够根据需求进行功能和性能的扩展。

六、软件体系结构的设计方法软件体系结构的设计方法有很多种,常用的有面向对象的体系结构设计方法、服务导向的体系结构设计方法和领域驱动设计方法。

《软件体系结构实用教程》课件第1章

《软件体系结构实用教程》课件第1章
·装配的构件。装配的构件在安装前已经装配在操作系统、 数据库管理系统或信息系统不同层次上,使用胶水代码就可 以进行连接使用。目前一些软件商提供的大多数软件产品都 属于这一类。
·可修改的构件。可修改的构件可以进行版本替换。如果 对原构件修改错误、增加新功能,可以利用重新“包装”或 写接口来实现构件的替换。这种构件在应用系统开发中使用 的比较多。
13
第1章 软件重用与构件技术
图1-1 重用驱动的软件开发过程
14
第1章 软件重用与构件技术
应用者重用关心利用可重用构件来建立新系统,它包括 以下几个步骤:
(1) 寻找候选的可重用的构件,由它们来产生软件生命周 期每一阶段的交付。
(2) 对候选构件进行评价,选择那些适合于在本系统内重 用的构件。
10
第1章 软件重用与构件技术
1.1.3 重用驱动的软件过程 1.软件重用失败的原因 尽管软件产业从本质上是支持重用的,但到目前为止,
很少有成功实施重用的公司。主要原因有以下几点: (1) 缺乏对为什么要实施重用的了解。 (2) 认为重用没有创造性。 (3) 管理者没有对重用承担长期的责任和提供相应的支持。 (4) 没有支持重用的方法学。
(4) 根据构件重用时的形态,分为动态构件和静态构件。 动态构件是运行时可动态嵌入、链接的构件,如对象链接和 嵌入、动态链接库等;静态构件如源代码构件、系统分析构 件、设计构件和文档构件等。
23
第1章 软件重用与构件技术
(5) 根据构件的外部形态,将构成一个系统的构件分为以 下5类:
·独立而成熟的构件。独立而成熟的构件得到了实际运行 环境的多次检验,该类构件隐藏了所有接口,用户只需用规 定好的命令使用即可,例如数据库管理系统和操作系统等。

软件体系结构风格

软件体系结构风格

软件体系结构风格软件体系结构风格是指在软件系统的设计中,通过一系列的模式、原则和规范来组织和管理系统的各个组成部分之间的关系和交互方式。

不同的体系结构风格可以根据不同的需求和目标来选择和应用,从而达到更好的系统可扩展性、可重用性和可维护性。

下面将介绍几种常见的软件体系结构风格。

分层体系结构是将软件系统划分为几个相互独立的层次,每个层次都靠近系统的用户界面。

每个层次都依赖于较低层次,并提供给更高层次的功能。

这种风格可以实现系统的可复用性和可重用性,使得不同层次的变更不会影响到其他层次的结构和功能。

客户端-服务器体系结构是将软件系统划分为两个主要部分:客户端和服务器。

客户端负责与用户交互和显示信息,而服务器负责处理业务逻辑和数据存储。

这种风格可以实现系统的分布式处理,提高系统的性能和可伸缩性。

面向对象体系结构是将软件系统划分为一组相互协作的对象,并通过消息传递来进行通信和交互。

每个对象都具有自己的状态和行为,并通过继承和组合来扩展和重用现有的对象。

这种风格可以实现系统的可维护性和可拓展性,提高系统的复杂性和可重用性。

事件驱动体系结构是基于事件和事件处理的软件设计方法。

系统中的各个组成部分都可以作为事件的发布者或订阅者,通过触发事件和处理事件来实现系统的功能和交互。

这种风格可以实现系统的松散耦合和可扩展性,提高系统的灵活性和响应性。

数据驱动体系结构是基于数据流和数据处理的软件设计方法。

系统中的各个组成部分都可以作为数据的生产者或消费者,通过传递数据和处理数据来实现系统的功能和交互。

这种风格可以实现系统的高效率和低耦合,提高系统的可重用性和可维护性。

总结起来,软件体系结构风格是指在软件系统的设计中,根据不同的需求和目标选择和应用一系列的模式、原则和规范来组织和管理系统的各个组成部分之间的关系和交互方式。

通过选择适合的风格,可以提高系统的可扩展性、可重用性和可维护性,从而更好地满足用户的需求。

软件设计与体系结构知识点

软件设计与体系结构知识点

软件设计与体系结构知识点软件设计与体系结构是软件开发过程中非常重要的两个环节。

设计是指通过分析需求,确定软件系统所需的各个组成部分及其相互关系,以及确定各个组成部分的详细设计方案的过程。

体系结构是指软件系统的整体架构,包括各个组件之间的关系,以及软件系统与外部环境的交互方式。

软件设计的主要知识点包括:1.需求分析:分析用户需求,明确软件系统的功能、性能、可靠性等方面的要求。

2.设计原则:包括开放封闭原则、单一职责原则、里氏替换原则、接口分离原则等。

3.设计模式:是一套被反复使用的、经过验证的、用来解决在软件设计过程中常见问题的解决方案。

常见的设计模式有工厂模式、单例模式、观察者模式、策略模式等。

4.UML(统一建模语言):是一种用于软件系统建模的标准化语言。

包括用例图、类图、时序图、状态图等。

5.架构模式:是一种包含一组满足特定需求的技术决策,指导解决软件系统中基本设计问题的模式。

常见的架构模式有分层架构、客户端-服务器架构、发布-订阅架构等。

软件体系结构的主要知识点包括:1.分层架构:将软件系统分为若干层,每一层负责处理特定的功能或任务,层与层之间通过接口进行通信。

2.客户端-服务器架构:将软件系统分为客户端和服务器两部分,客户端向用户提供界面和交互功能,服务器处理客户端发送的请求并返回相应结果。

3.分布式架构:将软件系统的各个组件分布在不同的物理节点上,通过网络进行通信。

4.微服务架构:将软件系统拆分为若干个小型服务,每个服务负责一个特定的功能,通过接口和消息进行通信。

5.事件驱动架构:系统中的各个组件通过发布-订阅模式进行通信,一个组件发生变化时通知其他相关组件。

在实际应用中,软件设计与体系结构的知识点通常会结合起来使用,以满足软件系统的需求。

同时,不同的项目可能有不同的设计与体系结构要求,开发人员需要根据具体项目的需求来选择适合的设计和架构模式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第25卷第3期合肥工业大学学报(自然科学版)V o l.25N o.3 2002年6月JOU RNAL O F H EFE I U N I V ER S IT Y O F T ECHNOLO GY Jun.2002需求驱动的软件体系结构设计琚川徽, 程 勇, 袁兆山(合肥工业大学计算机与信息学院,安徽合肥 230009)摘 要:利用目标逻辑机制组织软件需求,在需求驱动下,只考虑体系结构设计方案是否满足相应目标,然后使用场景评价体系结构设计方案。

研究表明,这种设计思想扩大了软件体系结构的选择空间和抽象层次,有助于提高软件系统设计质量、可靠性及适应环境变化的能力。

关键词:框架;场景;需求驱动软件体系;结构设计中图分类号:T P311.5 文献标识码:A 文章编号:100325060(2002)0320350205Arch itecture design of requ irem en t-dr iven sof tware systemJU Chuan2hu i, CH EN G Yong, YU AN Zhao2shan(Schoo l of Computer Science and Info rm ati on Engineering,H efei U niversity of T echno logy,H efei230009,Ch ina)Abstract:In th is p ap er,the softw are requ irem en ts are o rgan ized by the logic m echan is m of goals,and the atten ti on in the arch itectu re design of the requ irem en t2driven softw are system is focu sed on w hether the co rresponding goal is satisfied,and certain scenari o can be u sed to evaluate the concrete arch itectu ral design alternative.It is found that w ith th is idea,alternative sp ace of softw are arch itec2 tu re is en larged and the ab stract level is enhanced,w h ich con tribu tes to the i m p rovem en t of design quality,system reliab ility and the ab ility of the system to adap t to diverse environm en ts.Key words:fram ew o rk;scenari o;requ irem en t2driven softw are system;arch itectu re design0 引 言随着电子商务、企业资源规划和移动计算等新的应用领域的出现,逐步改变人们对软件及软件系统的认识,即软件系统必须基于开放的体系结构,并要求能适应新需求的演变,因此,对软件系统健壮性、友好性、可移植性及适应环境变化的能力提出了更高的要求,促使人们改进传统的需求建模技术和软件设计方法,特别是软件体系结构设计方法。

软件体系结构是软件需求、业务技术流程和社会环境因素的整体高层规划,在体系结构设计过程 收稿日期:2001210222基金项目:国家重点实验室开放课题基金资助项目(011601B2)作者简介:琚川徽(1971-),女,浙江江山人,硕士生,安徽大学讲师;袁兆山(1945-),男,山东苍山人,合肥工业大学教授,硕士生导师.中,反映用户需求并根据需求指导软件体系结构设计选择是一个相互作用的过程。

本文利用目标逻辑机制组织软件需求,在需求驱动下,只考虑设计方案是否满足相应目标,然后使用场景评价设计方案,如不能满足目标可以重新考虑目标模型所确定的设计空间中的其它方案。

1 目标、场景模型及表示1.1 建模目标当前,软件系统仅建模了需求的静态和动态本体,即软件做什么和如何去做,这样的系统缺乏灵活性,不能很好地适应技术和组织频繁变化的环境,根本原因是没有建模需求的意愿本体,没有考虑系统为什么要这样建造的问题。

建模用户需求的底层原因及关系是成功开发软件系统的关键,因此,需求工程处理的不仅仅是技术知识,还包括组织、管理、经济和社会问题,需求规约说明不仅仅包括软件规约,还要包括软件系统的外围环境和其它各种信息。

i 3框架[1]提供了行为者概念,行为者可以是主体、职位和角色。

主体是一个具有物理表现的行为者,如一个具体的人,角色是在特定的环境和领域中,社会行为者的一种抽象行为特征,职位处于角色和主体之间,它是一个主体所能充当的角色的集合,职位包括多个角色,而主体只能占据职位,同时主体也能直接担当角色。

i 3框架还建模了行为者之间的社会依赖关系,如目标依赖、软目标依赖、任务依赖及资源依赖等。

目标依赖中,依赖者依赖被依赖者产生某些状态,但不限制被依赖者如何去做,由被依赖者自由选择。

任务依赖中,依赖者依赖被依赖者执行某些活动,任务依赖说明任务如何执行,而不是为什么要执行它。

资源依赖中,一个行为者依赖某个行为者获得某种实体,依赖者能使用某种资源。

软目标依赖中,依赖者依赖被依赖者执行某些任务满足某一软目标,软目标的意义由目标执行过程中所选方法说明,这些概念不仅可以建模需求的前期阶段和后期阶段,而且可用于体系结构设计。

i 3框架中包括策略依赖模型(SDM )和策略原理模型(SRM ),前者描述行为者之间的策略依赖关系,后者通过分析行为者之间的关系支持推理。

策略依赖关系是一个图,它的每个节点表示一个行为者,行为者是一个主动实体,行为者之间的链表示一个行为者为达到其目标而依赖另一个行为者。

策略原理(SR )模型是一个更细化的模型层次,通过分析行为者内部关系对内部意愿关系进行建模,在SR 模型中的意愿元素(目标、任务、资源及软目标)不仅是外部依赖元素,也是内部依赖元素,这些元素根据手段、结果及任务分解关系组成一种层次结构。

1.2 场景模型由于场景可以精确地刻画系统行为,相比形式化方法又显得更为直观,另外,场景概念还极大地方便系统开发者和用户之间的交流协商、文档编写及需求通信等,所以场景概念在软件工程中正得到越来越广泛的应用[2]。

多数学者认为,场景是用户或外部系统对某一特定系统使用情况的部分描述,但是,不同人对场景概念的外延理解和解释可能有较大差异,这依赖于所使用的语义和表示法。

图1 场景4个视图本文从广义上理解场景概念,认为场景不仅帮助描述和揭示系统功能需求,而且可产生规约说明、驱动设计和评价软件体系结构。

从场景的目的、内容、生命周期和形式4个不同的视图理解场景模型[3],如图1所示。

目的是指场景在软件开发过程中所起的作用,如利用场景描述系统功能,考察不同的设计方案或解释系统的缺点与不足等。

内容是指场景表达的知识。

生命周期是指场景的操作过程,如场景管理、场景演化及153第3期 琚川徽,等:需求驱动的软件体系结构设计其它处理问题。

形式是指场景的表达形式,是形式化还是非形式化,是静态、动态还是交互式的表示。

1.3 场景表示形式场景表示方法有多种形式,如u se case 、U se Case M ap s 、UM L 活动图、消息序列图(M SC )、Ch isel 图和Scenari o T rees 等。

本文简单介绍2种场景表示形式,即u se case 和U se Case M ap s ,前者在UM L 中用于获取用户需求,使用非常广泛,后者抽象层次较高,更适合于体系结构的描述。

文献[4]首先提出u se case ,它是对一个执行者使用系统的一项功能时所进行交互过程的一个文字描述序列。

UM L 用例图(u se case diagram s )提供了使用和扩展关系,将常规动作放在基本u se case 中,而将非常规动作放在它的扩展u se case 中,从而使u se case 能复用其它场景的某一部分。

u se case 基本上是基于时间序列的,并可能涉及到多个执行者。

文献[5]首先提出U se Case M ap s ,它是一种可视化的场景表示方法,它描述的是责任间的因果关系,该因果关系能绑定到底层的抽象组件。

U se Case M ap s 在同一张图中表示了多个抽象的相互关联的场景,但U se Case M ap s 并没有说明组件之间的消息交换,而是把它留到详细设计阶段说明,U se Case M ap s 通过动态桩和动态责任表示系统运行时的动态行为。

2 软件体系结构模型软件体系结构的设计模式有多种,如管道体系结构、数据抽象体系结构、通信进程体系结构、隐含调用体系结构、仓库体系结构、解释器体系结构、主程序和子程序体系结构及层次体系结构等模式[6~8]。

这里描述一个抽象的体系结构模型,该模型由组件和连接2类基本元素组成。

组件定义为系统的一个主动的可计算实体,通过一系列端口和它所在的环境进行交互,组件主要指软件组件,也可以扩充物理组件。

基本软件组件有类、可重用组件库及子系统等,每个组件分为说明部分和实现部分,它们又再分为功能部分和非功能部分。

连接定义组件之间的交互,每个连接为某个组件的端口提供一种访问其它组件的方式,并在逻辑上定义组件交互应遵守的协议。

连接实现方式有多种,如方法调用、网络连接、数据共享及消息通讯等。

3 需求驱动的体系结构设计需求分析主要关心问题空间,其主要目标是限定软件系统所解决的问题范围,而软件体系结构是关图2 需求驱动的软件体系结构设计过程于所求解问题的解决方案空间,它的主要目标是确定问题解决方案的结构。

传统的软件开发都是由编程范型驱动,所谓需求驱动是指软件体系结构设计基于需求分析的结果,因此,需求驱动下软件体系结构设计主要是描述所解决问题和解决方案之间的动态关系,其设计过程如图2所示。

需求分析首先在于问题的描述,可并行建立目标模型和场景模型。

随着开发过程,新的功能需求和非功能需求不断出现,对于功能需求,在目标模型中将它抽象为目标,对于非功能需求,将它抽象为软目标。

软目标具有目标的绝大部分属性,唯一差别是其满足标准没有目标明确,只要大多数事实不与软目253 合肥工业大学学报(自然科学版) 第25卷标冲突,就认为软目标是满足的,然后再进一步细化软目标,并对目标进行分解,直至具有可操作性,否则,继续重复这一过程。

相关文档
最新文档