Discussion on software project management

xiaoxiao2021-03-06  89

One. introduction

With the increasing growth of software requirements and the increasing system function, the history of the development software in the past is no longer existing. Now the development of software needs one or more group cooperation to complete. Therefore, project management of software is increasingly valued by individuals and businesses. People have gradually realized that although the current project management does not guarantee the success of software development, improper software management will definitely lead to failure of software development - the date of software delivery is greatly dragged, the cost may be more than expected It is difficult to maintain a few times, and the software that is ultimately developed is difficult to maintain.

Conceptually, management is a series of activities such as planning, organization, control, and use a variety of resources to achieve a given goal process. However, software development is different from the manufacturing of other products, and the entire process of software is the design process (no manufacturing process); in addition, software development does not need to use a large number of material resources, mainly human resources; and software development is just a program Codes and technical files do not have other substances. Based on the above features, software project management has great uniqueness compared to other project management.

For software projects, the most critical factors are people. Software engineers can organize in different group structures, from traditional control levels to the "Open Model". The project managers must organize the project group to make the project group have a high productivity. The "best" team structure depends on management style, the number of people in the group and their skill level, and the difficulty of the project you are.

The so-called software project management is to make the software projects can be done in accordance with the predetermined cost, progress, the quality of the person, the PRODUCT, Process, Project, and Projects. Software Project Management begins before any technical activity and runs through the entire life cycle of the software. According to Roger S. Pressman, project management activities include measurement and metrics, estimates, risk analysis, progress arrangements and tracking, quality assurance, configuration management, etc. Below we discuss some main aspects.

two. Software project plan

The software project plan is a start-up phase of a software project entry system implementation. The main work includes: determining the detailed project implementation scope, defining the work of submitted work, assessing the main risks in the implementation process, formulating the time plan, cost and cost of project implementation Budget plan, human resources plan, etc.

The software project management process begins with the project plan activity, and the first plan activity is estimated: How long does it take, how much work is needed? In addition, we must also estimate the required resources (hardware and software) and the risk that may involve.

In order to estimate the workload and completion period of the software project, the size of the software is first required. The common method of metric software has a direct method - Loc (code line), indirect method - FP (function point). These two methods have advantages and disadvantages, and the applicable software scale metrics should be selected according to the characteristics of the software project.

According to the scale of the project, we can estimate the workload required to complete the project, we can use one or more technologies to estimate, these technologies are mainly divided into two categories: decomposition and experience modeling. Decomposition techniques need to divide the main software functions, and then estimate the size or month of the program required for each function. The use of experience techniques is based on the formulas derived, predicted the workload and time. You can use an automated tool to implement a particular empirical model.

Accurate project estimates are generally at least two of the above techniques. We may get more accurate estimates by comparing and coordinated the estimated values ​​of different technologies. Software project estimates will never be a precise science, but combine good historical data and systematic techniques to improve estimates.

Risk analysis is generally performed when a higher expectation is given to software items. Time and manpower spending the risk of identification, analysis, and management can be rewarded from multiple aspects: more stable project progress; higher tracking and control of the ability; due to the problems before the problem Confidence. For a project manager, his goal is to define all item tasks to identify key tasks, track the progress of critical tasks to ensure that the programs can be found in time. To this end, project managers must develop a sufficiently detailed schedule to monitor the progress of the project and control the entire project.

Tools for commonly developing progress plans have two types of Gantt and engineering networks. Gantt chart has the advantages of a long history, intuitive, easy to learn, easy to draw, etc. unclear. Therefore, when managing large software projects, only Gantt map is not enough, it is not only difficult to make a plan to save resources and ensure progress, but also easily errors.

The engineering network can not only draw the task decomposition and the start time and end time of each job, but also clearly represent the dependencies of each job. It is easy to identify critical paths and key tasks from the engineering network diagram. Therefore, the engineering network diagram is a powerful tool for developing a progress plan. Typically, combined with both Tools of Gantt and Engineering Networks to develop and manage schedules to make them supplement each other and make up a long addition.

The progress arrangement is the primary task of the software project plan, and the project plan is the primary component of software project management. Combined with estimation methods and risk analysis, progress arrangements will establish a plan for project managers.

three. Software project control

For software development projects, control is a very important management activity. The quality assurance and configuration management in software engineering control activities will be described below. In fact, the risk analysis mentioned above can also be considered a class of software engineering control activities. And progress tracking plays a role in connecting software project plans and controls.

Software Quality Assurance (SQA, Software Quality Insurance) is "Protective Activity" performed in each step during the software. SQA mainly has a non-executable test (also known as review), based on the implementation test (ie, the usual test) and program correctness proves.

Software review is one of the most important SQA activities. Its role is to discover and troubleshoot errors in time when discovered and correcting the cost is relatively small. Review and investigation is two specific methods for the official technical review. The review process is not only more than the number of steps, but also for each step. Since the error in the development of large software, the exasive number of errors is wrong or design errors, and the official technical review has found that these two types of errors are as high as 75%, so it is a very effective software quality assurance method.

Software Configuration Management (SCM, Software Configuration Management) is a protective activity applied to the entire software process, which is a group of activities managed throughout the entire life cycle.

The software configuration consists of a set of interrelated objects, which are also known as software configurations, which are produced as some software engineering activities. In addition to documentation, programs, and data for these software configurations, the development environment for development software can also be placed under configuration control.

Once a configuration object has been developed and passed the review, it turns a baseline. Modifications to baseline objects result in the establishment of the version of the object. Version control is a set of procedures and tools used to manage these objects.

Change control is a procedure activity that guarantees quality and consistency when modifying the configuration object. Configuration Audit is a software quality assurance activity that helps ensure that quality is still maintained during the modification. The status report provides information about each change to those who need to know about change.

four. International standard

1. IEEE1058.1 software project management plan standard

The framework of the software project management plan is given in IEEE Standard 1058.1. It is essentially a common structure, regardless of the software project, you can refer to it when developing a project management plan.

2. ISO9000 quality standard

ISO9000 is a family standard, where ISO9000-3 is to make ISO9001 standards for software development, supply and maintenance guidelines, which provide guaranteed quality system for software development process, quality system framework, quality system lifecycle activities and quality The support activity of the system is constituted. The documentation has a very important position in ISO9000-3 standard.

3. ISO / IEC 12207 Software Lifecycle Process Standard

ISO / IEC 12207 software lifecycle process standard, is a standard for guiding software process implementation, which illustrates activities in the process of software lifecycle, and coordinates all kinds of people between the software development process from multiple perspectives. They have a guiding role.

4. ISO / IEC TR 15504 software process assessment standard

ISO / IEC TR 15504 software process assessment criterion is standard for the software process from the perspective of process assessment. This standard has two dimensional structures, with one-dimensional process dimension and the other dimension is the ability dimension.

5. Capacity maturity model

The ability maturity model (CMM, Capability Maturity Model for Software) is a policy for improving software processes. Its basic idea is because the problem is that the method of managing software processes is not appropriate, so the use of new software technology does not automatically improve software productivity and software quality, and it should be greatly improved to the management of software processes. The improvement of the software process is impossible, so the CMM gradually introduces changes in incremental ways, which clearly defines five different maturity levels, and a software development organization can use a series of small improvement steps into higher. Maturity level.

In summary, software project management covers many knowledge such as technology and management, which is very important for the success or failure of software project development, one of the key factors in the success of software projects. In the process of software development, it is necessary to focus on technology and pay attention to management awareness, and strive to improve the level of software projects.

转载请注明原文地址:https://www.9cbs.com/read-96574.html

New Post(0)