Software Architect Yessoftware An emerging profession in the industry is responsible for integrating the customer's needs during the development of a software project. Convert to a standard development plan and text, and develop the overall architecture of the project Guides the entire development team Complete the plan. Architect The main task is not to engage in specific software programs But is engaged in a higher level of development architecture. He must be familiar with development technologies and have good organizational and management skills. It can be said that the quality of an architect's work determines the entire software development. Project success or failure.
Software Architecture The teacher is actually the general designer of the software. The chief designer is the chief designer. For example, Deng Xiaoping is the chief designer of China's reform and opening up. We can use the current statement to explain that he is the chief architect of China's reform and opening up. The formation of architects must have been accumulated in practice, rather than several training courses. After reading a few books, architects can succeed. Architects are trained in engineering practice!
Architects are not omnipotent either. Architects serve as a bridge between customer needs and developers. In the software industry, the architect is a technical architect, ignoring the concept of a domain architect or a domain engineer. A good expert in the field must be an architect in the business field. He can give the architecture of a business field. We can call it a business architecture, only when the technical architecture and Business architecture are closely integrated can a good system be created! Architects, first of all, remind me of the designers of high-rise buildings. Usually, before a building is built, designers first draw out the blueprint, including its shape, structure, size, and materials, then the construction engineer led the workers to build one floor on the first floor of the building according to the blueprint.
In recent years, the software field has gradually become popular with architects, especially for the development of some large software products or projects. This role is critical, there are countless examples of project failures due to lack of good software architects. An inexperienced and competent architect can speed up project failures.
Important Role of software architects
Software architects play an important role in the entire software development process. As the development process advances, their responsibilities or concerns change constantly. In the demand stage, 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 on a regular basis to confirm the design proposed by the development team. As the requirements become increasingly clear, the architect's focus begins to shift to the Organization's development team members and development process definitions. In the software design phase, the architect is responsible for the entire software architectureKey componentsDesign of interfaces and development policies; in the coding stage, architects become consultants for detailed designers and code writers, and regularly hold technical seminars and technical training courses; as the software starts testing, integration, and delivery, integration and testing support will become the focus of software architects; at the beginning of software maintenance, the software architect began to determine whether new functional modules should be added to the product of the next version.
How to become a good software architect
Obviously, the importance of a good software architect should not be underestimated during software development. So how can we become a good software architect?
First, you must have rich software design and development experience, which helps to understand and explain how the design is mapped to the implementation.
Secondly, the software architect must have leadership and team collaboration skills. The software architect must be a recognized technical leader who can make timely and effective decisions on technical choices at key points.
The third is to have strong communication skills. At that time, it seems that any ghost role is the best, and the software architect needs to deal with various Teams frequently, customers, marketing personnel, developers, testers, project managers, network administrators, and databasesEngineers and so on. In addition, many roles have to play the role of communication personnel. In terms of technical capabilities, the most important and required knowledge of software architects is the knowledge of component communication mechanisms, such as remote process calls., JAVARMI, and CORBA, COM/DCOMVarious standard communication protocols, network services, and objectsIn addition, architects should always pay attention to the development of new software design and development, and constantly explore more effective new methods. Development language and Design ModeAnd the development platform is constantly upgrading, software architects need to absorb the new knowledge of these new technologies and apply them to software systemsDevelopment in progress. Of course, the business knowledge of the industry is also very important to software architects and helps design
Provides an architecture that meets customer needs.Excellent Software architects often need to learn and observe quickly to get an understanding of the industry's business as soon as possible.
The above description is boring, but as a software architect, there is endless fun in the development of the entire software system, because this role is very challenging and sometimes needs to be exquisite, sometimes it is necessary to be decisive and show no mercy. In China, a small number of software enterprises have independent architects. Generally, a software master is a project manager, software architect, software developer, and sometimes a tester, this is detrimental to the software development cycle and product quality. Sometimes, a person's opinion is one-sided, and heavy work and heavy pressure will affect one's mood, sentiment affects decisions and results. Therefore, it is worth thinking twice.
Constructor self-cultivation process
Architects can't do it through theoretical learning, but they certainly cannot do it without learning relevant knowledge. The following is a summary of the self-cultivation process of the constructor, which is for reference only.
1. Framework engineer embryo (ProcedureMember)
The learning knowledge is language, design, and communication. It should be completed in the university, including java, c, c ++, and uml., RUP, XML, Socket communication (Communication Protocol)-learning the raw materials required to build an application system.
2. Architect sprout (Senior Programmer)
You can learn about distributed systems and build systems at a university or in the first year, including the principles of Distributed Systems and ejbs., Corba, com/com +, and webservice (graduate students can study network computersHigh-performance concurrent processing and other content)
3. Architect seedlings (designer)
On the basis of the above, we should thoroughly understand the application design mode based on the actual project experience.The content includes the design mode (c ++ and java), The ejb Design mode, and the J2EEArchitecture, UDDI, software design model. During this period, it is best to understand Software EngineeringApplications in actual projects, group development, and team management.
4. Software ArchitectureThe role of a programmer is based on opportunities, personal efforts, and talented software architects. However, after a programmer fully master the basic skills required by a software architect, how to get such an opportunity, how to use the skills you have mastered to apply a rational architecture, how to constantly abstract and summarize your own architecture model, and how to go deep into the industry to become competent for analysis and architecture this is not a pie that everyone can meet ......