Source: http://blog.csdn.net/kongdong/
Reference: China Software Engineering tutorial (Tsinghua University Press) ISBN 7-302-0980206/tp.6763
- Computing Basics
- Computer science basics
- Algorithms, data structures, and complexity
- Problem solving Technology
- Computer Organization Structure
- Basic user factors (I/O, error information, robustness)
- Basic developer factors (comments, structures, readability)
- Programming Language Basics
- Network Communication Basics
- Semantics of programming languages
- Development Technology
- Object-oriented running problems (polymorphism, dynamic binding, etc)
- Parameterization and Generalization
- Assertion, contractual design, Defensive Programming
- Error Handling, exception handling, and fault tolerance
- Status-based and table-Driven Development Technology
- Configuration and internationalization of Running
- Syntax-based input processing (Syntactic Analysis)
- Concurrent elements (semaphores, monitors, etc)
- Middleware (components and containers)
- Distributed Software Development Method
- Heterogeneous (hardware and software) system development; Integrated Software and Hardware Design
- Performance Analysis and Adjustment
- Test-preferred programming
- Development Tools
- Application-oriented languages (such as script and Visual Programming)
- Profiling, performance analysis, and slicing tools
- Formal Development Method
- Abstract Machine Applications (such as SDL and Paisley)
- Application of formal languages and Methods
- Automatically generate code based on Specifications
- Candidate Implementation Analysis
- Map specifications to different implementations
- Mathematical and engineering Basics
- Mathematical Basics
- Functions, relationships, and collections
- Basic logic (Proposition and predicate)
- Proven Technology (direct, contradictory, and inductive)
- Finite State Machine, Regular Expression
- Number accuracy, accuracy, and error
- Engineering basics of software
- Experience methods and experimental technologies (such as computer measurement techniques for CPU and memory usage)
- System development (such as security, insurance, performance, scale effect, and feature interaction)
- Engineering Design (Problem description, optional solutions, feasibility, etc)
- Engineering Science in other engineering disciplines
- Software Engineering Economics
- Value factors throughout the software lifecycle