Article directory
- resource
- Knowledge points
-
- Top-down and bottom-up
- Formal methods
- structured approach
- Agile methods
- Clean room software engineering
- service-oriented approach
- object-oriented approach
- Rapid application development
- spiral model
- software processes and activities
- Open source development methods
- Utility-driven development approach
- Unified Process Model RUP
- component-based software development
- Reverse Engineering
- UML
- need
resource
Information system development methods
Knowledge points
Top-down and bottom-up
Top-down design refers to recursively analyzing a given problem into a number of small basic problems based on a given problem. Bottom-up is an opposite design method, which refers to designing based on existing components (basic problems). , through certain permutations and combinations, the problems that need to be solved are finally solved. From the definitions of the two methods, we can see that the top-down design method emphasizes the decomposition of the problem, while the bottom-up design method emphasizes the reuse of components (basic problems). Therefore, for a relatively unfamiliar problem, use The top-down, layer-by-layer decomposition method can better solve the problem, and for common problems, using existing components can achieve the goal faster.
Formal methods
The formal method is a method with a solid mathematical foundation that allows strict processing and demonstration of the system and development process. Its main advantage lies in its ability to mathematically express and study application problems and implementation. However, it requires high mathematical foundations, is not suitable for complex scenarios, and has not been widely used.
structured approach
- The structured method, also known as the function-oriented development method, includes stages such as structured analysis, structured design, and structured programming. Develop the system from top to bottom, striving for step-by-step refinement.
- The disadvantage is that the development cycle is long and it is difficult to adapt to changes in demand.
- The core of structured analysis is the data flow diagram and data dictionary. By analyzing the data flow diagram, the program structure diagram can be derived.
- In the structured analysis method, DFD is used for functional modeling, state transition diagram is used for behavioral modeling, and ER diagram is used for data modeling.
Agile methods
Agile methods are object-oriented and have three characteristics:
- Adaptability: refers to embracing change and constantly changing;
- People-oriented: refers to being people-oriented and giving full play to human characteristics;
- Iterative and incremental: Each release expands the functional requirements based on the original version, and finally meets all requirements.
Agile methods are suitable for projects where the requirements change significantly or the early requirements are not clear enough.
Clean room software engineering
Using correctness verification (rather than traditional testing) as the main mechanism for finding and eliminating errors and emphasizing statistical quality control techniques is too theoretical.
service-oriented approach
Based on coarse-grained, loosely coupled and standards-based services, the flexibility, reusability and evolvability of the system are enhanced.
object-oriented approach
When using object-oriented development methods, state charts and activity diagrams can be used to model the dynamic behavior of the system.
In object-oriented design, boundary classes implement interface control, external interfaces, and environment isolation. The control class coordinates and controls other classes to complete functions together.
Rapid application development
It makes use of the idea of the basic component development method and uses a large number of threads to develop the system. It is fast, but it is only suitable for systems with a high degree of modularity.
spiral model
It is expanded on the basis of the prototype model and divides the entire software development process into multiple stages. Each stage consists of goal setting, risk analysis, development, effectiveness verification and review. Suitable for projects with smaller development teams.
software processes and activities
Open source development methods
Suitable for development teams whose program developers are widely distributed geographically
Utility-driven development approach
Programming developers are divided into lead programmers and "class" programmers.
Unified Process Model RUP
Three core features:
- Architecture-centric:
- Use case driven:
- Increment and iteration: Solve high-risk and high-value problems in early iterations, emphasizing the active participation of users.
A development cycle consists of four stages
- Initial: Establish a business model and determine project boundaries.
- Refinement: Analyze the problem and establish a complete structure.
- Build: All features are developed and integrated into the product.
- Handover: Make a release version and make adjustments based on feedback.
component-based software development
The logical component model of the mismatch problem
describes the system design blueprint to ensure that the system provides appropriate functions, and the physical component model is used to understand the system's performance, throughput rate and other non-functional attributes.
Reverse Engineering
The so-called reverse engineering is to analyze existing programs and transform a certain form of description of the software into a more abstract form of activity.
The information derived from reverse engineering can be divided into:
UML
4+1 view
need
- A good requirements statement should be prioritized rather than treating all requirements as equally important.
- Requirements change process: problem analysis and change description, change analysis and cost calculation, and change implementation.
- To reach Level 2 of the Process Capability Maturity Model, an organization must have six key process areas.
- Requirement attributes include- JRP (Joint Requirement Planning) is a more costly method of obtaining requirements.
- Demand tracking capability chain
- Requirements definition method