Software Design

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Software Design and Architecture

Code Credit Hours


SE- 211 2-1
Course Description
The Software Design & Architecture course is designed to help students to develop skills that
will enable them to construct software of high quality, software that is reliable, easy to
understand, modify and maintain. The course is important in relation to the core modules and
helps the students to understand the Object-oriented software design and to develop reusable
software.
The course introduces principles of good design, object-oriented software design and a number
of architectural styles like enterprise architecture, business architecture, Information System
Architecture, and technology architecture. These architectural patterns help the students to
analyze the non-functional requirements. A particular emphasis is laid on the design process
so that students can recognize the significance of design in maintaining the project.
To enhance the abilities of students to develop reusable software designs. To introduce the
students to the principles of good design, design approaches, paradigms and object-oriented
concepts. In addition, students will learn software architecture that represents the gross-level
structure of software intensive systems and includes early design decisions that impact the
quality of the overall system. Enterprise architecture is generally considered to play a
fundamental role in coping with the inherent difficulties of the development of large-scale and
complex software systems. A common assumption is that architecture design can support the
required software system qualities such as robustness, adaptability, reusability and
maintainability. This course enables the students to apply architecture pattern, design
principles on different real-world problems.

Text Book:
1. Java Design Patterns: A Hands-on Experience with Real-World Examples, second
edition, 2018, Vaskaran Sarcar
2. Humberto Cervantes, Rick Kazman. Designing Software Architectures: A Practical
Approach 2016 Addison Wesley
Reference Book:
1. Alexander Shvets Design Patterns Explained Simply
Prerequisites
SE-205

ASSESSMENT SYSTEM FOR THEORY

Quizzes 10%

Assignments 5-10%

Mid Terms 35%

ESE 50%
ASSESSMENT SYSTEM FOR LAB

Lab Work and Report 70-80%

Lab ESE/Viva 20-30%

Teaching Plan

Week Learning Outcomes


No Topics

Week1 Introduction to Software Design & Understand the fundamental


Architecture concepts of software design and
• What’s a Design Pattern architecture.
• What does the pattern consist of? Recognize and define what design
patterns are and their purpose.
• Importance of Design Patterns
Explain the significance and benefits
• Levels of Designs of using design patterns in software
• Design Approaches development.
• Design Challenges Differentiate between various levels
• Characteristics of Good and Bad of design in software engineering.
design Compare different approaches to
software design.
Identify common challenges faced
during software design.
Assess the characteristics that
define good and bad software
design.
Week 2 UML Revision Refresh knowledge on UML and its
• Invariants, Pre- and post applications in software design.
conditions Understand and apply invariants,
OOP Revision pre-conditions, and post-conditions
in software specifications.
Week 3 Symptoms of rotten Software Design Identify and diagnose common
symptoms of poor software design.
Week 4 Software Design Process and Principles Understand the foundational
I principles and processes involved in
Class Level Software Design Principles software design. Learn and apply
(SOLID) SOLID principles to ensure robust
and maintainable class-level
designs.
Week 5 Software Design Process and Principles Delve deeper into advanced
II software design processes and
principles.
Week 6 Software Design Process and Principles Delve deeper into advanced
II software design processes and
• Cohesion and Coupling principles. Define and differentiate
• Different types of Cohesion and between cohesion and coupling in
Coupling software design. Identify and explain
various types of cohesion and
• Package Level Software Design
coupling. Apply design principles at
Principles the package level to ensure modular
and scalable software systems.
Week 7 Creational Design Patterns I Understand and implement basic
creational design patterns.
Week 8 Creational Design Patterns II Master more advanced creational
design patterns and their
applications.
Week 9 Mid Semester Exam Assess understanding and
application of concepts covered in
the first half of the course.
Week 10 Structural Design Patterns I Learn and apply fundamental
structural design patterns.
Week 11 Structural Design Patterns II Explore advanced structural design
patterns and their real-world
applications.
Week 12 Behavioural Design Patterns I Understand and implement basic
behavioural design patterns.
Week 13 Behavioural Design Patterns II Master more advanced behavioural
design patterns and their
applications.
Week 14 Architectural patterns and Styles Identify and compare different
architectural patterns and styles
used in software engineering.
Week 15 Enterprise Architecture (EA) Overview Gain a comprehensive
understanding of enterprise
architecture concepts and
frameworks.
Week 16 Business Architecture Overview, Understand the key components and
Information System Architecture structure of business and
Overview information system architectures.
Week 17 Projects Apply learned concepts and
principles to practical projects,
demonstrating the ability to design
and implement robust software
systems.
Week 18 End Term Exam Evaluate overall understanding and
application of course material.
Practical:
Experiment
No Description
01 UML Revision: Use Case Diagrams

02 OOP Revision: Pillars of OOP

03 OO Design Principles (Class and Package level)

04 OO Design Principles (Class and Package level)

05 Creational Design Patterns I

06 Creational Design Patterns II

07 Structural Design Patterns I

08 Lab Assessment

09 Structural Design Patterns II

10 Behavioral Design Patterns I

11 Behavioral Design Patterns II

12 ARIS Workspace Walk-through & Familiarization

13 Defining Simple Business Architecture In ARIS

14 Defining Application Architecture In ARIS

15 Defining Technology Architecture in ARIS

16 Lab Discussion

You might also like