This article selects the content of the second version of "Software Engineering refers to full modeling implementation", because part of the content in this section comes from the network and has been sorted by myself, and part of the content is independently written by myself, because the manuscript has not been completed yet, I am sorry for my friends and want to share some of the content with you.
Note: No associated images are published in the following content.
Software Development Methodology
60
A well-known software crisis began in the middle of the age. To overcome this crisis
1968
,
1969
Two famous
NATO
The term software engineering was proposed at the meeting and will be continuously developed and improved in the future. At the same time, software researchers from large foreign software companies and institutions are constantly exploring new software development methods. So far, many practical development methods have been proposed, such:
Parnas
Methods, structured methods, life cycle methods, primitive methods, object-oriented methods, and so on. The following describes several popular development methods:
1
,
Parnas
Method
The earliest software development method was developed by D.
Parnas
In
1972
Proposed by the year. At that time, the software had serious problems in Maintainability and reliability.
Parnas
The proposed method addresses these two problems. First,
Parnas
The principle of information hiding is put forward: the possible factors for future changes are listed during the outline design, and these factors are put into the interior of individual modules during module division. In this way, when you need to modify the software due to these factors in the future, you only need to modify these individual modules, and other modules will not be affected. Information Hiding technology not only improves Software maintainability, but also avoids the spread of errors and improves software reliability. The principle of information hiding has become an important principle in software engineering.
Parnas
The second principle is to take measures to cope with various unexpected failures during software design. Software is very fragile and may cause serious accidents due to a small error. Therefore, we must strengthen prevention. For example, you should take the device status word and check whether the device is normal before using the device. In addition, check between modules to prevent the spread of errors.
Parnas
This article provides profound insights into software development. Unfortunately, he did not give a clear workflow. Therefore, this method cannot be used independently and can only be used as a supplement to other methods.
2
, Structured method
[1]
1978
Year,
E. Yourdon
And
L. L. Constantine
A structured method is proposed, that is
Sasd
Methods, also known as functional-oriented software development methods or data flow-oriented software development methods.
1979
Year
Tom Demarco
This method has been further improved.
Yourdon
The method is
80
The most widely used software development method in the age. It uses structured analysis (
SA
Analyze the requirements of the software and then use the structured design (
SD
) Method for the overall design, and finally structured programming (
SP
). This method not only has clear development steps,
SA
,
SD
,
SP
They complement each other in one breath and provide two typical software structures (transformation and transaction) for reference convenience. This greatly improves the success rate of software development and is favored by software developers.
3
Data Structure-oriented software development methods
Jackson
The method is the most typical data-oriented software development method,
1975
Year,
M. A. Jackson
A software development method that is still widely used today is proposed. This method starts with the input and output data structure of the target system, exports the program framework structure, and adds other details to obtain the complete program structure. This method is particularly effective for small and medium-sized systems with clear input and output data structures, such as file table processing in commercial applications. This method can also be combined with other methods for detailed design of modules.
Jackson
The method breaks down the problem into layers of each part in three basic structures. The three basic structures are order, selection, and repetition. Three data structures can be combined to form a complex structure system. This method starts with the input and output data structure of the target system, exports the program framework structure, and adds other details to obtain the complete program structure. This method is particularly effective for small and medium-sized systems with clear input and output data structures, such as file table processing in commercial applications. This method can also be combined with other methods for detailed design of modules.
1974
Year,
J. D. warnier
The proposed software development method and
Jackson
The method is similar.
There are three differences: first, they use different graphics tools, respectively
Warnier
Graph and
Jackson
Figure; another difference is the use of different pseudo-code; the main difference is that when constructing a program framework,
Warnier
The method only considers the input data structure, while
Jackson
The method not only considers the input data structure, but also the output data structure.
4
Problem-oriented analysis
Pam
(
Problem Analysis Method
) Yes
80
A software development method proposed by Hitachi at the end of the age. Its basic idea is to take into account the input and output data structure, guide the system decomposition, and gradually integrate under the guidance of system analysis.
The specific steps of this method are to export the basic processing boxes from the input and output data structures, analyze the relations between the processing boxes, and gradually integrate the processing boxes according to their relations, until the entire system is drawn
Pad
Graph.
This method is essentially a comprehensive bottom-up method, but a purposeful decomposition has been carried out before the gradual integration. This aims to fully consider the input and output data structures of the system.
Pam
Another advantage of the method is the use
Pad
Graph. This is a two-dimensional tree structure and is one of the best detailed design representations so far. Of course, because there is a gap between the input and output data structures and the entire system, this method is only applicable to small and medium problems.
5
Prototype Method
Original method (
Prototyping
) Yes
20
Century
80
With the development of computer software technology, especially in relational database systems (
Relational Data Base System
,
Rdbs
), The fourth generation program generation language (
4th generation
Language
,
4gl
) And various system development and generation environments, a new system development method is proposed from the design ideas, tools, and means. It abandons the tedious practice of carefully investigating and analyzing the results step by step, and then gradually sorting out text files so that users can see the results.
There are many reasons for the prototyping method. As our system development experience increases, we also find that not all requirements can be pre-defined and modified repeatedly. Of course, the prototype method can be used because of the rapid development of development tools, such
VB
,
Delphi
And other tools, we can quickly develop a system framework that allows users to see and understand, so that users who are not very familiar with computers can put forward their own needs according to this model.
Prototype System development generally involves the following phases:
(
1
) Determine user requirements
(
2
) Develop the original model
(
3
) Solicit users' suggestions on improving the initial prototype.
(
4
) Modify the prototype.
Prototype Development is suitable for situations where user requirements are unclear, business theories are uncertain, and requirements change frequently. It is better to use this method when the system scale is not very large or complex.
The prototyping method has been enriched with the changing times. Currently, common prototyping methods include rapid prototyping, practical prototyping, abandonment prototyping, evolutionary prototyping, and experimental prototyping.
The quick prototyping method is the initial prototyping method that guides user needs through prototypes.
The practical prototyping method is to summarize some of the records recognized by the user after the prototype is re-built each time to form an end user system.
The abandonment prototype method records the information that the user does not recognize after each prototype is built. After multiple attempts, all the parts that the user does not recognize are excluded to form the end user system.
The evolution prototype method, also known as the growth prototype method, is usually used to first develop and run a sub-system or molecular system, then expand its functions or develop another related sub-system or molecular system, and integrate the sub-systems, in this way, a complete system is gradually obtained from the bottom up.
The original method of the experiment is (
Expriment
Prototyping
,
EP
), It is through the establishment of a real system model, the local model continuously improve the experiment, and finally get the entire system model.
The practical primitive method and the abandonment primitive method are the primitive method that can be obtained quickly. The result is that the user's requirement information and unnecessary information are not directly formed into the deliverable system itself. The results produced by the evolutionary and experimental methods are part of the final deliverable system. The user shall be able to follow up or participate in the review.
6
Object-Oriented Software Development Methods
The most popular words in the computer industry are distributed, parallel, and object-oriented. From this we can see the concept of object-oriented in the current computer industry. For example, the two popular object-oriented technologies
DCOM
And
CORBA
Is an example. Of course, we actually use object-oriented programming languages, such
C ++
. It is undeniable that object-oriented technology is a revolution of software technology and has a milestone in the software development history.
With
OOP
(Object-Oriented Programming)
OOD
(Object-Oriented Design) and
OOA
(Object-oriented analysis), and finally form an Object-Oriented Software Development Method
OMT
(
Object Modeling Technique
). This is a combination of bottom-up and top-down methods, and it is based on object modeling, which not only considers the input and output data structures, it actually contains the data structure of all objects. So
OMT
Complete implementation
Pam
There are no fully implemented goals. Not only that,
Oo
The technology has made substantial breakthroughs in the key links and quality indicators of software development, including requirement analysis, maintainability, and reliability, and basically solved the serious problems in these aspects.
In summary, the object-oriented system adopts bottom-up induction and top-down decomposition methods. Through the establishment of object models, it can truly establish user-based requirements, in addition, the maintainability of the system is greatly improved. The current industry standard for object-oriented modeling is
UML
(
Unified Modeling Language
).
Here we need to talk about Microsoft's
MSF
(
Microsoft Solutions framework
System design is divided into three phases: conceptual design, logical design, and physical design. The conceptual design stage is how many objects can be obtained from the user's perspective and draws a business framework based on the objects. In the logical design phase, objects in the conceptual design phase are re-analyzed, subdivided, integrated, and deleted. And establish the method attributes of each object and the relationship between objects. Physical Design is actually to determine the components, services, framework structures, and specific programming languages we actually need.
OLAP
The entire structure is clearly a good and operable framework system developed based on objects.
The development methodology in this book is
Oo
Methodology in
UML
The specific operation method under the language expression.
In this book, I think that the definition of software development methodology is an expression in the process of software engineering implementation, such as using a certain development language, a certain design model, a specific architecture, and a specific implementation method of details.
Due to various
IDE
A tool is a supporting tool that integrates language descriptive tools, compilation tools, debugging tools, and even design patterns, architectures, and other implementation methods. Therefore, it cannot be counted as the content of software engineering theory, software Engineering itself can only be regarded as a product made on its own, because even if there is no
IDE
Tool, using the most basic compiling environment can also complete the entire software, but the workload is increased, so, in this form of division, it is defined as a language and other supporting tools, and is not directly related to the software engineering system itself.
7
Visual Development Method
In fact, visual development cannot be used as a separate development method. More appropriately, it can be considered as an auxiliary tool, such
Sybase
Of
S-design
Everyone knows that this tool can be used to establish a graphical database mode and import it to different databases. Of course I used
S-design
Not necessarily many people, but they have used
VB
,
Delphi
,
C ++ Builder
There must be a lot of developers, but you are actually using visual development tools.
Of course, it is undeniable that you only use Visualization at the programming stage, rather than at the high-level level of system analysis and system design. In fact, building a visual tool for system analysis and system design is a good selling point. Many foreign tools are dedicated to the design of products in this area. For example
Business Object
Is a very good visual analysis tool for databases.
Visual Development enables us to focus on business logic and business processes, and the user interface can be easily structured using visual tools. The application software is automatically generated by the visual development tool by operating interface elements, such as menus, buttons, dialog boxes, edit boxes, single quotes, check boxes, list boxes, and scroll bars.
8
Aspect-oriented software development methods
Aspect-Oriented Programming
(Aspect-Oriented
Process
,
AOP)
It is a revolutionary thinking about software engineering. Introduction
AOP
The purpose is to solve problems such as security, log, persistence, debugging, tracking, distributed processing, performance monitoring, and more effectively handling exceptions. Unlike conventional development technologies, conventional technologies implement these different concerns in multiple classes, while Aspect-Oriented Programming will make them localized.
Aspect-Oriented Software Development
(AOSD)
This method creates better controllability for functional requirements, non-functional requirements, platform features, and so on, allowing you to develop systems that are easier to understand and easier to configure and expand, to meet and address the needs of the stakeholders.
Aspect-oriented software development can be considered as a new way of thinking about business systems based on object-oriented development. We can look at such a change process: Object-oriented provides a large number of basic object and basic object combination forms (various components) for the description of the world. At this time, it would be too complicated to observe a large business system from the object level. Therefore, if we consider cutting the entire business system, each abstract Aspect Forms A complete layer of the business system. Therefore, relevant analysis and research are based on such considerations. The following details are the objects and components, these combinations form a business system.
Therefore, this book assumes that the aspect-oriented software development method is only based on
Oo
A method with a higher abstraction level is not a completely new development methodology.
[1]
The software development method comments and the misunderstanding and Application of Software Engineering Theory written by Dr. Hu chaohui in his early years.