Several phases of software architecture development

Source: Internet
Author: User

Several phases of software architecture development

 

1. Basic research phase (May 1985 ~ 1994)
From 1960s to the middle of 1980s, software system designers were used to describing the system structure using graphic lines without uniform format and semantics. Of course, this is a very intuitive and understandable subconscious way to express the design system. Although this practice has been around for more than 20 years, the long-term practical experience also makes these designers realize that although they describe different types of systems they are responsible, however, there are many commonalities in the description style and means. More importantly, different systems also share many design methods or styles. Unfortunately, we still use our methods, ideas, and design methods to solve similar problems. In this way, the system structure descriptions and design methods have been accepted as "architecture" by the software engineering community at that time ". However, systematic, generic, rigorous, and reusable software system design methods have not been summarized.
Milestone: from the middle of 1980s, some important basic ideas and concepts began to emerge. These important ideas include hiding and encapsulating data/information, using abstract data types, and forming a software structure with a series of encapsulated black box elements. Software design is based on these important basic concepts (interestingly, these basic concepts have also been defined by the redwine/riddle model for 15 to 20 years) I started my brilliant journey. Today's most famous so-called object-oriented software design and development comes from these basic ideas (of course, that was the case after 1990s ). Dijkstra and parnas elaborated on these important ideas through years of practical observation in their respective works. However, these basic concepts are insufficient to solve other typical problems encountered in software system design, such as: how to solve dependencies between modules? How can we make design conducive to design and code maintenance and expansion?
From the late 1980s S, the software design community began to try to summarize some specific design methods and structures used to solve specific industries and specific problems. This article tries to explore the experiences brought about by structural design in order to develop such a specific software system. It also summarizes the reusable design methods of similar systems and their advantages and disadvantages. Louis coglianese and E. mettala described their experiences and analysis in specific product line environments and specific application fields in their findings. For example, Aviation Electronics Industry and missile control.
In the same period, other research is also starting. These studies aim to extract and organize similar problem-solving approaches and design styles that can be used to construct a software architecture from informal and non-standard empirical knowledge. In this way, the research results can be reused in different fields to solve similar problems. These studies are aimed at analyzing and summarizing some famous systems at that time, and try to identify general System Architecture styles and design techniques. Among them, a research group led by Gregory Andrews analyzed and identified the architectural forms of many different types of systems; a research group led by Robert Allen and David Garlan, try to find and apply some common methods to describe different types of system structures. Their unremitting efforts ultimately laid the foundation for future generations to move forward. After 1992, based on their research achievements, future generations have developed and established some well-known System Architecture styles, such: pipe-filter architecture style, repository architecture style, implicit call, Process Collaboration, etc. Their research achievements and basic ideas have been cited in many articles today.
2. Concept establishment stage (1992 ~ 1996)
From 1992 to 1996, the history of human development in software architecture has obviously entered a new important stage: the establishment of basic concepts and models of architecture. It is marked by the rapid progress in five aspects: development of Architecture Description Language, preliminary architecture expression and formulation of analysis rules, classification of Architecture elements and architectural styles, and architecture evaluation methods (such as SAAM) and can be referenced from the architecture perspective (for example, 4 + 1 ). At this stage, people subconsciously focus on possible commonalities in all software system structures. We hope that through summative research, we can find the structures that are repeated and have commonalities in practice. We can also describe these findings in a unified manner with strict logic and rules, to facilitate the exchange, improvement and reuse of industry peers.
Represented by r.n. Taylor, the research achievements in Software Architecture Description Language (ADL) have become a powerful medium and carrier to enrich the details of the architecture. Many architecture description languages emerged in this period, which are basically based on practice and emphasize how to express the organizational structure of some software systems in a logical and meticulous manner. Among them, the famous include: Aesop language led by David Garlan, which reveals different characteristics of different architectural styles; by the University of California n. medvidovic leads the C2 language, which reveals the charm of event-based architecture design; by Royal University of London J. the Darwin language led by Magee, which reveals the practices of the dynamic distributed system design style; by P. blinN and S. meta-h, jointly released by Vestal, has become a classic of Real-Time System Design in the aviation control field. D.C. luckham adds the famous rapide language to the architecture description language family, which explains how to simulate and analyze the best practices of dynamic behavior in the system structure. As a component-based system, in 1994, Robert Allen and David Garlan provided the industry with a nearly perfect description language for components, component ports, connectors, roles, and interactions-Wright. We can also cite many other achievements in that period, such as Acme descriptive language and unicon descriptive language.
The formulation of architecture expressions and analysis rules is another important sign of the concept establishment stage. Its Perfection has also led to the development of the architecture description language. These rules are sometimes well applied in the architecture description language. The Darwin language, rapide language, and Wright language are the harmonious integration of expressions and expressions. However, in the same period, there were also some architectural expression rules developed by others (for example, the expression rules set by the Robert Allen leadership). They were not combined with a certain language, but mainly used to describe the architectural style; the analysis rules proposed by Kevin Sullivan can be used to analyze specific architecture models (such as component-based architecture models ). C. Locke also proposes its own analysis rules in some application fields. Later, P. kruchten realized that only by refining and summarizing the above rules can the architecture analysis be improved and indirectly help the customer regulate the system requirements.
The Research on architectural elements and architectural style classification has also made great strides in the concept establishment stage. Among them, some architectural style classification principles proposed by Mary Shaw and Paul Clements and Analysis of practical application scenarios of various architectural styles have become the basis for future research. In this period, the research on Architecture elements and architectural styles has begun to use the methods we use today to express the design patterns. Among them, there are milestone achievements, including the achievements of the 23 most famous design models in the Gang of Four (also known as the "Gang of Four" in the Chinese architecture field, including the classic design patterns and design concepts obtained by Frank buschmann through years of practice, and the outstanding Architecture styles and design practices summarized by Mary Shaw and David Garlan for the future development of the software architecture.
The redwine/riddle model shows that the structure of the questions to be studied must be constantly improved during the concept establishment stage. Architecture evaluation techniques and methods emerged in this period. Early architecture designers realized through years of practical experience that they should design an architecture and verify its effectiveness, generally, the quality requirements of the system (that is, the problems to be solved) should be clarified first, and then the most appropriate solution should be selected from the solutions to many candidate problems, this process is a term often mentioned later in the architecture field-"design decision-making ". Only when the system's quality requirements fully match the design decision can the system architecture be ensured to be effective. Therefore, some common methods of this period are: Richard W. standards proposed by Selby and Ronald retries to measure the interconnection relationship between various components in a large software system; a list of checks provided by at&t to architects; C. the Architecture Analysis and Evaluation Method that Smith proposes based on different system attribute requirements (such as performance requirements. Based on the above experience, R. kazman and others summarized and formed a more general architecture Evaluation Method SAAM (Software Architecture Analysis method) in 1994 ).
An important practice summary at the end of the concept establishment stage is the concept of "Architecture view" That will be carried forward by future generations. In fact, as early as 1974, D. L. parnas, in the article on a "buzzword": hierarchical structure, has created a precedent for the study of architecture perspectives. After studying many software systems, he proposed his own achievements: different software systems use different forms of structure to build and express, because different construction forms can meet different engineering needs and objectives. Later, the research on the architecture perspective has gone through its own complete redwine/riddle cycle. Many high-quality research results emerged during this period. Among them, P. kruchten put forward the "4 + 1" perspective in 1995. He laid a solid foundation for future architecture practices. The UML views frequently used in today's design field are a typical example.
During the period from 1992 to 1996, numerous international conferences (such as the International Conference on software design) were organized internationally, which clearly completed the functions of the concept establishment phase in the redwine/riddle model: communicate basic ideas and concepts and form a unified cognition. These meetings have become a family of employees in the software architecture field. In order to effectively organize and establish research teams, work closely together to solve specific sub-problems, gradually clarify future research directions, and divide research fields, the International Software Architecture Research Institute was formally established in 1995. Under the leadership of the Organization, a series of international software architecture meetings were held starting in 1995 to become a major forum for everyone to publish and discuss the latest research results in the architecture field.

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.