OO Requirements to OO design. Csaba Veres Alan M. Davis (1995), Colorado

Similar documents
Object Oriented System Development

Software Development Methodologies

What are the characteristics of Object Oriented programming language?

Programming Language Constructs as Basis for Software Architectures

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram

Programming Language Constructs as Basis for Software Architectures. Stefan Resmerita, WS2015

Object-Oriented Analysis Techniques Coad s OOA Technique Short History Terminological Comparison Postscript and Remarks

Object-Oriented Analysis and Design Using UML

Object oriented programming Concepts

UML diagrams. Software artifacts include: SRS, SDS, test cases, source code, technical/user manual, software architecture, etc.

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

Practical Model-Driven Development with the IBM Software Development Platform

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

CHAPTER 5 GENERAL OOP CONCEPTS

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN

Software Service Engineering

Programmazione. Prof. Marco Bertini

CSC Advanced Object Oriented Programming, Spring Overview

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language?

Object-Oriented Programming. Objects. Objects. Objects

Session 1b: Overview of systems analysis methodology

Object Oriented Programming

OBJECT-ORIENTED MODELING AND DESIGN. Introduction

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

Which is the Best Modeling Language? Sukriti Goel Tutorial BPM 2013 August 2013

System Analysis and Design. Introduction: Object Oriented Design

PC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.

Software Design and Implementation. Example Architecture KIWC

*ANSWERS * **********************************

Object Oriented Programming. C++ 6 th Sem, A Div Ms. Mouna M. Naravani

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) NEED FOR DESIGN PATTERNS AND FRAMEWORKS FOR QUALITY SOFTWARE DEVELOPMENT

Object-Oriented Programming

CSC207H: Software Design SOLID. CSC207 Winter 2018

Introduction. Object Orientated Analysis and Design. Benjamin Kenwright

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

DEVELOPMENT THE QUARKS OBJECT-ORIENTED. Even though object-oriented development was introduced in the late 1960s

Object-Oriented Modeling of Rule-Based Programming

Software Development Methodologies

Systems Analysis and Design in a Changing World, Fourth Edition

Lecture Notes on Programming Languages

The Analysis and Design of the Object-oriented System Li Xin 1, a

Object-Oriented Introduction

Ontological Semantics for the Use of UML in Conceptual Modeling

Methods for requirements engineering

A Hierarchical Model for Object- Oriented Design Quality Assessment

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Object Oriented Modeling

Course on Database Design Carlo Batini University of Milano Bicocca

SEEKING THE ACTUAL REASONS FOR THE "NEW PARADIGM" IN THE AREA OF IS ANALYSIS 2. GENERAL CHARACTERISTICS OF THE "STRUCTURED APPROACH" IN IS DEVELOPMENT

ANSAwise - Object-Oriented Methods for Distributed Systems

Systems Analysis & Design

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)

1. Write two major differences between Object-oriented programming and procedural programming?

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

Ans 1-j)True, these diagrams show a set of classes, interfaces and collaborations and their relationships.

REVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION

Ontological Analysis of the MibML Grammar using the Bunge-Wand-Weber Model

History of object-oriented approaches

Course 3 7 March

Introduction... ix. Chapter 1: Exploring Fundamental Programming Concepts... 1

Object oriented Programming

On the Purpose of Object-Oriented Analysis

UNIT-I Introduction of Object Oriented Modeling

Components Based Design and Development. Unit 3: Software Design Quick Overview

Integrating Systems and Software Engineering Concepts in AP-233

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

REAL-TIME DISTRIBUTED SYSTEMS DESIGN METHODOLOGIES

Research Review on Basic Principles of Unified Modelling Language

C# DESIGN PATTERNS: A TUTORIAL BY JAMES W. COOPER DOWNLOAD EBOOK : C# DESIGN PATTERNS: A TUTORIAL BY JAMES W. COOPER PDF

Influence of Design Patterns Application on Quality of IT Solutions

CISC 322 Software Architecture

Exploiting distributed memory architecture to support object-oriented concepts

Presenter: Dong hyun Park

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Schedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach. (problem definition, use case model)

System Analysis and Design

Chapter 8: Enhanced ER Model

Agenda. Why Model. Why Model? History of OO Modeling Methodologies Object Modeling Technique (OMT) Unified Modeling Language (UML)

CS2353 OBJECT ORIENTED ANALYSIS AND DESIGN UNIT- I

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language

CS304 Object Oriented Programming Final Term

Elementary Concepts of Object Class

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

Patterns and Testing

CS 292 Software Development

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay

OBJECT ORIENTED PROGRAMMING

What is a Programming Paradigm

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.


MechEng SE3 Lecture 7 Domain Modelling

Object-Orientation (Cont d)

Requirements & Domain Models. Lecture 13: Object Oriented Modelling. Nearly anything can be an object. Object Oriented Analysis

Topic 13 Object-oriented Analysis

WHAT IS SOFTWARE ARCHITECTURE?

STUDENT LESSON A20 Inheritance, Polymorphism, and Abstract Classes

Chapter 11 Object and Object- Relational Databases

Transcription:

OO Requirements to OO design Csaba Veres Alan M. Davis (1995), Colorado

Alan Davis? Guru? Academic and professional www.omni-vista.com? Controversial article on research into requirements engineering Requirements Researchers: Do We Practice What We Preach? Requirements Eng (2002) 7:107 111

Do we practice what we preach?? 31% of systems built today are never delivered? another 15% had less than half of the customers needs satisfied? but are requirements engineers really to blame?? criticizes standard academic practice suggests some alternative problem scenarios

Introduction to OO? Object orientation proposed in 1960s as a programming technique an object is a data abstraction? encapsulation of protected data, procedures, processes to manipulate the data classes? generic set of objects or other classes inheritance

intro...? OOP (OO Programming) languages developed by late 1980s? OOD (Design) techniques developed by the mid 1980s.? Close connection between OOD and specific OOP languages Booch: ADA, Meyer: Eiffel? OOR (Requirements) also developed in the late 1980s.? OOA (Analysis) is a sub set of OOR

OOR? Software requirements aims to understand and document the needs of the user problem analysis? understanding requirements specification? documenting (SRS: Software Requirements Specification)? Expected external behavior description of all inputs, outputs, possible mapping relationships between them? OOR is good at describing the problem domain used to model objects from the SRS external behavior?

OOD? purpose of design is to transform requirements into an optimal configuration (architecture) for implementation? OO optimizes maintainability reusability enhanceability reliability? encapsulation ensures less errors easier to find errors less risk of errors after changes

OOR vs. OOD? OOD optimizes reusability, etc.? OOR optimizes understandability? So, is an object the same in OOD and OOR?? OOR captures real world entities attributes and states of that entity the services provided by that entity inherited attributes and services

OOR vs. OOD...? OOD captures an encapsulation of attributes and states of an entity an encapsulation of services and operations inheritance of attributes and operations? Real world (OOR) vs. software design (OOD) understandability and accuracy vs. optimal design for performance and maintainability

Four origins of OOR (as it stood in 1995)? OOD main difference is level of detail? Database design adaptation of ER problem with function definitions? Requirements analysis already had some methods for looking at domain entities? Structured analysis change to and call it OO

Transition from OOR to OOD? Many different opinions by leaders in the field? Jacobson and Embley analysis and design objects are identical object oriented construction means that the analysis model is designed and implemented in source code..? Coad, Yourdon, Booch, Rumbaugh design follows simply from requirements moving from analysis to design is a progressive expansion of the model add detail to existing objects, as well as new objects

Transition from OOR to OOD? Cherry, Lorenz, Wirfs-Brock... & Davis it is good to seperate requirements from design? allows us to worry about external behaviour without efficiency, reuse, etc. OOR provides a draft document that can be changed at design time

OOR vs. OOD? OOD is the selection of the optimal solution to a required set of external behaviors not easy? differneces introduced in the transition 1 Different objects. i. OOR: is the object important for understanding the problem? ii. OOD: is the inclusion of the object important for software quality? iii. e.g. elevator requirements: passenger, design: floor requests

2 Aggregation i. OOR records aggregation to understand the objects. ii. e.g., elevator control panel shall include floor select button, emergency button, open/close button... OOD has aggregation to optimize software packaging e.g. ControlPanel will always include button, subtype... 3 Instantiation i. OOR does not worry about instance creation/destruction, or states (to some extent) ii. e.g. passengers just appear OOD has to worry about instantiation and attribute modification 4 Different emphasis on services i. OOR does not require a complete specification of the services, algorithms of all objects ii. OOD clearly does

5 Genericity of services and Dynamic Binding i. OOR wants to avoid ambiguity, so services should be uniquely labeled ii. OOD makes use of polymorphism and dynamic binding to achieve runtime behavior 6 Verification and Validation i. Verifying OOR for clarity and accuracy ii. Verifying OOD for correctly satisfying the requirement

Transitioning advice? So it is not THAT easy to transition from OOR to OOD e.g. many changes have to be made? Techniques for easing the transition: 1 Recognize that SRS is necessary i. OOR is not very good at describing external system behavior (e.g. push button A? green light comes on) ii. supplement each OOR object with its contribution to external system behavior

2 Don't underestimate the difficulty 3 Use a system development process appropriate for the application i. e.g., for complex systems, do system requirements, partition into subsystems, subsystem software requirements, etc. 4 Use OOR objects as a starting point i. difficulty is in deciding which ones will make good design 5 Add other objects from SRS i. external interfaces might have been missed in OOR, and can add objects to the design 6 Use accepted design principles to complete the design i. reusable objects, libraries, etc.

Ontology and other things Csaba Veres

Conceptual Modeling The real world A Model Some people

Reality?? Milton (2002) Data modelling languages are used to create models of real world information systems..... assess its capacity to capture our reality...... capturing reality is subjective...... models should be consistent enough with our perceptions of reality...

Why reality?? Wand, Storey & Weber (1999)... users of conceptual modeling methodologies are frequently confused about whether to show an association as a relationship, entity, or attribute? The correct application of the constructs is not clear? Milton (2002)... ontology can be viewed as an intellectual lense through which to view reality...

Example: construct overload is Assignment an entity? City Worker Assignment Project

The real world and the model The world Thing Thing Entity Entity Entity The model

Perception and Reality? So, our... perception of reality can not be trusted? Ontology tells us what the real world is really like? Many different ontologies exist? Bunge things? intrinsic property, mutual property? attribute dynamics of things: state change interaction of things composition: emergent properties classification: specialisation

Prescriptive ontology? An ontology can tell us how we SHOULD model certain things? e.g. never model mutual properties as entities? ENROLLMENT Student enrolled University Student Enrollment University