Object-Oriented Development By Linda M. Northrop vol. 1, chapter 5, pp. 291-300 Presented by: Gleyner Garden EEL6883 Software Engineering II.

Slides:



Advertisements
Similar presentations
Object-Oriented Software Development CS 3331 Fall 2009.
Advertisements

Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Overview Traditional systems development life cycle (SDLC)
Chapter 2 Approaches to System Development
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Chapter 1 Object-Oriented System Development
Introduction To System Analysis and Design
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Object Oriented System Development with VB .NET
IMS5024 Week 3 Semester 2, IMS 5024 Object orientation (1)
© Wolfgang Pelz Introduction Object-Oriented Methods: Analysis, Design & Programming Dr. Wolfgang Pelz Dr. Yingcai Xiao The University of Akron.
IMS5024 Week 61 IMS 5024 Object orientation (1). IMS5024 Week 62 Content Individual assignment date Group assignment What is object orientation? n Place.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
Visual Basic Introduction IDS 306 from Shelly, Cashman & Repede Microsoft Visual Basic 5: Complete Concepts and Techniques.
Systems Analysis and Design in a Changing World, Fifth Edition
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
CSCI-383 Object-Oriented Programming & Design Lecture 15.
Introduction To System Analysis and design
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Chapter 2: Approaches to System Development
Chapter 1 The Systems Development Environment
Introduction to Object-oriented programming and software development Lecture 1.
“Object-orientation” – what is it all about? Gill Harrison, Innovation North.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
BCS 2143 Introduction to Object Oriented and Software Development.
Objects and Components. The adaptive organization The competitive environment of businesses continuously changing, and the pace of that change is increasing.
Satzinger Chp. 2 Part Part 4 of 4 2 Object-Oriented Analysis and Design with the Unified Process Testing Testing is critical discipline Testing activities.
Chapter 1: Introduction to Systems Analysis and Design
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
2 Systems Analysis and Design in a Changing World, Fifth Edition.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
System Development 1 u Systems development life cycle (SDLC) l Provides overall framework for managing system development process u Two main approaches.
9-Dec Dec-15  INTRODUCTION.  FEATURES OF OOP.  ORGANIZATION OF DATA & FUNCTION IN OOP.  OOP’S DESIGN.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Business Applications with Object-Oriented Paradigm (Modeling Concepts) Professor Chen School of Business Gonzaga University Spokane, WA
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Chapter 2 Principles of Programming and Software Engineering.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
객체지향시스템 연구실 1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 객체지향시스템 연구실 교수 김형주.
Basic Characteristics of Object-Oriented Systems
CHAP-1 OBJECT ORIENTED SYSTEM DESIGN (IT-703)
1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 Internet Database Lab 교수 김형주 Spring 2007.
CSCI 383 Object-Oriented Programming & Design Lecture 15 Martin van Bommel.
Object Oriented Systems Design
Chapter 1: Introduction to Systems Analysis and Design
Business System Development
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Object oriented analysis and design
Need for the subject.
Chapter 1: Introduction to Systems Analysis and Design
Systems development life cycle (SDLC)
Overview of Programming Paradigms
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Object-Oriented Development By Linda M. Northrop vol. 1, chapter 5, pp Presented by: Gleyner Garden EEL6883 Software Engineering II

Introduction The paper was written in 1994 and provides an overview of object-oriented methodologies The paper was written in 1994 and provides an overview of object-oriented methodologies Describes the history of object-oriented methods, models of object-oriented design, and concepts of object-oriented programming Describes the history of object-oriented methods, models of object-oriented design, and concepts of object-oriented programming Most of you probably already knew most of this stuff as you were reading… but when this paper was written, a lot of these ideas were new to a lot of people…

Historical Perspective Was initially thought of as a “research curiosity” Was initially thought of as a “research curiosity” Object-oriented programming is today what structured programming was in the 1970’s Object-oriented programming is today what structured programming was in the 1970’s The Object and object attribute idea first conceived in the 1950’s for A.I. The Object and object attribute idea first conceived in the 1950’s for A.I. The real movement began in 1966 with the introduction of the Simula language The real movement began in 1966 with the introduction of the Simula language

Historical Perspective Palo Alto Research Center (PARC) developed Smalltalk in the early 1970’s Palo Alto Research Center (PARC) developed Smalltalk in the early 1970’s Smalltalk is considered the first truly object-oriented language Smalltalk is considered the first truly object-oriented language Led other languages to support object-oriented programming Led other languages to support object-oriented programming examples: Objective-C, C++, Self, Eiffel, and Flavors examples: Objective-C, C++, Self, Eiffel, and Flavors 1980 Booch pioneered the concept of object- oriented design (OOD) 1980 Booch pioneered the concept of object- oriented design (OOD)

Motivation Benefits are Greater: Benefits are Greater: Productivity Productivity Reliability Reliability Maintainability Maintainability Manageability Manageability

Motivation Direct mapping of concepts in the problem domain to software units and their interfaces Direct mapping of concepts in the problem domain to software units and their interfaces Viewing the world as objects is more natural since it is closer to the way humans think Viewing the world as objects is more natural since it is closer to the way humans think Objects are more stable than functions… Objects are more stable than functions… Supports information hiding, data abstraction, and encapsulation Supports information hiding, data abstraction, and encapsulation

Motivation Easily modified, extended, and maintained… Easily modified, extended, and maintained… if your product was designed correctly if your product was designed correctly

Object-Oriented Model A “new” way of thinking about what it means to compute and how information can be structured A “new” way of thinking about what it means to compute and how information can be structured Systems are viewed as cooperating objects that encapsulate structure and behavior in a hierarchical construction Systems are viewed as cooperating objects that encapsulate structure and behavior in a hierarchical construction Functionality achieved by messages passing between objects Functionality achieved by messages passing between objects

Object-Oriented Model Object-oriented model can be viewed as the framework containing: Object-oriented model can be viewed as the framework containing: Abstraction Abstraction Encapsulation Encapsulation Modularity Modularity Hierarchy Hierarchy Typing Typing Concurrence Concurrence Persistence Persistence Reusability Reusability Extensibility Extensibility

Object-Oriented Model The integration of procedural and data- driven approaches The integration of procedural and data- driven approaches

Object Oriented Programming Concepts: Concepts: Programs are organized into cooperating collections of objects Programs are organized into cooperating collections of objects Object: entity that encapsulates state and behavior. An instance of a class Object: entity that encapsulates state and behavior. An instance of a class Interface or protocol: set of messages to which it will respond Interface or protocol: set of messages to which it will respond Response can be a message or routine, or delegation of the message to another object Response can be a message or routine, or delegation of the message to another object

Object Oriented Programming

Languages 4 Branches of object-oriented languages, with Simula being the common ancestor: 4 Branches of object-oriented languages, with Simula being the common ancestor: Smalltalk-based Smalltalk-based C-based C-based Objective-C, C++, Java Objective-C, C++, Java LISP-based LISP-based Flavors, XLISP, LOOPS, CLOS Flavors, XLISP, LOOPS, CLOS PASCAL-based PASCAL-based Object Pascal, Turbo Pascal, Eiffel, Ada 95 Object Pascal, Turbo Pascal, Eiffel, Ada 95

Languages Object-based languages: Object-based languages: Alphard: Alphard: CLU CLU Euclid Euclid Gypsy Gypsy Mesa Mesa Ada Ada Want to learn more about these languages (history, where their names came from, etc)? click here: here

Life Cycle If it is accepted that object-oriented is more than object-oriented coding, then a whole new approach, including life cycle, must be adopted (Booch, 1994) If it is accepted that object-oriented is more than object-oriented coding, then a whole new approach, including life cycle, must be adopted (Booch, 1994)

Life Cycle Waterfall consists of a sequential process, primarily in one direction Waterfall consists of a sequential process, primarily in one direction Does not accommodate real iteration Does not accommodate real iteration Criticized for placing no emphasis on reuse and having no unifying model to integrate the phases Criticized for placing no emphasis on reuse and having no unifying model to integrate the phases

Life Cycle Water fountain life cycle describes the inherent iterative and incremental qualities of object-oriented development Water fountain life cycle describes the inherent iterative and incremental qualities of object-oriented development Prototyping and feedback loops are standard Prototyping and feedback loops are standard

Object-Oriented Analysis Examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain Examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain Yields black-box objects that are derived from the problem domain Yields black-box objects that are derived from the problem domain Scenarios can be used to determine necessary object behavior Scenarios can be used to determine necessary object behavior

Analysis example Problem: Drawing shapes Problem: Drawing shapes Scenarios: Scenarios: Draw a point Draw a point Draw a line Draw a line Draw a circle Draw a circle Draw a square Draw a square Draw a rectangle Draw a rectangle Draw a polygon Draw a polygon

Object-Oriented Design Object focus shifts to the solution domain Object focus shifts to the solution domain Objects, their semantics, and relationships are identified Objects, their semantics, and relationships are identified Implementation and iteration occur Implementation and iteration occur Jacobsen says “when details of the implementation begin to show, it’s OOD” Jacobsen says “when details of the implementation begin to show, it’s OOD” In my practice: OOA is preliminary design, and OOD is detailed design In my practice: OOA is preliminary design, and OOD is detailed design

Management Issues Object-oriented development requires a commitment to change processes, resources, and organizational structure. Object-oriented development requires a commitment to change processes, resources, and organizational structure. LOC measurements are less valuable, # of classes reused, inheritance depth, number of class-to-class relationships, object coupling, total # of classes, and class sizes are more valuable and meaningful LOC measurements are less valuable, # of classes reused, inheritance depth, number of class-to-class relationships, object coupling, total # of classes, and class sizes are more valuable and meaningful

Management Issues Booch suggests smaller development teams, and cultivation of reuse experts Booch suggests smaller development teams, and cultivation of reuse experts Reward reuse, not LOC: build libraries and application frameworks Reward reuse, not LOC: build libraries and application frameworks QA: review and testing activities still essential, but timing and definition are different QA: review and testing activities still essential, but timing and definition are different Tools: everything described exists in visual studio Tools: everything described exists in visual studio

Object-Oriented Transition Levels of absorption before assimilation into a software development organization occurs Levels of absorption before assimilation into a software development organization occurs Training is essential Training is essential Pilot projects are recommended Pilot projects are recommended Combining structured and object-oriented approached not recommended Combining structured and object-oriented approached not recommended

Object-Oriented Transition Total object-oriented approach recommended for the following reasons: Total object-oriented approach recommended for the following reasons: Traceability improvement Traceability improvement Reduction in significant integration problems Reduction in significant integration problems Improved conceptual integrity of process and product Improved conceptual integrity of process and product Less need for objectification and deobjectification Less need for objectification and deobjectification Maximization of the benefits of object-orientation Maximization of the benefits of object-orientation

The Future The future is now… object-oriented development is pretty standard The future is now… object-oriented development is pretty standard Class libraries and application frameworks (exist) Class libraries and application frameworks (exist) Transparent information access across applications and environments (exists) Transparent information access across applications and environments (exists) Movement will gain popularity (did) Movement will gain popularity (did)

Conclusion This paper was pretty cutting-edge when it was first published This paper was pretty cutting-edge when it was first published

Questions? Comments? Feel free to speak up! Feel free to speak up!