Date |
Topic |
Material |
---|---|---|
14 Sep. | Introduction: Software Engineering | Margaret Hamilton's talk at ICSE'18 |
21 Sep. | Software Development Lifecycle | The Joe Test |
Lab: Version Control and Git (Project II) | ||
28 Sep. | Introduction of Mobile App Development (Guest Lecturer: Prof. Liangyu Chen) |
飞书群 |
Lab: Build a demo Andorid app (preparing for Project II) | ||
7 Oct. | Requirment Analysis & Use cases | Writing Effective Use Cases |
Lab: Use case diagrams & schema (Project I) | ||
12 Oct. | Domain Analysis and Domain Model | Domain Model v.s. Data Model, General Guide For Exploring Large Open Source Codebases |
Lab: System sequence diargram, Activity diagram and Domain model (Project I) | ||
2 Nov. | Design Basics & Principles | Good Programming Principles |
Lab: Project Presentation --- New Features (Project II) | ||
9 Nov. | Design Patterns | Design patterns implemented in Java |
Lab: design sequence digram, class diagram and design patterns | ||
16 Nov. | Software Architecture | Client/Server, Central Repository, Layered, Model-View-Controller, Pipe-and-Filter, Microservices.
Better Design: EasyChair v.s. HotCrap (Hot Crap!) |
23 Nov. | Foundations on Software Testing | |
Lab: JUnit Testing | ||
30 Nov. | Coverage-based Software Testing | Code Coverage at Google, Does mutation testing improve testing practices? |
Lab: Coverage-based testing (ISP, Graph, Logic, Mutation) | ||
7 Dec. | Advanced Topics: Random Testing (Fuzzing), GUI Testing, Bug Reproduction | AFL, Android Monkey, The Themis Benchmarks, 软件分析与验证前沿课(本研直通课) |
14 Dec. | Build System & Continuous Integration | |
Lab: CI & Themis | ||
21 Dec. | Project Management | |
28 Dec. | Course Wrapup | |
Lab: Course Project II and III | ||
4 Jan. | Course Presentation (Project II and III) | |