📅  最后修改于: 2020-12-14 03:26:28             🧑  作者: Mango
软件体系结构通过使用分解和组成以及体系结构样式和质量属性,涉及软件系统抽象的高层结构。软件体系结构设计必须符合系统的主要功能和性能要求,并满足非功能性要求,例如可靠性,可伸缩性,可移植性和可用性。
软件体系结构必须描述其组件组,它们的连接,它们之间的交互以及所有组件的部署配置。
可以通过多种方式定义软件架构-
UML(统一建模语言) -UML是用于软件建模和设计的面向对象解决方案之一。
体系结构视图模型(4 + 1视图模型) -体系结构视图模型表示软件应用程序的功能和非功能需求。
ADL(架构描述语言) -ADL在形式上和语义上定义了软件架构。
UML代表统一建模语言。它是用于制作软件蓝图的一种图形语言。 UML由对象管理组(OMG)创建。 UML 1.0规范草案是在1997年1月向OMG提出的。它用作软件需求分析和设计文档的标准,这些文档是开发软件的基础。
UML可以描述为一种通用的可视化建模语言,用于可视化,指定,构造和记录软件系统。尽管UML通常用于对软件系统进行建模,但它并不限于此范围。它还用于对非软件系统建模,例如制造单元中的流程。
这些元素就像组件,可以通过不同的方式关联以形成完整的UML图片(称为图表) 。因此,了解不同的图以在现实生活中实现知识非常重要。我们有两大类图,它们又分为子类,即结构图和行为图。
结构图表示系统的静态方面。这些静态方面表示图表的那些部分,这些部分形成了主要结构,因此很稳定。
这些静态部分由类,接口,对象,组件和节点表示。结构图可以细分如下-
下表简要介绍了这些图表-
Sr.No. | Diagram & Description |
---|---|
1 |
Class Represents the object orientation of a system. Shows how classes are statically related. |
2 |
Object Represents a set of objects and their relationships at runtime and also represent the static view of the system. |
3 |
Component Describes all the components, their interrelationship, interactions and interface of the system. |
4 |
Composite structure Describes inner structure of component including all classes, interfaces of the component, etc. |
5 |
Package Describes the package structure and organization. Covers classes in the package and packages within another package. |
6 |
Deployment Deployment diagrams are a set of nodes and their relationships. These nodes are physical entities where the components are deployed. |
行为图基本上捕获了系统的动态方面。动态方面基本上是系统的变化/运动部分。 UML具有以下类型的行为图-
下表简要介绍了这些图表-
Sr.No. | Diagram & Description |
---|---|
1 |
Use case Describes the relationships among the functionalities and their internal/external controllers. These controllers are known as actors. |
2 |
Activity Describes the flow of control in a system. It consists of activities and links. The flow can be sequential, concurrent, or branched. |
3 |
State Machine/state chart Represents the event driven state change of a system. It basically describes the state change of a class, interface, etc. Used to visualize the reaction of a system by internal/external factors. |
4 |
Sequence Visualizes the sequence of calls in a system to perform a specific functionality. |
5 |
Interaction Overview Combines activity and sequence diagrams to provide a control flow overview of system and business process. |
6 |
Communication Same as sequence diagram, except that it focuses on the object’s role. Each communication is associated with a sequence order, number plus the past messages. |
7 |
Time Sequenced Describes the changes by messages in state, condition and events. |
模型是对软件体系结构的完整,基本和简化的描述,它由特定角度或观点的多个视图组成。
视图是从一组相关关注点的角度对整个系统的表示。它从不同的利益相关者(例如最终用户,开发人员,项目经理和测试人员)的角度来描述系统。
Philippe Kruchten设计了4 + 1视图模型,用于描述基于多个并发视图的软件密集型系统的体系结构。它是一个多视图模型,解决了系统的不同功能和关注点。它使软件设计文档标准化,并使所有利益相关者易于理解设计。
它是一种用于研究和记录软件体系结构设计的体系结构验证方法,涵盖了所有利益相关者的软件体系结构的所有方面。它提供了四个基本观点-
逻辑视图或概念视图-它描述了设计的对象模型。
流程视图-描述了系统的活动,捕获了设计的并发和同步方面。
物理视图-它描述了软件到硬件的映射并反映了其分布式方面。
开发视图-描述了环境开发中软件的静态组织或结构。
可以通过为软件系统的最终用户或客户添加一个称为方案视图或用例视图的视图来扩展此视图模型。它与其他四个视图一致,并用于说明用作“加一”视图,(4 + 1)视图模型的体系结构。下图描述了使用五个并发视图(4 + 1)模型的软件体系结构。
用例视图具有特殊的意义,因为它详细说明了系统的高级需求,而其他视图则详细说明了这些需求的实现方式。当所有其他四个视图都完成时,它实际上是多余的。但是,没有它,所有其他视图都是不可能的。下图和表格详细显示了4 + 1视图-
Logical | Process | Development | Physical | Scenario | |
---|---|---|---|---|---|
Description | Shows the component (Object) of system as well as their interaction | Shows the processes / Workflow rules of system and how those processes communicate, focuses on dynamic view of system | Gives building block views of system and describe static organization of the system modules | Shows the installation, configuration and deployment of software application | Shows the design is complete by performing validation and illustration |
Viewer / Stake holder | End-User, Analysts and Designer | Integrators & developers | Programmer and software project managers | System engineer, operators, system administrators and system installers | All the views of their views and evaluators |
Consider | Functional requirements | Non Functional Requirements | Software Module organization (Software management reuse, constraint of tools) | Nonfunctional requirement regarding to underlying hardware | System Consistency and validity |
UML – Diagram | Class, State, Object, sequence, Communication Diagram | Activity Diagram | Component, Package diagram | Deployment diagram | Use case diagram |
ADL是一种语言,提供用于定义软件体系结构的语法和语义。它是一种注释规范,提供了对软件系统的概念体系结构进行建模的功能,与系统的实现有所不同。
ADL必须支持体系结构组件,它们的连接,接口和配置,这是体系结构描述的基础。它是一种用于体系结构描述的表达形式,并具有分解组件,组合组件和定义组件接口的能力。
架构描述语言是一种正式的规范语言,它描述软件功能(例如进程,线程,数据和子程序)以及硬件组件(例如处理器,设备,总线和内存)。
很难对ADL和编程语言或建模语言进行分类或区分。但是,将语言分类为ADL有以下要求-
与所有相关方交流该体系结构应该是适当的。
它应该适合于体系结构创建,优化和验证的任务。
它应提供进一步实施的基础,因此它必须能够向ADL规范添加信息,以使最终的系统规范能够从ADL派生。
它应该能够代表大多数常见的建筑风格。
它应该支持分析功能或提供快速生成的原型实现。