SlideShare una empresa de Scribd logo
1 de 23
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 1
Function-oriented design
Design with functional units
which transform inputs to
outputs
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 2
Objectives
To explain how a software design may be
represented as aset of functions which share state
To introduce notations for funciton-oriented
design
To illustrate the function-oriented design process
by example
To compare sequential, concurrent abd object-
oriented design strategies
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 3
Topics covered
data-flow design
Structural decomposition
Detailed design
A comparison of design strategies
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 4
Function-oriented design
Practised informally since programming began
Thousands of systems have been developed
using this approach
Supported directly by most programming
languages
Most design methods are functional in their
approach
CASE tools are available for design support
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 5
A function-oriented view of design
F2F1 F3
F4 F5
Shared memory
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 6
Natural functional systems
Some systems are naturally function-oriented
Systems which maintain minimal state
information i.e. where the system is concerned
with processing independent actions whose
outcomes are not affected by previous actions
Information sharing through parameter lists
Transaction processing systems fall into this
category. Each transaction is independent
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 7
An ATM system design
Replace with portrait slide
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 8
Functional and object-oriented design
For many types of application, object-oriented
deisgn is likely to lead to a more reliable and
maintainable system
Some applications maintain little state - function-
oriented design is appropriate
Standards, methods and CASE tools for
functional design are well-established
Existing systems must be maintained -
function-oriented design will be practised well
into the 21st century
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 9
Functional design process
Data-flow design
• Model the data processing in the system using data-flow
diagrams
Structural decomposition
• Model how functions are decomposed to sub-functions using
graphical structure charts
Detailed design
• The entities in the design and their interfaces are described in
detail. These may be recorded in a data dictionary and the
design expressed using a PDL
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 10
Data flow diagrams
Show how an input data item is functionally
transformed by a system into an output data
item
Are an integral part of many design methods
and are supported by many CASE systems
May be translated into either a sequential or
parallel design. In a sequential design,
processing elements are functions or
procedures; in a parallel design, processing
elements are tasks or processes
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 11
DFD notation
Rounded rectangle - function or transform
Rectangle - data store
Circles - user interactions with the system
Arrows - show direction of data flow
keywords and/ or. Used to link data flows
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 12
Design report generator
Replace with portrait slide
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 13
Structural decomposition is concerned with
developing a model of the design which shows
the dynamic structure i.e. function calls
This is not the same as the static composition
structure
The aim of the designer should be to derive
design units which are highly cohesive and
loosely coupled
In essence, a data flow diagram is converted to a
structure chart
Structural decomposition
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 14
Decomposition guidelines
For business applications, the top-level structure
chart may have four functions namely input,
process, master-file-update and output
Data validation functions should be subordinate
to an input function
Coordination and control should be the
responsibility of functions near the top of the
hierarchy
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 15
Decomposition guidelines
The aim of the deisgn process is to identify
loosely couypled, highly cohesive functions.
Each function should therefore do one thing and
one thing only
Each node in the structure chart should have
between two and seven subordinates
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 16
Process steps
Identify system processing transformations
• Transformations in the DFD which are concerned with
processing rather than input/output activities. Group under a
single function in the structure chart
Identify input transformations
• Transformations concerned with reading, validating and
formatting inputs. Group under the input function
Identify output transformations
• Transformations concerned with formatting and writing output.
Group under the output function
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 17
Initial structure chart
Produce
designreports
Collate
entities
Generate
report
Get design
entity names
Design
name
Design
entity
names
Design
report
entity
names
entity
data
entity
data
entity
names
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 18
Expanded structure chart
Produce
designreports
Collate
entities
Generate
report
Get design
entity names
entity
names
names
sorted
entity
datanames
Get design
name
Get entity
names
Sort entities
by name
Get entity
data
Sort entities
by type
Produce
integrated report
Print
report
design
name
entity
names
repor tentity
data
design
name
names
sorted
names
entity
data
sorted
entity
data
sorted
entity
data
Integrated
repor t
sorted
entity
data
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 19
Final structure chart
Data
dictionary
Produce
designreports
Collate
entities
Generate
report
Get design
entity names
entity
names
names
sorted
entity
datanames
Get design
name
Get entity
names
Sort entities
by name
Get entity
data
Sort entities
by type
Produce
integrated report
Print
report
design
name
entity
names
report
entity
data
design
name
names
sorted
names
entity
data
sorted
entity
data
sorted
entity
data
Integrated
report
Design
database
design
name
entity
name
Produce
linkreport
Produce
node report
Link
data
Link
report
Node
data Node
report
sorted
entity
data
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 20
Detailed design
Concerned with producing a short design
specification (minispec) of each function. This
should describe the processing, inputs and
outputs
These descriptions should be managed in a data
dictionary
From these descriptions, detailed design
descriptions, expressed in a PDL or programming
language, can be produced
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 21
Data dictionary entries
Entity name Type Description
Design name STRING The name of the design assigned by the
design engineer.
Get design name FUNCTION Input: Design name
Function: This function communicates
with the user to get the name of a design
that has been entered in the design
database.
Output: Design name
Get entity names FUNCTION Input: Design name
Function: Given a design name, this
function accesses the design database to
find the names of the entities (nodes and
links) in that design.
Output: Entity names
Sorted names ARRAY of
STRING
A list of the names of the entities in a
design held in ascending alphabetical
order.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 22
Function-oriented design relies on identifying
functions which transform inputs to outputs
Many business systems are transaction processing
systems which are naturally functional
The functional design process involves
identifying data transformations, decomposing
functions into sub-functions and describing these
in detail
35
Key points
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 23
Key points
Data-flow diagrams are a means of documenting
end-to-end data flow. Structure charts represent
the dynamic hierarchy of function calls
Data flow diagrams can be implemented directly
as cooperating sequential processes
Functional and object-oriented design result in
different system decompositions. However, a
heterogeous approach to design is often necessary

Más contenido relacionado

La actualidad más candente

REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
Entity Relationship Diagrams
Entity Relationship DiagramsEntity Relationship Diagrams
Entity Relationship Diagramssadique_ghitm
 
Requirement specification (SRS)
Requirement specification (SRS)Requirement specification (SRS)
Requirement specification (SRS)kunj desai
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramKumar
 
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...Gyanmanjari Institute Of Technology
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software EngineeringFáber D. Giraldo
 
JDBC: java DataBase connectivity
JDBC: java DataBase connectivityJDBC: java DataBase connectivity
JDBC: java DataBase connectivityTanmoy Barman
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram Rahul Pola
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagramRamakant Soni
 
Software project management- Software Engineering
Software project management- Software EngineeringSoftware project management- Software Engineering
Software project management- Software EngineeringMuhammad Yousuf Abdul Qadir
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentationmewaseem
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesionSutha31
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 

La actualidad más candente (20)

REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Activity diagram
Activity diagramActivity diagram
Activity diagram
 
Entity Relationship Diagrams
Entity Relationship DiagramsEntity Relationship Diagrams
Entity Relationship Diagrams
 
Requirement specification (SRS)
Requirement specification (SRS)Requirement specification (SRS)
Requirement specification (SRS)
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
JDBC: java DataBase connectivity
JDBC: java DataBase connectivityJDBC: java DataBase connectivity
JDBC: java DataBase connectivity
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagram
 
Software project management- Software Engineering
Software project management- Software EngineeringSoftware project management- Software Engineering
Software project management- Software Engineering
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Uml class-diagram
Uml class-diagramUml class-diagram
Uml class-diagram
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesion
 
Semi join
Semi joinSemi join
Semi join
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 

Destacado

Software Quality Framework Introduction
Software Quality Framework IntroductionSoftware Quality Framework Introduction
Software Quality Framework IntroductionDon Hough
 
Object oriented and function oriented design
Object oriented and function oriented designObject oriented and function oriented design
Object oriented and function oriented designNaveen Sagayaselvaraj
 
In-Memory Apps for Precision Medicine
In-Memory Apps for Precision MedicineIn-Memory Apps for Precision Medicine
In-Memory Apps for Precision MedicineMatthieu Schapranow
 
Analyze Genomes: In-memory Apps supporting Precision Medicine
Analyze Genomes: In-memory Apps supporting Precision MedicineAnalyze Genomes: In-memory Apps supporting Precision Medicine
Analyze Genomes: In-memory Apps supporting Precision MedicineMatthieu Schapranow
 
Analyze Genomes Services for Precision Medicine
Analyze Genomes Services for Precision MedicineAnalyze Genomes Services for Precision Medicine
Analyze Genomes Services for Precision MedicineMatthieu Schapranow
 
Analyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response AnalysisAnalyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response AnalysisMatthieu Schapranow
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 

Destacado (7)

Software Quality Framework Introduction
Software Quality Framework IntroductionSoftware Quality Framework Introduction
Software Quality Framework Introduction
 
Object oriented and function oriented design
Object oriented and function oriented designObject oriented and function oriented design
Object oriented and function oriented design
 
In-Memory Apps for Precision Medicine
In-Memory Apps for Precision MedicineIn-Memory Apps for Precision Medicine
In-Memory Apps for Precision Medicine
 
Analyze Genomes: In-memory Apps supporting Precision Medicine
Analyze Genomes: In-memory Apps supporting Precision MedicineAnalyze Genomes: In-memory Apps supporting Precision Medicine
Analyze Genomes: In-memory Apps supporting Precision Medicine
 
Analyze Genomes Services for Precision Medicine
Analyze Genomes Services for Precision MedicineAnalyze Genomes Services for Precision Medicine
Analyze Genomes Services for Precision Medicine
 
Analyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response AnalysisAnalyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response Analysis
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 

Similar a Function Oriented Design

Automatic measurements of use cases with cosmic thomas fehlmann
Automatic measurements of use cases with cosmic   thomas fehlmannAutomatic measurements of use cases with cosmic   thomas fehlmann
Automatic measurements of use cases with cosmic thomas fehlmannIWSM Mensura
 
Automatic measurements of use cases with cosmic thomas fehlmann
Automatic measurements of use cases with cosmic   thomas fehlmannAutomatic measurements of use cases with cosmic   thomas fehlmann
Automatic measurements of use cases with cosmic thomas fehlmannIWSM Mensura
 
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slidesMaking the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slidesSusan Yoskin
 
Design & Implementation.pptx
Design & Implementation.pptxDesign & Implementation.pptx
Design & Implementation.pptxSalmaItagi2
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceArti Parab Academics
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-EngineeringSaqib Raza
 
SWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design ToolsSWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design Toolsghayour abbas
 
SAP ABAP Online Training Institute in Hyderabad - C-Point
SAP ABAP Online Training Institute in Hyderabad - C-PointSAP ABAP Online Training Institute in Hyderabad - C-Point
SAP ABAP Online Training Institute in Hyderabad - C-Pointcpointss
 
Ssad system design
Ssad system designSsad system design
Ssad system designRavi Shekhar
 

Similar a Function Oriented Design (20)

Caim
CaimCaim
Caim
 
Automatic measurements of use cases with cosmic thomas fehlmann
Automatic measurements of use cases with cosmic   thomas fehlmannAutomatic measurements of use cases with cosmic   thomas fehlmann
Automatic measurements of use cases with cosmic thomas fehlmann
 
Automatic measurements of use cases with cosmic thomas fehlmann
Automatic measurements of use cases with cosmic   thomas fehlmannAutomatic measurements of use cases with cosmic   thomas fehlmann
Automatic measurements of use cases with cosmic thomas fehlmann
 
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slidesMaking the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
 
Week 6
Week 6Week 6
Week 6
 
ch14.ppt
ch14.pptch14.ppt
ch14.ppt
 
Design & Implementation.pptx
Design & Implementation.pptxDesign & Implementation.pptx
Design & Implementation.pptx
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer Science
 
Ch10-Program Design
Ch10-Program DesignCh10-Program Design
Ch10-Program Design
 
ch28-software-reengineering.ppt
ch28-software-reengineering.pptch28-software-reengineering.ppt
ch28-software-reengineering.ppt
 
06 fse design
06 fse design06 fse design
06 fse design
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
rEFUP.pdf
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-Engineering
 
SWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design ToolsSWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design Tools
 
Software reengineering
Software reengineeringSoftware reengineering
Software reengineering
 
SMD.pptx
SMD.pptxSMD.pptx
SMD.pptx
 
James hall ch 14
James hall ch 14James hall ch 14
James hall ch 14
 
SAP ABAP Online Training Institute in Hyderabad - C-Point
SAP ABAP Online Training Institute in Hyderabad - C-PointSAP ABAP Online Training Institute in Hyderabad - C-Point
SAP ABAP Online Training Institute in Hyderabad - C-Point
 
Dbms fast track 2/3
Dbms fast track 2/3Dbms fast track 2/3
Dbms fast track 2/3
 
Ssad system design
Ssad system designSsad system design
Ssad system design
 

Último

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Function Oriented Design

  • 1. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 1 Function-oriented design Design with functional units which transform inputs to outputs
  • 2. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 2 Objectives To explain how a software design may be represented as aset of functions which share state To introduce notations for funciton-oriented design To illustrate the function-oriented design process by example To compare sequential, concurrent abd object- oriented design strategies
  • 3. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 3 Topics covered data-flow design Structural decomposition Detailed design A comparison of design strategies
  • 4. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 4 Function-oriented design Practised informally since programming began Thousands of systems have been developed using this approach Supported directly by most programming languages Most design methods are functional in their approach CASE tools are available for design support
  • 5. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 5 A function-oriented view of design F2F1 F3 F4 F5 Shared memory
  • 6. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 6 Natural functional systems Some systems are naturally function-oriented Systems which maintain minimal state information i.e. where the system is concerned with processing independent actions whose outcomes are not affected by previous actions Information sharing through parameter lists Transaction processing systems fall into this category. Each transaction is independent
  • 7. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 7 An ATM system design Replace with portrait slide
  • 8. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 8 Functional and object-oriented design For many types of application, object-oriented deisgn is likely to lead to a more reliable and maintainable system Some applications maintain little state - function- oriented design is appropriate Standards, methods and CASE tools for functional design are well-established Existing systems must be maintained - function-oriented design will be practised well into the 21st century
  • 9. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 9 Functional design process Data-flow design • Model the data processing in the system using data-flow diagrams Structural decomposition • Model how functions are decomposed to sub-functions using graphical structure charts Detailed design • The entities in the design and their interfaces are described in detail. These may be recorded in a data dictionary and the design expressed using a PDL
  • 10. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 10 Data flow diagrams Show how an input data item is functionally transformed by a system into an output data item Are an integral part of many design methods and are supported by many CASE systems May be translated into either a sequential or parallel design. In a sequential design, processing elements are functions or procedures; in a parallel design, processing elements are tasks or processes
  • 11. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 11 DFD notation Rounded rectangle - function or transform Rectangle - data store Circles - user interactions with the system Arrows - show direction of data flow keywords and/ or. Used to link data flows
  • 12. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 12 Design report generator Replace with portrait slide
  • 13. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 13 Structural decomposition is concerned with developing a model of the design which shows the dynamic structure i.e. function calls This is not the same as the static composition structure The aim of the designer should be to derive design units which are highly cohesive and loosely coupled In essence, a data flow diagram is converted to a structure chart Structural decomposition
  • 14. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 14 Decomposition guidelines For business applications, the top-level structure chart may have four functions namely input, process, master-file-update and output Data validation functions should be subordinate to an input function Coordination and control should be the responsibility of functions near the top of the hierarchy
  • 15. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 15 Decomposition guidelines The aim of the deisgn process is to identify loosely couypled, highly cohesive functions. Each function should therefore do one thing and one thing only Each node in the structure chart should have between two and seven subordinates
  • 16. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 16 Process steps Identify system processing transformations • Transformations in the DFD which are concerned with processing rather than input/output activities. Group under a single function in the structure chart Identify input transformations • Transformations concerned with reading, validating and formatting inputs. Group under the input function Identify output transformations • Transformations concerned with formatting and writing output. Group under the output function
  • 17. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 17 Initial structure chart Produce designreports Collate entities Generate report Get design entity names Design name Design entity names Design report entity names entity data entity data entity names
  • 18. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 18 Expanded structure chart Produce designreports Collate entities Generate report Get design entity names entity names names sorted entity datanames Get design name Get entity names Sort entities by name Get entity data Sort entities by type Produce integrated report Print report design name entity names repor tentity data design name names sorted names entity data sorted entity data sorted entity data Integrated repor t sorted entity data
  • 19. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 19 Final structure chart Data dictionary Produce designreports Collate entities Generate report Get design entity names entity names names sorted entity datanames Get design name Get entity names Sort entities by name Get entity data Sort entities by type Produce integrated report Print report design name entity names report entity data design name names sorted names entity data sorted entity data sorted entity data Integrated report Design database design name entity name Produce linkreport Produce node report Link data Link report Node data Node report sorted entity data
  • 20. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 20 Detailed design Concerned with producing a short design specification (minispec) of each function. This should describe the processing, inputs and outputs These descriptions should be managed in a data dictionary From these descriptions, detailed design descriptions, expressed in a PDL or programming language, can be produced
  • 21. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 21 Data dictionary entries Entity name Type Description Design name STRING The name of the design assigned by the design engineer. Get design name FUNCTION Input: Design name Function: This function communicates with the user to get the name of a design that has been entered in the design database. Output: Design name Get entity names FUNCTION Input: Design name Function: Given a design name, this function accesses the design database to find the names of the entities (nodes and links) in that design. Output: Entity names Sorted names ARRAY of STRING A list of the names of the entities in a design held in ascending alphabetical order.
  • 22. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 22 Function-oriented design relies on identifying functions which transform inputs to outputs Many business systems are transaction processing systems which are naturally functional The functional design process involves identifying data transformations, decomposing functions into sub-functions and describing these in detail 35 Key points
  • 23. ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 15 Slide 23 Key points Data-flow diagrams are a means of documenting end-to-end data flow. Structure charts represent the dynamic hierarchy of function calls Data flow diagrams can be implemented directly as cooperating sequential processes Functional and object-oriented design result in different system decompositions. However, a heterogeous approach to design is often necessary