CSE/ECE 668 Winter 2009
Applied Component-Based Software Engineering
Days: TR
Time: 2:00 - 3:18
Room: Central Classrooms 346
Instructor: Prof. Roger Crawfis
Office: 683 Dreese Labs
Phone: 614.292.2566
email: crawfis -at- cse.ohio-state.edu
Grader:
Christie Deiters
Office: Caldwell Computer Lab
Office hours: W 4-5pm
E-Mail: deiters.1 -at- gmail.com
Text Books:
C# in a Nutshell, 3rd Edition - Joseph Albahari and Ben Albahari
UML Distilled, 3rd Edition, Martin Fowler, Addison-Wesley Professional (optional)
Programming .NET Components, 2nd Edition, Juval Lowy, O'Reilly
- Available (and free to OSU students) on-line through OSU-Safari.
Head
First Design Patterns, Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy
Sierra, O'Reilly (2004).
- Available (and free to OSU students) on-line through OSU-Safari.
Grading Policy
Programming assignments 75%
Final Exam (3-15-2009 at 1:30pm) 25%
Schedule (Tentative)
Topics
- 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
- Windows Presentation Foundation (Christie's powerpoint slides)
- Routed Events Overview (MSDN)
- Jason Dolinger podcast (long)
- 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
- Head
First Design Patterns, Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy
Sierra, O'Reilly (2004). (read
online)
- 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