[System Architecture] Chapter 5 - Basic Knowledge of Software Engineering (Requirements Engineering and System Analysis and Design)

Soft test-system architect knowledge points extraction-system architect tutorial (2nd edition)

Requirements engineering

There are 3 levels of software requirements:

  • Business requirements: reflect the high-level target requirements of organizations or customers for systems and products
  • User requirements: describe the tasks that users must complete when using the product, and are the user's expectations for the software product.
  • Functional Requirements: Defines the software functions that developers must implement

Requirements engineering refers to systematically describing the system to be developed, its characteristics and related constraints by applying proven effective principles and methods through appropriate tools and notations. Requirements engineering covers various development activities before the architecture design, mainly including analyzing customer requirements, and specifying various functional and non-functional requirements of the future system. external features.

Stages of requirements activities: requirements acquisition, requirements analysis, formation of requirements specifications (requirements documentation), requirements confirmation and verification, and requirements management.
Requirements management activities begin when the first draft of the requirements document is produced.
The emphasis is as follows:
1. Control changes to the requirements baseline
2. Keep the project plan consistent with the requirements
3. Control the version status of individual requirements and requirements documents
4. Manage requirements and contact chains, or manage the relationship between individual requirements and other project deliverables
5. Track the status of requirements in the baseline 1.
insert image description here
Requirements acquisition
Requirements acquisition reference steps:
1. Develop a high-level business model
2. Define project scope and high-level requirements
3. Identify user roles and user representatives
4. Determine the target system Business workflow
5. Requirements arrangement and summary (functional requirements, performance requirements, reliability requirements, security and confidentiality requirements, user interface requirements, resource usage requirements, software cost consumption and development progress requirements, etc.)

Requirements acquisition methods:
1. User interviews
2. Requirements symposium (advantages: assist in building an efficient team, centering on the goal of project success, all stakeholders can speak freely, and promote consensus between stakeholders and the development team , reveal and solve those administrative problems that hinder the success of the project, can quickly generate a preliminary system definition, and can effectively resolve the conflict of requirements between different stakeholders) 3. Questionnaire
survey
4, on-site observation
5, prototyping method
6, Brainstorming

2. Requirements change
Requirements change management process:
1. Problem analysis and change description
2. Change analysis and cost calculation
3. Change realization

Common requirements change strategies:
1. All requirements changes must follow the change control process
2. For approved changes, no design and implementation work should be done
3. Changes should be decided by the project change control committee
4. Project risk stakeholders It should be possible to understand the content of the change
. 5. Never delete or modify the original document of the change request in the project configuration library.
6. Each integrated requirement change must be traceable to an approved change request to maintain horizontal traceability

The decision-making process and operation steps of the change control committee:
1. Making decisions
2. Communicating the situation
3. Renegotiating agreements

3. Requirements tracking Requirements
tracking provides a clear reference capability for the entire process from requirements to product realization. The purpose is to establish and maintain consistency between "requirements-design-programming-testing" and ensure that all work results meet user needs.

Two methods of demand tracking:
1. Forward tracking (product requirements specification)
2. Reverse tracking

System Analysis and Design

1. Structural method
Structural analysis: Give me a group of principles and techniques to help system analysts generate functional specifications
Steps:
1. Analyze business conditions and make a data flow diagram (DFD) reflecting the current physical model
2. Deduce, etc. 3. Design a new logic
system, generate data dictionary and primitive description
4. Establish man-machine interface, propose DFD of an alternative physical model of the target system
5. Determine the cost and risk level of various schemes, Based on this, analyze various schemes
6. Choose a scheme
7. Establish a complete requirement specification
insert image description here
insert image description here

Structured Design: A Dataflow-Oriented Design Approach

Structured programming: using a top-down, step-by-step design method, each module is connected through a "sequence, selection, and loop" control structure, and there is only one entry and one exit

Database design: including requirements analysis, conceptual structure design, logical structure design, physical structure design, database implementation and database operation and maintenance

2. Object-oriented approach
Use-case-driven, architecture-centric, iterative and incremental development process, mainly including requirements analysis, system analysis, system design and system implementation

Object-oriented analysis method (OOA)
Object-oriented analysis:
OOA principles: abstraction, encapsulation, inheritance, classification, aggregation, association, message communication, granular control, behavior analysis
Basic steps: determine objects and classes, determine structures, determine topics, and determine attributes , determine the method

Object-Oriented Design (OOD):
In OOD, classes can be divided into: entity classes, control classes, boundary classes

Object-Oriented Programming (OOP):
Basic Features: Encapsulation, Inheritance, Polymorphism

Data persistence and database:
Generally, the persistence layer is introduced, focusing on realizing data persistence, associating data users with data entities, and realizing the decoupling of business logic and data logic inside the data processing layer


Other articles recommended by the author, welcome to learn:
Based on Spring Boot 3.1.0 series of articles

  1. Spring Boot source code reading initialization environment construction
  2. Detailed explanation of the overall startup process of the Spring Boot framework
  3. Detailed Explanation of Spring Boot System Initializer
  4. Detailed explanation of Spring Boot listener
  5. Detailed explanation of Spring Boot banner
  6. Spring Boot property configuration analysis
  7. Analysis of Spring Boot property loading principle
  8. Analysis of Spring Boot exception reporter
  9. Build Spring Boot 3.0 native executables with GraalVM
  10. Spring Boot 3.x microservice upgrade experience

Prometheus series of articles

  1. Introduction and installation of Prometheus
  2. Intuitive experience of PromQL and its data types
  3. PromQL selectors and operators
  4. Functions of PromQL
  5. Prometheus alarm mechanism introduction and command interpretation
  6. Prometheus alarm module configuration depth analysis
  7. Prometheus configuration authentication
  8. Prometheus dynamically pulls monitoring services
  9. Prometheus monitors cloud Mysql and self-built Mysql

Grafana series of articles, version: OOS v9.3.1

  1. Introduction and installation of Grafana
  2. Introduction to configuration parameters of Grafana monitoring large screen (1)
  3. Introduction to configuration parameters of Grafana monitoring large screen (2)
  4. Grafana monitors large-screen visualization charts
  5. Grafana query data and transform data
  6. Introduction to Grafana Alarm Module
  7. Grafana alarm access Feishu notification

Spring Boot Admin Series

  1. Spring Boot Admin Reference Guide
  2. The problem that the SpringBoot Admin service is offline and does not display health information
  3. Loading of Spring Boot Admin2 @EnableAdminServer
  4. Detailed Explanation of Spring Boot Admin2 AdminServerAutoConfiguration
  5. Detailed Explanation of Spring Boot Admin2 Instance Status Monitoring
  6. Spring Boot Admin2 custom JVM monitoring notification
  7. Spring Boot Admin2 custom exception monitoring
  8. Spring Boot Admin monitoring indicators connected to Grafana visualization

Guess you like

Origin blog.csdn.net/weixin_40972073/article/details/131359827