1. Concepts, methodologies, practical steps
Design refers to the process of designing the technology of a product from coarse to fine according to the result of requirement development. According to the design granularity and the different purpose can divide the design into the outline design, the detailed design and so on the stage to be easy to manage and to ensure the quality. The design content should also be defined according to the actual situation of the software system, for example, the system with high interaction requirements can have visual design and so on.
In general, the design phase can be divided into a summary design, detailed design 2 stages of management, program design can be combined with project management, assignment, development team capacity and quality requirements and other factors to determine whether as a separate phase of management.
N Summary Design : Define the work product technical function, technology framework, define the design criteria and common treatment policy, break down the function module, define function and business process of each function module, define the interface relationship between modules. Typical work products are "Summary design book", "Design Guidelines" and "common treatment policy". Generally include the system technical framework, function at a glance, function migration diagram, database logic design, data file logical definition, System units function module and interface definition, design guidelines and common treatment policy (appearance, operation, error handling, log, prompt information, exception handling, naming protocol, code rules, etc.) and other content.
N Detailed design: Define the detailed implementation of the functional units of each function module, including the physical definition of the interface, and the physical definition of the database/data file. Typical work Product: "Detailed design book". Typical content includes the detailed description of the function unit implementation of each module, database physical design, data file physical definition, interface physical definition, status code physical design, output information (Msg/log) design and other content.
Programming: A combination of specific coding language, coding process in the design of the code. Based on experience for a large number of beginners in the team, a certain amount of programming can improve the quality and efficiency of the coding.
2. Main processes in the design phase
The main activities in the design phase include the following : Planning or planning during the design phase, defining the design criteria, designing and designing the design documentation, and reviewing the design product.
1. The planning or planning content of the design phase determines the organization of the design team and authorizes, assesses the workload in the design phase, clearly designed work tasks (WBS decomposition), and the completion time, the definition of quality standards in the design phase, and the efficiency criteria. This part of the activity is mainly PDCA in the first step, in addition to the above content, but also need to consider some of the project management of common management planning, such as risk management, configuration management, stakeholder management, change management, decision analysis management and so on. Working on a multi-person or team job, making reasonable plans and planning is the first step.
2. Design different types of systems and their design methods, methods and so there is a great difference, compared with the management system such as processing system, monitoring system and ERP, the difference is obvious. Therefore, the design phase has a key activity is to determine the design criteria, the main purpose of this activity is based on the actual situation of the system, choose the best practice, with the best method to guide the design. The design guidelines usually include: design content, methods, tools, templates, naming conventions, module partitioning rules (especially design granularity), quality and efficiency assessment methods, and so on.
3. Design and Design documentation : Perform design tasks and design documentation based on design guidelines and design planning most of the time is not a complex task, but it is an iterative process of digesting a lot of times for software systems. We need to understand, learn, iterate and spend a lot of time from discussing design ideas, forming preliminary drafts, fully communicating, making decisions, revising, and reviewing. The design of software system is the main method of design regardless of the form, layering, abstraction, generalization and summarization. Layering and abstraction are the most critical steps, but also relatively difficult to master, regardless of the hierarchy and abstraction from the beginning of the classification, such as functional classification, business classification, information classification, control mode classification and so on, as long as the layer can be categorized easily layered and abstract. In addition, induction, summary is a common method, but also manual work, as long as careful and meticulous can be done well.
4. Design Product review: Review of design products and related communication are the main activities to ensure the quality of design. From the formal, can use a variety of methods, such as design team review,peer review, formal meeting review and so on.
The planning or planning of the main activities during the design phase, the design criteria, design and design documentation, and design product review are iterative processes. Design is essentially a learning iterative process, through continuous review, confirmation, improvement to achieve maturity, so the design of the guarantee means mainly design guidelines and review.
Depending on the specific process of the software project type, there are also some differences in detail, each software development organization can be defined in conjunction with the business characteristics, the following examples describe 2 typical processes.
Example: Software outsourcing Enterprise, the typical process of engineering class (summary design)
Main Features:
ü The process emphasizes the participation of customers, such as the design of the plan, the design of the results of the review.
ü Emphasize quality control of key processes, such as the results of system architectures.
ü Grade control of projects with different scale, technology, quality and schedule requirements.
3.1 Develop and revise the project plan
• The project Manager formulates the outline design plan according to the project plan specification, clarifies the work tasks and the completion time of the design management team, and informs the relevant parties to confirm.
• The project is in progress to adjust or re-establish the detailed schedule of the outline design in a timely manner, based on the changes in the given requirements and the tracking results of the actual progress of the summary design.
• revise the plan and agree with the customer, as necessary, based on the progress of the outline design.
Note: agreement with the customer is the core of the outsourcing, the plan and the core content and the customer agree is very important.
• Project Outline design plans are incorporated into the project plan.
3.2 Determining system architecture and Outline design guidelines
• Determine system architecture
A. For Category A andB projects
? Start DAR (see decision analysis Procedures) to analyze risk, cost, schedule constraints, technology, quality requirements, decide whether to purchase commercial components, or reuse existing artifacts. If you confirm that you need to purchase, please refer to the Supplier Contract management regulations.
? According to the company personnel situation, project business characteristics, performance data volume requirements, reliability requirements, cost, efficiency, risk and other aspects of the content of a variety of system architecture assessment, and finally select the appropriate system architecture for the project.
? Output refer to the output of the decision analysis procedures.
B. For non- category A andB projects
? Design Management Group According to the company personnel situation, project business characteristics, performance data volume requirements, reliability requirements, cost, efficiency, risk and other aspects of the evaluation of a variety of system architecture, and finally select the appropriate system architecture for the project.
If a user has a different requirement for a general project or a structure that is unfamiliar to the company, the Development Technology (Environment ) group needs to produce a prototype of the project to validate the technical architecture and ensure its correctness.
Note: According to the different workload, technology, quality, schedule requirements, team size and other identification of the project classification, and the summary design of the key control points (architecture) for different control.
• define outline design Guidelines
? The design Management Group determines the project outline design criteria According to the project situation, which usually includes the method of project outline design, the tools used in the project outline design, and some templates used in the summary design results.
? Design (style ) management group defines various policies, each unit function module design should follow the defined policies.
? Commonly defined guidelines include: operations, error handling, logging, prompting information, exception handling, naming conventions, and more.
? All of the defined processing policies need to be documented for configuration management.
? form the outline design guidelines for all the content defined.
3.3 Design Business functions
• The design Management Group uses various methods to refine (including splitting, merging, grouping, and so on) the business components defined in the system requirements definition book, and to assign the requirements to the business components or functional modules of these segments.
Design Management Group according to the various processing policies, the functions of the units and functional modules of the appearance, data item definition, function summary, data processing flow, operation method, each function component or function module interface and parameters are designed.
• define the interface and parameters of each function and function module, and each designer must verify the consistency of its interface.
• Add the above content to the description of the system architecture and form the "Summary design book".
• The design Management Group fills in the requirements tracking matrix with the content of the outline design in accordance with its and requirements.
• database logic design.
3.4 Review System Overview Design
• the project manager organizes the project review Expert group to review the results of the summary design (see review procedures). The issues identified in the review should be reflected in the summary Design review report. After the review is complete, the development manager (PJL) tracks these issues until the issue is corrected.
• upon completion of the review, the Project review panel will produce a summary design review report based on the findings of the review and report to the project manager (PM).
3.5 Confirm Summary Design
• The project manager (PM) obtains the customer's approval for the summary design book after the summary design review is passed.
Note: The summary design results in the software outsourcing generally also need the customer's review, this is also the main method of shielding risk of the project, but different customer technical level is not the same, but also according to the actual situation to judge.
3.6 Inclusion in Baseline management
• the outline design guidelines, the summary design book, and the demand tracking matrix should be included in the baseline management after the review
• All documents generated by this procedure are subject to configuration management (see Configuration management Procedures). The resulting documentation typically includes:
? "Outline Design Guidelines"
? "Summary Design Book"
? "Summary Design Review report"
Case 2: A typical process for a software PRODUCT class
Main Features:
ü Process emphasizes interaction design
U emphasize the management of design policy.
ü A clear specification of the design content
3.1 Plan Preparation
Product Development Manager In accordance with the "Development of detailed time plan" refinement of the design work, the preparation of "system design plan." After confirmation by the relevant personnel, submit the product team manager to review and approve the post-release plan.
The product team manager should incorporate the system design plan into the development detail time plan in a timely manner.
3.2 Design Guidelines determine
The system design team determines the design criteria according to the project situation. Guidelines usually include: The method of design, the tools used in the design, the templates used in the design of the product, etc.
The system design team formulates a variety of design policies that follow defined guidelines in the design process.
3.2.1 Outline Design Guidelines
The outline design policy usually includes: function module naming protocol, function module operation, error handling, exception handling, prompt information display, log record, etc.
System Design Group summary Design Guidelines form the outline design guidelines.
3.2.2 Detailed Design Guidelines
Detailed design guidelines usually include: class and method naming conventions, method input parameters of the order, method output parameter format, prompt information output format, method level log output format and so on.
The system Design Group summarizes detailed design guidelines to form the detailed design guidelines.
3.2.3 Design Criteria Review
Product development manager should organize resources to review the outline design guidelines, detailed design guidelines, and after the review, configuration management by the configuration group.
3.3 Overview Design
3.3.1 "Summary Design Book" compilation
The outline design book should contain the following elements:
? System Architecture Design
? According to the product's business characteristics, performance requirements, reliability requirements, cost and other aspects of product use of the technical platform and software and hardware architecture, put forward a variety of candidate programs;
? The content of the scheme should include: the software and hardware technology platform and related technology list, the physical structure of the system, the type of the physical device, the type of database management system, the type of the server, the subsystem partition and deployment method, the system architecture, the third party software platform list, etc.
? Function Module Design
? According to the definition of "product specification", combined with the domain knowledge of products, by splitting, merging, grouping and other methods, the functions of the products are divided into subsystems, and refined to the functional modules and functions;
? System interface Design
? The interface is mainly used for various interactions between subsystem/module or internal system and external system.
? Interface design should be based on the formulation of various policies, combined with business characteristics, and the use of appropriate design methods;
? The content of interface design should include: Name of interface, function description, definition of input and output of interface, use method of interface, data processing flow of interface, data structure definition of input and output, exception handling mechanism, error handling mechanism, logging method and format, etc.
? Database design
? According to the complexity of the business and the needs of the design implementation, the core and important data generation data dictionary, for the complex operation process, the appropriate process description;
? Complete the logical design of core and important library tables;
3.3.2 "Summary Design Book" Review
The product development Manager organizes relevant stakeholders to review the summary design book. After the review is passed, configuration management is performed by the configuration group.
3.4 Visual Design
? The main work of visual design is the design of high fidelity visual effect based on the design of the minimum Fidelity prototype.
? The main content of visual design is to grasp the overall style, including page color, element appearance, and map;
Note: Emphasis on the visual design in the interactive design, as a separate work content management.
3.5 Detailed design
3.5.1 "Detailed design book" compilation
The detailed design book should contain the following elements:
? Module interface Design
? For the persistence of the file design, the design of the content should include : file location, file name, content encoding, content structure, read and write control mechanism;
? In the design of persistent memory data, the design content should include the storage format of data, the cache refresh mechanism of data, the time and method of reading and writing data, etc.
? Physical design of the database. The content of the design should include: table, view, stored procedure and so on;
? module function Design
? Design the namespace of the module /submodule. such as the design of the package structure of the source code;
? Design the internal function flow of module/sub-module, subdivide function and responsibility into specific class;
? The properties and methods of the core classes are designed;
? The algorithm is designed for complex computation.
? Common function Design
? Detailed design of exceptions, errors, messages and logs;
? Design the memory management, thread management and so on;
? The system performance such as: compressive resistance, throughput, response speed, security, etc. are designed;
3.5.2 "Detailed Design book" Review
The product development Manager organizes relevant stakeholders to review the detailed design book. After the review is passed, configuration management is performed by the configuration group.
3.6 Front-end design
? Front-end design refers to the visual design results, CSS,HTML,JS encoding;
? The main work of front-end design is: Hypertext structure design, style design, interactive effect realization, browser compatible design, page performance optimization;
Note: Emphasis on the visual design in the interactive design, as a separate work content management.
Overview design, detailed design (i) concepts, methods, practical steps