Project Management of software engineering

Source: Internet
Author: User

Project Management of software engineering

Software project development is a systematic and complex work, it needs a team to cooperate with each other, the division of Cooperation, project management is under certain constraints, in order to achieve the objectives of the project efficiently, according to the inherent logic of the project to effectively plan, organize, coordinate and control the system management activities. Software project management is a cross discipline of software engineering and project management, and it is the principle and method of project management, and it is applied in the field of software engineering.

1. Process Control

Quality management refers to a series of quality policies, goals and systems formed by an organization on the basis of full participation and in order to meet the quality requirements of the beneficiaries. Software Quality Management is the development of software and production process management, including software project planning, software process tracking and monitoring, software configuration management and software quality assurance, a focus of software quality management is software control, and in view of the impact of process control on software quality management, The software quality control should pay attention to the software development process control, and use this to carry on the software quality management.

1.1 Quality Assurance

International Standards Organization ISO9000 's definition of quality is that quality is the sum of all the features and performance that a product or service uses to meet people's potential or express needs. Software quality control is the development of software and the management of production process. Quality assurance is to provide credit , to prove that the project will meet the relevant quality standards , and the quality system carried out in the planned, organized work activities. It runs through the entire project of the child at all times.

quality assurance is usually provided by a quality assurance department or an organizational unit with a similar name. The quality assurance process (SQA) is defined as the activities required to objectively ensure that the software products and processes conform to the required requirements and the plans established. It consists of guidelines, standards, processes and activities , including :

1) Quality assurance Process established :

includes the establishment of quality objectives , including verification, validation, testing, auditing and quality measurement.

2) activities :

A. implement quality standards, methodologies, procedures and tools for quality assurance activities.

B. procedures for the review and coordination of contractual provisions.

C. procedures for identifying, collecting, documenting, maintaining, and disposing of quality records.

D. resources, timetables and responsibilities for the implementation of quality assurance activities. Product warranty.

E. ensure that all the plans required by the contract are documented and executed.

F. ensure that the software and related documents comply with the contract and comply with the plan.

G. guarantee the delivery of the products and services fully meet the contractual requirements.

3) Process assurance :

A. ensure that the software lifetime process used for this project complies with the contract and complies with the plan.

B. ensure that internal software engineering practices, development environments, test environments are appropriate and compliant with the contract.

C. The requirement to guarantee the product master contract has been given to the sub-contract executor , whose products and services are in accordance with the master.

4) requirements of the contract :

A. ensure that the demand side and other parties receive the required support and collaboration in accordance with contracts, negotiations and plans.

B. ensure complete product and process commissioning in accordance with established standards and procedures.

C. Ensure that training provides the skills and knowledge needed to meet project needs.

5) Quality Improvement :

A. ensure that project stakeholders understand the needs of the quality assurance process , and implement and maintain these requirements.

B. collection and analysis of historical data, technical data and evaluation data. These analyses are used as feedback to achieve improvements.

C. collection, maintenance and use of quality cost data. These data should indicate the predetermined costs and corrective production.

D. The cost of a defect or non-conformance in a product or service.

E. quality assurance is based on the quality management plan as the standard of implementation , The corresponding configuration management, document management and quality review and testing work.

1.2 Configuration Management

    in order to control the system development process of reciprocating, not to produce a major fault and reciprocating flooding, the completion of software development configuration management. The purpose of configuration management is to control the "change" in the software development process, which may be caused externally, such as changes in requirements. may also be from internal changes, such as the early design of a component is not complete, and needs to be modified. In order to control these changes, the fluctuations caused by the fluctuation are controlled as much as possible within a limited range. In many software development projects, project scope management involves three aspects: business requirements, technical structure, and commissioning services. What program modules are written, what functions are implemented, and where they are deployed, is a matter of concern for project scope management, which corresponds to the physical and functional properties of the product and the properties of the service, which can be identified, recorded, and tracked through configuration management. Only by doing a good job in software configuration management, can we really make the scope management of the Project REAL.

Configuration management in order to record, control, report the various properties (configuration items) Change state, this is the configuration management of version management and change management, there are different versions of changes, the version becomes the main object of change control, the two are closely related. in Project scope management, the deliverables of the project need to be identified and controlled to describe the various characteristics that the deliverables should have. These deliverables and their characteristics are configuration items in configuration management. From a project management perspective,the WBS only needs to be decomposed to manageable (Manageable) levels, while configuration management requires that it be decomposed to the extent that it is ultimately operational and that the granularity of management is more granular. Therefore, the good Configuration management mechanism, is the project scope management obtains the final implementation guarantee. in configuration management, each state of each configuration item can be called a version, and the evolution of the configuration item can be expressed as a version tree. And we often say that the version, actually refers to the SOFTWARE product version, not the specific configuration item version. A software product version is made up of a number of configuration items, and each configuration item can select at most one of its versions to form a specific product version. Therefore, when we talk about "version" in peacetime, we need to be clear whether the configuration item version or the SOFTWARE product version, otherwise it is easy to confuse the communication. Since version management is a part of configuration management, the various practical problems encountered in software Product version management need to be placed in the context of configuration management, based on the theory, methods and tools of configuration management to be able to gradually clarify.

2. Organizational model

The organizational structure of a software project group depends on the management style of the entire software development organization, the difficulty of the problem, and the number and level of personnel. Planning common forms of Organization:

1). Closed Paradigm: Organize groups (like CC group) according to the traditional hierarchy of rights. Such groups are very effective in developing software similar to those that have been done in the past, but it is difficult to innovate in this closed paradigm.

2). Loose type: Loosely organizes the group and relies on the individual initiative of the group members. When innovation or technological breakthroughs are required, groups that follow this stochastic paradigm have an advantage. But when "sequential execution" is needed to get the job done, the group organization paradigm is in trouble.

3). Open paradigm: Try to organize groups in an innovative way that has both a closed-style control and a stochastic paradigm. The implementation of the work combines a large number of communications and decision-making based on group consensus. The Open style group structure is particularly well suited to solving complex problems, but may not be as efficient as other types of groups.

4). Synchronous paradigm: Depending on the natural division of the problem, the members of the organizational team each solve the problem of the pieces, they do not have any active communication needs.

Historically, the first software group was the control of the centralized (CC) structure, formerly known as the main Programmer's group. This structure is first proposed by Harlan Mills and is described by baker[bak72]. The core of the group is comprised of a senior engineer ("Master programmer") who is responsible for planning, coordinating and reviewing all technical activities of the Group, technical staff (typically 2 to 5 persons), performing analysis and development activities, and a backup engineer to support the activities of the Senior engineer and, in the course of the project, Replace the work of a senior engineer with minimal cost.

a master programmer can be composed of one or more experts (such as telecommunications experts, database designers), support staff (such as technical documentation writers, administrators) and software information personnel to play. The data clerk serves multiple groups, performing the following functions: maintaining and controlling all software configurations (e.g. documentation, source programs, data and magnetic media), helping to collect and format software production data, classifying and indexing reusable software modules, assisting teams in research, evaluation and documentation preparation. The importance of the information clerk cannot be overemphasized. The data clerk acts as the controller, coordinator, and potential evaluator of the software configuration. Regardless of the group's organization, each project manager's goal is to help build a cohesive team.

3. Competency Assessment

Software process capabilities describe the ability of a development organization to develop software to develop high-quality software products. The current international standards are mainly two:ISO9000.3 and CMM.

ISO9000.3 is the ISO9000 Quality system certification in the computer software Quality Management and quality assurance standard part. It is from management responsibility, quality system, contract review, design control, document and data control, procurement, customer-provided product control, product identification and traceability, process control, inspection and testing, inspection/measurement and test equipment control, inspection and test status, control of nonconforming products, corrective and preventive measures, handling/storage/packaging /protection and delivery, quality records control, internal quality audits, training, services, statistical systems, etc. 20 aspects of the software quality requirements.

The CMM (Competency Maturity Model) is a series of methodologies developed by the Software Engineering Institute (CMU/SEI) of Carnacimelon University in 1987 to assess and guide software development project management, using 5 evolving levels to describe software process capabilities. Now the CMM is version 2.0.

The common denominator of ISO9000 and CMM is that both emphasize the quality of software products. The difference is that ISO9000 emphasizes the criteria of measurement, but does not tell software developers how to achieve good goals and how to avoid mistakes. CMM provides a complete set of software development project management methods. It tells the software development organization what issues to focus on if it is to raise a level at the original level, which is what improves the software process.

The CMM describes five levels of software process maturity (initial level, repeatable level, defined level, quantitative management level, optimization level), and maturity reflects the size of the software process capability.

The initial level characteristic is the software organization lacks to the software process the effective management, the software process is disorderly, sometimes even is chaotic, to the process almost does not have the definition, its software project success originates from the occasional individual heroism rather than the group behavior, therefore it is not repeatable Repeatable level is characterized by the software organization's project planning and tracking stability, the project process is controllable, the project's success is repeatable; defined levels are characterized by the fact that software processes have been upgraded to a standardized process for greater stability, repeatability, and controllability , the software process and software products in the quantitative management level have quantitative targets and are managed quantitatively, so their software process capability is predictable, the SOFTWARE PRODUCT is high quality, and the optimization level is characterized by the quantitative feedback of the process and the improvement of the advanced new ideas and technologies. Improvements in technology and processes are planned and managed as regular operational activities.

CMM is a scientific evaluation of a software enterprise development capability standards, but to reach a higher level is also very difficult, according to the 1995 U.S. software industry Maturity survey, in the United States software industry, the CMM maturity level of the initial level accounted for 70%, the repeatable level accounted for 15%, The proportion of the defined level is less than 10%, the proportion of the management level is less than 5%, and the percentage of the optimization level is less than l%. The level of domestic enterprises is even more excellent, so far, only the East soft one to achieve the optimization level, a few can reach a definable level. As soon as possible to change this situation, scientific, standardized, efficient software development activities, from the overall improvement of the level of China's software industry, is the urgent task of domestic software enterprises, but also professionals should set goals for themselves. If one day can command a huge development team of thousands of people, operate a large-scale software project such as Windows, and produce high-quality products, there is reason to claim that their software project management ability to achieve a "self-sufficiency" level.

[1] Su Xiaoxu . Research and application of software Project Quality assurance system . (Doctoral dissertation, Posts and Telecommunications ).

[2] Fang Jie . talking about software quality management [J]. Modern Enterprise Education , (+)

[3]http://baike.sogou.com/v3878395.htm?fromtitle=%e8%bd%af%e4%bb%b6%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86

Project Management of software engineering

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.