Review of Software Project Management in Introduction to Software Engineering

1. Estimating software size

(1) Line of code technology

 Estimate the number of source program lines needed to realize a function based on past experience and historical data of developing similar products. Estimated program size:

 The letters in the formula represent the mean value of the smallest size a, the largest size b and the most likely size m respectively.

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

Disadvantages: The source program is only a component of the software configuration, and it seems unreasonable to use its size to represent the size of the entire software; the number of lines of code required to implement the same software in different languages ​​is not the same; this method is not suitable for non-procedural languages.

(2) Function point technology

 According to the evaluation results of software information domain characteristics and software complexity, use function point FP as a unit to estimate software size

 ① Information domain characteristics

 The function point technology defines five characteristics of the information domain: the number of input items Inp, the number of output items Out, the number of queries Inq, the number of Zhu files Maf and the number of external interfaces Inf.

 ② Steps to estimate function points

`· Compute Unadjusted Function Points UFP

· `Calculate Technical Complexity Factor TCF

`Calculate function points FP

2. Workload Estimation

  Software estimation models use empirically derived formulas to predict software development effort as a function of software size, usually in man-months (pm)

  (1) Static univariate model

   (2) Polymorphic multivariate model

   (3) COCOMO2 model

3. Schedule

 Software project scheduling, which distributes the estimated project effort over the planned project duration by allocating the effort to specific software engineering tasks and specifying start and end dates for the completion of each task. Schedules will evolve over time. In the early stage of project planning, first develop a macro schedule, identifying the main software engineering activities and the product functions affected by these activities. As the project progresses, each item in the macro schedule is refined into a detailed schedule, thereby identifying a set of specific tasks that must be achieved to complete an activity, and arranging the progress to achieve these tasks.

(1) Estimated development time

①Walston_Felix model: T=2.5E0.35

②Original COCOMO model: T=2.5E0.38

③COCOMO model: T=3.0E0.33+0.2*(b-1.01)

④Putnam model: T=2.4E1/3

  The T value calculated by the above equation represents the normal development time. Customers often want to shorten the software development time, in order to shorten the development time should increase the number of people engaged in development work. However, experience tells people that as the size of the development team increases, individual productivity will decline, so that development time is not inversely proportional to the number of people working on development.

(2) Gantt diagram : a widely used tool for making schedules

  Advantages: Intuitive and concise, easy to grasp and easy to draw, it is a powerful tool for schedule planning and schedule management

Disadvantages: The dependencies between jobs cannot be explicitly described;

The key parts of the schedule are not clear, and it is difficult to determine which parts should be the main targets of attack and control;

The part with potential in the plan and the size of potential are not clear, which often leads to waste of potential;

(3) Engineering network

 The engineering network is another commonly used graphical tool when making a schedule. It can also depict the task decomposition and the start time and end time of each job. In addition, it also explicitly depicts the dependencies between each job. Therefore, engineering network is a powerful tool for system analysis and system design

(4) Estimation of project progress

 Earliest time EET : Indicates the earliest time that the event can occur. Usually the earliest time of the first event is defined as 0, and the earliest time of other events is calculated from left to right in the order of event occurrence:

      (1) Consider all jobs entering the event,

      (2) For each job, calculate the sum of its duration and the EET of the start event

      (3) Select the maximum value of the above sum as the earliest time EET of the event.

  The latest time LET : the latest time when the event can occur without affecting the completion time of the project. Usually the latest moment of the last event (end of project) is its earliest moment. The latest time of other events is calculated from right to left on the engineering network in the direction of the reverse flow of work:

     (1) Consider all jobs leaving the event.

     (2) Subtract the duration of each job from the latest time of the end event of each job.

     (3) Select the minimum value of the above difference as the latest time LET of the event.

  Critical path : The earliest and latest moments of events are equal. These events define the critical path. The critical path is represented by a thick arrow. The actual duration of the jobs that make up the critical path cannot exceed the estimated duration, otherwise the project cannot be completed on time.

  Maneuvering time : Activities that are not on the critical path have a certain degree of leeway, that is, the actual start time can be later than the scheduled time, or the actual duration can be longer than the scheduled duration

                               Maneuvering time = LET (end) - EET (start) - duration

   According to the engineering network in the previous section, it can be seen that only one job (job 1-2) enters event 2, that is, event 2 can only occur when job 1-2 is completed, so the earliest time of event 2 is the earliest possible time when job 1-2 can be completed. The earliest time of event 1 is defined as zero. It is estimated that the duration of job 1-2 is 2 hours, that is, the earliest possible time for job 1-2 to be completed is 2. Therefore, the earliest time of event 2 is 2. Likewise, only one job (job 2-3) enters event 3, and the duration of this job is 4 hours, so the earliest moment of event 3 is 2+4=6. Event 4 has two jobs (2-4 and 3-4) coming in, and only after these two jobs are completed, event 4 can appear (event 4 represents the end of the above two jobs). It is known that the earliest time of event 2 is 2, and the duration of job 2-4 is 3 hours; the earliest time of event 3 is 6, and the duration of job 3-4 (virtual job) is 0. According to the above three rules, the earliest time of event 4 can be calculated as

EET=max{2+3,6+0}=6

 According to this method, the earliest time of each event is calculated from left to right along the engineering network, and the calculation result is marked in the number in the upper right corner of each circle, and the latest time is calculated according to the reverse operation flow, and the following figure is obtained:

 

4. Software quality

 5.  Software configuration management

(1) Software configuration items

①Computer program (source code and executable program)

②A document describing a computer program (for technicians or users)

③ data

(2) Baseline

  A specification or intermediate product that has passed a formal review, which can be used as the basis for further development and which can only be changed through a formal change control process.

(3) Software configuration management process

 ① Identify objects in the software configuration

 ②version control

 ③Change control

 ④Configuration Audit

 ⑤Status report

6. Capability Maturity Model CMM

  CMM is because the problem is caused by the improper way we manage the software process, so the application of software technology does not automatically improve the productivity and quality of software. It helps software development organizations to establish a regular and mature software process.

By defining five levels of capability maturity, CMM guides software development organizations to continuously identify defects in their software processes and point out what improvements should be made. The five levels of capability maturity are, from low to high, the following: initial level (also known as level 1), repeatable level (also known as level 2), defined level (also known as level 3), managed level (also known as level 4) and optimization level ( also known as level 5 ) .

Guess you like

Origin blog.csdn.net/weixin_46516647/article/details/125003198