Roles and training of software Architects: Architecture and architect [1]

Source: Internet
Author: User

(Author: Zhang Yousheng)

With Software The scale and complexity of the system are getting higher and higher, and the core of software design has exceeded the traditional "algorithm + Data Structure ". = Program "design mode, instead of the overall structure of the system Design And specification [1]. Software Architecture plays an important role in software systems. software architecture is also a rapidly developing field of research and practice in software engineering ~ 4] discussed how to build a good software system. As the designer of the software architecture, the software architect is a key factor to the success or failure of the software. However, questions about the role orientation and education of software architects are still vague and there is no consistent conclusion.

In recent years, the author has done some work in the theoretical research and practice of software architecture and has made some achievements. Drafted national computer technology and software Professional System Analyst in technical qualification (level) Examination And the system architecture designer examination outline, edited the relevant test materials. This article mainly discusses the roles and training of software architects. The article is organized as follows: Section 1st describes the definition of the software architecture and software architect. Section 2nd discusses the roles of a software architect in the entire software project, including the responsibilities of the software architect and the differences between the software architect and the System Analyst (System Analyst. Section 3rd study the qualifications of a software architect, including the knowledge system and qualifications. Section 4th mainly discusses how to evaluate Work . Section 5th studies the cultivation and certification of software architects. Section 6th is a summary of the full text.

 1. software architecture and software architect

1.1 Software Architecture

Architecture English The original intention is from the architectural art, architectural style and structure of the construction industry. After being introduced into the software field, there is no uniform definition. IEEE-Std-1471-2000 believes that [5]: Architecture is the basic organization of a system, it is embedded in the system components, the relationship between components, the relationship between components and the environment, and presented in its design and evolution principles. In fact, the software architecture (Software Architecture) It was proposed by E. W. Dijkstra as early as 1960s, but it was not popular until the beginning of 1990s. To improve the quality of software requirements and design Engineering This paper proposes the demand analysis engineering technology and various software modeling technologies. However, there is still a insurmountable gap between demand and design, that is, there is a lack of intermediate processes that can reflect the decision-making, so it is difficult to effectively transform the demand into the corresponding design. To this end, the concept of software architecture emerged, and an attempt was made to build a bridge between software requirements and software design, focusing on solving the problem of smooth transition of the structure and requirements of software systems [6]. Due to different fields, different academic research and application practices, people have different understandings and definitions of software architecture ~ 9]. Although various definitions focus on the software architecture from different perspectives, their core content is the structure of the software system and covers the following entities: interaction between components, configuration, topology of components and connectors, design principles and guidelines.

Here, the author describes the understanding and understanding of the software architecture.

Definition 1 (Software Architecture) the software architecture provides a structure for the software system, Action And attribute high-level abstraction, composed of the description of the elements that constitute the system, the interaction of these elements, the pattern that guides element integration, and the constraints of these pattern. The software architecture not only specifies the organizational structure and topology of the system, but also shows the correspondence between system requirements and elements that constitute the system. It provides the basic principles of some design decisions.

Currently, the research on software architecture has developed into an independent branch in the software engineering field, with a strict theoretical basis and engineering guiding principles [10]. Software Architecture has become a research hotspot in the software engineering field, as well as a large-scale software system and software product line. Development One of the key technologies. There are a lot of related researchers on the software architecture description language [11 ~ 13]. Description and representation of the software architecture []. analysis and verification of the software architecture [16 ~ 19] architecture-based software maintenance and evolution [], software architecture reliability [] and other aspects were studied.

1.2 Software Architect

Software architects have been lacking in most software organizations for a long time. The architecture design is basically done by project managers, system analysts, and software designers. Concurrently or apportioned, leading to widespread contempt for Software Architecture expertise Talent Training and appointment. In fact, software architects are the most urgent talents in many software organizations and senior technical talents in a software organization. So what are the roles of software architects and software architects in project development, how to locate a software architect and how to become a software architect? Many organizations, technicians and Management Topics that people want to know or want to participate in the discussion. The following is a brief explanation of the concept of software architects.

Architects are usually designers or structural designers. These definitions are easy to understand if they are used in architecture. In the field of software engineering, software architects are actually the General designers of software projects and the builders of new product development and integration and new technology systems of software organizations. This role is critical to the development of some large software products or projects. There are numerous examples of project failures due to the lack of good software architects, an inexperienced and competent software architect can speed up the failure of a software project. Because of this, Martin Fowler points out [24]: architects are the people who make decisions on all important things.

Software architects play an important role in the entire software development process, and their responsibilities or concerns keep changing as the development process advances. In the demand phase, the software architect is responsible for understanding and managing non-functional system requirements, such as Software maintainability, performance, reusability, reliability, effectiveness, and testability. In addition, architects should also review the requirements raised by customers and market personnel frequently to confirm the design proposed by the development team. As the requirements become increasingly clear, the architect's focus begins to shift to the definition of the development team members and the development process. In the software design phase, the architect is responsible for designing the entire software architecture, key components, and interfaces. In the coding stage, architects become consultants for programmers and regularly hold technical seminars and technical training courses. As software starts testing, integration, and delivery, integration and testing support will become the focus of software architects; at the beginning of software maintenance, software architects will begin to make decisions on whether new functional modules should be added to the next version of the product.

 

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.