Software Engineering (SE) is the essential course of majors Computer/ Software/ Electronic Science and Technique. The objectives are to have students to memorize the basic concept of object-oriented software engineering, to understand the SE Body of Knowledge and the SE standards, and to recognize SE’s effect to the real world and the society. After studying, students should understand the idea and theories of SE and software project management, and the tasks of each phase of the software lifecycle. The students are supposed to be able to use the theory and methods of object-oriented software engineering to determine the requirements and to analyze, to design and to implement the target software system. And the students should also be able to evaluate and improve the software system. The course will lay the foundation for the following SE-series courses.
Overview
Syllabus
- Chapter 1 Introduction to Software Engineering
- 1.1 Software History
- 1.2 Software Concept
- 1.3 Software Crisis
- 1.4 Software Engineering vs. Computer Science
- 1.5 Software Ethics
- 1.6 Software Terminology
- Chapter 2 Software Process
- 2.1 Software Lifecycle Phases
- 2.2 Software Team
- 2.3 Software Testing
- Chapter 3 Requirements
- 3.1 Requirements Concept
- 3.2 Achieve Requiements
- 3.3 Rapid Prototype
- 3.4 Requirements Challenges
- 3.5 Requirements Cases
- Chapter 4 Introduction to OO
- 4.1 Cohesion
- 4.2 Coupling
- 4.3 Data Encapsulation
- 4.4 Information Hiding
- 4.5 Inheritence
- 4.6 Aggregation
- 4.7 Association
- 4.8 Polymorphysm and Dynamic Binding
- 4.9 OO Paradigm
- 4.10 UML
- Chapter 5 Object-Oriented Analysis
- 5.1 Use Case Modeling
- 5.2 Class Modeling
- 5.3 Dynamic Modeling
- 5.4 Testing during OOA
- Chapter 6 Object-Oriented Design
- 6.1 Architecture Design
- 6.2 Sequence Diagram
- 6.3 Detailed Design
- Chapter 7 Implementation and Integration
- 7.1 Programming Languages
- 7.2 Good Programming Practice
- 7.3 Implementation and Integration
- Chapter 8 Maintenance
- 8.1 Maintenance is Necessary
- 8.2 Maintenance Programmer
- Chapter 9 Software Lifecycle Models
- 9.1 Software Lifecycle Models
Taught by
Shuang Zhang and HU Qinghe