首页 > 其他分享 >软件体系架构方面英文文章翻译----软件架构的基本原理

软件体系架构方面英文文章翻译----软件架构的基本原理

时间:2023-03-02 19:23:28浏览次数:49  
标签:development 软件架构 架构 ---- Architecture architecture software Software

Fundamentals of Software Architecture

02 Dec, 2022

In the world of technology, starting from small children to young people and starting from young to old people everyone using their Smartphones, Laptops, Computers, PDAs etc to solve any simpler or complex task online by using some software programs, there everything looks very simple to user. Also that’s the purpose of a good software to provide good quality of services in a user-friendly environment. There the overall abstraction of any software product makes it looks like simple and very easier for user to use. But in back if we will see building a complex software application includes complex processes which comprises of a number of elements of which coding is a small part.

After gathering of business requirement by a business analyst then developer team starts working on the Software Requirement Specification (SRS), sequentially it undergoes various steps like testing, acceptance, deployment, maintenance etc. Every software development process is carried out by following some sequential steps which comes under this Software Development Life Cycle (SDLC).

In the design phase of Software Development Life Cycle the software architecture is defined and documented. So in this article we will clearly discuss about one of significant element of Software Development Life Cycle (SDLC) i.e the Software Architecture.

Software Architecture :
Software Architecture defines fundamental organization of a system and more simply defines a structured solution. It defines how components of a software system are assembled, their relationship and communication between them. It serves as a blueprint for software application and development basis for developer team.

Software architecture defines a list of things which results in making many things easier in the software development process.

  • A software architecture defines structure of a system.
  • A software architecture defines behavior of a system.
  • A software architecture defines component relationship.
  • A software architecture defines communication structure.
  • A software architecture balances stakeholder’s needs.
  • A software architecture influences team structure.
  • A software architecture focuses on significant elements.
  • A software architecture captures early design decisions.

Characteristics of Software Architecture :
Architects separate architecture characteristics into broad categories depending upon operation, rarely appearing requirements, structure etc. Below some important characteristics which are commonly considered are explained.

  • Operational Architecture Characteristics :
    1. Availability
    2. Performance
    3. Reliability
    4. Low fault tolerance
    5. Scalability
  • Structural Architecture Characteristics :
    1. Configurability
    2. Extensibility
    3. Supportability
    4. Portability
    5. Maintainability
  • Cross-Cutting Architecture Characteristics :
    1. Accessibility
    2. Security
    3. Usability
    4. Privacy
    5. Feasibility

SOLID principles of Software architecture :
Each character of the word SOLID defines one principle of software architecture. This SOLID principle is followed to avoid product strategy mistakes. A software architecture must adhere to SOLID principle to avoid any architectural or developmental failure.

img

S.O.L.I.D PRINCIPLE

  1. Single Responsibility –
    Each services should have a single objective.
  2. Open-Closed Principle –
    Software modules should be independent and expandable.
  3. Liskov Substitution Principle –
    Independent services should be able to communicate and substitute each other.
  4. Interface Segregation Principle –
    Software should be divided into such microservices there should not be any redundancies.
  5. Dependency Inversion Principle –
    Higher-levels modules should not be depending on low-lower-level modules and changes in higher level will not affect to lower level.

Importance of Software Architecture :
Software architecture comes under design phase of software development life cycle. It is one of initial step of whole software development process. Without software architecture proceeding to software development is like building a house without designing architecture of house.

So software architecture is one of important part of software application development. In technical and developmental aspects point of view below are reasons software architecture are important.

  • Selects quality attributes to be optimized for a system.
  • Facilitates early prototyping.
  • Allows to be built a system in component wise.
  • Helps in managing the changes in System.

Besides all these software architecture is also important for many other factors like quality of software, reliability of software, maintainability of software, Supportability of software and performance of software and so on.

Advantages of Software Architecture :

  • Provides a solid foundation for software project.
  • Helps in providing increased performance.
  • Reduces development cost.

Disadvantages of Software Architecture :

  • Sometimes getting good tools and standardization becomes a problem for software architecture.
  • Initial prediction of success of project based on architecture is not always possible.

From above it’s clear how much important a software architecture for the development of a software application. So a good software architecture is also responsible for delivering a good quality software product.


软件架构的基本原理

02 十二月, 2022

在科技的世界里,从小孩子到年轻人,从年轻人到老年人,每个人都在使用他们的智能手机、笔记本电脑、电脑、PDA等,通过使用一些软件程序在网上解决任何比较简单或复杂的任务,在那里,一切对用户来说都显得非常简单。这也是好软件的目的,即在用户友好的环境中提供良好的服务质量。任何软件产品的整体抽象化使它看起来很简单,用户使用起来也很容易。但在后面,如果我们看到建立一个复杂的软件应用程序包括复杂的过程,其中包括许多元素,而编码只是其中的一小部分。

在业务分析师收集了业务需求后,开发团队开始在[软件需求规范(SRS)](https://www.geeksforgeeks.org/software-requirement-specification-srs-format/)上工作,依次经历各种步骤,如测试、验收、部署、维护等。每一个软件开发过程都是按照一些连续的步骤进行的,这些步骤属于软件开发生命周期(SDLC)。

在软件开发生命周期的设计阶段,软件架构被定义和记录。因此,在这篇文章中,我们将清楚地讨论软件开发生命周期(SDLC)的一个重要元素,即软件架构。

软件体系结构:*
软件架构定义了一个系统的基本组织,更简单地定义了一个结构化的解决方案。它定义了一个软件系统的组件是如何组装的,它们之间的关系和通信。它作为软件应用的蓝图和开发团队的开发基础。

软件架构定义了一系列的事情,使软件开发过程中的许多事情变得更容易。

  • 一个软件架构定义了一个系统的结构。
  • 一个软件架构定义了系统的行为。
  • 一个软件体系结构定义了组件的关系。
  • 一个软件架构定义了通信结构。
  • 软件架构平衡利益相关者的需求。
  • 一个软件架构影响着团队结构。
  • 一个软件架构专注于重要的元素。
  • 一个软件架构可以捕捉到早期的设计决策。

软件架构的特点:
架构师根据操作、很少出现的要求、结构等,将架构的特征分为大类。下面解释了一些通常被认为是重要的特征。

  • 操作性的架构特点。
    1. 可用性
    2. 性能
    3. 可靠性
    4. 低容错性
    5. 可扩展性
  • 结构架构特点 :
    1. 可配置性
    2. 可扩展性
    3. 可支持性
    4. 可移植性
    5. 可维护性
  • 跨领域的架构特征 :
    1. 可访问性
    2. 安全性
    3. 可用性
    4. 隐私
    5. 可行性

软件架构的SOLID原则:
SOLID*这个词的每个字符都定义了软件架构的一个原则。遵循这个SOLID原则是为了避免产品策略的错误。一个软件架构必须遵守SOLID原则,以避免任何架构或开发的失败。

img

S.O.L.I.D原则

  1. 单一责任 -
    每个服务都应该有一个单一的目标。
    1. 开放-封闭原则 -
      软件模块应该是独立的和可扩展的。
  2. 3.利斯科夫替代原则 -
    独立的服务应能相互沟通和替代。
  3. 4.接口隔离原则--
    软件应该被划分为这样的微服务,不应该有任何冗余。
  4. 5.依赖反转原则 -*
    高层的模块不应该依赖于低层的模块,高层的变化不会影响到低层。

软件架构的重要性:
软件架构属于软件开发生命周期的设计阶段。它是整个软件开发过程的最初步骤之一。没有软件架构的软件开发就像没有设计房屋的架构就建造房屋一样。

因此,软件架构是软件应用程序开发的一个重要部分。从技术和发展的角度来看,以下是软件架构的重要原因。

  • 为系统选择要优化的质量属性。
  • 促进早期原型设计。
  • 允许以组件的方式建立系统。
  • 有助于管理系统的变化。

除了这些,软件架构对许多其他因素也很重要,如软件的质量、软件的可靠性、软件的可维护性、软件的可支持性和软件的性能等等。

软件架构的优点:*

  • 为软件项目提供一个坚实的基础。
  • 有助于提供更高的性能。
  • 减少了开发成本。

软件架构的缺点:*。

  • 有时获得好的工具和标准化成为软件架构的一个问题。
  • 根据架构初步预测项目的成功并不总是可能的。

从上面可以看出,**软件架构对于一个软件应用程序的开发是多么的重要。因此,一个好的软件架构也负责提供一个高质量的软件产品。

标签:development,软件架构,架构,----,Architecture,architecture,software,Software
From: https://www.cnblogs.com/zhuangzhongxu/p/17173049.html

相关文章

  • Linux中安装JDK
    JDK安装使用步骤1.切换到JDK目录[root@8xp3kwxbmp90uvt4JDK]#cd/root/02InstallStorage/JDK/newest2.解压压缩文件到指定文件夹[root@8xp3kwxbmp90uvt4newest]#tar......
  • 支持批量图片转文字的【OCR】文字识别工具,支持截图识别,速度快,准确度高,免费OCR,开源软件
    想必大家偶尔也有需要从图片中提取文字的需求,虽然现在手机上都自带了拍照识别功能,可是从电脑上的图片传到手机识别再将结果发回来实在是有点麻烦,尤其当图片数量较多时,更是......
  • Linux中安装JDK
    JDK安装使用步骤1.切换到JDK目录[root@8xp3kwxbmp90uvt4JDK]#cd/root/02InstallStorage/JDK/newest2.解压压缩文件到指定文件夹[root@8xp3kwxbmp90uvt4newest]#tar......
  • IDEA配置Maven
    IDEA配置Maven1.选择IDEA中File-->Settings2.搜索maven3.设置IDEA使用本地安装的Maven,并修改配置文件路径  Maven坐标详解***什么是坐标?maven中的坐标是资......
  • 大型分布式网站架构设计与实践第一章读后感
    1.1基于TCP协议的RPCRPC之远程过程调用,应用广泛,实现方法多因为单台服务器的硬件无法无限提升,所以RPC将需要在本地调用转换为调用远端服务器生的方法,给系统处理能力与吞吐......
  • gitlab 启用双因子验证
    启用2AF登录测试参考文档https://docs.gitlab.com/ee/security/two_factor_authentication.html#enforce-two-factor-authentication......
  • npm ERR! cb() never called!
    npminstall过程中报错npmERR!cb()nevercalled!解决办法:【亲测貌似没用,但有的说有用】>npm cacheclean-f后删除node_modules和package-lock.json,重新执行np......
  • 如何查看任务管理器中某个进程的详细命令行
    有一次追查一个进程,然后想起来任务管理器可以查看进程命令行,做下记录并提供给有需要的同学首先右键,选择"任务管理器"打开任务管理器   发现没有显示命令行那一列信......
  • 软件性能
     我们总是希望能用有限的服务器资源来尽可能满足更多的用户,对他们提供更快更好的服务。软件性能是与软件功能相对应的一种非常重要的非功能特性,表明了软件系统对时间......
  • AtCoder Beginner Contest 251
    AtCoderBeginnerContest251D给定一个1e6范围内的数n,要你构造出一个数组,对于1~n中的任何一个数都能用数组中最多三个数的和加起来。这题真的是很好的一道思维题,想了我......