|
Lecture |
Laboratory Materials |
Project
and Exams |
Week 1 |
Lecture
1. Overview
Lecture
2.
Collaborative Software Development
Version Control System
Version Merging and Conflict Resolution
Problem Report Database |
Exercise
1a:
Subversion Version Control System
Exercise 1b: Project - Saros
(Distributed Pair Programming)
|
|
Week 2 |
Lecture
3. Unix
Commands Part 1
Lecture 4. Unix Commands and Shell Scripting Part 2 |
Exercise 2:
Unix Environment
and Command-line Utilities
|
|
Week 3 |
Lecture
5.
Requirements Elicitation and Analysis
Lecture 6. Requirements Analysis using UML Use Cases and Statecharts |
Exercise 3:
Unix Commands and Bash
Shell Scripting |
|
Week 4 |
Lecture
7.
Object-Oriented Design and Analysis
Lecture 8. Object-Oriented Design and Analysis using UML
Class Diagram and Message Sequence Charts
|
Exercise 4: UML |
|
Week 5 |
Lecture
9. Design Patterns Part 1
Lecture 10. Design Patterns Part 2
Abstract Factory, Factory Method, Singleton, Adapter,
Flyweight, Bridge, Observer, Mediator, Strategy, Visitor
|
In-lab
UML Quiz
|
|
Week 6 |
Continuation of Design Patterns |
Exercise
5: Improving Design
Design Pattern and Refactoring |
|
Week 7 |
Lecture
11. Design Patterns Part 3
Lecture
12. Refactoring Part 1
|
Design
Patterns Quiz
|
|
Week 8 |
Lecture
13. Refactoring Part 2
Midterm
|
|
|
|
Spring
Break |
|
|
Week 9 |
Midterm Review
Lecture
14. Testing, Statement, Branch, and Path Coverage, JUNIT |
Exercise
6:
jUnit Testing |
|
Week 10
|
Continuation
on Test Coverage, Test Generation and Regression Test Selection
|
Exercise
7: Ant Build System
|
SAROS
Extension Part C. Implementation and Testing
SAROS
Part C Starter Files.zip
|
Week 11 |
Lecture
15. Build Management and Documentation, ANT, JAVADOC
Lecture
16. Debugging and Eclipse Debugger, GDB, DDD |
SAROS Project part C Q&A
sessions |
|
Week 12 |
Continuation
on Automated Debugging, Delta Debugging
Lecture
17. Software
Inspection, Code Review, Pair Programming, Hoare Logic |
Exercise
8: Eclipse Debugger
Exercise
9: Bug Finding & FindBug
|
|
Week 13 |
Lecture
18. Static Program Analysis, Hoare Logic, Loop Invariant, Data Flow
Analysis, Program Slicing
Lecture 19. Dynamic Program Analysis, Profiler, and Runtime Verification
|
Exercise
10: Program
Understanding |
|
Week 14 |
Continuation of Static and Dynamic Analysis.
Lecture 21. Review of Lectures and Final Exam Practice Questions
|
Demo your project Part C solution
during the lab session. |
SAROS
Extension Part D. New Feature Proposal
- You can propose a new feature and justify your rationale.
- The assignment will be out on
4/24 during the lecture and will be due 4/30 11:59PM sharp. As I said
in the class, no late policy applies to Part D.
- 10% of the project grade |
Week 15 |
Class
Presentations (5/1 and 5/3) |
|
In-class
presentation of new features, why
you think the features are necessary, etc.
Mock-up screenshot. We will present 10 teams in each lecture. You will
be given 4 minutes each. Two slides
maximum per team.
|