Software Engineering CS 20006 Lecture 12 Information System






























- Slides: 30
Software Engineering CS 20006 Lecture 12 Information System Design Approaches
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 3
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, 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 • 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 – 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 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 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 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 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 • 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: 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 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) • 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 • 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 • 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 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 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 • 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 • 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 – 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 – 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