A Brief Talk on Several Commonly Used Software Development Methods in "Software Engineering"

  • Software engineering

The well-known software crisis broke out in the mid-1960s. In order to overcome this crisis, the term software engineering was put forward at two famous NATO conferences held in 1968 and 1969, and it has been continuously developed and improved in the future. At the same time, software researchers are constantly exploring new software development methods.

  • Software development method

There are four commonly used development methods at present, namely the structured method, the prototype method and the object-oriented method. Next, we will describe the implementation process of these software development methods and their characteristics, advantages and disadvantages one by one.

  1. Structured approach

Structured method: The structured method is the most widely used development method. According to the life cycle of the information system, the structured system development method is applied to divide the development process of the entire system into several stages, and then she proceeds step by step. The former stage is the work basis for the latter stage; each stage is divided into detailed work Steps, sequential operations.

Each stage and main step has clear and detailed documentation requirements. The downward transfer of each stage and each step is achieved by establishing their own software documentation and reviewing and controlling key stages and steps. It is an organic combination of structured analysis, structured design and structured programming.

Its basic idea: the process of solving a complex problem is carried out in stages, and this decomposition is top-down, layer-by-layer decomposition, so that the problems dealt with at each stage are controlled within the scope that people can easily understand and deal with. Graphical representations such as data flow diagrams, data dictionaries, structured languages, decision tables, decision trees, etc. are the main means to emphasize the structural rationality of the development method and the software analysis method of the structural rationality of the system. The structured method has the following characteristics.

(1) Follow the principle of user first.

(2) Strictly distinguish work stages, each stage has clear tasks and achievements.   

(3) Emphasize the integrity and overall nature of the system development process.   

(4) The system development process is engineered and the documentation is standardized. 

The structured analysis method is a data flow-oriented analysis method based on functional decomposition. At this stage, it mainly uses tools such as data flow diagrams and compilation of data dictionaries to describe the relationship between boundaries and data processing processes, and strive to find functions and functions. instruction of.

The advantages of this method are: the theoretical foundation is strict, and its guiding ideology is that user needs can be fully understood and understood before the system is established. It can be seen that the structured approach focuses on the integrity and overall nature of the development process.

The disadvantages of this method are: long development cycle; cumbersome documentation and design instructions, and low work efficiency; it requires a comprehensive understanding of the information requirements of the system at the beginning of development, and fully anticipates various possible changes, but this is not very realistic; if the user The enthusiasm for participating in system development was not fully mobilized, resulting in an unstable system handover process and increasing difficulty in system operation, maintenance and management. 

Limitations of structured design methods:

i. Cannot directly reflect the problem domain: The structured analysis method is centered on data flow, emphasizing the flow of data and each processing process. It is not based on each thing in the problem domain, breaking the boundaries of each thing, and the analysis result cannot be directly Reflecting the problem domain makes it easy to conceal some deviations in the understanding of the problem domain.

ii. Data and code lack a protection mechanism: A specific whole-process data can be accessed by the process that manipulates the data, or by other processes, which brings instability to the program design, an abnormal data modification or process call It may disrupt the normal program execution flow or results.

iii. Different analysis and design systems: the result of structured analysis is a data flow diagram, and the result of structured design is a module structure diagram. The two representation systems are inconsistent, and analysis documents are difficult to correspond to design documents. Therefore, the "conversion" process from analysis to design is prone to misunderstandings that make the design documents far from the original needs of users.

iv. The development process is complex: Because the structured method separates the process and the data into independent entities, the programmer must always consider the format of the data to be processed when programming. Doing the same processing for different data formats or doing different processing for the same data format requires writing different programs, and it is often impossible to effectively control the security of the data. If the program is expanded or upgraded, a large number of functions need to be modified, so the reusability of structured programs is not good. It has become a heavy burden for programmers to keep data and programs compatible at all times.

  1. Object-oriented approach

The object-oriented method is a method of constructing, testing, and refactoring software using concepts such as objects, classes, encapsulation, inheritance, polymorphism, and messages. With the increasing complexity of application systems and the increasing maturity of object-oriented programming languages, object-oriented system development methods have been widely used due to their intuitive and convenient advantages. It is based on epistemology, using objects to understand and analyze the problem space, and design and develop a software system (solution space) composed of objects. 

Since both the problem space and the solution space are composed of objects, the problems caused by the inconsistency in the structure of the problem space and the solution space can be eliminated. In short, it focuses on the role of people in software development. 

The basic steps of object-oriented design:

  • According to the conceptual level class diagram, the entity class design is carried out.

  • Design entry points for entity classes, such as manager classes and container classes.

  • According to the nine principles of GRASP, design business logic. It involves activity diagrams.

  • Use case realization. Generally, class diagrams and collaboration diagrams are involved.

Basic idea: Simulate as much as possible the way of thinking that humans are used to, and make the methods and processes of software development as close as possible to the methods and processes of human understanding of the world and problem solving, that is, the problem space for describing the problem and the solution space for realizing the solution are structured As consistent as possible.

Object-oriented analysis is to correctly abstract the understanding and understanding of the problem domain and system into standardized objects (including classes and inheritance levels) and message transmission links, and finally establish a concise, accurate, and understandable object-oriented model of the problem domain. Provide guidance for subsequent object-oriented design and object-oriented programming. Object-oriented analysis usually establishes three models: object model, dynamic model, and functional model. Among them, the object model describes the static structure of the system, determines the name of the class and the relationship between the classes; the dynamic model represents the "control" nature of the instantaneous and behavioral system, and specifies the legal change sequence of the objects in the object model; The model indicates the dependence between the data in the system, and the processing functions of the relevant data.

Limitations of the object-oriented approach:

i. The development process management requirements are high: in the object-oriented analysis process, multiple iterations are required, and the development process must go through multiple iterations of "modification-evaluation-re-modification"

ii. Low system reusability: The object-oriented method shields the internal execution details of the object by means of information hiding and encapsulation, and controls the spread of errors. However, when errors occur, the cost of locating faults is high. For systems with frequent changes in requirements, it is very It is difficult to get a highly reusable object-oriented software system design.

iii. It is easy for developers to substitute prototypes for standardized system analysis: lack of standardized documentation and difficult to maintain later.

Advantages of object-oriented methodology:

i. Consistent with the way of thinking that humans are used to.

ii. Good stability. The structure of the software system established by the traditional method is closely dependent on the functions to be completed by the system. When the functional requirements change, it will cause the overall change of the software structure. The object-oriented method is based on constructing the object model of the problem domain, and constructing the software system with the object as the center. When the functional requirements change, only some local modifications are often required.

iii. Good reusability, reuse is the most important method to improve production efficiency. The objects are ideal modules and reusable software components. Class reuse method, create an instance of the class, derive.

iiii. It is easier to develop large-scale software.

iiiii. Good maintainability. Object-oriented software has better stability. Object-oriented software is easier to modify, object-oriented software is easier to understand, easy to test and debug

  1. Prototype method

The basic idea of ​​the prototyping method is different from the structured method. The prototyping method believes that when it is difficult to comprehensively and accurately put forward user needs at once, first of all, it does not require a comprehensive and detailed investigation and analysis of the system, but based on development. The personnel's initial understanding of user needs, first quickly develop a prototype system, and then repeatedly modify to achieve the user's final system requirements. Before investing a lot of manpower and material resources, within a limited period of time, use the most economical method to develop a practical system model. Based on the operation and use of the entire prototype, users can put forward suggestions for improvement through evaluation of it. The prototype is modified and used uniformly, and the evaluation process is repeated to gradually improve the prototype until it fully meets the needs of users. 

Scope of application: clear and simple system with clear processing process; small-scale systems with narrow coverage are not suitable for: large, complex systems, difficult to simulate; there are a large number of calculations and a processing system with strong logic; the basic management work is not perfect, and the processing process is not standardized; Mass batch processing system   

The features that the prototype should have are as follows.   

(1) It is practical and feasible.   

(2) Have the basic characteristics of the final system.   

(3) Convenient, fast structure and low cost.   

The characteristic of the prototype method is that the prototype method dynamically responds to the needs of users and is gradually incorporated. The system analysis, design and implementation are all completed at the same time as the continuous modification of a working model. There is no obvious boundary between them. There is no clear division of labor.

The system development plan is a process of repeated revisions. It is suitable for system development that is not clearly defined at the beginning of user needs, and the development method is more suitable for users to accept; but if the user does not cooperate well and blindly modify it, the development process will be delayed. 

  • to sum up

Through the introduction of these methods and their advantages and disadvantages, different methods are suitable for different software development. If you want to find a unified development method that is suitable for all soft armor development projects, it is not appropriate at this stage, because if you use the prototype method to make large-scale software, the cost will bring down most companies. Moreover, the use of the system is likely to be in a state where it cannot be used normally. Therefore, it is the main role of software developers to develop software using appropriate development methods.

Guess you like

Origin blog.csdn.net/weixin_37081112/article/details/108944063