These notes are organized around the core knowledge points of the exam syllabus, with code examples and memory mnemonics — good for a final sprint review. (The exam is China’s “Soft Exam” — Computer Technology and Software Professional Qualification — System Architect level.)

1. Laws, Regulations, and Standardization

Category Content
Not protected Government documents, laws and regulations, current-affairs news
Protected Speeches, authored books, software code
When it vests Automatically arises from the day software development is completed
Protection term 50 years (attribution, modification, and integrity rights are protected permanently)

Copyright ownership rules:

  • Whoever develops it owns it
  • An employee develops it using company resources → belongs to the company
  • A work-for-hire with no contract → belongs to the corporate legal entity
  • An adaptation → the copyright belongs to the adapter

⚠️ The processing procedure (algorithmic logic) is not a subject of software copyright protection; only the expression of the code is protected.

Time-limited rights (50 years): publication, distribution, exhibition, reproduction
Permanently protected rights: attribution, modification, integrity of the work

1.2 Other intellectual property

  • Trademark rights: enjoyed only after registration is complete; the subject is the software’s registered trademark
  • Patent rights: enjoyed only after patent registration is complete

2. Software Engineering

2.1 Comparison of software development models

Model Suitable scenario Core feature
Waterfall Clear, fixed requirements Strict sequential phases, irreversible
Incremental Requirements partly clear, core needs fast delivery Deliver modules in batches
Prototype Vague requirements, users struggle to describe Build a prototype first, then develop the target software
Spiral Large, complex, high-risk projects Adds a risk-assessment step each round
Fountain Object-oriented development No strict phase division, phases can overlap and iterate
V-model High reliability requirements Development and testing correspond one-to-one
W-model High quality requirements Development and testing proceed in parallel
Waterfall phases:
Requirements analysis → system design → detailed design → coding → testing → maintenance
(each phase completes before entering the next)

The four quadrants of the spiral model:
① Make plans  ② Risk analysis
③ Engineering ④ Customer evaluation

2.2 Comparison of agile methods

Method Core idea Key feature
XP (Extreme Programming) Push traditional development to extreme leanness Pair programming, test-first, continuous integration
SCRUM Short-cycle sprints Three meetings (standup/planning/retro), backlog ordered by business value
Crystal People-centric Lightest and most flexible, emphasizes team collaboration, minimal docs
FDD Feature-driven Five steps: model → feature list → plan → design → build
ASD Adaptive development Speculate → collaborate → learn, three nonlinear phases
DSDM Dynamic systems development Eight principles, focused on delivering business value on time
Open source Global collaboration Highly parallel debugging, code is public

SCRUM’s three meetings: daily standup, sprint planning, retrospective

2.3 The RUP-based software process

RUP = Rational Unified Process

Four phases:
┌──────────┬──────────┬──────────┬──────────┐
│ Inception │ Elaboration│ Construction│ Transition│
│ project scope│ refine architecture│ development│ test & deliver│
│ business model│         │          │ acceptance │
└──────────┴──────────┴──────────┴──────────┘

Nine core workflows:

  • 6 process workflows: business modeling, requirements, analysis & design, implementation, testing, deployment
  • 3 supporting workflows: configuration & change management, project management, environment

Development approach: use-case driven + architecture-centric + iterative and incremental

2.4 Types of software maintenance

Type Trigger Example
Corrective Fix a known bug Fix crashes
Adaptive External environment change Support HarmonyOS
Perfective New user requirements Support third-party login
Preventive Proactively prevent future problems Limit login frequency to prevent attacks

📊 Effort share: Perfective > Adaptive > Corrective > Preventive

2.5 Capability Maturity Model (CMMI)

Level 1 Initial     → all on people, no process, heroics
Level 2 Repeatable  → basic process, old experience reusable
Level 3 Defined     → org-wide standardized process
Level 4 Managed     → quantitative management, data-driven decisions
Level 5 Optimizing  → continuous improvement, proactive iteration

Mnemonic (Chinese): 初重定管优 (Initial, Repeatable, Defined, Managed, Optimizing)

2.6 Reverse engineering

Levels of information abstraction (high to low):

Level Content Analogy
Domain level Business knowledge Design thinking
Function level The function of a code segment Functional module
Structure level Structure charts, call graphs System framework
Implementation level Syntax trees, symbol tables, concrete code Source code
  • Restructuring: transform the form of description at the same abstraction level
  • Design recovery: abstract design information from an existing program
  • Reengineering: produce a new version based on reverse-engineering results
  • Search and transform can derive: the implementation level and the structure level

2.7 Service-Oriented Architecture (SOA)

SOA’s four core technologies:

WSDL  → service description (what the service does, the interface doc)
         Web Service Description Language

SOAP  → service communication (how to package and send requests, the XML envelope)
         Simple Object Access Protocol

UDDI  → service registration and discovery (where to find the service)
         Universal Description, Discovery and Integration

BPEL  → service orchestration (chain multiple services into a business process)
         Business Process Execution Language

Analogy for memory:

Go to the UDDI yellow pages to find a service → read the WSDL manual to understand the interface → send the request in a SOAP envelope → orchestrate the whole business flow with BPEL

ESB (Enterprise Service Bus): an infrastructure implemented with middleware technology that supports SOA, responsible for service routing, protocol conversion, and message transformation.

2.8 Correspondence between software testing and development phases

Requirements analysis ←→ acceptance testing (user acceptance)
High-level design     ←→ system testing (system integration)
Detailed design       ←→ integration testing (module integration)
Coding phase          ←→ unit testing (basis: detailed design)

2.9 Cleanroom software engineering

Goal: zero defects, based on function theory and sampling theory

Core elements: formal specification → box-structure design → correctness verification → incremental statistical control → statistical testing for reliability

Prevent errors rather than fix them; suited to high-reliability systems (aerospace, medical)

2.10 Components

Component characteristics (key differences from classes/objects):

  • Not an instance unit, has no unique identity
  • Has no externally visible state (a container can manage it)
  • One component can contain multiple class elements
  • Only one copy can exist in the same environment

Component classification methods:

  • Keyword classification: tree hierarchy
  • Faceted classification: multi-dimensional description (facets), the most flexible
  • Hypertext organization: browser-style search

Three key properties of components: independent deployability, shareability, composability

Architectural mismatch:

Component mismatch  → various facilities and models don't match
Connector mismatch  → interaction protocols, data formats, intermediate transport don't match

3. System Analysis and Design

3.1 UML diagrams

The five models and their diagrams

Model Corresponding diagram
Use-case model Use-case diagram
Static structure model Class diagram, object diagram
Behavioral dynamic model Sequence diagram, collaboration diagram, state diagram, activity diagram
Component implementation model Component diagram, deployment diagram

UML relationships quick reference

Association  ─────►  ordinary "knows about" relationship (solid arrow)
Dependency   - - -►  temporary "uses" relationship (dashed arrow)
Generalization ───▷  inheritance (hollow triangle)
Aggregation  ◇────  whole contains part, part can exist independently (hollow diamond)
Composition  ◆────  life-and-death bound, part can't exist independently (solid diamond)

Use-case diagram relationships

Relationship Description Example
include A must include B Login includes password verification
extend B optionally extends A Login is extended by password recovery
generalize Inheritance WeChat Pay / Alipay generalize to unified payment

⚠️ The only relationship between use-case actors is inheritance (generalization) — there’s no aggregation.

3.2 Design patterns

Creational patterns

Pattern Intent Java example
Singleton A single global instance Spring Beans are singletons by default
Factory Method The parent defines the interface, subclasses decide instantiation BeanFactory
Abstract Factory Create a family of related products Switching across DB dialects
Builder Build a complex object step by step StringBuilder, Lombok @Builder
Prototype Clone an existing object Object.clone()
// Builder pattern example (Lombok @Builder)
@Builder
public class UserQuery {
    private String name;
    private Integer age;
    private String city;
}

// Usage
UserQuery query = UserQuery.builder()
    .name("Zhang San")
    .age(25)
    .city("Shanghai")
    .build();

// Singleton (double-checked locking)
public class RedisClient {
    private volatile static RedisClient instance;

    private RedisClient() {}

    public static RedisClient getInstance() {
        if (instance == null) {
            synchronized (RedisClient.class) {
                if (instance == null) {
                    instance = new RedisClient();
                }
            }
        }
        return instance;
    }
}

Structural patterns

Pattern Intent Java example
Adapter Interface conversion InputStreamReader
Decorator Dynamically add features BufferedInputStream
Proxy Control access Spring AOP, MyBatis Mapper
Facade Simplify a complex subsystem SLF4J logging facade
Bridge Separate abstraction from implementation JDBC Driver
Composite Uniform handling of tree structures Menu trees, file directories
Flyweight Share large numbers of similar objects Integer cache pool -128~127
// Proxy pattern (the essence of Spring AOP)
@Aspect
@Component
public class LogAspect {
    @Around("@annotation(Log)")
    public Object around(ProceedingJoinPoint pjp) throws Throwable {
        long start = System.currentTimeMillis();
        Object result = pjp.proceed();
        log.info("took: {}ms", System.currentTimeMillis() - start);
        return result;
    }
}

// Decorator pattern example
InputStream is = new FileInputStream("data.txt");
InputStream bis = new BufferedInputStream(is);     // add buffering
InputStream gis = new GZIPInputStream(bis);        // add decompression

Behavioral patterns

Pattern Intent Java example
Strategy A family of interchangeable algorithms Comparator, switching payment methods
Observer Event notification EventListener, Kafka Consumer
Chain of Responsibility Pass a request along a chain Spring Security Filter Chain
Template Method Define an algorithm skeleton AbstractList, JdbcTemplate
Command Encapsulate a request as an object Undo/redo, task queues
State State drives behavior changes Order state machine
Iterator Sequentially traverse a collection Iterator<T>
Visitor Add operations without modifying the class AST traversal, compilers
Mediator Centralize object interaction MQ, EventBus
Memento Save and restore state Game saves, undo operations
// Strategy pattern example (payment methods)
public interface PayStrategy {
    void pay(BigDecimal amount);
}

@Component("alipay")
public class AliPayStrategy implements PayStrategy {
    public void pay(BigDecimal amount) { /* Alipay logic */ }
}

@Component("wechat")
public class WechatPayStrategy implements PayStrategy {
    public void pay(BigDecimal amount) { /* WeChat Pay logic */ }
}

// Chain of Responsibility (Spring Security filter chain)
public class AuthFilter extends OncePerRequestFilter {
    @Override
    protected void doFilterInternal(HttpServletRequest req,
            HttpServletResponse res, FilterChain chain)
            throws ServletException, IOException {
        // pre-processing
        verifyToken(req);
        // pass to the next filter
        chain.doFilter(req, res);
    }
}

3.3 The seven principles of object-oriented design

Principle Core Memory hook
Single Responsibility (SRP) A class is responsible for only one thing One heart, one job
Open-Closed (OCP) Open for extension, closed for modification Add features without changing old code
Liskov Substitution (LSP) A subclass can fully replace its parent Subclass doesn’t break the parent’s contract
Dependency Inversion (DIP) Depend on abstractions, not concrete implementations Program to interfaces
Interface Segregation (ISP) Many specific interfaces beat one general one Don’t force implementing unneeded methods
Composition Reuse Principle Prefer composition/aggregation over inheritance Composition over inheritance
Law of Demeter (LoD) Talk only to your immediate friends The least-knowledge principle

3.4 Coupling and cohesion (ordered low to high)

Coupling (low → high):

No direct coupling → data coupling → stamp coupling → control coupling →
external coupling → common coupling → content coupling

(The original Chinese mnemonic is 飞鼠标恐外公内, a phonetic device.)

Cohesion (low → high):

Coincidental → logical → temporal → procedural →
communicational → sequential → functional

(The original Chinese mnemonic is 欧罗驶过通顺宫, a phonetic device.)

Design goal: high cohesion, low coupling

3.5 The 4+1 architecture views

        Scenario view (use-case view)
              ↑
    ┌─────────────────────┐
    │ Logical view │ Development view │
    │ (function/class) │ (code packaging) │
    ├──────────────┼──────────────────┤
    │ Process view │ Physical view │
    │ (runtime processes) │ (deployment) │
    └─────────────────────┘
View Concern Diagrams used
Scenario view For whom (requirement validation) Use-case diagram
Logical view What to do (functional decomposition) Class diagram, object diagram
Development view How to organize (code structure) Package diagram, component diagram
Process view When to do it (concurrent execution) Sequence diagram, activity diagram
Physical view Where to do it (hardware deployment) Deployment diagram

4. System Architecture Design

4.1 Overview of architectural styles (22 kinds)

Dataflow styles

Style Feature Typical scenario
Batch processing Batch processing, no human intervention, data passed as a whole Bank reconciliation, data ETL
Pipe-and-filter Data streams through; each filter processes independently Unix pipes, compilers
# Typical Unix pipe-and-filter example
cat access.log | grep "ERROR" | awk '{print $4}' | sort | uniq -c
#   data source    filter 1       filter 2         filter 3   filter 4

Call-and-return styles

Style Feature
Main program/subroutine Stack-based calls, returning layer by layer
Object-oriented Encapsulates attributes and methods
Layered architecture Layered by abstraction level, upper layers call lower ones

Independent-component styles (event/message)

Style Feature Example
Event-driven (implicit invocation) Publish events, subscribers respond Spring Event, Kafka
Inter-process communication OS-provided IPC Pipes, shared memory, message queues

Virtual-machine styles

Style Feature Example
Interpreter Dynamically parses and executes, flexible but low efficiency JVM, Python interpreter
Rule/expert system Rule set + inference engine Drools rule engine

Repository styles (data-centric)

Style Feature
Database system A central database as the core
Blackboard style Shared working memory, good for speech recognition, AI inference
Hypertext system HTML+URL network structure

Closed-loop control style

Process-control style: sensor collects → controller computes → actuator responds; note the closed-loop feature.

Sensor → Controller → Actuator
   ↑__________________feedback______________________|

4.2 Quality attributes and architecture evaluation

Six major quality attributes

Runtime quality attributes:

Attribute Concern Measure Common tactics
Performance Response time, throughput TPS, RT Caching, async, load balancing
Availability How fast it recovers after a failure MTTR Active redundancy, heartbeat, election
Reliability How long between failures MTBF, MTTF Redundancy, degradation, circuit breaking
Security Resistance to attacks Number of vulnerabilities Authn/authz, encryption, auditing
MTTR = Mean Time To Repair → smaller is better
MTTF = Mean Time To Failure → larger is better
MTBF = Mean Time Between Failures → larger is better
MTBF = MTTF + MTTR

Development-time quality attributes: maintainability, extensibility, testability, reusability, portability, modifiability, interoperability

Availability tactics

Fault detection: heartbeat, ping-echo, exception monitoring
Fault recovery: active redundancy (hot standby), passive redundancy (cold standby), election (Raft/Paxos)
Fault prevention: transactions, process monitoring, predictive models

Modifiability tactics

  • Decouple with middleware
  • Separate interface from implementation
  • Abstraction
  • Information hiding

⚠️ Variability is not a concern of modifiability

4.3 Architecture evaluation methods

Method Full name Feature
ATAM Architecture Tradeoff Analysis Method Architecture tradeoff analysis, evaluates quality-attribute tradeoffs before development, the most common
SAAM Software Architecture Analysis Method Basic scenario analysis, focuses on changes in non-functional requirements
SASAM Static evaluation method
SAABNet Dynamic analysis method

ATAM focuses on four quality attributes: performance, security, availability, modifiability

The six elements of a quality attribute (scenario template):

Source (who triggers) → Stimulus (what happens) → Environment (in what state)
→ Artifact (which part is affected) → Response (what the system does) → Response measure (the standard to meet)

Three architecture-evaluation concepts:

  • Architectural risk: hidden dangers from architectural decisions with potential problems
  • Sensitivity point: a characteristic of a component for achieving a certain quality attribute
  • Tradeoff point: a characteristic that affects multiple quality attributes (a sensitivity point for several attributes)

4.4 ABSD (Architecture-Based Software Development)

Drivers: business needs + quality attributes + functional requirements

Development process: requirements → design → documentation → review → implementation → evolution

The top-level conceptual architecture is decomposed into conceptual subsystems, ultimately producing software components and classes

4.5 DSSA (Domain-Specific Software Architecture)

Three roles:

  • Domain analyst → produces the domain model
  • Domain designer → develops the DSSA, obtaining the architecture
  • Domain implementer → takes the DSSA to concrete implementation

Three references: reference model + reference requirements + reference architecture

4.6 Big-data architecture: Lambda vs Kappa

Dimension Lambda architecture Kappa architecture
Pipeline Batch + real-time dual pipelines Real-time single pipeline only
Compute engine Spark (batch) + Flink/Storm (stream) Flink/Kafka Streams only
Data storage HDFS (batch) + HBase/Redis (real-time) Kafka + ClickHouse/Doris
Consistency of results Hard to guarantee, the two pipelines may disagree Naturally consistent
Maintenance cost High (maintain two codebases) Low
Data latency High batch latency Near real-time
Suitable for Ultra-large batch, high precision, traditional warehouse Real-time dashboards, risk control, real-time warehouse
Lambda architecture:
Raw data → ┬─ Batch layer (Spark/MapReduce) → batch view  ─┐
           │                                                ├→ Serving layer (Hive/Impala)
           └─ Speed layer (Flink/Spark Streaming) → real-time view ┘

Kappa architecture:
Raw data → Kafka (message queue) → Flink (stream compute) → ClickHouse/Doris (query)

4.7 Microservice architecture vs monolithic architecture

Dimension Monolithic Microservices
Code structure One codebase Multiple independent service repos
Database Share one DB A separate DB per service
Deployment Redeploy the whole thing Deploy independently, no impact on others
Scaling Scale the whole thing Scale individual services on demand
Tech stack Unified Can be heterogeneous
Call method Local method calls HTTP/RPC over the network
Fault tolerance One module crashing affects everything Service isolation, faults don’t spread
Suited for Small projects launched quickly Large, complex, high-concurrency systems

The Spring Cloud microservice tech stack:

Registry:        Nacos / Eureka
Config center:   Nacos / Apollo
Gateway:         Spring Cloud Gateway
Service calls:   OpenFeign
Circuit break/limit: Sentinel / Resilience4j
Message queue:   Kafka / RabbitMQ
Distributed tx:  Seata

4.8 Cloud computing service models

SaaS (Software as a Service)       → top layer, use the software directly
PaaS (Platform as a Service)       → middle layer, provides a development platform
IaaS (Infrastructure as a Service) → bottom layer, provides hardware resources

5. Database Systems

5.1 Normal forms

Normal form Requirement Problem it solves
1NF Each column atomic, indivisible Column splitting
2NF 1NF + eliminate partial functional dependencies Non-key attributes fully depend on the key
3NF 2NF + eliminate transitive dependencies A→B→C becomes A→B, A→C
BCNF 3NF + every determinant is a candidate key A stricter 3NF
4NF BCNF + eliminate multi-valued dependencies Multi-valued dependency
Partial functional dependency example (violates 2NF):
Primary key: (student_id, course_id)
Problem: student name depends only on student_id (partial dependency)
Fix: split tables → Student(student_id, name) + Enrollment(student_id, course_id, grade)

Transitive dependency example (violates 3NF):
student_id → department → department head (transitive dependency)
Fix: split tables → Student(student_id, department) + Department(department, head)

5.2 Relational algebra

Operation Symbol Description
Cartesian product × Brute force, row counts multiply
Natural join Join on same-named columns, removing duplicate columns
Projection π Which columns to keep (SELECT columns)
Selection σ Which rows to filter (WHERE conditions)
Union Merge two tables and deduplicate
Difference In A but not in B
Intersection In both tables

5.3 Armstrong’s axioms

The three basic axioms:

  • Reflexivity: if Y⊆X, then X→Y
  • Augmentation: if X→Y, then XZ→YZ
  • Transitivity: if X→Y and Y→Z, then X→Z

Three common corollaries:

  • Union rule: X→Y, X→Z ⟹ X→YZ
  • Decomposition rule: X→YZ ⟹ X→Y, X→Z
  • Pseudo-transitivity: X→Y, WY→Z ⟹ WX→Z

5.4 Distributed databases

Four kinds of transparency (high to low):

Fragmentation transparency → unaware of how data is fragmented (highest-level)
Replication transparency   → unaware of which nodes data is replicated to
Location transparency      → unaware of which node data is on
Logical transparency       → unaware of the underlying data model (lowest-level)

Two-Phase Commit (2PC):

Phase 1 (prepare/vote phase):
  Coordinator → all participants: "Are you ready?"
  Participants → coordinator: "Yes/No"

Phase 2 (execute/commit phase):
  All Yes → coordinator → all participants: "COMMIT"
  Any No  → coordinator → all participants: "ROLLBACK"

Distributed database conceptual schema hierarchy:

Global external schema (customer's view)
    ↓
Global conceptual schema (HQ's general ledger)
    ↓
Fragmentation schema (splitting rules)
    ↓
Allocation schema (where fragments are stored)

5.5 The three-level schema structure

External schema (user view / View)  ← the data view users see
Schema (conceptual schema/table structure) ← the global logical structure
Internal schema (physical storage/index) ← how data is stored

5.6 Data warehouse characteristics

Differences from an ordinary database:

  • Subject-oriented (rather than transaction-oriented)
  • Integrated (multi-source data consolidation)
  • Non-volatile (append-only, historical data)
  • Time-variant (records time snapshots)

6. Operating Systems

6.1 Process management

The three-state process model:

Ready ──(scheduled/allocated CPU)──→ Running
  ↑                                   │
  └──(time slice up / preempted by higher priority)──┘
       ↑                ↓
       └──(I/O complete)── Blocked/Waiting ──(I/O request)──┘

PCB (Process Control Block) organization:

  • Sequential (linear list)
  • Linked (linked list)
  • Indexed (index table)
  • Hashed

Process vs thread:

  • Process: the smallest unit of resource allocation and management
  • Thread: the basic execution unit of a process (the smallest unit of CPU scheduling)

6.2 Deadlock

The four necessary conditions (all must hold for deadlock):

Condition Description Can it be broken?
Mutual exclusion A resource is used by only one process at a time ❌ Can’t break (nature of the resource)
Hold and wait Holding resources while requesting new ones ✅ Can break (request all at once)
No preemption Resources can’t be forcibly taken away ✅ Can break (allow preemption)
Circular wait Processes form a circular wait chain ✅ Can break (order resources by number)

Banker’s algorithm: predict whether the system stays in a safe state after allocation; refuse if unsafe.

6.3 Disk scheduling

Three elements of physical addressing:
Head number (surface) → cylinder number (track) → sector number (position)

Access time = seek time + rotational latency + data transfer time

Common disk-scheduling algorithms:
FCFS (First-Come First-Served) → fair but inefficient
SSTF (Shortest Seek Time First) → may starve outer tracks
SCAN (elevator) → scans back and forth, more even
C-SCAN (circular scan) → one-directional scan, fairer

6.4 Embedded systems

Real-time OS (RTOS) characteristics:

  • Task scheduler: preemptive scheduling
  • Hard-real-time scheduling algorithm: Rate Monotonic Scheduling (RMS)
    • Shorter task period → higher priority

Low-power design strategies:

  • Compilation optimization techniques
  • Hardware-software co-design
  • Algorithm optimization (reduce computation)

7. Information Security

7.1 Encryption algorithms

Symmetric encryption

Algorithm Key length Feature
DES 56 bits No longer secure
3DES 112 bits (56×2) An enhanced version of DES
AES 128/192/256 bits The current standard, secure and efficient

Asymmetric encryption

RSA principle:
Public key encrypts → private key decrypts (encrypted data transmission)
Private key signs → public key verifies (digital signatures)

The full digital-signature flow:
Sender:   plaintext → Hash → message digest → encrypt with private key → digital signature
Receiver: received (plaintext + signature) → decrypt the signature with the public key to get digest 1
                                           → Hash the plaintext to get digest 2
                                           → if digest 1 == digest 2, verification passes

The role of the message digest: prevent tampering
The role of encrypting the digest: prevent repudiation (digital signature)

7.2 Third-party authentication

Protocol Feature Suited for
Kerberos Symmetric-key encryption, KDC distributes keys, timestamps prevent replay Enterprise intranet/LAN
PKI/CA Public Key Infrastructure, the CA issues digital certificates Internet HTTPS

Kerberos’s mechanism against replay attacks: timestamps

7.3 Common network attacks

Attack type Principle
SYN Flooding Exploits the TCP three-way handshake, forges source IPs and sends many SYNs, exhausting half-open connections
Ping of Death Sends oversized ICMP packets causing buffer overflow
Teardrop Sends fragments with overlapping offsets causing a crash
Land SYN packets with source IP = destination IP, causing an infinite loop
Traffic analysis Sniffs traffic to analyze communication patterns (dangerous even if encrypted)

7.4 Five levels of information security

Level 1  Discretionary protection
Level 2  System audit protection
Level 3  Security label protection
Level 4  Structured protection
Level 5  Access verification protection (highest)

7.5 Highest level of disaster recovery

  • Zero data loss (RPO=0)
  • Automatic system failover (RTO≈0)

8. Project Management

8.1 Project time management

PERT expected-time formula:

$$T_e = \frac{T_{optimistic} + 4 \times T_{mostLikely} + T_{pessimistic}}{6}$$

Gantt chart vs PERT chart:

  • Gantt chart: shows task scheduling and progress, intuitive but doesn’t show dependencies
  • PERT chart: shows task dependencies and the critical path, can compute earliest/latest finish times

8.2 WBS (Work Breakdown Structure)

Project
├── Phase 1
│   ├── Work package 1.1
│   └── Work package 1.2
├── Phase 2
│   ├── Work package 2.1
│   └── Work package 2.2
└── Phase 3

Tool used for activity definition: WBS

8.3 Configuration management

Three states of a configuration item:

Draft → formally released → under modification

Four configuration-management activities:

  • Version control
  • Change management
  • Configuration status management
  • Access and security control

8.4 Requirements management

Change Control Board: CCB

Requirements-change management process:

1. Problem analysis and change description
2. Change analysis and cost estimation
3. Change implementation

Three basic requirements-management activities:

  1. Change control
  2. Version control
  3. Requirements traceability

Appendix: Quick Memory of High-Frequency Points

Summary of core mnemonics

CMMI five levels: Initial, Repeatable, Defined, Managed, Optimizing

Coupling low→high: no-direct, data, stamp, control, external, common, content

Cohesion low→high: coincidental, logical, temporal, procedural, communicational, sequential, functional

Normal forms:
  1NF = atomic, 2NF = full dependency, 3NF = no transitive, 4NF = no multi-valued

Guide to choosing an architectural style

Requirement feature Recommended style
Dataflow processing, compilers Pipe-and-filter
Big-data batch processing Batch processing style
Event notification, decoupling Event-driven
Layered system, MVC Layered architecture
Script parsing, rule engines Interpreter/rule system
Blackboard (AI inference, speech recognition) Blackboard style
Web systems B/S, REST
Enterprise system integration SOA/ESB
Cloud-native elasticity Microservices
Embedded control Closed-loop / process control
Exam point Java implementation
Singleton Spring Bean (scope=singleton)
Factory BeanFactory, ApplicationContext
Proxy Spring AOP (JDK dynamic proxy/CGLIB)
Observer Spring ApplicationEvent
Chain of Responsibility Spring Security FilterChain
Strategy Comparator, payment strategy
Template Method JdbcTemplate, RestTemplate
SOA/ESB Spring Integration, Apache Camel
Microservices Spring Cloud Alibaba
Message queue Kafka (event-driven architecture)
Cache Redis (repository-style central data store)