1, the Essence of software: Program + data + documentation.
2. Three-dimensional view of software engineering: Process + method + tool.
3, object-oriented approach to the meaning of software engineering: From software engineering three-dimensional space to watch the object-oriented approach:
- Method dimension belonging to software engineering space
- is not the only method dimension
4. Object-oriented method and software process model1)Basic Model
- Linear sequential model: Waterfall model
- Iterative Model: A prototype method model
- Component-based development model
2) iterative model3) Other
5. Waterfall ModelDisadvantages
- The actual project is seldom carried out according to the process given by the model. Although linear allows iterations, this iteration is indirect and can easily lead to confusion.
- It is often difficult for customers to clearly give all the requirements, but the model requires it and cannot tolerate the uncertainty that naturally exists at the beginning of the project.
- Customers must be patient enough because the running version of the SOFTWARE product will not be visible until the end of the project development cycle.
- If you do not see a big error until you check the running program, the consequences are likely to be catastrophic.
- A linear order causes a "blocking state", which is the wait time > Development time.
6. Prototype Method Model1) Features:
- In an incremental way
- Annular
- The stages of specification, development and validation are intertwined
2) Advantages:
- Misunderstandings between developers and customers can be identified by a "demonstration" of the system's capabilities.
- Customers can find new requirements or identify problems while using the prototype model.
- It can save a lot of development cost, and can improve the system's adaptability.
3) Disadvantages:
- The prototype contains only local functions and is difficult to master the overall dynamic state of the system.
- Many institutions think that spending too much on prototypes is a waste.
- Maintenance work is more difficult.
4) Note:
- The prototype was built just to define the requirements and then be discarded or at least partially discarded, and the actual software was developed after a thorough consideration of quality and maintainability.
7. Component-based development (component-based DEVELOPMENT,CBD)1) starting point: Multiplexing2) Foundation: A HUGE reusable software component library + built-in integration framework. 3) Typical representative: Unified software Development process (USDP)4) Two types of processes:
- Demand specification Analysis--component analysis--requirements------------and system recognition
- Identify candidate artifacts--find builds in a library-get build if available--construct artifacts if not available--put new artifacts into libraries--to construct system m iterations
5) Advantages:
- Significantly reduce the software development effort (70%) to significantly reduce development costs and development risk.
- Software products can be delivered to users as soon as possible.
6) Disadvantages:
- The demand compromise cannot avoid, may cause the system and the amount customer's actual demand deviates.
when a new version of the reusable build is not under the control of the developer, the system's fireworks capabilities can be compromised.
8. Iterative Model1) Incremental model
- Characteristics:
-
- The basic components of waterfall model and the evolutionary characteristics of prototype model are fused.
- Each linear sequence produces a published "increment" of the software
- Any incremental process can be combined with a prototype model.
- The first increment is often the core product
- Advantages:
-
- Customers can benefit from early increments without having to wait for the final product to complete.
- Customers can use early increments as prototypes and demand for later increments.
- Although some of the increments are problematic, the risk for the entire project is low.
- Incremental model vs. prototype method model
-
- The biggest difference from the prototype model is that the incremental model specifically emphasizes the release of an actionable product for each increment.
- Limitations
-
- The increment cannot be too large.
- Each increment should have a certain function.
- The mapping between customer requirements and incremental size should match.
- Development
-
- Typical variants: Extreme Programming: Each increment is very small, so the cycle is short and fast. But the increment number is many, the organization is difficult, the limitation is big. (for small programming)
2) Spiral model
-
-
- absorbs the advantages of the waterfall model and the prototype model
- increased risk analysis
- is the rapid development of the incremental version of the software becomes possible
- benefits
Li style= "list-style:none; Display:inline ">
- Use prototype implementations as a mechanism to mitigate risk.
-
- when writing software, there are products available to run or "model".
- cons
-
- customers often have doubts about the controllability of the model.
- developers need to have the knowledge and skills to have more risk assessments.
-
9. Other Models1) formal model (formal models)
- Characteristics
-
- Developers describe, develop, and validate computer-based systems by using a rigorous mathematical notation system.
- The use of formalized methods makes it easier to identify and correct problems that are difficult to overcome with other software process models such as ambiguity, incompleteness, and inconsistencies.
- Limitations
-
- Development is time consuming and expensive.
- There are too few developers with the necessary backgrounds.
- When the customer is ignorant of the formal model, the developer cannot use the model as a mechanism for communicating with the customer.
- Reason for existence
-
- When safety and reliability are critical
- Software errors can lead to serious economic losses
2) Rapid Application Development (RAD)
- Characteristics
-
- Emphasize a very short development cycle
- is a "high speed" variant of the linear order model
- Similarity to incremental models
- Rapid development by using build-based construction methods
- Mainly used for information system development.
- Disadvantages
-
- Sufficient human resources support is required for large software development projects.
- Both the customer and the developer are required to complete their respective quick activities within a short timeframe.
- When the system is difficult to modularize, or when high performance is the main indicator of the system, RAD may fail.
- Not suitable for high technical risk situations.
3) Fourth generation technology (4GT)
- Characteristics:
-
- is a synthesis of a variety of software process models
- Includes a range of software tools
- Developers describe software specifications at a higher level of abstraction
- Software tools automatically generate source code based on Developer's software specification description
- Advantages
-
- Significantly shorten the development cycle of the software.
- Significantly improves the development time of the construction software.
- Disadvantages
-
- Ease of use is not high.
- The generated source code is too inefficient.
- Poor maintainability.
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
UML (i)--object-oriented approach and software process model