First acquainted with software architecture (1-4 class hours)

The content of the first four class hours is "Overview of Software Architecture".
Teacher LW’s lectures are vigorous, logical and grounded, the pace is not fast or slow, very nice~

  1. Software Architect
    The most suitable profession for this course is a software architect. A software architect works between project managers and programmers, who must understand both requirements and technology. While leading a high income, you also have to bear high risks. When a construction project fails, the first person to be held accountable must be the contractor and the architect, not a certain construction worker. Similarly, if a software project fails, the first to be found must be the project manager and architect. Different from the construction field, a construction worker will not become an architectural designer just because of moving bricks quickly and well, while a software architect must grow up to be a first-line programmer, with at least a few years of project experience.
    In other words, what an architect has to do is to make programming from a essay question to a multiple choice question.

  2. The meaning of software architecture
    If you want to truly understand what is good, you have to lose it. If there is no architecture, what would software engineering look like? In other words, the larger the software project, the earlier programming starts and the faster you die. It is conceivable that when an event is so big that it is called a project, it must be a risk to start construction without designing it. The architecture really came into being to fill the gap between requirements and implementation.

  3. The content of this course is
    software architecture + UML unified modeling language + software design mode.
    The software corresponds to the outline design and part of the detailed design in SDLC (for example, the algorithm is not included).
    UML is a means, and software architects need to A standardized way to communicate the architecture to others.
    The design pattern is the essence summarized by the predecessors, but it is better not to abuse it. The real master of the practical design pattern can reach such a state: I don't know what design pattern is used, only know that the current solution is the best. I flipped through the book and found that many design patterns were used.

  4. Definition of software architecture
    In fact, there is no unified definition in the industry. Here are some highly recognized ones.
    The definition given by the founders of the software:
    Mary Shaw and David Garlan believe that the software architecture includes the description of the design elements that constitute the system, the interaction of the design elements, the mode of design element combination, and the constraints in these modes.

  5. Three elements of software architecture
    Three elements: components, connectors, constraints.
    Namely 3C: component, connector, constraint.
    5.1 Components
    Prefabricated (designed in advance) and reusable (important purpose) software components refer to computing units and data storage units, which can be a process or data element.
    Features: can be large or small and reusable.
    5.2 Connectors
    The simplest connector is the mutual call between classes.
    Used for modeling: the interaction between components and the rules governing these interactions.
    Simple interaction:
    process invocation,
    access to shared variables,
    complex and semantically related interaction:
    client-server protocol,
    database access protocol
    , multicast of asynchronous events,
    pipeline data flow
    5.3 constraints
    describe the configuration and topology requirements of the architecture, configuration or topology Refers to a connection diagram composed of components and connectors.
    Determine the connection relationship between components and connectors:
    correct connectivity,
    concurrency and distribution, in
    line with design heuristics and style rules

  6. Advantages of software architecture,
    easy to understand,
    reuse,
    control cost,
    analyzability

Guess you like

Origin blog.csdn.net/weixin_44997802/article/details/108859997