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
1.1 Copyright
| 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:
- Change control
- Version control
- 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 |
Java-backend-related exam points
| 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) |