Software Design PPT
Software Design PPT
Design
Software Engineering and Modelling
TABLE OF CONTENTS
0 Software Design 0 Structured Design
Process 2 Methodologies
1
0 Modules Coupling 0 Case Study
3 / Cohesion 4
0
1
Software
Design
Process
Software design process refers to
the
systematic approach used to
develop
software applications by following a
set
of guidelines, principles, and
practices.
Design Process Stages
1
Requirements
2
System 3
Design
Gathering
Defining the problem and
Analysis
Designing the system
Specification
Creating detailed specifications
gathering requirements by architecture and identifying that outline how each
identifying user needs. the components used to component of the system is
implement the system. implemented.
4
Implementati 5
Integration
6
Maintenance
on
coding the software system
And Testing
Integrating the different developers must continue to
according to the design components of the software maintain and update it to
specifications and making it system and testing them to ensure that it continues to
work. ensure that they function meet the needs of its users.
correctly together. This includes fixing bugs,
updating components
Software Design
Objectives
● Functionality: The software system should
provide the functionality required to meet the
needs of its users.
● Usability: The software system should be easy to
use, with a user interface that is intuitive and
user-friendly.
● Performance: The software system should
perform well, with fast response times and
efficient resource utilization.
● Reliability: The software system should be
reliable and stable, with minimal downtime and
errors.
● Maintainability: The software system should be
designed in a way that makes it easy to maintain,
update, and modify over time.
● Scalability: The software system should be
designed to scale up or down as needed
● Security: Designed with appropriate security
measures to protect user data and prevent
unauthorized access.
● Compliance: Comply with relevant industry
standards and regulations, such as data privacy
and security regulations.
0
Structured
2
Design
Methodolo
gies
Structured design methodologies are
systematic approaches to software
design that rely on a set of
guidelines
and practices to create well-
structured,
reliable, and maintainable software
systems.
Some common structured design methodologies
in software engineering include:
● Structured Systems Analysis
and Design Method (SSADM):
SSADM is a structured approach to
system analysis and design that
emphasizes the use of data flow
diagrams (DFDs) and other
graphical tools to model the
system's processes and data flows.
A software development company has been contracted to design a task management system for a small
business. The system should allow users to create and assign tasks, track progress, and receive
notifications when tasks are due. The software development company has a team of designers and
developers who will work together to design and develop the system.
• Requirement gathering: The software development team meets with the client to gather requirements for
the task management system. They discuss the business processes and goals, user needs, and
technical requirements.
• Analysis and design: The development team analyzes the requirements and creates a design document
outlining the system architecture, data model, user interface design, and functionality.
• Implementation: The developers write code to implement the design. They use a modular approach,
dividing the system into separate modules for tasks, users, notifications, and reporting.
• Testing and quality assurance: The development team tests the system to ensure it meets the
requirements and is free of bugs. They use automated testing tools and manual testing to identify and fix
any issues.
Coupling and Cohesion:
To ensure that the system is modular and maintainable, the development team pays close
attention to coupling and cohesion. They use the following techniques:
Module cohesion: The development team designs each module to be highly cohesive, meaning
that each module has a single responsibility and a clear interface. For example, the task module
is responsible for managing tasks and has functions for creating, editing, and deleting tasks.
Low coupling: The development team designs each module to have low coupling, meaning that
modules are independent and have minimal dependencies on other modules. For example, the
task module does not depend on the user module, but instead receives user data through
parameters.
Loose coupling: The development team uses message passing to communicate between
modules, which allows for loose coupling. For example, the notification module sends a message
to the user module to notify the user of a new task.
Conclusion:
By following a structured software design process and paying attention to coupling and cohesion, the
development team is able to create a modular and maintainable task management system that
meets the client's requirements.
THANK YOU
Team Members-