CS603 - Software Architecture and Design
CS603 - Software Architecture and Design
Overview
In first topic of software architecture and design, we will explore the “Design” meaning in the Cambridge
dictionary as verb and noun. We will discuss the application of design in different areas such as design of
houses, chairs and helmet. At the end software design and its need will be described in this topic with
examples.
Learning Goals
Learn the design definition as verb and noun
Learn about the description of design from different areas
Learn about the software design
Learn about the need of the design activity
Pre-requisite Courses:
Software engineering I (CS504)
Pre-existing Knowledge:
You should know the following concepts prior taking this course
Software Application
Software application development process consist on different phases mentioned in the below figure.
Planning, analysis, design, deployment and implementation, testing and maintenance are steps (phases)
that involved in software development.
Overview
In this topic, you will get an overview of the design objectives, what we want to achieve from the design,
the necessity of the design phase, things involved in design process, what it specifies and how a design
should be.
Learning Goals
Learn about the design objectives
Learn about the necessity of the design
Learn about the requirements of the design
Learn about the problem domain vs design
Learn about the customer needs and design
Customer Requirements
Customer requirements mean what customers or users required from the system. How the system
behaves, what are the tasks need to perform by the system, how users will interact with the
system, and how the system will present the output. The customer is a significant stakeholder
that plays a vital role in the correct development, successful implementation, and system
utilization.
Domain Knowledge
Domain knowledge means the information and having expertise about the particular environment
and industry in which the developed system will operate. For example, knowledge of the
pharmaceutical industry and telecom industry.
A system specification can be a written document containing a detailed description of all aspects
of the system to be built before the project commences.
Overview
In this topic, you will get an overview of the design complexity, poorly designed software, why poorly
designed software hard to understand and modify. Adding features in poorly and well-designed software
effect on cost.
Learning Goals
Learn about the design complexity
Learn about the issues with poorly designed software