Notes on using Microsoft. NET to build enterprise solutions (1)

Source: Internet
Author: User


Today's architects and Architectures




In the early days of the computer, around 1960, hardware was spent on software and dominated. After 40 years, we found that the situation had changed significantly.

Due to industrial progress, the cost of hardware has dropped sharply. On the other hand, the cost of software development increases sharply due to the complexity of personalized enterprise-level application development. For companies, cheap hardware makes it worthwhile to add more and more functions to their information systems. At first, some independent systems were not connected to each other and seldom shared data. After many years, they became complex systems, and functions and modules were connected to each other.

This situation creates a requirement. When designing such a system, a series of specifications are required to guide engineers.

The term "architecture", borrowed from the construction industry, is suitable for describing the skills of planning, designing, and implementing software systems. However, in software development, architecture is not as artistic as it requires in the construction industry. Well-designed buildings are pleasant for eyes and functions. The software architecture is less subjective.



1. What is software architecture?

The term "architecture" was originally used in the software industry to express the need to plan and design before code development. However, there is a fundamental difference between an available software system architecture and a livable building.

Obviously, during the architectural process, we will consider whether the building will hit people. However, in software, there is usually a lot of money to rewrite an architecture. In the construction industry, the design must be based on extremely detailed calculations and blueprints. In software development, you may be more agile. More than a decade ago, pre-designed methods were also very common and popular in the software industry. However, over the past decade, this method has increased development costs. Before deployment, the software can perform efficient and secure tests. Compared with the pre-design, agility prevails.

Today, the architecture in the construction industry is not as similar as that in the software industry many years ago. In many dictionaries, the software architecture is described as: in a computer system, combination, integration, and connections between multiple components. However, it is abstract.

The software industry usually accepts another explanation: breaking down the system into many small pieces and placing them in the environment.

2. Who is the architect?

The architecture design is based on Requirement Analysis. The analysis can determine what the system needs to do, And the architecture can determine how to do it. Architects are the bond between requirements and detailed designs, but what are the responsibilities of architects? What skills are needed?

2.1 responsibilities of Architects

According to the definition in the ISO standard, the architect is the person, team, or organization responsible for the system architecture. Architects work with analysts and project managers to evaluate and propose suggestions for the system and coordinate a team of developers.

Architects participate in the entire development process, including analyzing requirements and architecture design, code implementation, testing, integration and deployment.

Main responsibilities include:

1) understand requirements

In software projects, some other things will happen before the architect participates. A group of analysts, IT department managers, and administrative departments will hold meetings, discussions, evaluations, and discussions. Once the requirements of a new system are determined and the budget is in place, analysts will draw out typical requirements based on their own business knowledge, enterprise processes, environments, and end-user feedback.

After the requirement list is ready, the Project Manager will meet the architect and submit the requirement to the architect. "This is what the customer wants. You can build it ".

Architects understand the requirements and try their best to meet and adopt them in the design.

2) decomposition system

Based on the requirements, the architect divides the system into multiple subsystems. In this case, the architect looks forward to the logical layer and service layer. Then, based on the environment, determine the interface between layers, the relationship with other layers, and the service level required by the system.

The overall design is consistent with the company's goals and needs. In some special cases, the demand drives the overall design, rather than the overall design leads the demand.

The architecture includes some general guiding principles, which require minimum coupling between modules, high cohesion of modules, and a clear responsibility for each module.

The results of the architecture also meet some non-functional requirements, such as security and scalability. Finally, the architect will specify some strategic things, such as each developer's task, team's task, or subsystem component.

3) identifying and evaluating available technologies

After understanding the requirements and designing the system layers, the next step is to use specific technologies and Product Planning logic components. Architects should be clear about the cost and benefits of products and technologies related to the project. Architects recommend products and technologies that are cost-effective for projects. Architects do not decide on technology. They only recommend technology based on their own knowledge.

So who decides to use the technology recommended by the architect? It is clearly a project manager or a budget manager. The architect's suggestions may be accepted or rejected.

4) clear and detailed design

The final responsibility of the architect is to determine the detailed design. The detailed design is the result of communication between the architect and the developer. The detailed design can exist in multiple forms, including UML diagrams, documents, viso diagrams, and even prototypes. Communication is crucial for an architect. Communication occurs between architects and developers, and between architects and project managers and business analysts, but not with users. A good technology for architects is language clarity.


Architecture is a widely used word with many definitions.

Architecture Design starts from functional and non-functional requirements. functions are collected by business analysts and understood by architects.



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: 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.