Software Engineering CS 20006 Lecture 12 Information System

  • Slides: 30
Download presentation
Software Engineering CS 20006 Lecture 12 Information System Design Approaches

Software Engineering CS 20006 Lecture 12 Information System Design Approaches

Lecture #12 • Overview of system design • Data-oriented design • Function-oriented design •

Lecture #12 • Overview of system design • Data-oriented design • Function-oriented design • Object-oriented design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 2

Overview of System Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur

Overview of System Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 3

Overview of System Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur

Overview of System Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 4

Overview of System Design • Basic tasks of a system designer – Specifying, visualizing,

Overview of System Design • Basic tasks of a system designer – Specifying, visualizing, and documenting problems – Capturing, communicating, and leveraging knowledge in problem solving – Specifying, visualizing, constructing, and documenting solutions 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 5

Overview of System Design • Problems are associated with two things: – Structural characteristics

Overview of System Design • Problems are associated with two things: – Structural characteristics • Determine the possible states of an entity • Includes – Data like elements – Data like requirements – Behavioral characteristics • Determine possible behaviors of an entity • Includes – Algorithmic like elements – Process like requirements 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 6

Overview of System Design • Systems are associated with three things: – Declarative constructs

Overview of System Design • Systems are associated with three things: – Declarative constructs – Procedural constructs – Application constructs 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 7

Overview of System Design Declarative constructs • Represent the problem that a system is

Overview of System Design Declarative constructs • Represent the problem that a system is to solve and the solution once the problem is solved – Data oriented, that is, focus on the data elements – Capture information regarding problems and solutions Examples: Data sections within program or process, tables within DBMS or file systems, data stores within information systems 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 8

Overview of System Design Procedural constructs • To manipulate and transform the problems into

Overview of System Design Procedural constructs • To manipulate and transform the problems into the solution – Process oriented, that is, focus on algorithm like elements that manipulate problems and derive solutions – Capture processes for transforming or deriving a solution from a problem Examples: Code section within programs, library programs within DBMS or file systems, processes within information systems 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 9

Overview of System Design Application constructs • Within an application context in which the

Overview of System Design Application constructs • Within an application context in which the solution is to be realized – Activities – Users Examples: These constructs constitute the human and organizational aspects of a solution 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 10

System Design Approaches 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 11

System Design Approaches 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 11

System Design Paradigms • Data-oriented paradigm – Focuses on structural characteristics of a problem

System Design Paradigms • Data-oriented paradigm – Focuses on structural characteristics of a problem to derive the solution • Function-oriented paradigm – Focuses on behavioral (and dynamic) characteristics of a problem to derive the solution • Object-oriented paradigm – Focuses on problem concepts (both structural and behavioral) characteristics as a whole to derive the solution 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 12

Data-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 13

Data-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 13

Data-oriented Design • Two steps: 1. Design suitable data structure (s) for the system

Data-oriented Design • Two steps: 1. Design suitable data structure (s) for the system 2. System design is derived from the data structure (s) Example: Employee Information System 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 14

Data-oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 15

Data-oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 15

Data-oriented Design: Approach • Identify data within the problem – • Data-oriented problems are

Data-oriented Design: Approach • Identify data within the problem – • Data-oriented problems are regarded as primary in facilitating and driving problem-solving efforts Identify processes that manipulate data – • Process-oriented elements of problems are regarded as secondary in facilitating problem-solving efforts Decompose and elaborate data to further understand the problem and solution – Elaboration consists of specifying relationships among data elements and reducing data elements into subordinate data elements 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 16

Data-oriented Design: Approach • Derive a solution from the decomposition – Satisfying the data-oriented

Data-oriented Design: Approach • Derive a solution from the decomposition – Satisfying the data-oriented requirements of the problem with declarative constructs and then supporting procedural constructs • Utilize an architecture based on data decomposition rather than process decomposition • Data-oriented design is more suitable for domains in which problems are more data intensive. Example: Business system or database system where there are more data elements than process elements involved in a system 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 17

Data-oriented Design: Reference • JSP (Jackson’s Structured Programming) developed by Michael Jackson (1975) •

Data-oriented Design: Reference • JSP (Jackson’s Structured Programming) developed by Michael Jackson (1975) • Warner-Orr methodology (1981) 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 18

Function-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 19

Function-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 19

Function-oriented Design • Two steps: 1. Focuses on behavioral (dynamic) characteristics of a problem

Function-oriented Design • Two steps: 1. Focuses on behavioral (dynamic) characteristics of a problem to derive the solution 2. Derives problem-solving efforts by emphasizing process like elements of problems Example: Employee Information System 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 20

Function-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 21

Function-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 21

Function-Oriented Design • Identify processes within the problem – • Process-oriented elements of problems

Function-Oriented Design • Identify processes within the problem – • Process-oriented elements of problems are regarded as primary in facilitating and driving problem solving efforts Identify data manipulated by processes – • Data-oriented elements of problems are regarded as secondary in facilitating problem-solving efforts Decompose and elaborate processes to further understand the problems and solutions – Elaboration consists of specifying the inputs and outputs of processes and reducing processes into subordinate processes 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 22

Function-Oriented Design • Derive a solution from the decomposition – Satisfying the process-oriented requirements

Function-Oriented Design • Derive a solution from the decomposition – Satisfying the process-oriented requirements of the problem with procedural constructs and then supporting declarative constructs • Utilize an architecture based on process decomposition rather than data decomposition • Function-oriented design is more suitable for domains in which problems are more process intensive Examples: Most real-time systems where there are more process elements than data elements involved in a system 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 23

Function-oriented Design: References • Procedural design by Constantine and Yardon (1979) • Step-wise refinements

Function-oriented Design: References • Procedural design by Constantine and Yardon (1979) • Step-wise refinements by Wirth (1981) • Hatley and Pirbhai’s methodology (1987) 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 24

Object-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 25

Object-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 25

Object-Oriented Design • Three steps: 1. The object-oriented paradigm drives problem-solving efforts by emphasizing

Object-Oriented Design • Three steps: 1. The object-oriented paradigm drives problem-solving efforts by emphasizing process like and data like elements as complete units 1. Focuses on understanding real-world concepts in terms of the composition, relationship and interactions of entities 1. Provides intrinsic mechanism for packaging data like elements and process like elements together to represent real-world concepts Example: Employee Information System 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 26

Object-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 27

Object-Oriented Design 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 27

Object-Oriented Design • Identify and elaborate entities within the problem and solution – Regard

Object-Oriented Design • Identify and elaborate entities within the problem and solution – Regard some real-world concepts as essential to domains in which problems and solutions exist • Identify and elaborate relationship within the problem and solution – Regard other real-world concepts as incidental to domain in which problems and solution exists • Identify and elaborate occurrences within the problem and solution – Heterogeneous concepts: Objects of any type can be dealt with 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 28

Object-Oriented Design • Decompose and elaborate concepts to further understand the problem and solution

Object-Oriented Design • Decompose and elaborate concepts to further understand the problem and solution – Elaboration consists of elaborating structural characteristics, behavioral characteristics, and dynamic characteristics • Utilize an architecture based on real-world concept decomposition • Object-oriented approach is suitable in all most all IT applications 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 29

Problems to Ponder • Data-oriented design – Advantages – Disadvantages • Function-oriented design –

Problems to Ponder • Data-oriented design – Advantages – Disadvantages • Function-oriented design – Advantages – Disadvantages • Object-oriented design – Advantages – Disadvantages • Metrics for measuring the effectiveness of a paradigm • Compare three approaches with reference to these metrics 26 February, 2020 Software Engineering (CS 20006) DSamanta, IIT Kharagpur 30