Function-Oriented Design is a software
design approach in which the system is divided
into smaller modules based on the functions
they perform, with each module handling a
specific task and all modules working together
to achieve the system’s overall purpose.
Coming up: Evolutionary Models: Prototyping 1
Function-Oriented Design strategies focus on
representing the system in terms of functions and
their interactions. They provide tools and techniques
to break down a complex system into smaller,
manageable parts while maintaining a clear flow
from inputs to outputs. The major strategies are
[Link] Relationship Diagram ( ERD)
[Link] Tree
[Link] Table
[Link] Flow Diagram ( DFD)
[Link] Dictionary
[Link] Code
2
Entity Relationship Diagram (ERD)
• ERD is a graphical representation of entities (objects, concepts, or
things) and the relationships between them within a system.
• Used mainly in database design to represent data and how it is
connected, helping developers and stakeholders understand the
logical structure.
Key Components:
Entity: Represents a real-world object (e.g., Customer, Product).
Attributes: Properties of the entity (e.g., Customer Name, Address).
Relationships: How entities are connected (e.g., Customer places
Order).
3
4
A decision tree is a graphical representation of the
decision-making process in software design, where
conditions are arranged in a tree-like structure to
show the various paths and corresponding actions
that result from different combinations of inputs.
In Functional-Oriented Design, it is used to model
complex conditional logic, making it easier to
translate requirements into structured functions and
program modules.
5
Example: Library Book Lending System
Scenario: Determine if a book can be issued to a member.
Rules:
If the member has no pending fines:
If they have borrowed fewer than 5 books → Issue book.
Else → Reject (max limit reached).
If the member has pending fines → Reject (clear fines first).
6
A decision table is a tabular method for representing and analyzing
complex decision logic by listing all possible conditions and the
corresponding actions to be [Link]’s used to ensure that all
combinations of conditions are considered, and to avoid missing or
conflicting rules.
Structure of a Decision Table
•Conditions Stub → Lists all the conditions that influence the decision.
•Condition Entries → Shows possible values (e.g., Yes/No, True/False,
High/Low) for each condition.
•Actions Stub → Lists the possible actions or outcomes.
•Action Entries → Indicates which actions are taken for each set of
7
conditions.
8
1. Interface Design
Coming up: Evolutionary Models: Prototyping 9
2. Architecture Design
The process of identifying the major building blocks
(components) of the system, assigning each a specific
responsibility, and defining how they [Link] provides the
overall system structure but does not go into the internal
details of each component.
Coming up: Evolutionary Models: Prototyping 10
2. Architecture Design
Coming up: Evolutionary Models: Prototyping 11
3. Detailed Design
The phase where the internal logic of each
component is worked out in detail, including
algorithms, data structures, user interface
elements, and control flows.
This stage produces a clear blueprint for coding.
Coming up: Evolutionary Models: Prototyping 12
3. Detailed Design
Coming up: Evolutionary Models: Prototyping 13
The software design process is the journey from understanding what
is needed to creating a clear plan for the software. It starts with
requirements and moves through several steps until the design is
ready to build the software. The main steps are given below.
Coming up: Evolutionary Models: Prototyping 14
1. Understanding Project Requirements
Before designing, the team must clearly know what users
need, what the business wants to achieve, and any
possible challenges. This helps create a strong base for a
design that works well for both users and the business.
2. Research, Analysis, and Planning
The team collects information through interviews,
surveys, or focus groups to understand what users want.
This helps in planning a design that truly meets their
needs.
Coming up: Evolutionary Models: Prototyping 15
3. Designing the Software
In the design phase, the team starts creating visual
elements like wireframes, user stories, and flow
diagrams to map out how the system will work. Based on
the feedback, prototypes are created and fine-tuned to
make sure the design is moving in the right direction.
4. Technical Design
The team plans how the system will look and work by
creating wireframes (basic layouts), user stories (short
descriptions of user needs), and flow diagrams (step-
by-step process
Coming up: maps).
Evolutionary Models: Prototyping 16
5. User Interface Design
In this phase, the goal is to make the software both attractive
and easy to use. UI designers focus on visual style, layout,
and navigation, ensuring the interface is intuitive so users can
find what they need and complete tasks without confusion.
6. Prototyping
Prototypes are created to visualize the design and
functionality before the full development process begins.
Prototypes act as a working model of the software, allowing
designers, developers, and stakeholders to explore ideas and
test usability without building the final product. They help
identify design flaws, improve user experience, and ensure 17
requirements are met.