Copyright 2017 - CSIM - Asian Institute of Technology

Selected Topic: Object-oriented Analysis and Design

Course code: AT70.9004
Credits: 2(1–3)
This course is elective

Course objectives

Object-Oriented technology has evolved over the past twenty years into the preferred method for developing large complex systems. Characteristics such as abstraction and modularity allow system designers to comprehend and tackle the inherent complexity of these applications.
The Unified Process, an iterative, use case-driven, architecture-centric process together with the Unified Modeling Language, a language for specifying artifacts of software systems, provide the methodology necessary to successfully develop such systems.

Learning outcome

This course presents the concepts and techniques necessary to effectively use system requirements captured in use cases to drive the development of a robust design model. Students learn to apply the UML notation throughout the project life-cycle to capture and communicate analysis and design decisions in the context of an iterative, use case-driven, architecture-centric process.

Prerequisite(s)

Software development experience.

Course outline

I.       Best Practices of Software Engineering
1.   Six best practices
2.   Unified Process
 
II.      Concepts of Object-Orientation
1.   Basic Object-Oriented principles
2.   Basic Unified Modeling Language notation
 
III.      Requirements Overview
1.   Artifacts of Requirements Management
 
IV.     Architectural Analysis
1.   Architectural Layers
2.   Key Abstractions
3.   Analysis Mechanisms
 
V.     Use Case Analysis
1.   Use Case Realization
2.   Class identification
3.   Domain modeling
4.   Use Case behavior
 
VI.     Design Elements
1.   Subsystems and Interfaces
 
VII.    Design Mechanisms
1.   Persistent mechanisms
 
VIII.Runtime Architecture
1.   Modeling Processes and Threads
 
IX.     Distribution
1.   Modeling the Deployment Model
 
X.      Use Case Design
1.   Refine Use Case Realizations
 
XI.     Subsystem Design
1.   Subsystem elements
2.   Subsystem dependencies
 
XII.    Class Design
1.   Implementation environments
2.   Non functional requirements

Laboratory sessions

UML visual modeling tools: IBM Rational Rose and IBM Rational Software Architect Standard Edition.

Learning resources

Reference books

A. Hunt, et al. (1999), The Pragmatic Programmer: From Journeyman to Master, Addison Wesley.
E. Evans (2003), Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison Wesley.
F. Buschmann, et al. (1996), Pattern Oriented Software Architecture: A System of Patterns, Wiley.
L. Bass, et al. (2003), Software Architecture in Practice, 2nd edition, Addison Wesley.
J. Rumbaugh, et al. (2004), The Unified Modeling Language Reference Manual, 2nd edition, Addison Wesley.
E. Gamma, et al. (1994), Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley.
M. Fowler (1999), Refactoring: Improving the Design of Existing Code, Addison Wesley.
J. Bloch (2008), Effective Java, 2nd edition, Prentice Hall.
T. Quatrani (2002), Visual Modeling with Rational Rose 2002 and UML, 3rd edition, Addison Wesley.
T. Quatrani et al. (2006), Visual Modeling with IBM Rational Software Architect and UML, Addison Wesley.

Grading

Assignment           30%,
Midterm exam       30%,
Final exam             40%

Back to the list

 

Login Form

Search

School of Engineering and technologies     Asian Institute of Technology