System Architecture: Software Engineering Real Exam Questions Knowledge Points

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.
Insert image description hereIn 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.
Insert image description here

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.
Insert image description here

software processes and activities

Insert image description here

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.

Insert image description here
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
Insert image description heredescribes 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.
Insert image description here

The information derived from reverse engineering can be divided into:

Insert image description here

UML

4+1 view
Insert image description here
Insert image description hereInsert image description here

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- Insert image description hereJRP (Joint Requirement Planning) is a more costly method of obtaining requirements.
  • Demand tracking capability chainInsert image description here
  • Requirements definition methodInsert image description here

Guess you like

Origin blog.csdn.net/weixin_43249758/article/details/132568966