Chapter 19 -- Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz1 OBJECT ORIENTED MODELING, CONCEPTS AND PRINCIPLES Chapter 20.

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

Dillon: CSE470: Object Modeling1 Requirements Model l Focus on WHAT, not HOW l Analyst needs to understand the problem »How does software fit into overall.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Chapter 1 Object-Oriented System Development
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Introduction To System Analysis and Design
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
Object Oriented System Development with VB .NET
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra,
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Chapter 14: Object-Oriented Data Modeling
UML Class Diagrams: Basic Concepts. Objects –The purpose of class modeling is to describe objects. –An object is a concept, abstraction or thing that.
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
UML and Object Oriented Concepts
The chapter will address the following questions:
Introduction To System Analysis and design
Chapter 13 (Online): Object-Oriented Databases
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
OBJECT-ORIENTEDNESS KCDCC. WHAT IS OBJECT-ORIENTEDNESS? KCDCC model system as a collection of interacting objects O-O Modelling O-O Programming similar.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
SOFTWARE DESIGN.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
1 Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill Chapter 2: Object Basics Object-Oriented Systems Development Using the Unified Modeling.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Systems Analysis and Design in a Changing World, 3rd Edition
CS3773 Software Engineering Lecture 04 UML Class Diagram.
CHAPTER 13 (ONLINE): OBJECT-ORIENTED DATA MODELING © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition.
CHAPTER 13: OBJECT-ORIENTED DATA MODELING (OVERVIEW) © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
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.
Kal Bugrara, Ph.DSoftware Engineering Northeastern University Fundamentals Of Software Engineering Lecture V.
Design? !… When it needs? To understand, to communicate with customers Complex problem What is good design? Separate What to do?(Policy) and How to do(mechanism)
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Object-Oriented Data Modeling
Part VII: Design Continuous
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
 Week08.  Review Schedule Weeks 8-14  This week o Review last class o Introduce Class Diagrams o ICE-03 Sheridan SYST Engineering Quality Systems.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
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
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Basic Characteristics of Object-Oriented Systems
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
CompSci 280 S Introduction to Software Development
Cmpe 589 Spring 2006.
Sachin Malhotra Saurabh Choudhary
Business System Development
Object-Oriented Analysis and Design
Object Oriented Analysis & Design
Object Oriented Concepts -I
UML Class Diagrams: Basic Concepts
Chapter 20 Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Cheng (Sp2001): Object-Oriented Development Overview
Presentation transcript:

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz1 OBJECT ORIENTED MODELING, CONCEPTS AND PRINCIPLES Chapter 20

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz2 CONTENTS u What is object-oriented development ? u Object-oriented process model u Object-oriented concepts u Object modeling technique u Unified Modeling Language (UML) u Concepts and Principles of Object Modeling u Object-oriented vs functional approach

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz3 What is OO Development ? u “New” way of thinking about problems using models organized around real world concepts. u The fundamental construct is the object Combines both data structure and operations in a single entity called an object. u Leads to reuse, faster software development and higher quality programs. u Easier to maintain Structure inherently decoupled Fewer side-effects

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz4 The OO process model u Moves through an evolutionary spiral u Emphasizes development of reuse capability

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz5 Object Oriented Concepts u Objects and Object Model Object: Data and operations relevant to some real world or significant program entity encapsulated into a monolithic unit accessible only through a well defined interface. For ex. File in the file system together with operations such as open, close, read, & write, Object Model: Describes the structure of the objects in the system –their identity, relationships to other objects, attributes and operations.

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz6 u Classification & Classes A class describes a group of objects with similar properties (attributes), common behavior (operations), common relationships to other objects, and common semantics. Object Modeling

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz7 Object Classes u Thus, a class is an abstraction that describes relevant properties and hides the rest. Represented diagrammatically as below. Class Name Attributes Operations

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz8 Object Modeling

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz9 Object Modeling u Attributes: An attribute is a data value held by the objects in a class. Name, age, and weight are attributes of Person objects.

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz10 Object Modeling u Operations and Methods : Operations : An operation is a function or transformation that may be applied to or by objects in a class. Each operation has a target object as an implicit argument. The behavior of the operation depends on the class of its target. Methods : A method is the implementation of an operation for a class. –Categories: 1) manipulate data, 2) perform computation, and 3) monitor for occurrence of controlling event.

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz11 u An operation may have arguments in addition to its target object. Such arguments parameterize the operation but do not affect the choice of method. Object Modeling

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz12

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz13 Class and Instance Polygon Vertices Border Color Fill Color Draw Erase Move Polygon v={(0,0),(0,1),(1,0)} BC = Red FC = Blue Draw Erase Move

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz14 Abstraction and Encapsulation

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz15 u Abstraction Isolate those aspects that are important and suppress (or hide) those that are unimportant (e.g., representations). Focus on what object is and does before deciding how it should be implemented. Abstraction allows dealing only with application domain concepts, not making design and implementation decision before problem is understood. Abstraction and Encapsulation

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz16 u Encapsulation (Information Hiding) Separates the external aspects of an object, which are accessible to other objects, from the internal implementation details of the object, which are hidden from other objects. u Combining Data and Operations: The OO approach combines the data structure and operations in a single entity. Abstraction and Encapsulation

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz17 Interfaces u Does not have an implementation of its own. u Other classes provide implementations of it. u Client classes are only interested in behavior. > Class Name Operations

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz18 Inheritance u Sharing of attributes and operations among classes based on hierarchical relationship.

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz19

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz20 Class and Subclass Polygon Vertices Border Color Fill Color Draw Erase Move Right Triangle Vertices Hypotenuse length Border Color Fill Color Draw Erase Move

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz21

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz22

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz23 Operations u Polymorphism The same “operation” may behave differently on different classes. E.g., the move operation behaves differently on a Window and ChessPiece. Operations may be overloaded when subclasses defined. –The compiler can distinguish based on the type of the operands in method invocations which operation is actually needed.

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz24 Polymorphism Car Paint Polygon Paint Triangle Paint Square Paint

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz25 Communication u Message: [destination, operation, params]

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz26 What Does OO Mean? u Pressman (Coad & Yourdon) Objects (identity) Classification Inheritance Communication u Rumbaugh Objects (identity) Classification Inheritance Polymorphism

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz27 Object Modeling Technique u Object modeling technique (OMT) extends from analysis thru design to implementation u Analysis model contains objects found in the application domain, including properties of object and their operations. u These application domain objects form a framework to the design model.

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz28 u The same seamless notation is used from analysis to design to implementation. u The system is modeled using three related but different view points. Object Model : Represents the static, structural, “data” aspects of the system. Dynamic Model : Represents the temporal, behavioral, “control” aspects of the system. Functional Model : Represents transformational, “functional” aspects of the system. Object Modeling Technique

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz29 Object Modeling u Links and Associations Link: A physical or conceptual connection between instances. E.g., Joe Smith Works-for Simplex company. Mathematically, a tuple, i.e., an ordered list of object instances. A link is an instance of an association. Associations : A group of links with common structure and semantics. E.g., a person Worksfor a company. All the links in an association connect objects from the same classes.

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz30

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz31 Object Modeling u Multiplicity: Specifies how many instances of one class may relate to a single instance of an associated class u Role Names: One end of an association. Binary association has two roles. u Link attributes May be defined for associations, e.g., if the association is “uses,” the link attribute might be one of permission.

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz32 Binary Association & Multiplicity

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz33 Ternary Association

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz34 Link Associations

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz35 Aggregation u A “part-whole” or “a-part-of” relationship

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz36 OO Software Process u Framework Identify major classes and connections. Do enough design to ensure they are implementable Extract reusable components and build prototype. Test to uncover errors and get customer feedback. Iterate on design and refine it. Engineer special objects (not in library). Assemble a new prototype. Test and obtain customer feedback. Iterate until satisfactory product obtained.

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz37 OO Metrics u Because of reuse, LOC not so useful u # of Scenario scripts, each a triplet of the form [initiator, action, participant], where Initiator = object initiating a request action = result of request (method invocation) participant = server object satisfying request u # of key [highly independent] classes u # of support classes (and ave. per key class) u # of subsystems

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz38 Possible Estimating Approach u Develop scenario scripts and estimate count u Determine the number of key classes u Categorize key classes Interface typeMultiplier No GUI2.0 Text-based user int.2.25 GUI2.5 Complex GUI3.0

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz39 Possible Estimating Approach u Estimate # of support classes by multiplying # key classes in each category by multiplier u Estimate # of person-days per class, e.g., u Estimate the number of major iterations u There should be a contract deliverable for each major iteration

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz40 OO Progress Tracking u This needs to be done for each iteration (see text for list of specifics in each category) OO analysis completed OO design completed OO programming completed OO testing completed

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz41 Object-Oriented vs Structured Approach u Easier to maintain u Combines data structure and behavior in a single entity u Emphasizes object structure u Reuse more readily accomplished u Harder to maintain u May separate data and behavior u Emphasizes procedural structure u Reuse limited, hence possible delay in software construction

Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz42 Object-Oriented vs Structured Approach u Strong cohesion and weak coupling u Encapsulation, Inheritance and Polymorphism are strong features of OO software development u Harder to achieve weak Coupling and strong cohesion u Some languages support encapsulation and polymorphism, but rarely inheritance