This unit examines object-oriented systems modelling/design in greater depth than the prerequisite unit. The key disciplines of the Unified Process will be examined to set a context for analysis and design. Students will learn about static and dynamic modelling, and component-based design, using UML. Some common design patterns will be studied. Some topics about software architecture are examined.
The unit prepares students to be able to design large systems such as will be implemented in their final year project unit or after graduation.
At the completion of this unit students will:
- understand object-oriented concepts such as: association, aggregation and composition; polymorphism and generalisation; messaging and object interaction, state and lifespan of objects; encapsulation, connascence, domains, encumbrance, cohesion, coupling;
- know the finer details of syntax and semantics of the Unified Modelling Language with respect to modelling class diagrams, interaction diagrams, state machine diagrams, package diagrams, activity diagrams, deployment diagrams, timing diagrams, interface and component diagrams;
- be able to consider advanced topics in relation to use cases and specifications when analysing a system;
- understand the role of software architecture, and be able to employ several common architectural such as tiered computing, client/server, pipes and filters, P2P, Layered implementation, publisher/subscriber, to design systems;
- understand the role of patterns and pattern languages in designing systems, and be familiar with a range of structural, creational and behavioral patterns;
- be able to apply theoretical concepts and techniques for problem solving, to design complete software systems in a range of settings;
- be able to justify system design decisions with reference to a models quality, limitations, scope for future extension, and to theoretical concepts;
- utilise IT practitioner tools to support the process and documentation of systems design.
- be able to communicate the design of a system through electronic documents including UML models, other diagrams, and supporting text.
- have an awareness of the process by which object-oriented system analysis and design is performed using a framework such as the Unified Process.
Examination (3 hours): 60%; In-semester assessment: 40%
GCO2813, GCO2816, GCO9806