Software development is a practical technology, practical technology is to use practical things to do, and there is a tangible output.

How to use the model Mapping Design approach to design? Below is a complete summary of design practices using a virtual project.

Model mapping design

The following is a description of the important steps and methods of model mapping design.

link Design method concerns
A user story Use UserStory to structurally describe the UserStory, what I want to do as [character] in order to achieve [purpose]. Comprehensiveness of user scenarios
Technology story Outside users increase the “technical part” perfect user story, story technology mainly focus on technical constraints should not replace a user story, such as “as information security officer I think [one-way encryption password] to [] prevent user password leak”, the user story + technology formed a complete business scenario description and function. Technical constraints
The domain model Abstract business entities or data models through domain-driven modeling or data modeling methods that should not be fully mapped to database table models. Business variability
The development of architecture Modules, subsystems and systems can be divided based on scenarios and models, and architectural components can be combined with hierarchical architecture and other design methods in this step High cohesion and low coupling
Deployment architecture Combined with the physical environment of the software system, including the host, network, and terminal physical deployment architecture design Advantages and disadvantages of physical hardware
The key process For more complex business processes in business processes, process view is used to refine and determine Complex Service sharing

The business requirements

Using the knowledge of Scrum Agile iterative development as a background, discuss how to design a Scrum Agile project management system. The following figure shows the R&D management process for the Scrum Agile iteration, using this flow chart as the original business requirement.

Scrum Agile development process

A user story

UserStory – As [character], I want [to do] in order to achieve [what purpose]

First, use the UserStory UserStory to abstract the business model from the business requirements as follows.Business models focus on comprehensiveness, not missing user scenarios or technical constraints, and can be analyzed from the perspective of system stakeholder expectations.

Technology story

Technical stories take the same form as user stories, with system-hidden NPCS added to characters

Then, based on the user story, add the system to hide the behavior purpose of NPCS (developers/testers/security personnel/operations personnel, etc.).

scenario Role – Role SO – behavior Purpose of Goal –
The system operational Security personnel The login password is unidirectional encrypted Prevent user passwords from being leaked
The system test The tester Export project product task data interface Automated test use
The system test Research and development personnel Backlog is designed with a display template configuration Compatibility Backlog types added
The system test Operations staff The system normalizes log printing Troubleshoot problems

Note: The above user story and technical story are mainly for design demos, and the logical design is not rigorous

The domain model

Abstract domain model from user story + technical story

The domain model mainly divides the highly cohesive modules or subsystems of the system, focusing on the boundary. Domain-driven Design is an approach to modeling domain models.

The development of architecture

Abstract modules or subsystems that are bounded from the domain model

The development architecture provides for the development of module subsystems and indirectly affects the technical communication between modules. For example, modules in the same Context can call services directly, while modules in different Context should achieve low coupling through aggregation root or message Service invocation.

Deployment architecture

Deployment of the physical world

The basic unit of the deployment architecture is terminal, network, and device, which describes the system deployment mode.

Process view

Process views can be described in UML swimlane diagrams

The process view is mainly aimed at sorting out complex processes for team sharing. In general, only complex processes need to be described using process views.

Note: This process is not complicated and is mainly used for presentation demonstration

conclusion

Architecture design sketchpad

The architecture design palette is a logical description of the model mapping design method. The model mapping design method is a design method that starts from business requirements and professional technology, through the abstract modeling of user story and technical story, maps to the four views of domain model, development architecture, deployment architecture and key process, with non-functional requirement constraints throughout.

recommended

The following only represent the knowledge of relevant directions, and it is recommended to learn relevant knowledge to build systematic professional ability.