Software development management and control
Author: Unknown
Article Source:
Http://home.kzinfo.net/getc/200103/0314013.htm
Abstract: Software Development is a very complex work, for the management and control of software development, now there is a special discipline: software engineering. There are many national standards and international standards in this regard. Many companies also have corresponding document templates, and related regulations. This article explores the management and control of software development from the perspective of management and practice. Some principles should follow. -------------------------------------------------- ----------------------------- Text: Software Development Management and Control Software Development is a very complex work, for software Development management and control now has a special discipline: software engineering. There are many national standards and international standards in this regard. Many companies also have corresponding document templates, and related regulations. Now do not talk about technical perspectives to specifically manage and control, from management and practical perspectives to discuss some of the principles of software development management and control. For software development projects, there are often two extreme situations, one is a record of new productivity and quality; one is completely disaster, not canceled is a long time. In a short period of time, in order to catch the progress, it has developed a software product in almost impossible time, created the record of software development, meeting the date required for the superior, because the development time is too short, It's too rushing. When I first go online, the problem is hundreds of months, and the trial run is from a few months or and a half, and the program is changed again, and the maintenance work is large. The latter, such as a set of systems not clarifically, or failure due to design problems. By refining these successful and failed examples, the root cause of software projects success or failure may be clearer. Before discussing these reasons, let's first explain what the situation can be called a failed software project. 1. Terminate due to the cost overhead or plan to perform timeout. 2. Complete the scheduled time or cost exceeds 50% of the original plan. 3. Due to quality or performance causes and customer disputes. Below we will arrange five wrong practices in order of its influence size. Error 1: Historical data in software projects, lack of software development, is the key to the failure of most software projects, and this conclusion may surprise Many people, but the fact is the case. Historical data without a reliable software development will lack a clear understanding of the project manager, programmer, and customers. Suppose you are managing a software project now, and this project has not completed it within 36 months. As a responsible manager, you have made a more meticulous and conservative estimate, then tell your customers and your hand saying that you think this project is taken 36-38 months. However, there is often such a situation: Your customers and programmers are required to compress time to 18 months. On the one hand, it is desirable that the software will put into the use of economic benefits as soon as possible. On the one hand, I want to compress the project time as a bargaining chip; the programmer may be too self-confident, on the one hand, the project can make them more money. At this point, there is no historical data developed on your hand, and you agree with the 18-month plan under their pressures, so a disaster begins. In the beginning of the project, you found that the plan was delayed, so we started to put pressure to the programmer, requiring them to speed up the progress, the programmer had to put other indicators as a while, and the project manager is constantly accumulated. But in the drum. In the middle of the project, these quality problems will continue to expose, and they are related to each other and are difficult to solve, and even some are the problem of system design. At this time, many modules have to be moved down, and the plan to complete the plan in 18 months. Although it is just a virtual example, this situation is everywhere in the actual situation. The key to the problem is that the historical data developed by software is a ruler that reflects the capabilities of the software development team. It doesn't have this ruler, it is unable to have a clear understanding of the development process of the software. Error 2: Do not pay attention to the use of software cost valuation tool software and plan tool software software development method comment in the mid-1990s began to explode well-known software crises.
In order to overcome this crisis, the term software engineering was proposed at the two Nato meetings of the two famous NATOs in 1968 and 1969, and continued to develop and improved in the future. At the same time, software researchers are also constantly exploring new software development methods. Eight types of software development methods have been formed. I. The earliest software development method of Parnas method is D. Parnas is proposed in 1972. Since there is a serious problem in maintainability and reliability at that time, the method proposed by Parnas is for these two issues. First, Parnas proposes information hidden principles: List the factors that may change in the future, and put these factors in the inside of individual modules when the module is divided. This way, in the future, due to changes in these factors, it is necessary to modify the software, simply modify these individual modules, other modules are unaffected. Information hidden technology not only improves the maintenanceability of software, but also avoids the spread of errors, improves software reliability. Now the information concealed principle has become an important principle in software engineering. The second principle proposed by Parnas is to take measures to respond to possible accidents in software design. Software is very fragile, it is likely to trigger serious accidents because of a tiny error, so it is necessary to strengthen prevention. If you are allocated using the device, you should take the device status, check whether the device is normal. In addition, there is also an inspection between the modules to prevent errors from spreading. Parnas puts a deep insight in software development. Unfortunately, he did not give a clear workflow. So this method cannot be used alone, which can only be supplemented as other methods. Second, SASA method in 1978, e. Yourdon and L. L. Constantine proposes a structured method, that is, a SASD method, or a software development method or a data stream for functional software development methods. In 1979, TomDemarco has further improved this method. The YOURDON method is the most widely used software development method in the 1980s. It first uses the structured analysis (SA) to analyze the software, and then use the Structured Design (SD) method to perform overall design, and finally the structured programming (SP). This approach not only the development steps are clear, SA, SD, SP complement each other, and gives two types of typical software structures (transformation and transactional), which makes it greatly improved, so that the success rate of software development is greatly improved. Software developers are favored. Third, the software development method for the data structure Jackson method 1975, M. A. Jackson proposes a software development method that is still widely used. This method starts from the input, output data structure of the target system, exports the program frame structure, and then supplement other details, you can get a complete program structure. This method is particularly effective for the input and output data structure, such as file form processing in commercial applications. This method can also be combined with other methods for detailed designs for modules. Jackson methods are sometimes referred to as software design methods for data structures. Warnier method in 1974, J. D. The software development method proposed by Warnier is similar to the Jackson method. There are three points: First, the graphics tools they use are different, and the Warnier chart and Jackson are used separately; the other difference is different; the most important difference is when constructing the program framework, the Warnier method only considers input data structure, The Jackson method not only considers the input data structure, but also considers the output data structure. Fourth, the problem analysis method PAM problem analysis method.
PAM (ProblementSismethod) is a software development method proposed by Hitachi at the end of the 1980s. The PAM method hopes to take into account the advantages of your DOON method, Jackson method, and bottom-up software development methods, and avoid their lack of defects. Its basic idea is: Considering the decomposition of the input, output data structure, guidance system, gradually synthesize under systematic analysis. The specific steps of this method are: export basic processing boxes from input, output data structure; analyze the relationship between these processing boxes; the step-by-step integrated processing box is corrected until the entire system PAD diagram is drawn. As can be seen from the above steps, this method is essentially a comprehensive self-bottoming method, but has been made to decompose before gradual synthesis, this purpose is to fully consider the input of the system, output data structure. Another advantage of the PAM method is to use a PAD diagram. This is a two-dimensional tree structure diagram, which is one of the best designs to represent the best in the best, far better than NS graphs and PDL languages. This method is more popular in Japan, and the success rate of software development is also high. Due to the same gap between the output data structure and the entire system, this method is only applicable to small and medium questions. V. Object-oriented software development methods Object-oriented technology is a revolution in software technology, which has milestones in software development history. As OOP (object-oriented programming) develops to OOD (object-oriented design) and OOA (object-oriented), it ultimately forms an object-oriented software development method OMT (LbjectModellingTechnique). This is a method of combining upward and auto-top downwards, and it is based on object modeling, but not only considers input, output data structure, but also contains data structures of all objects. Therefore, Omt completely implemented PAM has no fully realized goals. Not only that, OO technology has substantive breakthroughs in the key links and quality indicators of the three software development of demand analysis, maintainability and reliability, and thoroughly solves the serious problems in these areas, which announced the software. The arrival of the end of the crisis. The first step in summary Omt from the bottom is to set up the system model from the statement of the problem. The system exported from the real system, that is, the object model includes the attributes of the class, with the association between the subclass, the inheritance relationship, and the association between the class. Class is an abstraction of a set of specific instances (objective objects) with similar properties and behaviors, and the parent class is induced by several subclasses. Therefore, this is a summary of the upstope. During the summary of the bottom up, the properties and behavior of the parent class more reasonably, it may require the top-down modification, so that the entire class system is more reasonable. Since the structure of this type is from specific to abstraction, then from abstraction to specifically, it can meet the human thinking law, so it can complete the task faster and more easily. This is a distinctive control with the top-down YourDon method. The construction system model in your YOURDON method is the most difficult step. experience. This work in OMT can be done faster by general developers. After the object model is established, it is easy to export the dynamic model and functional model on this basis. These three models together constitute a system model that requires the solution. The work after the top-down decomposition system model is decomposed. Unlike the YourDon method, according to functional decomposition, in OMT, it is usually decomposed by service (service). The service is a collection of related functions of common goals, such as I / O processing, graphics processing, and more.
The decomposition of this step is often clear, and further decomposition of these subsystems is relatively easy to decompose due to specific system models. Therefore, OMT also has the advantages of the top downward method, that is, the complexity of the module can be effectively controlled while avoiding the difficulties and uncertainty of functional decomposition in your YourDon method. OMT's basis is that the object model is composed of data structures (attributes) and operations (behavior), all data structures (including input, output data structure) have become the basis for software development. Therefore, the Jackson method and the PAM are input, and the output data structure and the divide between the entire system no longer exists in OMT. OMT also has the advantages of Jackson methods and PAM, but also can be applied to large systems. More importantly, in the Jackson method and the PAM method, the entire software must be continued to move when their starting point-input, output data structure (ie, the boundary of the system) changes. However, the change in the system boundaries in OMT is only increasing or decreases some objects, and the entire system is extremely changed. Demand analysis is completely demand analysis is not completely one of the main reasons for software failure. Even at present, this danger still exists. Traditional software development methods do not allow the needs of users to change during the development process, resulting in various problems. It is because of this reason, people put forward prototyping method, launch exploration prototype, experimental prototype and evolution prototype, and actively encourage users to improve demand. After each improvement requires, a new evolution of the original type is formed by the user until the user is basically satisfied, and it greatly improves the success rate of the software. However, it requires software developers to quickly generate these prototypes, which requires support for automatically generating code. Omt completely solved this problem. Because the demand analysis process has been consistent with the formation process of the system model, the discussion of the developer and the user begins with a specific instance (entity) familiar with the user. Developers must improve the real system to export system models, which makes users with common languages with developers to avoid all kinds of problems that may be generated in traditional demand analysis. The maintenanceability is greatly improved by the software development method before OMT is based on functional decomposition. Although software engineering has made great efforts in a safeguard, it makes it possible to improve the maintenanceability of the software. But in essence, software-based software is not easy to maintain. Once the function changes, it will make the development of the software system produce a large change, even down. More serious is that in this software system, modification is difficult. Due to various reasons, even tiny modifications may also introduce new errors. So the traditional development method is likely to cause a series of serious problems such as the increase in software costs, the software quality is not guaranteed. It is OMT to make the software's maintenanceability improvement. OMT's basis is the object model of the target system, not the decomposition of the function. Function is the use of objects, which depends on the details of the application and changing during the development process. Since the object is objective, the nature of the object is more stable when the demand change is more stable than the object, so that the software system established in the object structure is also more stable. More importantly, Omt completely solves the maintenanceability of the software. In the oo language, the subclass can not only inherit the properties and behaviors of the parent class, but also overload a behavior (virtual function) of the parent class. With this feature, we can easily modify the function modification: introduce a class of subclasses to redefine some behaviors (ie, virtual functions or virtual methods) to be modified, which is redefined. Since it is no longer introduced into the original program module, the software can be modified, which is thus completely solved the maintenanceability of the software. OO technology also improves software reliability and robustness. 6. Visual development method visualization is one of the largest two hotspots in the software industry in the 1990s.
With the rise of the graphical user interface, the proportion of user interfaces in software systems is growing, and some are even as high as 60 ~ 70%. The cause of this problem is that the generation of graphical interface elements is very inconvenient. To this end, Windows provides an application design interface API (Application Programming Interface), which contains more than 600 functions, which greatly facilitates the development of the graphical user interface. However, in this batch function, a large number of function parameters and more frequent use have more difficult to develop a Windows API development is quite difficult. To this end, Borland C has introduced Object Windows programming. It encapsulates all parts of the API, providing a large predefined class and defines many member functions for these. Using subclasses for the complexity of the parent class, the application's development of the application can save a large number of definitions, and the definition of a large number of member functions or only a small amount of modification is required to define a subclass. Object Windows also provides a number of standard default processing, which greatly reduces the workload of application development. But to master them, it is still a heavy burden for non-professionals. A number of visual development tools have been developed by people using Windows API or Borland C Object WINDOWS. Visualization is on the graphical user interface provided by the Visual Development Tool, by operating interface elements, such as menus, buttons, dialogs, edit boxes, radical boxes, check boxes, list boxes, and scroll bars, etc. Tools automatically generate applications. This type of application works is an event-driven. For each event, the corresponding message is generated by the system, and then passed to the corresponding message response function. These message response functions are automatically loaded by the visual development tool when generating software. Most of the domestic software company is at the level of "more than a dozen guns, one hand workshop". After the project is undergoing the project, it is often a rough estimate of the cost and progress after the discussion of the backbone. Then Start entering the implementation of the project. This method has a significant subjectivity. Many factors need to be considered when making an exact software cost estimate and making a comparison of a real-world project development plan. For a large software project, the cost of operating costs and plans cannot be eligible. There are now about 50 commercial software cost estimates and approximately 100 commercial project plan tool bags, and the use of them is more likely to succeed than manual estimation. Common software costs Estimation tool software has Checkpoint, Colomo, Estimacs, Price_S, SLIM. Common project management software has MS Project, Primavera, Project Manager * s Workbench, Timeline. Combining these two tools software can be completed to make each other, help managers to disndurm with customers and programmers and accurately control the implementation of the project. Error 3: Changes to ignore the user's needs Although the initial user needs are included in the demand manual while signing the development contract, but the demand for users in the development cycle remains unchanged, because the user is How to apply computer software and there is no mature experience. In the project, the user's demand will continue to grow. Under normal circumstances, the user's demand increases at a rate of 1% per month. If a project is completed within 12 months, there will eventually be more than 10% change, if the project is going on 36 months, will finally increase 1/3 of the function. 1% per month is just an empirical data, and a user who lacks computer application experience will change and increase his requirements. Therefore, it is necessary to consider the changes in user demand during the cost and time estimation of the project. A more sensible approach is to hook the changes and economic interests of users in the development contract. If the user increases or changes the demand, the delivery date can be postponed, and the cost should also be increased. Error 4: Ignore the progress of the supervisory project so far, the software industry has no standard test standard for project progress. A relatively clear scale is the progress of the project with the software features that have been implemented. But is this method is the most scientific measurement standard, and now it is still unconperative. After all, in a software project is just a major rather than all tasks.