Software Design and Architecture(1)
Software Design and Architecture(1)
1. Course Description
Software Design and Architecture is an advanced course that builds on fundamental software
engineering principles, focusing on designing robust, scalable, and maintainable software systems.
Students will explore key concepts such as architectural styles, design patterns, and component-
based design, learning how to apply these techniques to real-world projects. The course covers the
decision-making process involved in selecting appropriate architectural solutions and navigating
trade-offs between functional and non-functional requirements. Through case studies and hands-
on projects, students will gain experience in designing software architectures that address complex
system needs, ensuring performance, scalability, and security. This course prepares students for
roles as software designers and architects in large-scale software development projects.
2. General Objectives
● To equip students with a deep understanding of architectural styles and design patterns to
create scalable and maintainable software systems.
● To enable students to make informed architectural decisions by evaluating trade-offs and
balancing system performance, security, and flexibility.
● To develop proficiency in applying advanced design principles such as SOLID, DRY,
and component-based design for efficient system development.
● To provide practical knowledge of architecture validation methods to ensure that
architectural designs meet both functional and non-functional requirements.
● To prepare students to design software for emerging technologies such as distributed
systems, microservices, cloud-native applications, and highly available systems.
3. Methods of Instruction
3.1.General instructional Techniques: Lecture, discussion, readings.
3.2.Specific instructional Techniques: Lab works, case study
4. Contents in Detail.
Specific Objectives Contents
5. List of Tutorials:
The following tutorial activities of 15 hours per group of maximum 24 students should be
conducted to cover all the required contents of this course.
S.N. Tutorials
1 Case study on design Patterns Workshop
S.N. Practical
1 Students will explore and apply common design patterns such as Singleton ,
Factory Observer, Strategy by working in pairs to implement a simple
application..
Internal Evaluation
The internal evaluation of a student may consist of assignments, attendance, test-exams, term-
exams, lab reports and projects etc. The tabular presentation of the internal evaluation is as follows:
Student Responsibilities:
Each student must secure at least 45% marks in internal evaluation with 80% attendance in the
class in order to appear in the Semester-End Examination. Failing to get such score will be given
NOT QUALIFIED (NQ) and the student will not be eligible to appear the Semester-End
Examination. Students are advised to attend all the classes and complete all the assignments within
the specified time period. If a student does not attend the class(es), it is his/her sole responsibility
to cover the topic(s) taught during the period. If a student fails to attend a formal exam, test, etc.
there won’t be any provision for re-exam.
1. Bass, L., Clements, P., & Kazman, R. (2021). Software architecture in practice (4th ed.).
Addison-Wesley. ISBN: 978-0321815736
2. Evans, E. (2004). Domain-driven design: Tackling complexity in the heart of software.
Addison-Wesley. ISBN: 978-0321125217
3. Kruchten, P. (2004). The rational unified process: An introduction (3rd ed.). Addison-
Wesley. ISBN: 978-0321197700
4. IEEE Standards Association. (2017). IEEE Std 1471-2000 - IEEE recommended practice
for architectural description of software-intensive systems.
5. ISO/IEC/IEEE 42010:2011 - Systems and software engineering — Architecture
description.
Online Resources
Supplement Materials
Books