SOFTWARE DESIGN AND ARCHITECTURE LECTURE 18. Review User interface Design principles Design Guidelines.

Slides:



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

Informática II Prof. Dr. Gustavo Patiño MJ
Mastering Object-Oriented Analysis and Design with UML Module 2: Concepts of Object Orientation.
CIT731: Database Development Object Oriented Modeling (OOM)
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Unified Modeling Language
2008/03/25 Unified Modeling Lanauage 1 Introduction to Unified Modeling Language (UML) – Part One Ku-Yaw Chang Assistant Professor.
Object-Oriented Analysis and Design
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
Object Oriented Analysis and Design Using the UML
Unified Modeling (Part I) Overview of UML & Modeling
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 1 Introduction to Object-Oriented Programming and Software Development.
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 Concepts. Movement toward Objects Instead of data-oriented or process-oriented Analysis, many firms are now moving to object-oriented.
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
Introduction To System Analysis and design
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Introduction to Object Technology.
BCS 2143 Introduction to Object Oriented and Software Development.
O BJECT O RIENTATION F UNDAMENTALS Prepared by: Gunjan Chhabra.
CHAPTER ONE Problem Solving and the Object- Oriented Paradigm.
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
Lecture 3: Visual Modeling & UML 1. 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship via “ Modeling.
Introduction To System Analysis and Design
Systems Analysis and Design in a Changing World, 3rd Edition
Systems Analysis & Design 7 th Edition Chapter 5.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Object Oriented Analysis & Design Using UML (CS-512) M-Tech CSE (Ist & 3rd Sem) Part Time Mr. Pawan Luthra Assistant Professor (CSE Deptt.) SBSSTC, Ferozepur.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Design Model Lecture p6 T120B pavasario sem.
Unified Modelling Language (UML) Software Engineering Lab. Sharif University of Technology.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
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 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A.
1 IBM Software Group ® Essentials of Visual Modeling with UML 2.0 Module 3: Concepts of Object Orientation.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Concepts of Object Orientation lecture 1 –b. Objectives: Concepts of Object Orientation OOAD 2  Explain the basic principles of object orientation 
Basic Characteristics of Object-Oriented Systems
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
1 Design Object Oriented Solutions Object Oriented Analysis & Design Lecturer: Mr. Mohammed Elhajj
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.
The Movement To Objects
Object-Oriented Analysis and Design
Concepts of Object Orientation
Systems Analysis and Design With UML 2
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
Systems Analysis and Design With UML 2
Today’s Objectives Define the Problem Domain
INTRODUCTION TO OOP Objective:
Software Architecture & Design Pattern
Object Oriented Analysis and Design Using the UML
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

SOFTWARE DESIGN AND ARCHITECTURE LECTURE 18

Review User interface Design principles Design Guidelines

Outline Basic Concepts of Object Oriented. Modeling UML and OO Modeling

Basic Concepts of Object Orientation Object Class Message Basic Principles of Object Orientation Abstraction Encapsulation Inheritance Polymorphism Interface and Abstract Class

Informally, an object represents an entity, either physical, conceptual, or software. – Physical entity – Conceptual entity – Software entity What Is an Object? Chemical Process Linked List

A More Formal Definition An object is an entity with a well-defined boundary and identity that encapsulates state and behavior. – State is represented by attributes and relationships. – Behavior is represented by operations, methods, and state machines.

An Object Has State The state of an object is one of the possible conditions in which an object may exist. The state of an object normally changes over time.

An Object Has Behavior Behavior determines how an object acts and reacts. The visible behavior of an object is modeled by the set of messages it can respond to (operations the object can perform).

An Object Has Identity Each object has a unique identity, even if the state is identical to that of another object.

Objects Need to Collaborate Objects are useless unless they can collaborate together to solve a problem. – Each object is responsible for its own behavior and status. – No one object can carry out every responsibility on its own. How do objects interact with each other? – They interact through messages.

What Is a Class? A class is a description of a set of objects that share the same properties and behavior. – An object is an instance of a class.

A Sample Class Data Items: – manufacturer’s name – model name – year made – color – number of doors – size of engine – etc. Methods: – Define data items (specify manufacturer’s name, model, year, etc.) – Change a data item (color, engine, etc.) – Display data items – Calculate cost – etc. Class: Automobile

The Relationship Between Classes and Objects A class is an abstract definition of an object. – It defines the structure and behavior of each object in the class. – It serves as a template for creating objects Objects are grouped into classes. An object is an instance of a class.

What Is an Attribute? An attribute is a named property of a class that describes a range of values instances of the property may hold. – A class may have any number of attributes or no attributes at all. Attributes

What Is an Operation? An operation is the implementation of a service that can be requested from any object of the class to affect behavior. A class may have any number of operations or none at all. Operations

What is a message? A specification of a communication between objects that conveys information with the expectation that activity will ensue – One object asks another object to perform an operation.

The OrderEntryForm wants Order to calculate the total dollar value for the order. Example: Object Interaction

Basic Principles of Object Orientation Object Orientation Encapsulation Abstraction Polymorphism Inheritance

What Is Abstraction? Abstraction can be defined as: Any model that includes the most important, essential, or distinguishing aspects of something while suppressing or ignoring less important, immaterial, or diversionary details. The result of removing distinctions so as to emphasize commonalties. (Dictionary of Object Technology, Firesmith, Eykholt, 1995) Abstraction Emphasizes relevant characteristics. Suppresses other characteristics.

What Is Encapsulation? Encapsulation means to design, produce, and describe software so that it can be easily used without knowing the details of how it works. Also known as information hiding An analogy: When you drive a car, you don’t have know the details of how many cylinders the engine has or how the gasoline and air are mixed and ignited. Instead you only have to know how to use the controls.

What Is Inheritance ? Inheritance —a way of organizing classes Term comes from inheritance of traits like eye color, hair color, and so on. Classes with properties in common can be grouped so that their common properties are only defined once. Is an “is a kind of” relationship

An Inheritance Hierarchy Vehicle AutomobileMotorcycleBus SedanSports CarSchool BusLuxury Bus What properties does each vehicle inherit from the types of vehicles above it in the diagram?

Example: Single Inheritance One class inherits from another. Checking Savings Superclass (parent) Subclasses Inheritance Relationship Ancestor Descendents

Example: Multiple Inheritance Use multiple inheritance only when needed and always with caution! A class can inherit from several other classes. Multiple Inheritance

Polymorphism Polymorphism—the same word or phrase can be mean different things in different contexts Analogy: in English, bank can mean side of a river or a place to put money In Java, two or more classes could each have a method called output Each output method would do the right thing for the class that it was in. One output might display a number whereas a different one might display a name.

Realization relationship What is an Interface? An interface is a collection of operations that specify a service of a class or component. Interfaces formalize polymorphism Interfaces support “plug-and-play” architectures Shape draw() move() scale() rotate() > Tube Pyramid Cube ‘What’ ‘How’

What is an Abstract Class? Abstract class Abstract operation Shape {abstract} draw () {abstract} Circle draw () Rectangle draw () An abstract class is a class that may not have any direct instances. In the UML, you specify that a class is abstract by writing its name in italics. An abstract operation is an operation that it is incomplete and requires a child to supply an implementation of the operation. In the UML, you specify an abstract operation by writing its name in italics.

INTRODUCTION TO UML

What is modeling? A model is a simplification of reality. A model is an abstraction of things. Emphasizes relevant characteristics. – Suppresses other characteristics.

The Importance of Modeling Paper Airplane F-16 Fighter Jet Less Important More Important

Why Do We Model? We build models to better understand the system we are developing. Modeling achieves four aims. Modeling – Helps us to visualize a system as we want it to be. – Permits us to specify the structure or behavior of a system. – Gives us a template that guides us in constructing a system. – Documents the decisions we have made. We build models of complex systems because we cannot comprehend such a system in its entirety.

What Is the UML? UML is an acronym for Unified Modeling Language The UML is a language for – Visualizing – Specifying – Constructing – Documenting the artifacts of a software-intensive system. UML: Object-Oriented & Visual Modeling

History of the UML Web - June 1996 OOPSLA 95 Public Feedback OMG Acceptance, Nov 1997 Final submission to OMG, Sept 1997 First submission to OMG, Jan 1997 UML 1.0 UML partners UML 1.1 UML 1.4 UML 2.0 Planned minor revision (2000) Planned major revision (2001) UML 1.3 Current minor revision 1999

OMG UML Specification UML Semantics UML Notation Guide UML Example Profiles UML Model Interchange Object Constraint Language Specification UML Standard Elements Glossary

Object Oriented Design using UML UML (Unified Modelling Language) is a standard notation to represent software design. Based on OO approaches. Has syntax rules Can be extended using stereotypes

Advantages of UML Specify, visualize, and document models of software systems – Current and new systems – Structure and design – Behavior and interaction De facto standard (Tool Support!) Unambiguous and consistent notation Documentation

UML Metamodel

Where can UML be used? 1.Business Model using Activity Diagram 2.Requirements Capture using Use Case Diagram 3.Requirements Analysis using Use Case Details and Class Diagram 4.Initial Design using Sequence Diagrams and second version of Class Diagram 5.Requirements Analysis using State Diagram 6.Architecture Design using Packages and Subsystems 7.Design using next level of details for Class Diagram

Where can UML be used?... 9.System Architecture using Deployment Diagram 10.Design using Design Patterns 11.Detailed design using Collaboration Diagram 12.Consolidate all information into Class Diagram 13.Detailed design using Component Diagram Refine all models through iterations Implement the models by translating into code Deploy software within operational environment

UML Modelling Use Case View Logical View Dynamic View Implementation View Deployment View

Summary Basic Concepts of Object Oriented. Modeling UML and OO Modeling