Software Engineering—Chapter 13 Knowledge Points of Software Project Management (End)

This column is the blogger's personal notes, the main purpose is to use the fragmented time to memorize the knowledge points of soft engineering, hereby declare!

 

Article directory

1. What is the definition of management?

2. Software project management status? (importance)

3. The software project management process begins with a set of project planning activities, and what is the basis for planning?

4. Are there any methods for estimating software size?

5. What is line of code technology?

 6. What are the main advantages of line of code technology?

7. What are the main disadvantages of line of code technology?

8. What is the unit of function point technology to measure software size?

9. Is there a workload estimation model?

10. The workload is a function of the software scale, what is its usual unit?

11. What is a Gantt chart?

12. What are the main advantages and disadvantages of the Gantt (Gantt) chart?

13. What is an engineering network diagram?

14. What are the personnel organization methods for software development? Briefly describe the characteristics, advantages and disadvantages of each method?

15. What is software quality?

16. What are the main measures for software quality assurance?

17. What is software configuration management?

18. What is the baseline? How can it be changed?

19. What are the five main tasks of software configuration management?

20. What is a Capability Maturity Model (CMM)?

 21. What are the five levels of capability maturity, from low to high?

Summary at the end of the chapter


1. What is the definition of management?

The so-called management is the process of rationally allocating and using various resources to achieve the set goals through a series of activities such as planning, organization and control.

2. Software project management status? (importance)

Software project management begins before any technical activity and continues throughout the software lifecycle

3. The software project management process begins with a set of project planning activities, and what is the basis for planning?

Planning is based on effort estimates and completion deadline estimates

In order to estimate the project effort and completion deadline, it is first necessary to estimate the size of the software

4. Are there any methods for estimating software size?

  1. line of code technology
  2. function point technology

5. What is line of code technology?

That is, based on the experience and historical data of developing similar products in the past , estimate the number of source program lines required to realize a function

 6. What are the main advantages of line of code technology?

Code is the "product" of all software development projects, and it's easy to count lines of code

7. What are the main disadvantages of line of code technology?

  1. The source program is only a component of the software configuration, and it is unreasonable to use its size to replace the size of the entire software
  2. The number of lines of code required to implement the same software in different languages ​​is not the same
  3. This approach is not suitable for non-procedural languages

8. What is the unit of function point technology to measure software size?

Measuring Software Size in Function Points (FPs)

9. Is there a workload estimation model?

  1. Static univariate model (basic COCOMO model)
  2. Static multivariate models (COCOMO2 model, COCOMO with intermediate structure)
  3. Dynamic multivariate models (putnam models)

[Note]: No estimation model can be applied to all types of software

10. The workload is a function of the software scale, what is its usual unit?

man month (pm)

11. What is a Gantt chart?

Gantt (Gantt) chart is a long-established and widely used tool for making schedules

12. What are the main advantages and disadvantages of the Gantt (Gantt) chart?

The main advantage:

  1. Able to visually describe the situation of task decomposition
  2. Intuitive and concise, easy to grasp and draw

Main disadvantages:

  1. Does not explicitly depict dependencies between jobs
  2. The key parts of the schedule are not clear , and it is difficult to determine which parts should be the main attack and main control objects
  3. The part with potential in the plan and the size of the potential are not clear, often resulting in a waste of potential

13. What is an engineering network diagram?

The engineering network diagram is another commonly used graphic tool when making a schedule , and it is a powerful tool for system analysis and system design . Both the Gantt diagram and the engineering network diagram should be used to formulate and manage the schedule, so that they complement each other.

14. What are the personnel organization methods for software development? Briefly describe the characteristics, advantages and disadvantages of each method?

  • Democratic Programmers Group

Features : Team members are completely equal, enjoy full democracy, and make technical decisions through consultation

Advantages : 1. Team members have a positive attitude towards finding program errors, which helps to find errors faster and lead to high-quality code

           2. The team members enjoy full democracy, the group has a high degree of cohesion, and the strong technical atmosphere in the group is conducive to overcoming technical difficulties

Disadvantages : If the technical level of the members in the group is not high or they are inexperienced novices, since there is no clear authority to guide the development work

          If the project is not carried out, there will be a lack of necessary coordination among the team members, which may eventually lead to project failure

  • main programmer group

Features : 1. Specialization 2. Hierarchy

Advantages : 1. There are experienced master programmers to guide the development

           2. Communication between programmers is carried out through the main programmer, thereby reducing communication costs and improving development and production efficiency

Disadvantages : 1. It is impractical in many aspects, such as the main programmer must not only have superb technology but also have excellent management skills

             Such talents are hard to find; back-end programmers are even harder to find; programming secretaries are also hard to find

           2. Team members will be unwilling to find mistakes

        

 

  • modern programmer group

Features : Optimize the main programmer group, cancel most of the administrative work of the main programmer, and divide it into technical leaders and

           administrative person

Advantages : Combines the advantages of the democratic programmer group and the main programmer group

Disadvantage : The management authority of the technical team leader and the administrative team leader must be clearly divided before the work starts, otherwise it may cause confusion

         Since the number of programmers should not be too large, when the software project is large, the programmers should be divided into several groups , and the organizational structure is shown in the following figure:

 

15. What is software quality?

Software quality is the degree to which software conforms to explicitly and implicitly defined requirements

16. What are the main measures for software quality assurance?

  1. Non-Execution Based Testing (Review and Review)
  2. Execution Based Testing (Software Testing)
  3. Proof of program correctness (mathematical method)

17. What is software configuration management?

Software configuration management runs through the entire life cycle and is a set of activities that manage changes throughout the software life cycle to identify, control, and report changes to ensure that changes are properly implemented

18. What is the baseline? How can it be changed?

A baseline is a software configuration item that has passed a formal review and can serve as a basis for further development.

It can only be changed if a formal change control process has been passed

19. What are the five main tasks of software configuration management?

  1. identify object
  2. version control
  3. change control
  4. configuration audit
  5. status report

20. What is a Capability Maturity Model (CMM)?

The Capability Maturity Model (CMM) is a model used to evaluate the software process capability maturity of software organizations , and is used to help software development organizations establish a large-scale and mature software process.

 21. What are the five levels of capability maturity, from low to high?

  1. initial level
  2. repeatable grade
  3. defined class
  4. Managed
  5. optimization level

Summary at the end of the chapter

        Software engineering includes two aspects of technology and management , and is the product of the close combination of technology and management. Only under scientific and strict management can advanced technical methods and excellent software tools truly exert their power. Therefore, effective management is the key to the success of large-scale software engineering projects .

        Software project management begins with project planning, and the first planning activity is estimation . In order to estimate the project effort and completion deadline, it is first necessary to predict the software size .

        The commonly used techniques for measuring software size mainly include line of code technique and function point technique . Both techniques have advantages and disadvantages. The appropriate technology should be selected according to the characteristics of the project and the familiarity of the people engaged in planning work with the two technologies.

        According to the software scale, the workload required to complete the project can be estimated. The commonly used estimation models are static univariate model, dynamic multivariate model and COCOMO2 model . In order to make the estimation result closer to the actual value, usually at least two of the above three models are used at the same time . By comparing and coordinating estimates obtained using different models, it is possible to obtain more accurate estimates. The cost estimation model usually also provides an equation for estimating the software development time. The estimated development time is the normal development time. Experience shows that the development time can be reduced to 75% of the normal development time by increasing the number of developers .

        Managers must develop a schedule detailed enough to monitor the progress of the project and control the entire project. Commonly used tools for making schedules are Gantt charts and engineering networks . These two tools have their own advantages and disadvantages. Usually, Gantt charts and engineering networks are used together to formulate schedules and monitor project progress.

        High-quality developers and a reasonable organizational structure of the project team are the keys to the success of a software project . There are three typical organizational structures: democratic programmer group, main programmer group and modern programmer group . The applicable occasions of these three organizational methods are not the same. Software quality assurance is an activity performed at every step in the software process. Software quality assurance measures mainly include non-execution-based testing (also known as review), execution-based testing (that is, commonly referred to as testing) and program correctness certification . Software review is one of the most important software quality assurance activities. Its advantage is that software errors can be found and eliminated in time when the cost of correcting errors is relatively low.

        Software configuration management is a protective activity applied to the whole software process, and it is a group of activities to manage changes in the whole life cycle of software. The goal of software configuration management is to make changes more correct and easier to adapt , and to reduce the amount of work spent on modifying software when it is necessary.

        Capability Maturity Model (CMM) is an effective strategy for improving software process. Its basic idea is that because the problem is caused by an inappropriate method of managing the software process, the adoption of new technologies will not automatically improve software productivity and software quality, and efforts should be made to improve the management of the software process . In fact, the improvement of the software process cannot be achieved overnight. Therefore, CMM gradually introduces changes in an incremental manner . It clearly defines 5 maturity levels. A software development organization can use a series of small improvement steps to enter a higher maturity level.

 

Repeatedly, down-to-earth; never forgetting, there will be echoes! 

Guess you like

Origin blog.csdn.net/qq_52487066/article/details/131681637