1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
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 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Chapter 26 Estimation for Software Projects
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Ch 12: Object-Oriented Analysis
Systems development life cycle & development methodologies
Chapter 1 Object-Oriented System Development
Introduction To System Analysis and Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Chapter Object-Oriented Practices. Agenda Object-Oriented Concepts Terminology Object-Oriented Modeling Tips Object-Oriented Data Models and DBMSs.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Object Oriented System Development with VB .NET
OBJECT ORIENTED ANALYSIS & DESIGN Vassilka Kirova Department of Computer & Information Science NJIT.
© Wolfgang Pelz Introduction Object-Oriented Methods: Analysis, Design & Programming Dr. Wolfgang Pelz Dr. Yingcai Xiao The University of Akron.
©Ian Sommerville 2006Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz1 OBJECT ORIENTED MODELING, CONCEPTS AND PRINCIPLES Chapter 20.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra,
Teamwork Know each other Compete Leadership Strengths and Weaknesses
BACS 287 Basics of Object-Oriented Programming 1.
Building The Analysis Model. Object-Oriented Analysis The object oriented analysis define all classes, the relationships and behavior associated with.
Introduction To System Analysis and design
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Systems Analysis and Design in a Changing World, Fifth Edition
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
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.
Two Approaches to System Development
Unified Modeling Language, Version 2.0
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Introduction To System Analysis and Design
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Lecture 17: Chapter 26 Estimation for Software Projects Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman.
1 Chapter 23 Estimation for Software Projects. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
CSC480 Software Engineering Lecture 11 September 30, 2002.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Chapter 8 Analysis & Modeling. Data Modeling examines data objects independently of processing focuses attention on the data domain creates a model at.
5 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.
Lecture 1: Introduction to Software Engineering WXGE6103 Software Engineering Process and Practice Object-oriented Design.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Programming Paradigms Different paradigms Procedural paradigm, e.g. Pascal Basic Functional paradigm, e.g. Lisp Declarative paradigm, e.g. Prolog Object-Oriented.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Software Engineering Object Oriented Metrics. Objectives 1.To describe the distinguishing characteristics of Object-Oriented Metrics. 2.To introduce metrics.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
Basic Characteristics of Object-Oriented Systems
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Chapter 33 Estimation for Software Projects
Cmpe 589 Spring 2006.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Object-Oriented Analysis
Object-Oriented Design
Chapter 33 Estimation for Software Projects
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 26 Estimation for Software Projects.
Chapter 20 Object-Oriented Concepts and Principles
Presentation transcript:

1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn

2 OO Concepts - 1 Object –encapsulates both data (attributes) and data manipulation functions (called methods, operations, and services) Class –generalized description (template or pattern) that describes a collection of similar objects Superclass –a collection of objects Subclass –an instance of a class

3 OO Concepts - 2 Class hierarchy –attributes and methods of a superclass are inherited by its subclasses Messages –the means by which objects exchange information with one another Inheritance –provides a means for allowing subclasses to reuse existing superclass data and procedures –provides mechanism for propagating changes

4 OO Concepts - 3 Polymorphism –mechanism that allows several objects in an class hierarchy to have different methods with the same name –instances of each subclass will be free to respond to messages by calling their own version of the method

5 Advantages of OO Architectures Implementation details of data and procedures hidden from the outside world –reduces propagation of side effects after changes Data structures and operators are merged in single entity or class –this facilitates reuse Interfaces among encapsulated objects are simplified –reduces system coupling

6 Class Construction Options - 1 Build new class from scratch without using inheritance Use inheritance to create new class from existing class contains most of the desired attributes and operations Restructure the class hierarchy so that the required attributes and operations can be inherited by the newly created class

7 Class Construction Options - 2 Override some attributes or operations in an existing class and use inheritance to create a new class with (specialized) private versions of these attributes and operations.

8 Object-Oriented Evolutionary Process Model Customer communication Planning Risk analysis Engineering construction and analysis Customer evaluation

9 Object-Oriented Software Construction Identify candidate classes Look-up classes in library Extract classes if available Engineer classes if not available –Object-oriented analysis (OOA) –Object-oriented design (OOD) –Object-oriented programming (OOP) –Object-oriented testing (OOT) Put new classes in library Construct Nth iteration of the system

10 Class Candidates External Entities –devices or people Things in Problem Domain –Reports, displays, signals Events –completion of some task Roles –manager, engineer, salesperson Organizational Units –divisions, groups, teams Structures –sensors, vehicles, computers

11 Criteria for Including Objects Does object information need to be retained? Does object provide a set of needed services that can change its attributes? Does object have major (important) attributes? Can you identify common attributes for all object instances? Can you identify common operations for all object instances? Is it an external entity that produces or consumes information?

12 Object-Oriented Life Cycle Model

13 Management of OO Projects Establish a common process framework (CPF). Use CPF & historic data to eliminate time & effort. Specify products & milestones. Define Q.A. checkpoints. Manage changes. Monitor project.

14 OO Project Milestones Contracts completed. OO Analysis completed. OO Design completed. OO Programming completed. OO Testing completed.

15 OO Project Metrics Number of scenario scripts. Number of key classes. Number of support classes. (# key classes)/(# support classes). Number of major iterations (around spiral model). Number of completed contracts.

16 OO Estimation Use some effort decomposition technique (e.g. FP) to determine size estimates. 2.Use O.O.A. to develop scenario scripts and count them. 3.Use O.O.A. to get the number of key classes. 4.Categorize types of the user interfaces to determine support class multiplier: NoUI = 2.0 TextUI = 2.25 GUI = 2.5 Complex GUI = 3.0

17 OO Estimation Estimate the number of support classes # support classes = (# of key classes) * (UI #) 6.Estimate total effort Total effort = (key + support) * (average # of work units per class) 7.Cross check class based estimate (6) using Total effort = (avg. # of work units per script) * (# of scenario scripts) Note: takes days to complete each class.