Review for Exams
Table of Content
Topics
(Chpaters 1, 2, and 3; Lecture Notes) concept and overview of software engineering
(Sections 4.1 - 4.4 and Chapter 5; Lecture Notes) Overview of Software Process Models
(Chapter 2 and Sections 11.1 and 11.5; Lecture Notes) Introductions to VCS, Android Development
(Chapter 6; Lecture Notes) Requirement engineering and analysis; Behavior-driven design; User stories
(Lecture Notes) User-interface requirements; UI sketch; storyboards; project productivity tracking; velocity; tools
(Chapter 10; Lecture Notes) quality assurance; quality control; verification; validation testing; unit-test;
(Chapter 10; Lecture Notes) Android UI testing; acceptance tests for user stories; Espresso
(Chapter 10, Section 9.3.4; Lecture Notes) unit test; JUnit; Test-driven development (TDD); TDD workflow; refactoring
(Sections 7.1 and 7.2; Lecture notes) architecture design and methodologies;
(Sections 7.3 and 7.4 and Appendix C; Lecture notes) detailed design; object-oriented design; UML
(Chapters 7, 8, and 9, Section 14.1; Lecture notes) SOA
(Chapter 7.3.4; Robillard’s Modules 1 and 2; Lecture notes) Polymorphism; interface and polymorphism; Interface Separation Principle
(Chapters 8 and 9; Robillard’s Module 6; Lecture notes) Observer Design Pattern and Inversion of Control
(Chapters 8 and 9; Robillard’s Module 2; Lecture notes) Strategy, Iterator, and Singleton Design Patterns
(Chapters 8 and 9; Robillard’s Module 6; Lecture notes) SOLID
(Chapters 9 and 10; Lecture notes) implementation (beautiful code; DRY; Clarity via Conciseness; Idioms;
(Chapters 9 and 10; Lecture notes) concepts of bugs, defects, faults, errors, failures; debugging techniques; scientific debugging
(Chapters 9 and 10; Lecture notes) code reviews