Lectures

Lecture notes are posted here after lectures. Reference materials for the lecture, either from the textbooks or relevant articles, are listed.

Lecture 1 (8/24/2015): Introduction to Software Engineering SE1-Intro.pdf
What is Software? Comparison between hardware and software. What is Software Engineering? A historical perspective.
Slides covered: Intro #1-24
References: PRE Ch 1

Lecture 2 (8/26/2015): Introduction to Software Engineering (cont.) & Software Process SE2-Process.pdf
A historical perspective of Software Engineering (cont.). Myths about Software Engineering. What is Software Process? What is generic view of software process? Waterfall model
Slides covered:Intro #25-43, Process #1-26
References: Standish Group report 1995
Fred Brooks, "No Silver Bullet - essence and accident in Software Engineering"
They write the right stuff
PRE Ch 2-3

Lecture 3 (8/31/2015): Software Process (cont.)
Waterfall model (cont.), prototyping model, spiral model, incremental model, unified process
Slides covered: Process #27-53
References: PRE Ch 4, SOM Ch 4

Lecture 4(9/2/2015): Software Process (cont.) & Requirements SE3-Requirement.pdf
Unified process model (cont.), Agile software development, Agile UP, What is requirements? Classifications of requirements, iterative and evoluationary requirements analysis
Slides covered: Process #54-65, Requirements #1-18
References: LAR Ch 2, Ch 5

Lecture 5(9/9/2015): Requirements (cont.) & Group projects SE4-Project.pdf
Use cases, introduction of group projects
Slides covered: Requirements #18-37, Projects #1-18
References: LAR Ch 6

Lecture 6(9/14/2015): Group projects, Teams, Project management SE5-Team.pdf, SE6-ProjectManagement.pdf
introduction of group projects, human aspects of software engineering, project management, version control system
Slides covered: Projects #18-23, Team #1-21, Project management #1-16
References: PRE Ch 6

Lecture 7(9/16/2015): Project management
version control system, issue tracking system
Slides covered: Project management #16-38

Lecture 8(9/21/2015): Use case diagram, domain model SE7-UseCaseDiagram.pdf, SE8-Domain Model.pdf
UML, use case diagram notation, case studies, domain model
Slides covered: Use case diagram #1-16, Domain model #1-10
References: LAR Ch 9

Lecture 9(9/23/2015): Domain model
Three steps to create a domain model
Slides covered: #10-37

Lecture 10(9/28/2015): Initial Project Presentation
Initial presentation of group projects by students

Lecture 11(9/30/2015): System sequence diagram, design engineering SE9-System Sequence Diagrams.pdf SE10-Design.pdf
system sequence diagram, concepts, principles and practices of software design, software architecture design
Slides covered: system sequence diagram #1-14, design engineering #1-22
References: PRE Ch 12, SOM Ch 11

Lecture 12(10/05/2015): Architecture Design SE11-ArchitectureDesign
Software architecture design, various architecture styles
Slides covered: architecture design #6-36
References: PRE Ch 10

Lecture 13(10/07/2015): Architecture Modeling, Detailed Design, Design Patterns SE12-ArchitectureModeling SE13-DesignPatterns
UML package diagram, a little intro about detailed design, two design patterns: adapter pattern, factory pattern
Slides covered: architecture modeling #1-8, detailed design #1-9, design patterns #1-19
References: LAR Ch 14, Ch 26

Lecture 14(10/12/2015): Detailed Design SE14-DetailedDesign SE15-DCDToCode
Interaction diagrams, GRASP principles, detailed class diagrams, mapping diagrams to code
Slides covered: design patterns #20-26, detailed design #10-42, dcd-code #1-16
References: LAR Ch 15, Ch 17, Ch 19

Lecture 15(10/14/2015): Refactoring, Database modeling SE16-Refactoring SE17-DataModeling
What is refactoring? How do we do refactoring? Database design, mapping class diagrams to tables
Slides covered:: refactoring #1-16, data modeling #1-23
References: Beginning Database Design Solutions Ch 1, Ch 9

10/19/2015: Midterm

Lecture 16(10/21/2015): Design Patterns Bridge Memento Builder Singleton Visitor Decorator Facade
Seven design patterns are presented by students

Lecture 17(10/26/2015): Design Patterns State Observable
Two more design patterns are presented by students and two more are presented by the instructor

Lecture 18(10/28/2015): Refactoring Types Refactoring1 Refactoring2 Refactoring3 Refactoring4 Refactoring5 Refactoring6
18 refactoring types are presented by students

Lecture 19(11/02/2015): Refactoring Types Refactoring7 Refactoring8 Refactoring9 Refactoring10 Refactoring11
15 refactoring types are presented by students

Lecture 20(11/04/2015): UI Design, Testing SE18-UIDesign SE19-TestingConcepts
How to design UI? General guidelines and principles for UI design. Important concepts of testing
Slides covered: UI design #1-19, Testing concepts #1-28
References:PRE Ch 15, Ch 22, SOM Ch 16

Lecture 21(11/09/2015): Testing Concepts and Methods SE20-TestingMethods
System testing, debugging, white-box testing
Slides covered Testing concepts #29-42, Testing methods #1-30
References: PRE Ch 23

Lecture 22(11/11/2015): Testing Methods and OO Testing SE21-OOTesting
Black-box testing, OO unit testing-class testing
Slides covered Testing methods #31-41, OO Testing #1-14
References: PRE Ch 24

Lecture 23(11/16/2015): OO Testing and Delta Debugging SE22-DeltaDebugging
Testing polymorphism, inheritance, multiple classes
Slides covered OO Testing #15-30, Delta Debugging #1-16
References: Yesterday, my program worked. Today, it does not. Why?

Lecture 24(11/18/2015): Delta Debugging and Fault Localization
Delta debugging for failure-inducing changes, variables, and thread scheduling
Slides covered: Delta Debugging #17-28, Fault Localization #1-13
References: Visualization of Test Information to Assist Fault Localization