Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Similar documents
Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright

Object Orientated Analysis and Design. Benjamin Kenwright

Introduction. Object Orientated Analysis and Design. Benjamin Kenwright

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

Java Basics. Object Orientated Programming in Java. Benjamin Kenwright

OOAD and UML. Prabhudeva S. Assistant professor Department of Computer Science and engineering. J N N C E, Shimoga. Downloaded from

Polymorphism. Object Orientated Programming in Java. Benjamin Kenwright

Hyperlinks, Tables, Forms and Frameworks

What are the characteristics of Object Oriented programming language?

Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1

Architectural Blueprint

1. Software Systems Complexity, OO Paradigm, UML

Inheritance and Interfaces

Chapter 1: Principles of Programming and Software Engineering

The major elements of the object-oriented model

Chapter 8: Class and Method Design

Programmazione. Prof. Marco Bertini

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

+ 今天的内容. n Classes and objects part V (the last part) n Elements of object model (concepts) n Abstraction. n Encapsulation.

CHAPTER 5 GENERAL OOP CONCEPTS

Internal Classes and Exceptions

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

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

CHAPTER 9 DESIGN ENGINEERING. Overview

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation

Chapter 11 Object and Object- Relational Databases

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Object Oriented System Development

Objects as Session-Typed Processes

Lesson 10B Class Design. By John B. Owen All rights reserved 2011, revised 2014

Object oriented programming Concepts

University of Calgary Department of Electrical and Computer Engineering. SENG : Object Oriented Analysis and Design Behrouz Homayoun Far

Object-Oriented Software Engineering. Chapter 2: Review of Object Orientation

CASE TOOLS LAB VIVA QUESTION

Programming Methods. Simple things should be simple, complex things should be possible.

Lecture Notes on Programming Languages

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

Chapter 5 Object-Oriented Programming

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

Part 7 - Object Oriented Concepts Classes, Objects, Properties and Methods

Boca Raton Community High School AP Computer Science A - Syllabus 2009/10

Advantages of Object Oriented Programming :- Features of Object Oriented Programming :- Advantages Of Object Oriented Programming :

CS503 Advanced Programming I CS305 Computer Algorithms I

Object Oriented Programming

OBJECT-ORIENTED MODELING AND DESIGN. Introduction

Chapter 1: Programming Principles

Software Service Engineering

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

UNIT-I Introduction of Object Oriented Modeling

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

CPS 506 Comparative Programming Languages. Programming Language

CSC Advanced Object Oriented Programming, Spring Overview

OOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity.

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011

Homeschool Programming, Inc.

CS:2820 (22C:22) Object-Oriented Software Development

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia

CSI33 Data Structures

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

Notation Part 1. Object Orientated Analysis and Design. Benjamin Kenwright

Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including:

System Analysis and Design. Introduction: Object Oriented Design

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

1: Introduction to Object (1)

Introduction to Object Oriented Analysis and Design

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.)

Ch 1: The Architecture Business Cycle

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN

Cpt S 122 Data Structures. Course Review Midterm Exam # 2

Introduction to OOP. Procedural Programming sequence of statements to solve a problem.

Forth Meets Smalltalk. A Presentation to SVFIG October 23, 2010 by Douglas B. Hoffman

History of object-oriented approaches

OBJECT ORİENTATİON ENCAPSULATİON

Introduction to Object- Oriented Programming

Object-Oriented Introduction

STUDENT LESSON A20 Inheritance, Polymorphism, and Abstract Classes

C++ Programming: Introduction to C++ and OOP (Object Oriented Programming)

CPSC 427: Object-Oriented Programming

Software Architectures. Lecture 6 (part 1)

Object Oriented Design (OOD): The Concept

BASIC CONCEPT OF OOP

Architectures in Context

Architectural Decomposition Reid Holmes

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University

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

Patterns and Testing

Data Structures (list, dictionary, tuples, sets, strings)

Software Architecture

What is Software Architecture


Object Oriented Programming

WHAT IS SOFTWARE ARCHITECTURE?

CompuScholar, Inc. 9th - 12th grades

Chapter 1: Object-Oriented Programming Using C++

Curriculum Map Grade(s): Subject: AP Computer Science

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)

Design issues for objectoriented. languages. Objects-only "pure" language vs mixed. Are subclasses subtypes of the superclass?

Transcription:

Object Model Object Orientated Analysis and Design Benjamin Kenwright

Outline Submissions/Quizzes Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean by the Object Model? Why software has Evolved? Questions & Discussion

Email? Did everyone get an email from me yesterday (Tuesday)? Login details quizzes/submissions

Submissions/Quizzes Course material (Public) https://zjnu2017.github.io/ Submissions/Quizzes (Graded/Private) www.zjnu.xyz (Login Student No) Password Emailed

Why Online Quizzes? Take the quizzes as many times as you want Opportunity to `improve learn from mistakes (instead of a single pass/fail) Quizzes contribute to your final mark 10-20 multiple choice questions added each week Straightforward and help prepare for the final exam

Why Online Project Submissions? Experiment/project submission should be submitted online Single.zip for each `task Specified this week Enables you access to your coursework (e.g., you can review it regularly/backed up) Lets me provide feedback, guidance and comments which you can review

Revision Question Requirements change during development? A. True B. False

A. True Answer

Evolution of the Object Model Where did the Object Model come from? How has the topology of programming languages changed over time?

Topology of Early Generation Programming Languages

Topology of Small to Moderate-Sized Applications Using Object-Based and Object-Oriented Programming

Topology of Large Applications Using Object-Based and Object-Oriented Programming Languages

Discussion Activity Explain in your own words how software has changed over the last 20 years? Why software engineering methods have had to change?

Foundation of the `Object Model Object-oriented design methods have evolved to help developers exploit the expressive power of object-based and object-oriented programming languages Classes and Objects as basic building blocks

Question Object-oriented design methods cause security problems as they don t use object-based and object-oriented programming languages a) True b) False

Answer b) False Object-oriented design methods have evolved to help developers exploit the expressive power of object-based and object-oriented programming languages

What is Object-Oriented Programming (OOP)?

What is Object-Oriented Programming (OOP)? Three important parts : (1) Object-oriented programming uses objects, not algorithms, as its fundamental logical building blocks (the part of hierarchy; (2) each object is an instance of some class; and (3) classes may be related to one another via inheritance relationships (the is a hierarchy).

All Three Elements A program may appear to be objectoriented, but if any of these three elements is missing, it is not an objectoriented program For example: Programming without inheritance is distinctly not object oriented; that would merely be programming with abstract data types

Question What are the three important parts of Object-Oriented Programming (OOP)? A. uses objects; each object is an instance of some class; classes may be related to one another via inheritance B. use modules; hierarchical structure; structures must be related to one another via inheritance C. hierarchical structure; collection of objects; objects must be related to one another via polymorphism

Answer A. uses objects; each object is an instance of some class; classes may be related to one another via inheritance

OO Requirements Language is object-oriented if and only if it satisfies the following requirements: 1.It supports objects that are data abstractions with an interface of named operations and a hidden local state 2.Objects have an associated type [class] 3.Types [classes] may inherit attributes from supertypes [superclasses]

What is Object Oriented Design (OOD)?

What is Object Oriented Design (OOD)? Two important parts of object-oriented design: (1) leads to an object-oriented decomposition and (2) uses different notations to express different models of the logical (class and object structure) and physical (module and process architecture) design of a system

What is Object-Oriented Analysis (OOA)? Object-oriented analysis is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain

How are OOA, OOD, and OOP related?

How are OOA, OOD, and OOP related? The products of object-oriented analysis serve as the models from which we may start an object-oriented design The products of object-oriented design can then be used as blueprints for completely implementing a system using object-oriented programming methods

Object-Orientated Model Four major elements of this model are: 1.Abstraction 2.Encapsulation 3.Modularity 4.Hierarchy By major, we mean that a model without any one of these elements is not object oriented

Object-Orientated Model The three minor elements of the object model: 1.Typing 2.Concurrency 3.Persistence By minor, we mean that each of these elements is a useful, but not essential, part of the object model

Discussion Activity Explain how software within a large company would be developed/managed? What is important when developing `large software project?

Question The three minor elements of the object model are: a) Abstraction, Encapsulation, Inheritance b) Modularity, Persistence, Concurrency c) Concurrency, Persistence, Typing d) Persistence, Abstraction, Concurrency

Answer c) Concurrency, Persistence, Typing

What is the Meaning of Abstraction?

What is the Meaning of Abstraction?

What is the Meaning of Abstraction? An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer Abstraction of an object should precede the decisions about its implementation

Synergy No object stands alone; Every object collaborates with other objects to achieve some behavior

What is the Meaning of Encapsulation?

What is the Meaning of Encapsulation? Encapsulation is achieved through information hiding (not just data hiding), which is the process of hiding all the secrets of an object that do not contribute to its essential characteristics

Abstraction & Encapsulation Abstraction and encapsulation are complementary concepts Abstraction focuses on the observable behavior of an object, whereas encapsulation focuses on the implementation that gives rise to this behaviour Encapsulation provides explicit barriers among different abstractions and thus leads to a clear separation of concerns

Abstraction & Encapsulation Cont. For abstraction to work, implementations must be encapsulated Each class must have two parts: an interface and an implementation. The interface of a class captures only its outside view, encompassing our abstraction of the behavior common to all instances of the class

Question Abstraction and encapsulation are not complementary concepts a) True b) False

Answer b) False Abstraction and encapsulation are complementary concepts

Question For abstraction to work, implementations must be encapsulated a) True b) False

a) True Answer

What is the Meaning of Modularity?

What is the Meaning of Modularity?

What is the Meaning of Modularity? Act of partitioning a program into individual components can reduce its complexity Creates well-defined, documented boundaries (or interfaces) within the program Modules are essential to help manage complexity

Question Why is modularity important? a) Enables us to partitioning a program into individual components can reduce its complexity b) Enables us to develop more optimised algorithms c) Modularity causes issues with boundaries (or interfaces) within the program

Answer a) Enables us to partitioning a program into individual components can reduce its complexity

What is the Meaning of Hierarchy?

What is the Meaning of Hierarchy? Hierarchy is a ranking or ordering of abstractions

What is the Meaning of Typing?

What is the Meaning of Typing? Typing is the enforcement of the class of an object, such that objects of different types may not be interchanged, or at the most, they may be interchanged only in very restricted ways Typing lets us express our abstractions Strong typing prevents mixing of abstractions

What is the Meaning of Typing? For example, an object may have both a class and a type. In Smalltalk, objects of the classes SmallInteger, LargeNegativeInteger, and LargePositiveInteger are all of the same type, Integer

Typing Some important benefits to be derived from using strongly typed languages: Without type checking, a program in most languages can crash in mysterious ways at runtime In most systems, the edit-compile-debug cycle is so tedious that early error detection is indispensable Type declarations help to document programs Most compilers can generate more efficient object code if types are declared

Static and Dynamic Typing Static typing (also known as static binding or early binding) means that the types of all variables and expressions are fixed at the time of compilation; Dynamic typing (also known as late binding) means that the types of all variables and expressions are not known until runtime

Benefits of the Object Model Many people who have no idea how a computer works find the idea of object-oriented systems quite natural Object model reduces the risks inherent in developing complex systems Object model produces systems that are built on stable intermediate forms, which are more resilient to change Object model encourages the reuse not only of software but of entire designs Object model helps us to exploit the expressive power of object-based and object-oriented programming languages

Summary Clear idea of Object Model in Object Orientated Analysis and Design Address the issues of programming-inthe-large Abstraction, Encapsulation, Modularity and Hierarchy Typing is the enforcement of the class of an object interchanging (strict rules)

This Week Review Slides Read Chapter 3 Online Quizzes Contribute towards your final grade Attempt again and again (100%) Decide on `Groups Next week `Allocate Project Details

Questions/Discussion

Question What is software synergy? a) Object collaborates with other objects to achieve some behaviour b) Every object stands alone c) Power of a single method d) Another term for object orientated techniques

Answer a) Object collaborates with other objects to achieve some behaviour (i.e., no object stands alone)

Question Encapsulation focuses on the observable behavior of an object, whereas abstraction focuses on the implementation that gives rise to this behaviour a) True b) False

Answer b) False Abstraction focuses on the observable behavior of an object, whereas encapsulation focuses on the implementation that gives rise to this behaviour

Question The four major elements of the Object Orientated model are: a) Encapsulation, Inheritance, Abstraction b) Abstraction, Encapsulation, Modularity, Hierarchy c) Abstraction, Modularity, Hierarchy, Inheritance d) Polymorphism, Scalability, Complexity, Abstraction

Answer b) Abstraction, Encapsulation, Modularity, Hierarchy

Question Encapsulation is avoided through information sharing, which is the process of showing all the secrets of an object that do not contribute to its essential characteristics a) True b) False

Answer a) False Encapsulation is achieved through information hiding (not just data hiding), which is the process of hiding all the secrets of an object that do not contribute to its essential characteristics