Design and Implementation: Object-Oriented Design using the UML.
Design Patterns.
Implementation Issues.
Open Source Development.
Software Testing: Development Testing.
Test-Driven Development.
Release Testing.
User Testing.
Software Evolution: Evolution Processes.
Program Evolution DynamiCSA.
Software Maintenance.
Legacy System Management.
Dependability and Security.