Chapter One - Introduction To Software Design
Chapter One - Introduction To Software Design
1
What is software design?
2
Cont…
3
Objective of software design
Correctness: A good design should be correct i.e., it should correctly implement all the
issues.
Flexibility: A good software design should have the ability to adapt and accommodate
changes easily. It includes designing the software in a way, that allows for modifications,
enhancements, and scalability without requiring significant rework or causing major
disruptions to the existing functionality.
Understandability: A good design should be easily understandable, it should be modular,
system being build. Generally, there are 3 major activities in Software Design –
External Design
Architectural Design
Detailed Design
The Architectural design and Detailed design are collectively known as
Internal Design.
External Design – External design involves conceiving, planning out and
specifying the externally observable characteristics of Software Product
such as User interface, report formats, data sources, functional
characteristics and performance requirements.
5
Cont…
Internal Design – Internal design involves conceiving, planning out and specifying the
internal structure and processing details of the software product. The goals of internal
design are to specify internal structure and processing details, to record design, to
elaborate the test plan and to provide alternatives, provide the blueprint design for
implementation, specifying using and maintenance activities.
expected from the software will define the importance of each point of consideration.
Usability: The end-user must be able to easily interact with the UI. Location of UI
elements, colors and default value for parameters are factors to be considered.
Extensibility: When adding new capabilities to the software, it should be done
without significant changes to the architecture.
Compatibility: How is the software going to interact with other products. For
example backward-compatibility with an older version of itself
Modularity: Various components of the software could be implemented and tested
independently.
Maintainability: How easy is to apply bug fixes and modifications to the software
Functionality: How well the software can execute the user tasks
And many more...
7
Design principles
Software Design is also a process to plan or convert
effort needed for design but can also reduce the scope of
introducing errors during design.
Following are the principles of Software Design
9
Problem Partitioning
divide the problems and conquer the problem it means to divide the problem
pieces.
breaking down a complex problem or task into smaller, more manageable
abstract level without bothering about the internal details of the implementation.
Abstraction can be used for existing element as well as the component being
designed.
Abstraction is the selection of a set of concepts to represent a complex whole.
Modularity specifies to the division of software into separate modules which are
differently named and addressed and are integrated later on in to obtain the
completely functional software. It is a bottom-up approach to system design
Quality attributes:
Advantages of Modularity
It allows large programs to be written by several or different people
main storage.
It provides more checkpoints to measure progress.
13
Strategy of Design
To design a system, there are two possible approaches
Top-down Approach
Bottom-up Approach
Top-down Approach: This approach starts with the identification
14
Cont…
Bottom-up Approach: A bottom-up approach begins with the
15
1.6. Introduction to User Interface Design
UI design refers to the visual design of a digital product’s interface.
It’s the process of creating interfaces (namely apps and websites) with a focus on
the visual elements and their interactive properties that facilitate user interaction.
While UI design is largely a visual discipline, UI designers work on a vast array
of projects.
In order to design accessible, user-friendly interfaces, UI designers bring
empathy into every stage of the design process from designing screens, icons,
and interactions, to creating a style guide that ensures consistency and the proper
implementation of a visual language across an entire product.
In today’s digital world, UI designers are needed across all industries from
16
banking, healthcare, and education to ecommerce, fashion, and travel.
1.6. Introduction to User Interface Design
What’s the difference between UI design and UX design?
17
1.6. Introduction to User Interface Design
AI tools can help UI designers with preliminary