Tags: training management Info Basic learning Rights Management DLL relative custom controlFirst, the outset
in the early stages of our architecture preparation phase and requirements analysis this piece we wrote 2 articles HRMS (Human resources management System)-from single-machine applications to SaaS applications-architecture analysis (functional, non-functional, critical constraints)-Previous "" HRMS (Human resources management System)-from single-machine applications to SaaS applications-architecture analysis (functional, non-functional, critical constraints)-Next content to expand the description.
This article explains in detail the architectural design process of the outline of the design of the main points to communicate with you to learn how to strengthen the outline of the structure design in the design of the role of architecture, help us quickly identify the direction of the architecture and the core framework.
before elaborating on a specific outline of how to work, please refer to our limited business scenario:
1, the introduction of HRMS system? (What features are covered?) What are the values and roles? What's the industry? )
Please read the HRMS (Human Resource management System)-from stand-alone applications to SaaS applications-System Introduction "
2, the content of this chapter will revolve around 4 kinds of enterprise representative business scenario, (distinguish different scale enterprise's concern point, the scale will decide the system design plan)
This article will focus on the 4 types of enterprise representatives to explain the needs and applications of different scale enterprises for HRMS
3. What are the responsibilities and core competencies of the architect in designing the system?
Please read the System Architecture Series-Introduction "I. about the outline architecture phase 1.1. Definition of Outline Architecture
Conceptual architecture is the initial conception of system design, which is to determine the most critical design elements and interaction mechanism of the system, then consider the specific technology application and design the actual architecture. Conceptual framework stage concentrating on the overall situation, informal, not overly concerned about the design implementation of the details.
Features of the outline architecture phase:
Meet the basic definition of "schema = component + interaction" (all schemas cannot escape the pattern)
The "responsibility" of high-level components is broadly defined and the relationship between high-level components is given.
? Interface details should not be involved
Before you talk about specific outline architecture design practices, consider the following questions:
1.2, the industry status quo 1.2.1, mistakenly will "outline structure" equivalent to "ideal architecture"
? Why is the architecture of different systems different?
? in architecture design, when should we establish the different direction of the architecture? (function, quality, constraints
1.2.2, mistakenly put "stage" as "View"
Architecture design is functional demand-driven, right?
Schema design is a use case-driven, right?
Actually the driving force of Architecture Design: function + quality + constraint
1.3. Main work content and target
is the outline architecture phase or conceptual view?
The stage reflects the relationship of succession, and the view reflects the relationship
Outline architecture phase creates stable high-level architecture design results based on critical needs, special needs, and high risk requirements
The conceptual architecture is an architectural design phase that must precede the elaboration of the architecture design phase to address significant requirements, feature requirements, high-risk requirements, and document-based high-level architecture design results.
Significant needs shape the conceptual architecture, where the critical requirements cover the key elements of 3 types of requirements such as functionality, quality, and constraints.
Designing a conceptual architecture with only functional requirements in mind will result in a conceptual architecture becoming an "idealized architecture", a fragile architecture that will soon be under the pressure of "big changes" or even a direct result of project failure.Ii. what is the methodology and scientific practice process of the outline architecture phase?
The whole can be divided into 3 stages:
2.1.The goal of the preliminary design is to discover the responsibility and use the principle of "responsibility cooperation chain" to draw a robust graph.
1, through the robust diagram: The initial design of the goal is to find responsibility, the use of "responsibility of the cooperative chain" principle of drawing a robust diagram
2, high-level segmentation: The use of mature experience and methodology, combined with scenarios to select the appropriate architecture model to determine the hierarchical relationship of the system
3, Challenge Drive: Consider non-functional requirements to continuously drive the outline architecture design process.
Three objects of the robust graph:
Preliminary Design Principles
The boundary object models the interaction between the simulated external environment and the future system. The bounding object is responsible for receiving external input, handling interpretation of internal content, and expressing or passing the corresponding results.
The control object encapsulates the behavior and describes the control behavior of the event flow in the use case.
The entity object describes the information, which often comes from the domain concept and has a good correspondence with the objects in the domain model.
The objective of the preliminary design is to "discover responsibilities" and lay the foundation for high-level segmentation.
The preliminary design is "not" necessary, but it is strongly recommended to have a preliminary design when the "to-be-designed system" does not have much direct experience with the architect.
? Preliminary design based on key functions (not all functions), with robust graphs (rather than sequence diagrams, Sequence diagram too details)
For the differences between these objects, refer to the HRMS (Human resources management System)-from single-machine applications to SaaS applications-architectural analysis (functional, non-functional, critical constraints)-the basic usage description of the robust graphs described in the previous article. Later this article will be used directly without repeating the specific usage.
When you see the robust graph found in the robust graph also has the entity, the control and the boundary object, how so similar to the web system to use the MVC pattern, then we compare these 2 pattern similarities and differences in here:
from the above comparison, we found that the robust graph can more fully reflect the content of the architecture design process, the individual schema mode more emphasis on some of the architectural hierarchy, such as the logical architecture to take the MVC pattern.2.2, high-level segmentation (conceptual framework formation of the specific operation method)
1), Direct layering
2), first divided into subsystems, and then for each subsystem layered
For high-level segmentation, we can take a phased approach to the ground practice:
1, the Direct division of the hierarchy: directly divides the system into multiple levels, combing clear the relationship between the various levels
2, divided into 2 stages: first divided into a number of subsystems, and then comb the level of the subsystem, comb clear the hierarchical relationship of the lattice system
For the introduction of layered mode, we share several types of partitioning patterns and methods:
2.2.1, layer: logical layer
1, Logic Layer: The logic layer, the upper level use the lower concept; not concerned about the physical division, nor the universality
2, the physical layer: distributed deployment on different machines
3, Universal layering: More versatility, the level of the more down
Layer : The logical level, the upper use of the underlying concept, not focus on the physical division, but also do not pay attention to universality. Layer is the form of logically organized code. such as the representation layer in the logical hierarchy, the service layer, the business layer, the domain layer, they are the software function to divide. Does not refer to the deployment on that specific server or physical location.
Multilayer Layer Schema mode
such as our common three-tier architecture pattern, three-tier architecture (3-tier architecture) A typical three-tier architecture is the division of the entire business application into the interface layer (User Interface layer), the business logic layer, the data access layer Access layer). The purpose of distinguishing hierarchy is to " cohesion and low coupling " thought. In the design of software architecture, layered structure is the most common and most important structure. Microsoft's recommended layered structure is generally divided into three tiers, from bottom to top: The data access layer, the business logic layer (or also called the domain layer), the presentation layer.
The logical hierarchy of architectures can help us to solve the logical coupling, achieve flexible configuration, migration. a good logical layering can bring:
2.2.2, Tier: Physical layerTier: Physical layer, each layer is deployed on different machines, tier this refers to the specific location of the code to run the deployment, is a physical level is zoned, tier refers to the logical layers layer specific run location. So the logical layer can be deployed or migrated at different physical layers, and a physical layer can be deployed to run multiple logical tiers.
A, logical organization Code/code logic clarity
B, easy maintenance (maintainability)
C, better reuse of code (reusability)
D. Better team development experience (development process support)
tier refers to where code runs, multiple layers can run on the same tier, and different layers can run on different tiers, if the application itself supports this architecture. In the case of the Java EE and the. NET platform, most of the time, the different layers are called directly through a DLL or a jar package reference (for example: the business logic layer needs to reference the data access layer), so when deploying, you can deploy multiple layers on a single server at the same time. Conversely, if the communication calls are implemented by RPC between different layers, you can deploy different layers on different servers, which is also a common decoupling design.
A good physical architecture can bring:
2.2.3, Versatility layeringadopt the Universal layering mode, the principle is more versatility, the level of the more down
A, the performance of the promotion
C, fault tolerance
And the call relation of each layer is top-down, the more generality is higher.
Based on the major functions of the system to shape the high-level framework of the conceptual framework, the process needs to pass through the non-functional requirements such as quality and constraints constantly questioned the initial conceptual framework, and gradually let the concept structure, to meet and support various quality and constraints of the requirements. How to do this we can take the previous space "HRMS (Human resources management System)-from single-machine application to SaaS application-architecture analysis (functional, non-functional, key constraints)-the " target-scene-decision table "described in the previous article.
? Analyze non-functional requirements with the goal-scene-decision table:
Through the analysis of the key quality and constraint content, it gives the concrete scene and the coping strategy, combs out the clear decision table, and presents the scheme in the conceptual framework phase of the fusion decision table, and finally gives the preliminary conceptual framework design.Third, based on the previous analysis of the HRMS system? How do we start?
Combined with the main points of the above-mentioned demand combing, we combine the HRMS system to carry out the application practice, and gradually form the outline architecture design.
A, based on Relationrose to draw a robust graph, determine the boundaries of the system and key content
1), the participants in the analysis system and the application of functional boundaries:
Based on the above we can discover our core function points:
Organization Management: The main realization of the company's organizational structure and change management, the position information and job relations between the management, according to the vacancy of staff staffing, according to the organizational structure of manpower planning, and the personnel cost calculation and management, supporting the creation of the organization chart, organizational structure diagram, etc.
personnel files: The main realization of the staff from the trial, to the dismissal or retirement of the entire process of information management, personnel information change management, to provide a variety of forms, multiple angles of inquiry, statistical analysis means
Labor Contract: provide the management of employee's labor contract signing, alteration, rescission, renewal, labor dispute and economic compensation. can set the trial period, the expiration of the contract automatically prompts as required
Recruitment Management: to achieve from the planning of recruitment positions, the release of recruitment information, the collection of candidates resume, according to the position of the qualification selection staff, management interview results to inform the trial of the whole process of management
Salary and Benefits: The Payroll management system is applicable to all kinds of enterprises, administrative, business and scientific research units, directly integrated attendance, performance assessment and other data, mainly provide payroll accounting, payroll, funding, statistical analysis and other functions. Support the payment of multiple or sub-instalments of wages, support for withholding tax or withholding taxes; payroll support for Bank generation, provide the output of the generation of data functions, but also support cash distribution, provide a money list function. The content of the provision and the rate to be provided can be set up, and the welfare management system provides the functions of extracting and managing the employees ' welfare funds. Mainly include the definition of fund type, set up the conditions of fund extraction, the daily management of the Fund, and provide the corresponding statistical analysis, the daily management of the Fund, including the regular withdrawal of funds, fund replenishment, transfer and so on. In addition, to provide the relevant management authority to submit the relevant report functions
Administration: mainly provide the management of staff attendance, help enterprises to improve the operating system. Mainly include various holiday settings, classes of other settings, related attendance project settings, as well as the shift, overtime, Gongchu, leave management, late leaving the statistics, attendance statistics and so on. Provide interface with all kinds of attendance system, and provide relevant data for payroll management system. Support Notification announcement distribution, support meeting room/vehicle and other resources to book and synchronize calendars, support research and poll questionnaires, support event Management Registration/Registration/statistics, support staff's rewards and punishments management and associate with personnel files, support activities of lottery management, etc.
Training Management: According to the job set-up and performance evaluation results, to determine the necessary training needs, to develop a training plan for staff career development, the training objectives, curriculum content, teaching teachers, time, location, equipment, budget management, training personnel, training results, training costs management
Performance management: through the performance appraisal can evaluate the personnel disposition and the training effect, carries on the reward and punishment encouragement to the staff, provides the basis for the personnel decision. According to the requirements of different positions in knowledge, skills, ability, performance and so on, the system provides a variety of assessment methods, standards, allowing the free setting of assessment projects, the characteristics of employees, behavior, work results, such as qualitative and quantitative evaluation
Configuration Management: in order to enhance the compatibility and flexibility of the system, many system switches and configurations are added to provide support for the subsequent meeting of various scenarios. It needs to have the dynamic classification of configuration items, dynamic additions, modifications and other functions
Rights Management: Universal Rights Management System, supporting the organization, employees, roles, menus, buttons, data and other functions and comprehensive rights management functions of the data
Process Management: provide workflow engine services, support custom forms and processes, and fully support the approval flow in the HRMS system.
Human Resources Planning Analysis: to provide a full range of statistical analysis functions to meet enterprise human resources management and planning, for the follow-up management decision to provide data basis.
2), System boundaries
Based on the above core function points, we can comb out the boundary of the system, including the following aspects:
I, Administrator's system boundaries
Because the Administrator role positioning has been limited, so he needs to have a dedicated operations management background, this background provides functionality and business operators of the background functions and interface is completely different, so need a separate entrance, the functional modules are also different. So we can draw the access way and the boundary when the administrator uses the system.
Ii. System boundaries for HR
The role of HR is responsible for business management, such as the approval link in HR module, they have both business initiated operation and approval link operation, so the usage boundary of HR role will be wider than that of employees. We find that HR needs to have a separate system entry for use and assign them to the corresponding business modules and functions.
III. System boundaries for employees
For employees, the HRMS system only some modules can be operated, such as attendance, reimbursement, performance, viewing and maintenance of personal information, and other information is completed by the HR user can view, so from a convenient point of view, the staff and HR in the business system entrance can be a unified entrance, Restrict access to boundaries with permissions.
Iv. boundaries of company managers
The company's managers compared with the employees have the corresponding business and data management Authority, at the same time will be in the approval flow link to assume the identity of the auditor, many business processes are related to managers, so compared to the staff, the company managers business and Operation authority is larger, more subordinate management business content more, You can also complete the business of employee role operation.
3), Data Objects
I, basic data: The system contains metadata, service management, logs, modules, basic configuration, data dictionary, System Management and other basic data management
II, Business data: covering institutions, employees, HRMS system business and process data, external third-party business linkage data, etc.
III. Other data: covers other types of data such as documents, pictures, videos, data from statistical analysis, data related to interactions or retention with third-party systems, etc. Other data information such as log logs.
B. Division of high-level subsystems
Based on the core requirements of the above robust graph analysis, we give the system's macro architectural outlines, which only consider the user role and responsibility chain, thus forming the above high-level segmentation.
C, The basic principle of quality demand impact architecture: further questioning
In conjunction with the key quality and constraints that we have already combed, please refer to the HRMS (Human resources management System)-from single-machine applications to SaaS applications-architecture analysis (functional, non-functional, key constraints)-next, because of the length of the relationship I will not be detailed list, The following are based on these quality attributes and constraints to further refine the outline architecture:
1), consider the continuous availability and scalability of key quality attributes to derive intermediate results from the outline architecture:
2), consider the interoperability of key quality attributes, and further optimize the intermediate results of the outline architecture:
3), considering high performance, in addition to high load, but also need to consider the static, caching and other performance improvement system:
It's basically a prototype of an outline structure, but it's not enough, and we have one key element that is not analyzed, and that is system constraints, we need to analyze and disassemble the previously defined key constraints into functional or quality requirements:
D. The rationale for analyzing constraints affecting the architecture: direct constraints, conversion to functional or quality requirements
Analyze the contents of the above table, and validate it with the outline architecture given after the last few rounds of analysis to see if these constraints will affect the schema content and then optimize the adjustment:
I, business environment and constraints : for the time being, the above outline architecture can be supported without affecting the current profile schema.
II, the use of environmental constraints: previously developed PC, app-side access mode has taken into account the above scenarios, about multi-language in the application layer details design considerations can be.
III. Development environment constraints: The outline architecture does not involve details, and current constraints do not have a significant impact on the architecture
IV, Technical environment constraints: no impact, the level of detail
E, based on the above several walks, we get a preliminary outline of the structure, basically meet the functional, quality and constraints of the various requirements and scenarios, the following outline of the architectural design diagram.
Iv. Summary of outline of the structure phase
Based on the previous practice of outlining the schema design deduction process, we summarize the 3 core elements of the outline architecture process as follows:
1. First, we need to analyze and find the key functions, quality and constraints in the HRMS system.
2, secondly, the use of robust graphs to find the user, key functions and responsibility chain, the formation of a preliminary sub-system division, the process of the use of high-level segmentation to form a hierarchical structure, constantly through the challenge + solution model, to respond to and improve the quality and constraints of the requirements.
3, finally, through 1, 2 step practice process, the final deduction of a preliminary outline of the structure, for the next refinement of the structure to provide the basis.
We hope that we will provide some help in the process of system architecture design practice through the demonstration of the above example.
For more knowledge of the system architecture, I have established an Exchange group, the relevant information will be the first time in the group to share, welcome everyone into the group to learn from each other Exchange:
Group: (Sweep code Group-limited number of places)
HRMS (Human Resource management System)-saas Architecture Design-Overview Design Practice