CP7014 SOFTWARE ARCHITECTURES Syllabus - Anna University ME CSE 2nd Sem Regulation 2013 Syllabus

CP7014 SOFTWARE ARCHITECTURES Syllabus - Anna University ME CSE 2nd Sem Regulation 2013 Syllabus

OBJECTIVES:

 Understand architectural requirements
 Identify architectural structures
 Develop architectural documentation
 Generate architectural alternatives
 Evaluate the architecture against the drivers

UNIT I ARCHITECTURAL DRIVERS

Introduction – Standard Definitions of Software Architecture– Architectural structures – Influence of software architecture on organization – Architecture Business Cycle – Functional requirements – Technical constraints – Quality Attributes – Quality Attribute Workshop (QAW) – Documenting Quality Attributes – Six part scenarios

UNIT II ARCHITECTURAL VIEWS AND DOCUMENTATION

Introduction – Standard Definitions for views – Structures and views- Perspectives: Static, dynamic and physical and the accompanying views – Representing views-available notations – Good practices in documentation– Documenting the Views using UML – Merits and Demerits of using visual languages – Need for formal languages - Architectural Description Languages – ACME

UNIT III ARCHITECTURAL STYLES

Introduction – Data flow styles – Call-return styles – Shared Information styles – Event styles – Case studies for each style

UNIT IV ARCHITECTURAL DESIGN

Approaches for architectural design – System decomposition – Attributes driven design – Architecting for specific quality attributes – Performance, Availability – Security – Architectural conformance

UNIT V ARCHITECTURE EVALUATION AND SOME SPECIAL TOPICS

Need for evaluation – Scenario based evaluation against the drivers – ATAM and its variations – Case studies in architectural evaluations – SOA and Web services – Cloud Computing – Adaptive structures

OUTCOMES:

Upon Completion of the course,the students will be able to
 Explain key architectural drivers
 Explain the influence of architecture on business and technical activities
 Identify key architectural structures
 Adopt good practices for documenting the architecture
 Develop alternative architectures for a given problem
 Explain how to use formal languages to specify architecture
 Evaluate the architecture against the drivers
 Describe the recent trends in software architecture

REFERENCES:

1. Len Bass, Paul Clements, and Rick Kazman, “Software Architectures Principles and Practices”, 2n Edition, Addison-Wesley, 2003.
2. Anthony J Lattanze, “Architecting Software Intensive System. A Practitioner's Guide”, Auerbach Publications, 2010.
3. Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, and Judith Stafford, “Documenting Software Architectures. Views and Beyond”, 2nd Edition, Addison-Wesley, 2010.
4. Paul Clements, Rick Kazman, and Mark Klein, “Evaluating software architectures: Methods and case studies.”, Addison-Wesley, 2001.
5. David Garlan and Mary Shaw, “Software architecture: Perspectives on an emerging discipline”, Prentice Hall, 1996.
6. Rajkumar Buyya, James Broberg, and Andrzej Goscinski, “Cloud Computing. Principles and Paradigms”, John Wiley & Sons, 2011
7. Mark Hansen, “SOA Using Java Web Services”, Prentice Hall, 2007
8. David Garlan, Bradley Schmerl, and Shang-Wen Cheng, “Software Architecture-Based Self-Adaptation,” 31-56. Mieso K Denko, Laurence Tianruo Yang, and Yan Zang (eds.), “Autonomic Computing and Networking”. Springer Verlag, 2009.