Source: http://www.writly.cn/index.php? Title = % E5 % a6 % 82% E4 % BD % 95% E7 % BC % 96% E5 % 86% 99% E9 % AB % 98% E8 % B4 % A8 % E9 % 87% 8f % E7 % 9A % 84% E9 % 9C % 80% E6 % B1 % 82
Project management assurance
The main goal of project management is to ensure that the project is completed with high quality within the specified time. Project management includes the configuration of the personnel structure, the implementation strategy of quality control, and the preparation of internal documents and product documents at various stages of project team development.
The development project is produced in accordance with the standardized software production method, and the production process adopts the ISO9000 standard. Project development participants include project managers, project owners, field experts, system analysts, programmers, test groups, technical support departments, quality supervision groups, and document groups. The following describes the main responsibilities of each role.
[Edit] Project Manager
It is mainly responsible for the business contact and development cooperation with the customer during the development and maintenance of the project developer, including signing the project contract and submitting the Development Plan to the customer; organize customers and analysts to determine requirements; Organize customers' periodic acceptance; coordinate with customers to propose
[Edit] Field Expert
The main responsibility is to coordinate system analysts to recognize the domain boundaries and determine the domain content. Experts in the field can be employed by customers or developers. In the development process, field experts mainly participate in System Requirement Analysis. After clarifying the main tasks to be completed by the system in the future, the responsibilities of field experts are determined by the System user interface. Two important indicators that the developed system can be accepted by the customer are system correctness, that is, whether the system correctly completes the tasks that the user wants to complete, and the second is the convenience of system operations. Convenience is mainly restricted by the operating habits of customers who use the system. Field experts are often people who have been engaged in this job for many years. Their usage habits will be very helpful to the ease of use of the system. The development mode is affected by the participation of field experts.
[Edit] System Analyst
The system analyst is a thorough person in system development and a mentor in system implementation. Analysts are mainly involved in the demand analysis and system design stages of the development phase (these two stages are not completely separated, but may run through the entire development period due to different development methods ).
First, system analysts and domain experts work together to analyze the domain and determine the domain boundaries and content. After completing this task, the system analyst should submit the system requirements report. The system requirement report is confirmed by field experts and submitted to the quality supervision team for review. After the review is completed, the document team standardizes the documents, archives the documents, and carries out version numbers. At the same time, the standardized system requirement report is forwarded to the customer by the Project Manager for review (the project manager is obligated to review the content format of the system requirement report ).
After the review is completed, the project owner is transferred to the system analyst for update and correction, and the version is upgraded. The report is then transferred through the quality supervision group and document group until the report does not need to be transferred. Next, a major task of the system analyst is to analyze and map fields and construct a system architecture, that is, to design the architecture.
When there are more than one participating system analyst, the analyst Committee should first design the architecture. When the architecture is basically determined, define interfaces between groups, in particular, the areas that require close interfaces in the future need to be defined in detail, including the "communication protocols" between each other, the time and method, and so on. After this work is completed, the architecture design description must be generated. After the "architecture design instructions" are generated, the project owner submits it to the quality supervision team for review. After the review is approved, the document team formats and files the document version numbers. The complete circulation process of architecture design instructions is within the developer, and the customer is not involved.
[Edit] programmer
In order to effectively use the resources of experts in the field, while designing the architecture, the system analyst can guide the programmer to develop the original interface. The original UI is reviewed by field experts. The customer reviews the review after the review is passed. The original form of the interface skips Quality Supervision and is formatted and archived by the document group. Quality Supervision is responsible for understanding and supervising the original changes of the interface. Programmers participate in detailed system design, mainly responsible for system implementation, and provide test resources for the test group. Since the details of the detailed design are difficult to grasp, when programmers are involved, the exchange between system analysts and programmers will help the system development progress. In the later stage of project code production, programmers should conduct corresponding white-box tests. Then, the executable body is submitted to the test group for testing. Detailed system design description is jointly completed by analysts and programmers. The project owner is transferred to the Quality Supervision Group for review. After the review is passed, the document group will format and archive the document.
[Edit] Test Group
Mainly Performs software testing. As mentioned above, programmers have carried out some white-box tests before being handed over to testers. Testers perform a one-to-one test of the functions to be implemented by the software according to the detailed design documents to ensure that the software execution body correctly meets the design requirements, this only proves that the software correctly reflects the design concept, but whether it truly reflects the user's needs still need further testing. After the correctness test is completed, the performance of the software needs to be tested. The performance of the software plays an important role in this project. The performance requirement may change the design of the software, in order to avoid software Rework in the future, testing requires a greater emphasis on performance.
Similarly, the test requires different "inputs" and "outputs" at different stages ". In the correctness test phase, too detailed test plans and Design of test strategies are not required. In performance testing, analysts are required to propose test strategies and test cases. The Quality Supervision Team also proposes test strategies and test cases that they think are necessary, the testing strategy and test cases proposed by the latter are considered as sampling surveys for the former. Both the test strategy and test cases proposed by the former and the latter are organized and implemented by the test group.
[Edit] Quality Supervision Group
The main link to ensure transparent software development. During project development, almost all departments are related to the quality supervision team. The quality supervision team provides the project manager with a report on the differences between the project progress and the real development of the project, and proposes the causes and improvement methods for the differences. When the project progress is delayed or the quality supervision team deems that there is a problem with the development quality at a stage, the project manager, the project owner, and other necessary personnel are requested to hold a quality meeting. Solve existing and potential problems. Quality Supervision is based on document review. Therefore, document version control, especially software configuration management, directly affects the influence and strength of software quality supervision. Document groups are an important guarantee for the implementation of software quality supervision.
The supervision scope of the quality supervision group includes: whether the system analysts correctly reflect the user's needs; whether the software execution body correctly implements the design philosophy of the analysts; whether the tester has conducted a thorough and comprehensive test; whether the document group standardizes the document thoroughly and whether version control is effective;
[Edit] Document Group
It ensures that both internal and external documents are completed at the same time of project development. The timely generation and standardization of internal documents is an important prerequisite for ensuring that project development teams can better interface and communicate with each other, it is also the premise to ensure that the project is not blocked by a key path but delayed. As mentioned above, the document Group serves as the basis for ensuring the effectiveness of the quality supervision group.
The main responsibilities of the document Group include: improving the documentation that each department sends for archiving and version control; controlling documents for one-way access; and controlling all archived documents for version control; write document specifications and deliver them to the development team; write some external documents.
= Technical Support Department =
The existence of the Technical Support Department is to ensure that the software is used by users, to provide users with the most timely technical services, and to ensure the development of new versions of software for project developers. Technical Support Department personnel can conduct software installation, configuration, and correct use training for software users. It can solve various problems caused by improper use of software. The Technical Support Department also monitors software system analysis. Technical support personnel are virtual users in the software development process. That is to say, Technical Support Personnel Act as users before the software is officially submitted to users.
[Edit] guarantee provided by partners
We use Microsoft's Windows platform and Visual Studio as the main development tools for software development. Our company is the largest provider of technical solutions for Microsoft in China. In terms of software development, we can directly obtain the fastest and most comprehensive technical support from Microsoft. On the other hand, the company can quickly get training and consulting for Microsoft's latest enterprise solutions. At the same time, our company is the only general agent of Microsoft press in China, and the company has the most comprehensive written information of Microsoft.
[Edit] project progress assurance
The project progress is the most intuitive manifestation of the project's smooth progress. Obviously, the project development plan is required before the project starts. If the project development plan is completely reasonable, the project progress truly shows the distance between the project and the final delivery, however, it is almost impossible to develop a reasonable project development plan. To ensure the project progress, we must first ensure that the project development plan is as reasonable as possible.
The rationality of a project plan is directly related to the experience of project planners engaged in projects of similar sizes and similar businesses. through experience, it is often possible to anticipate potential obstacles, so as to develop a reasonable project development plan. The company has developed the settlement system of the Ministry of Railways, with six sub-projects under development, lasting 15 months. Currently, most projects have been developed, and some systems have been put into operation for five months, the project amount is tens of millions yuan. In such a project, from managers to developers to testers have accumulated a wealth of experience, especially the formulation of project development plans and project progress control.
The Project Plan divides the entire development cycle into several stages based on milestones. Based on the completion of milestones, adjust the number of tasks in each small phase and the time of tasks completed. This method is very helpful for dynamic adjustment of the entire project plan. It is also conducive to project quality supervision.
A milestone defines the major achievements of a project during development. For example, after requirement analysis, code production, and correctness test, it is defined as a milestone, each milestone must define the method of completion. For example, the requirement analysis is completed as a milestone. The definition of this milestone is: the system requirements description must be confirmed by the customer and archived in the document group. Of course, it is not appropriate to complete the requirement analysis as a milestone, because system development is often accompanied by changing requirements and new requirements. This raises a new question: how to define an appropriate milestone and how to define the completion of a milestone. Milestones divide the project into several smaller segments. By ensuring the smooth completion of each segment, the entire project can be successfully completed. At the same time, the completion quality of each segment can be used to measure the quality of the entire project. At the same time, milestones ensure that the product dependencies at various stages are as small as possible, and complete documents are one of the important marks of milestone completion. Under the control of milestones and complete documents, the completed phases of the project are protected. Any time, personnel changes, or even developer changes, will not cause significant losses, with complete documentation, the original results can be continued for development.
[Edit] project development method guarantees Project Quality
The project development method also has a great impact on the quality and completion of the project on time.
The object-oriented development method is conducive to in-depth understanding of the problem field, and also to ing the problem space to the solution space to obtain a more ideal and complete system model. At the same time, object-oriented development methods and implementation methods are also conducive to system errors being limited to a small scope, without the card effect. Object-Oriented development methods also have disadvantages. Developers are less familiar with it than traditional structured development methods. The newly-appeared nouns in the object-oriented model need to be redefined in the development team so that they can be more accurate to each other during the development process, thus reducing the amount of communication between the development team. The decrease in the number of communications means an increase in efficiency, reducing the time it takes for developers to discuss a "problem" that is fundamentally consistent with each other. The Software Architecture defines the way in which the relationship between specific objects in the field will inevitably occur. This occurs when the relationships defined between abstract classes in the architecture are solidified in the component, when developing an application system, developers do not have to write code for defining this interaction method, which lays a solid foundation for system maintenance in the future, it also provides a favorable guarantee for transparent upgrade of new versions of software in the future and to maintain compatibility and correctness. With the Object-oriented Inheritance feature, function modules can be replaced without harming the original system, so as to replace the original modules with more efficient modules. from another perspective, the configuration function of the software module is also implemented. To implement real plug-and-play of software modules, you also need to take advantage of another object-oriented advantage-component.
Object-oriented means that object-oriented classes or objects can be stored and called in a language-independent binary mode. This is the COM technology. Obviously, the basis of software architecture implementation is the COM component. Because COM is stored in binary format, it can be called by software written in any language. The component is separated from the system and is only transferred to the memory for execution when a system call occurs. This ensures a higher level of plug-and-play in the system.
Given so many benefits, it is worthwhile to use object-oriented technology to develop the project.
The following methods are used to overcome the above-mentioned object-oriented unfavorable factors: first, before system development, define technical terms and then domain terms, in this way, developers can communicate with each other in the same language during the development process, avoiding the lack of discussion or debate. 2. specify technical specifications. In the same way, we only allow those technologies within the technical specifications. Technical specifications define a number of object technologies, which are learned in a unified understanding across the development team.
Development strategies are strategic considerations for different development technologies and problem fields. Obviously, development strategies are closely related to the development methods, implementation technologies, and characteristics of problem fields. Generally speaking, considering the "seamless" feature of the object-oriented model, the prototype method is more appropriate, while the development process adopts the spiral development method. The spiral development method improves the utilization of personnel, overlaps the local stages of software development, and forms multi-channel pipeline overlapping and parallel on the whole. Obviously, this shortens the overall development cycle.
Quality assurance for each stage of project development
[Edit] Requirement Analysis
Requirement Analysis is a process in which developers Define what the system needs and how to do it. From the experience of system analysis, this process is often a step-by-step process, and it is difficult to form a complete understanding of the system at one time. Only by constantly communicating and confirming with the customer's field experts can we gradually understand the user's needs. It is learned from the system development process that the errors made during system analysis will be multiplied in the following phases, the more expensive the error is to correct the analysis, the more time it affects the system duration and system quality. At the same time, it is unrealistic to announce that the demand analysis has been completed at a certain time point and no further requirement analysis is required. Experience tells us that during testing, we often find that what users really want is not what you think. On the other hand, users often know that they certainly do not need anything, but cannot clearly tell them what they need. In the face of these facts, we cannot expect to change users. For example, we can improve the "communication" capability between users and analysts so that what they say can be better understood by analysts. The only practice is to use a certain method to induce users to express their needs as early as possible and complete the expression.
In a project, we have two aspects: first, invite field experts to participate in the early stages of system development, and second, develop the original system, the prototype includes the functional prototype and the user interface prototype. It can also be a combination of the two prototype to confirm the user's needs. In the early stages of development, the involvement of field experts ensures that the analysts have sufficient time to fully communicate and confirm with the field experts. At this stage, the prototype may be confirmed by domain experts before it is submitted to users. This ensures that the degree of acceptance of the prototype and the time consumed by the process are as short as possible, this ensures the quality while improving the efficiency.
There are three other assurance measures within the development team: the system analysis board ensures system analysis and brainstorming; the quality supervision team supervises the analysis; and the technical support personnel participate in the demand research.
The significance of the Committee is that any analyst must pass the joint consideration of the Committee before submitting the analysis statement for the part analyzed by it, the members of the Committee questioned others' analysis reports based on their own analytical experience and the part they analyzed. After such consideration, the inter-related parts were clearly defined, avoiding a serious System gap or system overlap during later integration due to "negligence.
The quality supervision team should propose a supervision plan at any stage of the project. Allocate resources according to the supervision plan to ensure the development quality at a certain stage. The supervision plan in the analysis phase will be known by the Project Manager, Project Leader, system analyst, and technical support before the analysis tasks are performed. To ensure that the analysis work is carried out with high quality while the analysis work is not overly disturbed, the quality supervision team reviews the system analysis report, A quality review meeting is held only when it is deemed necessary. The main participants of the quality review meeting are the project manager, Project Leader, analysts, and quality supervision team lead. The main topic of the meeting is to raise quality questions and give improvement suggestions. Check whether there are quality problems and whether improvement is required, which will not be discussed in the meeting. This ensures that the number of participants in the meeting is small and the meeting time is as short as possible.
Through the responsibilities of technical support, we can find that the participation of technical support in analysis and research is conducive to the supervision of the analysis work. After obtaining the oral expression of user requirements, it helps technical support better play the role of "user" in the development stage. Technical support has a considerable background in computer technology. In the subsequent development process, it will be able to play a good supervisory role and lay the foundation for future maintenance and providing better services for users.
[Edit] System Design
A good architecture should be scalable and configurable. The implementation of these two factors is achieved through the application of Windows DNA, which will not be repeated here, as described in the proposal.
[Edit] Implementation
Implementation is the code production process. From the design structure diagram, we can see that the production categories include class production, component production, component production, application system integration, and production of various test cases. To improve the quality of production, we divide the production program personnel into two groups based on their functions, namely, production of test cases and production of test cases. That is to say, if a programmer produces a certain component, the programmer can no longer produce the test cases of other components. In this way, cross-production is easier to find component problems. The tester tests component indicators according to Test Cases and submits test reports.
With the continuous development of production, the production of components is decreasing, and the production of components is gradually increasing. The production of components is also a test of components. Therefore, it is very important to describe the component implementation document, which may become a bottleneck hindering further production. Document groups are important in the production process to enrich and standardize documents of various components, and to control versions at the same time. Whether the documents are complete or not has a crucial impact on the project progress in the later stages of development. Documents are the only means to share the previous development results. According to the architecture of the application system described in the previous section, each step is constrained by the previous step.
In order to control the reciprocating operation in the system development process, there will be no major mistakes or repeated flood. Document group and Quality Supervision Group collaborate to complete configuration management of software development.
The purpose of Software Configuration Management is to control "changes" in the software development process. Such changes may be caused by external changes, such as changes in requirements. It may also come from internal changes, such as the fact that a part of the early design is incomplete and needs to be modified. To control these changes, the change-caused fluctuations should be controlled within a limited range. The configuration management model is as follows:
A configuration item is any document unit that requires control. It may be a requirement description report or a point in the Requirement Description report. The internal configuration items to be controlled in this project include the requirement report, design report, component code, Component Interface document, component and component-related documents. The external configuration items include the project plan and user manual, system installation instructions and system configuration instructions.
A complete description of the Software Configuration Management process.
It can be seen that before the document is submitted to the Development Team, the document can be modified "arbitrarily" within the development team. However, once the document is submitted, the relevant departments will be transferred, to maintain the quality of documents. Therefore, to ensure work efficiency, the development team must exercise caution before submitting documents to avoid unnecessary workload increase. From another point of view, the Development Department is under strict supervision, which ensures that all stages of development are transparent to the entire development process and avoids the paralysis or obstruction of the entire development for personal reasons. The Project Manager can report the progress and quality of the project development through the quality supervision report, which provides a favorable basis for adjusting the development plan.
Obviously, the internal process of the Development Department is under very limited supervision in the configuration management process. The role of configuration management is fully based on the document. When the project progress is very tight, the Development Department may spend very little time writing documents. In this case, the quality supervision team and the document team shoulder the need to enrich and improve the documents provided by the Development Department, this reduces the time for the Development Department to write documents. Of course, this is at the cost of increasing the oral communication between the quality supervision team and the Development Department.
[Edit] Test
The work of the test group is divided into several stages. The Division of different stages aims at ensuring different indicators of software quality.
The software testing indicators include: Software correctness: Correctness testing mainly tests whether software functions are correctly implemented. The testing method is to check whether a given output exists according to the specified input according to the functional requirements. Whether the output is abnormal during non-standard input. On the one hand, test whether the software functions are implemented and whether the functions are complete.
Performance indicators: This project has different performance requirements for software projects. Performance testing usually includes stress testing, attack testing, and other tests. What are the limits that the software can bear? Generally, the performance of the software should be higher than the user's requirements, various indicators should also be understood by users.
Ease of use: the software UI should be designed and implemented to make it different from the function implementation. The reason is that ease of use is achieved through a friendly interface. However, it is very difficult for developers to determine whether the software is easy to use from the user's perspective. When determining the user interface, it is often necessary to make repeated modifications, it can only be proposed before the final delivery of the software or after a period of time by the user. In view of this characteristic, the software has made corresponding assurance measures at different stages of development. For example, when defining the software requirements, ask the field experts to participate in the software design phase, let the implementation of functions be included in the software components as much as possible, that is, the underlying implementation without interface requirements. The implementation of the interface only depends on a data interface. The interface is only responsible for sending user input data to the specified data block, and the data displayed is also extracted from the specified data block, you only need to ensure that the data block is mutually exclusive. With such a design structure, the ease of use of the software is quite easy to guarantee. When a usability problem is found in the test, the software will not hurt the bones and muscles, and the modification of the skin is always very easy.
The role of the tester is also gradually transferred from development to user.
There are two very important problems in the test. First, the test results reflect the quality of the software. Generally speaking, if the number of errors measured by the test is the convergence condition, the test itself should be comprehensive and in-depth enough. Second, feedback on test results. The test report is a form of formal written feedback on the test results. The test report should be reviewed by the quality supervision team and collected statistics. A part of the quality supervision report should be formed and submitted to the project manager and the project development team lead. At the same time, the test reports and test statistical reports generated by the test group should also be archived to track the quality progress of the software. This is also an important basis for software version numbers.
[Edit] Document Maintenance
Document maintenance is mainly performed by document groups. Documents are divided into internal documents and external documents in terms of usage.
Internal documents include: Project Development Plan; Requirement Analysis; architecture design description; Detailed design description; Component index; Component Composition description; Component Interface and call description; Component index; component Interface and call description; class index; Class Attribute and method description; test report; test statistical report; quality supervision report; source code; Document Classification Version index; software installation package file.
External documents mainly include: Software Installation manual, software operation manual, online help, system performance indicator report, and system operation index.
The importance of the document has been mentioned many times in the previous chapter. It is still difficult to solve how to ensure the comprehensiveness of documents so that they can guarantee the project progress without delaying the project progress because of the document writing. To solve this problem, the core is still a "degree" problem. During the development of this project, a very important task of the document group is to write document specifications and document templates. When a document template is available, only "fill in" is left for the person who needs to write the document. In a sense, the speed of writing the document will be faster. If the person who writes the document thinks that the more detailed part of the document can be completed by others, the document will be handed over to others, but the document is not officially submitted at this time, after others have completed the writing, they must be reviewed by the document's initial author. After the review is passed, they can be formally submitted and enter the Software Configuration Management Cycle.
The core task of a document group is to organize and manage documents. Depending on the document, the document sources are also different. Some of them are transferred to the document group after review by the quality supervision group, and some directly go from the document source to the document group. Document management is a very cumbersome task, but in the long run, it not only reduces the project development dependency on a single major person, thus reducing the risks brought by the flow of personnel to the project, more importantly, it plays a role in boosting the project when the project reaches 10 percent. From the past experiences of large projects, writing documents in the early stages of project development may make the project progress a little slower than not writing documents. However, as the project progresses, various departments need to cooperate more and more, developers need to know the development ideas and processes of other personnel to advance their development. An obvious example is system integration, or when some links are built on the basis of other links, the accuracy and efficiency of document communication are more obvious.
[Edit] System Maintenance Guarantee
For this project, software maintenance is mainly completed by the company's technical support department. The role of technical support in the company has been described in Chapter 1. Here, we need to reiterate that in our company, the technical support task is to ensure the tracking service for the project customers, on the other hand, developers of the project are freed from the project as soon as possible to be put into the development of the next project. Therefore, technical support personnel are required to intervene in the project at the beginning of the project, and keep track of projects during the development process, especially the communication with customers during development. They must participate. In addition, they also need to understand the software code and make certain modifications to non-core code, at least to accurately locate errors, so that the company can correct the error as quickly as possible. All General errors, such as improper operations, are handled by the Technical Support Department.
The Technical Support Department staff follow up on projects. When a project has just been delivered to users, a large number of people in the Technical Support Department will follow up. As the software becomes stable, the number of people who follow up will be gradually reduced and transferred to other projects.