CSE/ECE 668 Winter 2009
Applied Component-Based Software Engineering
Days: MWF
Time: 10:30 - Room: DL (Dreese Lab) 317
Instructor: Prof. Roger Crawfis
Office: 683 Dreese Labs
Phone: 614.292.2566
email: crawfis -at- cse.ohio-state.edu
Grader:
Bruce Adcock (adcockb -at- cse.ohio-state.edu)
Office: DL 674
Office hours: M 1:00-3:00, T 11:00-12:00
Text Books:
Programming .NET Components, 2nd Edition, Juval Lowy, O'Reilly
- Available (and free to OSU students) on-line through OSU-Safari.
C# in a Nutshell, 3rd Edition - Joseph Albahari and Ben Albahari
UML Distilled, 3rd Edition, Martin Fowler, Addison-Wesley Professional (optional)
Grading Policy
4 Programming assignments 75%
Final Exam (3-19-2009 at 9:30am) 25%
Schedule (Tentative)
Lecture # (29 lectures in Winter 2009)
- Course Overview and history of Software Engineering
- Component-based Programming and UML Component diagrams
- Overview of .NET
- C# and Visual Studio Overview
- C# Types
- C# Types continued, C# interfaces and the Template Method design pattern
- C# constructors, the Singleton design pattern, Actuators and Lab1, C# 1.1 containers, type Unification and the IDisposable
- Visual Studio demo, UML class Diagrams and Visual Studio support, Visual Studio 2008 Unit testing
- Visual Studio 2008 Unit testing continued, C# Generics
- Weather Day
- C# Generics and key .NET interfaces, File I/O
- Garbage Collection, Iterator Design pattern and .NET Enumeration
- .NET Enumeration, .NET Collection classes
- Delegates and the Publisher / Subscriber design pattern
- .NET events, System.Collections.Specialized
- Lab2, Composite, Factory and Builder design patterns.
- No class
- XML, DTD and XSD
- XML, DTD and XSD, UML Object Diagrams
- C# and XML
- Equality and Comparisons
- Extension methods, Anonymous methods, Lambda expressions
- Attributes
- Reflection,
- Serialization, Lab3
- no class
- The Proxy Design Pattern, .NET Remoting
- The Decorator Design Pattern, LINQ
- Final Exam review
- Asynchronous Method calls, Multithreading and concurrency in C#, Refactoring the Collection classes with an Adaptor Design Pattern (IPriorityCollection), The Decorator design pattern and making thread-safe versions of the IPriorityCollection
- Final Exam (Study Guide)
Reference Books:
- C# in a Nutshell, 3rd Edition - Joseph Albahari and Ben Albahari
- Programming C#, 4th Edition - Jesse Liberty
- Available (and free to OSU students) on-line through OSU-Safari
- Learning XML, 2nd Edition, Erik T. Ray, O'Reilly
- XML Schema, Eric van der Vlist, O'Reilly
- Design Patterns, E. Gamma, R. Helm, R. Johnson and J. Vlissides, Addison Wesley
- CLR via C#, 2nd Edition, Jeffrey Richter, Microsoft Press
- Refracting: Improving the Design of Existing Code, Martin Fowler, Kent Beck, John Brant, and William Opdyke, Addison-Wesley Professional
- Applied XML Programming for Microsoft .NET, Dino Esposito, Microsoft Press
Slides
Readings
- Week1 : Read the following:
- Chapters 1-2 from Programming .NET Components.
- Chapters 1 (Introduction) and 14 (Component Diagrams) from UML Distilled
- The two articles from IEEE Software by Steve McConnell:
- Week 2 : Read the following:
- Chapters 1-3 in C# in an Nutshell
- Chapter 3 (Class Diagrams) from UML Distilled
- Week 3: Read the following:
- Chapters 1-2 from Programming .NET Components.
- Chapters 4-5 in C# in an Nutshell
- Go through my errata for C# in a Nutshell.
- Week 4
- Week 6
- Chapter 6 from Programming .NET Components.
- Week 7
- Week 8
Lab Assignments
Lab1 - Waterworks
Lab2 - Waterworks
Lab3 - Waterworks