Introduction. Object Orientated Analysis and Design. Benjamin Kenwright

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

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

Object Orientated Analysis and Design. Benjamin Kenwright

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

CHAPTER 5 GENERAL OOP CONCEPTS

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Inheritance and Interfaces

Object Oriented Programming

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

Polymorphism. Object Orientated Programming in Java. Benjamin Kenwright

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas

PRINCIPLES OF SOFTWARE BIM209DESIGN AND DEVELOPMENT 00. WELCOME TO OBJECTVILLE. Speaking the Language of OO

Elementary Concepts of Object Class

Chapter3: Introduction to Classes and Objects

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

Java Basics. Object Orientated Programming in Java. Benjamin Kenwright

Outline EXPERIENCE WITH TWO OOP LANGUAGES IN ONE COURSE. HISTORY Methodology and learning design of the course Experience from classes

Object-Oriented Programming. Objects. Objects. Objects

Example: Fibonacci Numbers

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

feel free to poke around and change things. It's hard to break anything in a Moodle course, and even if you do it's usually easy to fix it.

Object Oriented Programming

What is a Programming Paradigm

Chapter 5: Classes and Objects in Depth. Information Hiding

Welcome. Orientation to online CPS102 Computer Science 2 (Java 2)

Object oriented programming Concepts

Syllabus. College for Computer & Information Sciences 3333 Regis Boulevard, Denver, CO regis.edu

CS 3110 Lecture 1 Course Overview

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/

CS 15 Design Section. Design

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

Object-Oriented Programming

B.C.A 2017 OBJECT ORIENTED PROGRAMMING USING C++ BCA303T MODULE SPECIFICATION SHEET

Think Java: How to Think Like a Computer Scientist, written by

Object Oriented System Development


Object Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz

Compulsory course in Computer Science

Model 4.2 Faculty member + student Course syllabus for Advanced programming language - CS313D

Object-Oriented Programming Fall Robert Grimm, New York University

Week 8: The fundamentals of graph theory; Planar Graphs 25 and 27 October, 2017

Data Communications & Computer Networks

*ANSWERS * **********************************

Spring Modern Computer Science in a Unix Like Environment CIS c

Introduction Course Information Object Oriented Concepts Operators & Control Statements Assignment 3. CS Java. Introduction to Java

CMPE/SE 135 Object-Oriented Analysis and Design

Chapter 5 Object-Oriented Programming

Software Reliability and Reusability CS614

Introduction. Object-Oriented Programming Spring 2015

ACRONYMS AND GLOSSARY

Patterns and Testing

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

2015 HSC Software Design and Development Marking Guidelines

Object-Oriented Programming Fall Robert Grimm, New York University

Review sheet for Final Exam (List of objectives for this course)

1. General Information Course Title: CSCI-605 Advanced Object-Oriented Programming Concepts Instructor: Hans-Peter Bischof Office: Telephone:

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015

College of San Mateo Course Outline

1/27/2014. OO design approach with examples. UML and project clarifications (2) Project clarifications 1. UML

MechEng SE3 Lecture 7 Domain Modelling

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

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

ECE Object-Oriented Programming using C++ and Java

CS 241 Data Organization. August 21, 2018

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

Internal Classes and Exceptions

ITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS

Software Development. Modular Design and Algorithm Analysis

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

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

The major elements of the object-oriented model

Object-Oriented Programming CSCI-UA

OO Requirements to OO design. Csaba Veres Alan M. Davis (1995), Colorado

CSE341: Programming Languages Lecture 26 Course Victory Lap. Dan Grossman Spring 2016

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation

BASIC CONCEPT OF OOP

Java Object Oriented Design. CSC207 Fall 2014

Chapter 2: Java OOP I

CIS 3308 Web Application Programming Syllabus

Plan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?

System Analysis and Design

OBJECT ORIENTED PROGRAMMING

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

CSc 2310 Principles of Programming (Java) Jyoti Islam

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes.

Object Oriented Analysis & Design (OOAD)

Interactive graphic organisers may be created using TuxPaint.

Upon successful completion of this course, the student should be competent to perform the following tasks:

Course materials Reges, Stuart, and Stepp, Martin. Building Java Programs: A Back to Basics Approach. 2d ed. (Boston: Addison-Wesley, 2011).

This handbook contains directions on using tools and resources in WebAccess at CSM.

Object Oriented Programming. C++ 6 th Sem, A Div Ms. Mouna M. Naravani

The Specification Phase

Programmazione. Prof. Marco Bertini

Recursion 1. Recursion is the process of defining something in terms of itself.

Back to Basics for APCS Success

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

Transcription:

Introduction Object Orientated Analysis and Design Benjamin Kenwright

Outline What do we mean by Object Orientated? Why do we need to analyze and design our solutions? Give examples What analysis and design tools are available? Course structure Grading/assessment

Recommended Book Object Oriented Analysis and Design with Applications 3rd Edition by Booch Ebook Available: https://zjnu2017.github.io/ooad Complete Reading Chapter 1 Before Next Week

Recommended Also read around the subject to gain a broad/comprehensive understanding of the topic Articles, books, online-tutorials,

Why use Object-Orientation Concepts? Why use object-orientation?

Why use Object-Orientation Concepts? Sooner rather than later, you ll have to work with object-oriented code Modularity Scalability Frameworks Contributing to open source software Gives you various ways to think and solve problems Easier to translate your programming skills into other Object-Oriented languages Become a more valuable developer

Revision Review Software Development Methodologies (Core OO Programming Principles) What is an object? What is a class? What is abstraction? What is encapsulation? What is inheritance? What is an Interface? What is polymorphism?

Question What is a Great Software Solution?

Answer A great software must satisfy the customer The software must do what the customer wants it to do! Great software is also well-designed well-coded easy to maintain, reuse, and extend

Question How do we make Great Software Solutions?

Answer Apply Object Orientated Analysis and Design Processes e.g., Make sure your software does what the customer wants it to do Use OO principles to add flexibility Strive for a maintainable, reusable design

Why do we need Object Orientated Analysis and Design (OOAD)?

Why we need OOAD?

Why we need OOAD? Software is inherently complex Complexity of software systems often exceeds the human intellectual capacity Helps create illusion of simplicity Order to Chaos Add meaningful logic

Object Orientated Analysis and Design Techniques that allow us to decompose problems/tasks into manageable components Employs object-oriented methods for organising the complexity of the system Provides a rich set of models to understand the different aspects of the system under consideration

The primary tasks for the object-oriented `analysis (OOA) Find the objects Organize the objects Describe how the objects interact Define the behavior of the objects Define the internals of the objects Common models used in OOA are use-cases and object models

Class Participation Welcome participation by students Feel free to interrupt me during lectures to ask questions! Stupid Questions No such thing! No participation leads to silent tomb - Boring! If I speak too fast or you are unsure of something, stop me and ask/tell me to slow down

Class Participation Quizzes Discussion/Project Homeworks Reading Chapters Researching Topics Case studies

Question Which of the following is the functionality of Data Abstraction? a) Reduce Complexity b) Binds together code and data c) Parallelism d) None of the mentioned

Answer Answer: a Explanation: An essential element of Object Oriented Programming is Data Abstraction which means hiding things. Complexity is managed through abstraction.

Goals Provide students with knowledge and skills in: Object-oriented concepts OO analysis, design, and implementation techniques Object-oriented design methods (aka software development life cycles) Students should view OO software development as a software engineering process that has well-defined stages with each stage requiring specific tools and techniques

Grading Attendance 10% Experiments & Discussion 40% Final Exam 50%

Structure Topics

Experiments/Discussion

Contact Details Questions/Issues Benjamin Kenwright email: bkenwright@ieee.org Open Door Policy Problems/Help Within Reason

Question Which of the following mechanisms is/are provided by Object Oriented Language to implement Object Oriented Model? a) Encapsulation b) Inheritance c) Polymorphism d) All of the mentioned

Answer d) All of the mentioned

Question An object is a combination of data and logic; the representation of some realworld entity a) True b) False

a) True Answer

Summary Clear idea of the goal of this course/topic Structure of the course Assessment/grading

This Week Review Slides Read Chapter 1 Challenging so Start Early

Questions/Discussion

Optional Revision/Review Slides

Revision Review Software Development Methodologies (Core OO Programming Principles) Why use object-orientation? What is a class? What is an object? What is abstraction? What is encapsulation? What is inheritance? What is an Interface? What is polymorphism?

What Is a Class? A class is a blueprint or prototype from which objects are created. This section defines a class that models the state and behavior of a real-world object. It intentionally focuses on the basics, showing how even a simple class can cleanly model state and behavior.

What Is an Object? An object is a software bundle of related state and behavior. Software objects are often used to model the real-world objects that you find in everyday life.

What is Abstraction? Abstraction is a process where you show only relevant data and hide unnecessary details of an object from the user. Consider your mobile phone, you just need to know what buttons are to be pressed to send a message or make a call, What happens when you press a button, how your messages are sent, how your calls are connected is all abstracted away from the user.

What is Encapsulation? Encapsulation is the process of combining data and functions into a single unit called class. In Encapsulation, the data is not accessed directly; it is accessed through the functions present inside the class. In simpler words, attributes of the class are kept private and public getter and setter methods are provided to manipulate these attributes. Thus, encapsulation makes the concept of data hiding possible.

What Is Inheritance? Inheritance provides a powerful and natural mechanism for organizing and structuring your software. Classes inherit state and behavior from their superclasses.

What Is an Interface? An interface is a contract between a class and the outside world. When a class implements an interface, it promises to provide the behavior published by that interface.

What does Polymorphism mean? Polymorphism is an object-oriented programming concept that refers to the ability of a variable, function or object to take on multiple forms. A language that features polymorphism allows developers to program in the general rather than program in the specific.