Selected Topic: Software Architecture Design I
Course code: AT70.9013
This course is elective
Course objectivesDesigning, developing, and evolving complex software systems requires a mastery of analytical and technical skills, as well as a knowledge of appropriate processes, architectures and design patterns. Software architects building complex systems must create the illusion of simplicity through decomposition, abstraction, and encapsulation of functionality. Software Architecture I and II teach the fundamentals of software architecture, drawn from research and best practice on large software projects. Students will learn techniques and tools for modeling, analyzing, evaluating, and controlling the development of complex software systems. In Software Architecture Design I, students will develop the basic object-oriented analysis and modeling skills necessary for understanding, designing, and maintaining a software architecture. Software Architecture I should be taken concurrently with AT70.90C, Selected Topics: Software Development Methodologies.
Learning outcomeSoftware engineering, Software architecture, Object-oriented analysis.
Prerequisite(s)Experience programming in a high-level programming language, e.g. C or Java, or by permission of the instructor.
II. Use Cases
III. Problem Domain Modeling
IV. Use Case Realization
V. UML Modeling Tools
TextbookLarman (2005): Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3 rd edition, Prentice Hall.
Reference booksArlow and Neustadt (2004): UML 2 and the Unified Process , 2 nd edition, Addison-Wesley.
Booch (2006): Handbook of Software Architecture , http://www.booch.com/architecture/index.jsp
Booch, Rumbaugh, and Jacobson (2005): The Unified Modeling Language User Guide , 2nd Edition, Addison-Wesley.
Fowler (2003): UML Distilled: A Brief Guide to the Standard Object Modeling Language , Third Edition. Addison-Wesley. Pilone and Pitman (2005): UML 2.0 in a Nutshell , O'Reilly.
GradingThe final grade will be computed from the following constituent parts:
homework and in-class assignments (30%) ,
final exam (70%) .