System Architect tips (I) Software Architecture

Source: Internet
Author: User
When we discuss some concepts of software system architecture, we often describe them using concepts of other disciplines (such as shipbuilding and architecture. For example, when we discuss the concept of "architecture, we will compare and understand the microprocessor's internal structure, machine's internal structure, organization network, software architecture, and many other things. Today, I will introduce the software architecture, Architecture elements, architecture descriptions, and other related content.

What is software architecture? Computers can be seen everywhere in today's society, not just on the desktop of a data center, or even on cars, washing machines, and credit cards. These computers, whether large or small, have a simple structure or are complex, are composed of three basic components: hardware, software, and data.
When studying computer systems, we should first understand the functions of computer components and how each part works together. In other words, we should study the computer architecture. The concept of computer architecture that we usually recognize is defined by the Institute of software architecture at Carnegie Mellon University in Pittsburgh.
The organization defines the architecture of a software system, including software elements, the relationship between software elements, and the external visibility of these elements. Next, let's take a look at the two key parts in the definition, namely the system structure and its external visibility.

For software Architects, the system structure includes two aspects: static (organizational structure at design time) and dynamic (organizational structure at runtime.
The static Architecture defines the design of internal elements and the arrangement of elements. It tells us how the organizational form and software elements are organized during design. Internal elements include:
Internal software elements can be modules, classes or packages, stored procedures, services, or other independent code units.
Internal data elements can enable classes, relational database entities, tables, data files, and so on.
Internal hardware elements include computers or other components (such as disks or CPUs ).
The internal network elements include cables, hubs, and routers.
These internal elements are related and mutually dependent, and constitute our software architecture.
A Dynamic Architecture defines the interaction between elements during system operation and them. It illustrates how the system works, what happens when the system runs, and how to respond to external requests. The interaction between elements can be the flow of information between elements, tasks executed in parallel or in sequence, or the impact of elements on data.

External visibility mainly includes two aspects: one is external visible behavior (what the system does) and the other is quality characteristics (how the system does it ).
Externally visible behaviors can tell us what a software system looks like from an external observer, that is, tell us what functions interact between the system and the environment. These interaction functions include the flow of internal and external information of the system, the system's response to external requests, and the provision of external agreements and APIs. External behavior is the way to treat the system. We can regard the system as a black box. External behavior does not need to consider or know the implementation of the content, but only needs to know what functions and processes are completed inside the system.

Quality Attributes tell us what a system's behavior is from the perspective of an external observer, that is, tell us the externally visible non-functional features of the system, such as performance, security, and scalability. Quality Attributes focus on how the system executes at a low load, what is the throughput of specific hardware at the peak, how to prevent malicious use of the system, and how long the system runs to crash, system operation, maintenance, and management are easier and easier for the disabled. These features all fall into the priority of system quality attributes.


So far, we have finished introducing the concept of the system architecture. Next we will continue to explain other content about the software system architecture.

......


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.