Software Architecture Design
Course code: AT70.18
This course is elective
Software architects building complex systems must create the illusion of simplicity through decomposition, abstraction, and encapsulation of functionality. Understanding software architecture is especially important at the level of the enterprise, in which multiple applications must work together to support or automate business processes through concurrent access to large amounts of complex persistent data. Designing, implementing, and maintaining such large-scale system infrastructures requires extensive knowledge of best practices in the form of architectural patterns as well as an understanding of modern component-based software development frameworks and asynchronous distributed systems middleware. Students will learn industry best practices and apply the principles they learn by designing and constructing an architectural prototype for a significant real-world software project.
Introduction. Enterprise software architectural design patterns: domain logic, mapping to relational databases, concurrency, session state, distrubuted objects, implementation case studies. Enterprise application integration patterns: messages and message channels, routing, transformation, endpoints, message brokers and process brokers, system management, case studies. Service oriented architecture patterns: business process patterns, business service analysis and design, technical patterns, implementation case studies.
Knowledge of object-oriented analysis and design; programming experience with an object-oriented programming language such as C++, Java, Ruby, Python, or C#.
II. Enterprise software architectural design patterns
1. Domain logic
2. Mapping to relational databases
4. Session state
5. Distributed objects
6. Implementation case studies
III. Enterprise application integration patterns
1. Messages and message channels
5. Message brokers and process brokers
6. System management
7. Implementation case studies
IV. Service oriented architecture patterns
1. Business process patterns
2. Business service analysis and design
3. Technical patterns
4. Implementation case studies