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