Syllabus - Software Architectures (CS701)


Computer Science and Engineering

Software Architectures (CS701)

VII

Unit 1

Overview of Software development methodology and software quality model, different models of software development and their issues. Introduction to software architecture, evolution of software architecture, software components and connectors, common software architecture frameworks, Architecture business cycle – architectural patterns – reference model.

Unit 2

Software architecture models: structural models, framework models, dynamic models, process models. Architectures styles: dataflow architecture, pipes and filters architecture, call-and return architecture, data-centered architecture, layered architecture, agent based architecture, Micro-services architecture, Reactive Architecture, Representational state transfer architecture etc.

Unit 3

Software architecture implementation technologies: Software Architecture Description Languages (ADLs), Struts, Hibernate, Node JS, Angular JS, J2EE – JSP, Servlets, EJBs; middleware: JDBC, JNDI, JMS, RMI and CORBA etc. Role of UML in software architecture.

Unit 4

Software Architecture analysis and design: requirements for architecture and the life-cycle view of architecture design and analysis methods, architecture-based economic analysis: Cost Benefit Analysis Method (CBAM), Architecture Tradeoff Analysis Method (ATAM). Active Reviews for Intermediate Design (ARID), Attribute Driven Design method (ADD), architecture reuse, Domain –specific Software architecture.

Unit 5

Software Architecture documentation: principles of sound documentation, refinement, context diagrams, variability, software interfaces. Documenting the behavior of software elements and software systems, documentation package using a seven-part template.

Practicals

Reference Books

  • Bass, L., P. Clements, and R. Kazman, “Software Architecture in Practice”, Second Edition, Prentice-Hall.

  • Jim Keogh, “J2EE – Complete Reference”, Tata McGraw Hill.

  • Dikel, David, D. Kane, and J. Wilson, “Software Architecture: Organizational Principles and Practices”, Prentice-Hall.

  • Bennett, Douglas, “Designing Hard Software: The Essential Tasks”, Prentice-Hall, 1997.

  • Clements, Paul, R. Kazman, M. Klein, “Evaluating Software Architectures: Methods and Case Studies”, Addison Wesley, 2001.

  • Albin, S. “The Art of Software Architecture”, Indiana: Wiley, 2003.

  • Robert Mee, and Randy Stafford, “Patterns of Enterprise Application Architecture”, Addison-Wesley, 2002.

  • Witt, B., T. Baker and E. Meritt, “Software Architecture and Design: Principles, Models and Methods”, Nostrand Reinhold, 1994.