Design Fundamentals of Architecture

Source: Internet
Author: User

1. What are the aesthetic standards of design 1) Simplicity:

Modular, easy to read and easy to understand.

2) Structural consistency (conceptual integrity):

architectural style, modular.

3) Robustness (high quality):

Easy to develop, easy to modify, easy to reuse, easy to debug, easy to maintain.

2. Known software design methodologies and techniques (at least 5in), and what aesthetic standards they have contributed to achieving 1) modularity:

The module divides, hides some program fragments (data structure and algorithm) Realization detail, exposes the interface and the outside world, and guarantees the internal cohesion of the module is high, the module and the outside world coupling is low. The module hides the implementation details, accesses the module through the interface, facilitates simplicity, and facilitates structural consistency by providing a unified external interface for functionality cohesion

2) Information hiding:

Partitioning the system into modules, each module encapsulates an important decision, and only the module knows the implementation details. Decision types can be requirements, changes, and different decisions that are independent of each other. Both information hiding and modularity promote simplicity to some extent, but only in the external interface. Information hiding in order to deal with some decisions that do not require external performance (internal implementation of the modifiable) and fragment segmentation, which in some way sacrificed the simplicity to achieve the robustness of

3) register at runtime:

For system changes, the possible changes are decoupled from the other parts, not directly in the program invocation, but at runtime. Because this technique is used for possible changes, things that could have been handled with one component are broken down into multiple parts, and there are complex rules of interaction between these different parts, so simplicity is sacrificed to improve robustness (flexibility)

4) Profile Programming:

For the system changes, the main solution to the common and differential problems. Write the possible changes in a configuration file, and modify the configuration file directly when changes occur. Because the configuration file needs to be fully considered for possible changes, and the configuration file needs to be parsed at system startup, simplicity is sacrificed to improve robustness (flexibility)

5) design mode:

Design patterns sacrifice simplicity to achieve robustness, ensuring program maintainability and scalability. At the same time, in the design pattern is the same way to do the same thing, thus promoting the structure of the program to achieve consistency

3. The level of design

The starting point, main concerns (i.e. which aesthetic elements), main methods and techniques and final products of high-rise design, middle-level design and low-rise design

3.1 High-level design 1) starting point:

Make up the insufficiency of the detailed design mechanism, combine a set of modules to form the whole system, carry on the overall structure design, and pay attention to the quality attribute of the system. Hide import and export relationships and word matching in detailed designs, design part component with mass attributes, and relationship Connector connector between parts. At the same time, the architecture is a series of design decisions made to the system design

2) Main factors of concern:

Quality attributes such as usability, modifiable, efficiency, security, testability;

Project environment, including development environment, business environment, technical environment, business objectives.

In order to achieve these goals, the architecture is required to meet simplicity, consistency, and robustness.

3) Main methods and technologies:

1. Method: 4+1 View, scene driven, architecture style

2. Technology: module representation can be box-line, formal language (ADL, Schema description Language) UML (4+1 view mode is implemented using UML technology)

4) Final product:

Architecture Design


3.2 Middle Design 1) starting point:

Module division, hiding some of the program fragments (data structure and algorithm) Implementation details, exposing the interface and the outside world. can be used repeatedly. Modularity to be as independent as possible, the internal cohesion of the module is high, and the coupling between the module and the external level is low

2) Main factors of concern:

Simplicity (easy to develop, easy to modify, easy to reuse), observable (seemingly "clearly correct", easy to develop, easy to debug, easy to maintain). Goal – Complete independence – understanding use and reuse development modifications

3) Main methods and technologies:

1. Low coupling (minimizes the relationship between modules), high cohesion (maximizes the connection between elements within the module)

2. Information hiding, a module only encapsulates a secret (the main secret is the demand decision, the secondary secret is to modify the decision), give the interface to modify the part, hide the implementation details of the part to be modified

3. Combining the methods of modularization and information hiding, coupled with the encapsulation, inheritance, polymorphism and other technologies, the object-oriented design

4) Final product:

Module and class structure


3.3 Low-level design 1) starting point:

The basic language units (types and statements) are organized to establish high-quality data structures and algorithms (the data structure is reasonable and easy to use, the algorithm is reliable, efficient and easy to read). Implementation details of complex data structures and algorithms in the shielding program

2) Main factors of concern:

Data structures and algorithms are concise (readable), rugged (reliable, easy to maintain).

3) Main methods and technologies:

Defensive programming, assertion programming, test-driven development, exception handling, profile programming, table-driven programming, state machine-based programming. The first four are about reliability, and the next three are about data structures that bring legibility.

4) Final product:

Algorithms and data structures, single functions. source program, Middle level, bottom share detailed design documentation




Design Fundamentals of Architecture

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.