Indian Institute of Information Technology, Allahabad

Department of Information Technology

Course Syllabus A Template

1. Name of the Course:  Software Design and Architecture

2. LTP structure of the course: [2-2-0]

3. Objective of the course:

The main objective of this course is to provide students with the background to design, implement, and use mid size and large software systems. The software design aspects with special focus on Object Oriented Design can be started with Design objectives and will continue with OO Design Principles. The Design Patterns with GoF dictum to be discussed. The 23 classic Design Patterns may be explored  to complete the Design Aspects whereas the Architectural consideration to be covered in next part of the Course. In the Architectural discussions the issues emanating from the concept of "Separation of Concerns" with different Architectural realizations has to be understood. The increasing role of Cloud services and how it affects the Architectural decisions is also proposed to be handled through Case Studies discussions.

The course though being core subject of all CSE/IT Master programs (Software Engineering specializations) and assumes special significance due to the highly competitive environment and the explosive use of the Internet and Cloud Services in Business-to-Client and Business-to-Business applications and thus need to be explored accordingly. Recent developments  intechnologiesis proposed to beincluded.

4. Outcome of the course:

Students can apply knowledge of Software Design techniques and apply appropriate architectural considerations to the projects. Students can analyze a problem, develop models and identify and define the functional and non-functional needs and requirements appropriate to its’ business context and solution. Students can use current techniques, skills, and tools necessary for developing software systems. An ability to use and apply current technical concepts and practices, students should develop the ability to explore recent advances. The capability to  project mode problem solving needs to be incorporated.         

5. Course Plan:

Component 1

UNIT -1

Introduction to Algorithm Design, Software Design and Architecture

What is Software system Design objectives, purpose and approaches of efficient system design, Functional Independence in Software Design with Coupling and Cohesion. Overview of OO Design: Class Diagrams Object Diagrams. Sequence and Collaboration Diagrams, Static and dynamic modeling approaches for efficient design

UNIT -2

Software Design Principles

Role of Modeling and Design, Design Metrics, OO Software Design. Design Principles with applications. . Iterative Refinement Behavior, Iterative Refinement Minimalism. Mobile Software and Design: Characteristics and Requirements, Mobile Interaction designs, UX design.

UNIT -3

Design Patterns and Architectural consideration

Recent Trends in Software  Design with special focus on Mobile Apps Development. The GoF and evolution of Design Patterns

Component 2

UNIT-4

Pattern based Design

Design Patterns with Creational Design Patterns, Structural Design Patterns and Behavioral Design Patterns.

Example elaborations of popular patterns with suggested areas of Applications.

Architecture Types and Representation

Role of Software Architecture, Module View, Data Flow View, Layers View. Technical Architecture, Business Architecture, Solutions Architecture & Enterprise Architecture. Architecture for Web enabled applications. Separation of Concerns, Developing Application Architecture with GUI and Database connectivity. Database Design and Data Centric Architectures

Architectural Implementations

MVC Architecture and Separation of Concerns, SOA and Web Services, RESTFul services and API. Advances in Software Architecture.

Recent Trends in Software Architecture: Cloud Based Architecture, Service Oriented Architecture etc..

6.  TEXT BOOKS:

[1] G. Booch, Object-Oriented Analysis and Design with Applications 2nd Edition, PHI, New Delhi, 1993.

[2] Design Patterns by Ralph Johnson, John Vlissides, Richard Helm, and Erich Gamma.

[3] Software Architecture: Foundations, Theory, and Practice by  Richard N. Taylor et al.(John Wiley and Sons).

REFERENCES:

1. Frank Buschmann, Kelvin Henney& Douglas Schimdt, “Pattern-Oriented Software Architecture - A System of Patterns”, Volume 1, Wiley,2007.

2. Frank Buschmann, Kelvin Henney& Douglas Schimdt, “Pattern-Oriented Software Architecture – Pattern for Concurrent and Networked Objects”, Volume 2 ,Wiley, 2000.

3. Mary Shaw , David Garlan , “Software architecture perspectives on a Emerging Dicipline”,EEE,PH1,1996.