Software development method review
Sender: Joaquin (MAVERICK), letter area: Softeng
Title: Software Development Method Review
Sending station: BBS Shuimu Tsinghua Station (Tuenov1821: 18: 341997)
The well-known software crisis began in the mid-1960s. In order to overcome this crisis, software engineering is proposed in the two famous NATO meetings of 1968, in 1969, and continuously develop and improve 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.
First, Parnas method
The earliest software development method is made by 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, when modifying the software in the future, simply modify these individual modules, other modules are not affected. Information hidden technology not only improves software maintainability, 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 word, check if 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 independently, and can only be supplemented as other methods.
Second, SASA method
1978, e. Yourdon and L. L. Constantine proposes a structured method, that is, SASD method, or a function-oriented software development method or a data stream development method. 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 uses the Structured Design (SD) method to perform overall design, and finally Structural 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 data structure
Jackson method
In 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 the file form processing in commercial applications. This method can also be combined with other methods for detailed designs of modules.
Jackson methods are sometimes referred to as software design methods for data structures.
Warnier method
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, problem analysis
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 defects. Its basic idea is: Considering the decomposition of the input, output data structure, guidance system, gradually synthesize under systematic analysis. The specific step of this method is: from the input, output data structure export basic processing box; analyze the relationship between these processing boxes; step by step by step, until the entire system is drawn. As can be seen from the above steps, this method is essentially a synthetic bottom-up method, but has been made to decompose before gradual synthesis, this purpose is to fully consider the input and output data structure of the system.
Another advantage of the PAM method is to use a PAD diagram. This is a two-dimensional tree structure diagram, one of the best designs representing the best designs so far exceeds NS diagrams and PDL languages.
This method is more popular in Japan, and the success rate of software development is also high. Due to the input, the output data structure is also a gap between the output data structure and the entire system, this method is only applicable to small and medium problems.
V. Object-oriented software development method
Object-oriented technology is a revolution in software technology, which has milestones in software development history.
With OOP (object-oriented programming) to OOD (object-oriented design) and OOA (object-oriented analysis) development, the object-oriented software development method OMT (LbjectModellingTechnique) is formed. 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, but the key links and quality of the three software development of OO technology in demand analysis, maintainability and reliability
There is a substantial breakthrough on the indicator, and thoroughly solves the serious problems in these areas, which announced the advent of the end of the software crisis.
Since the bottom up
The first step in OMT is from the statement of the problem, and the system model is constructed. 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. Because the top of the top-down "top" is a aerial floor, lacks a solid foundation, and the functional decomposition has a considerable amount of any, so it is necessary to develop a rich software development 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.
Self-down decomposition
The work after the system model is established is to decompose. 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 foundation is an object model
Each object class consists 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 thoroughly
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 methods, introducing exploration prototypes, experimental prototypes, and evolutionary prototypes, and actively encourage users to improve demand. After each improvement requires a new evolution prototype for the user trial until the user is basically satisfactory, it greatly improves the success rate of 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.
It can improve maintainability
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, the development of the software system will result in a large change, even invert it. 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 out of control, and 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 on 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 behavior of the parent class, but also overload a behavior of the parent class (virtual function). With this feature, we can easily modify the functionality: introduce a subclass of certain types, overloading 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
Visual development is one of the largest 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 reason for generating this problem is graphics
The generation of 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 are more difficult to develop the development of Windows APIs. 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 inheritance 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.