Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Introduction.

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

Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Unified Modeling Language
Marcelo Santos 1 Design Patterns Object Oriented Programming Advanced Course 2007.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 More design patterns.
Introduction To System Analysis and Design
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Object Oriented Analysis and Design
Lecture 11: Chapter 22 Topics –Object Oriented Modeling –UML –Use case.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Object-oriented concepts.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
UFCEPM-15-M Object-oriented Design and Programming Jin Sa.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Design Patterns: someone has already.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Use cases: deciding what you want.
Sharif University of Technology Session # 7.  Contents  Systems Analysis and Design  Planning the approach  Asking questions and collecting data 
Data Structures and Programming.  John Edgar2.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Introduction To System Analysis and design
Object Oriented Software Development
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Understand Application Lifecycle Management
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
High-Level Design With Sequence Diagrams COMP314 (based on original slides by Mark Hall)
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Object-Oriented Analysis and Design Lecture 1 Instructor: John Cole 1Object-Oriented Analysis and Design - Intro.
CD5130 – Object-Oriented Programming, Advanced Lecture 1 Jan Gustafsson IDE, Mälardalens Högskola April 2, 2007.
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Object-Oriented Analysis and Design Fall 2009.
GRASP: Designing Objects with Responsibilities
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Object-Oriented Analysis and Design ธนวัฒน์ แซ่ เอียบ.
Copyright ©2004 Cezary Z Janikow 1 OOAD Overview n OO language – Necessary for OO systems? – Sufficient for OO systems? Owning a hummer doesn’t make you.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN Objectives Describe the book goals and scope Define OOA/D (Object-Oriented Analysis and Design) Illustrate.
Software Design. A well-known phenomenon You will learn…. –Thinking "object oriented“ –Define requirements and analyze the problem domain. –Design of.
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.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
1 Unified Modeling Language Michael K. Wildes University of California, Riverside – Extension Program Presentation 2.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Object Oriented Analysis & Design By Rashid Mahmood.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
1 Design Object Oriented Solutions Object Oriented Analysis & Design Lecturer: Mr. Mohammed Elhajj
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
Object-Oriented Analysis and Design
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 5: Object Oriented Analysis and Design
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Introduction To System Analysis and Design PART 2
Object Oriented Analysis and Design
Software Design Lecture : 15.
Presentation transcript:

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Introduction

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design Lecturer: Marcelo Santos Room U mdh.se Home page for the course:

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Presentation Students present themselves: Name? Where from? Have taken software engineering course? Have taken object oriented course?

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design - CDT credits (5 weeks workload) Goal: broad introduction to the field of object oriented analysis and design, using UML and design patterns Prerequisites: experience in an OO language, basic concepts of UML Grade: Pass or Not Pass

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Contents Lectures Laborations (U2-029): individual work, but group study encouraged Project (implementation and report): group work Written exam (June 4 or August 7)

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Fundamental aspect of OO Design We will study patterns that help with the fundamental aspect of OO design: assigning responsibilities to objects

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Project A programming project showing the use of OO Analysis, OO Design, UML and patterns Part of of this assignment is understanding and selecting a suibable type of project Object-oriented language of your choice

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Project The project can be done in teams of at most 4 students Deliverables: a working program and a report (describing the project) Send by the project proposal and names in the team

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Why use objects, analysis, design, patterns, prototypes, …

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH An example: a coffee machine You are requested to do an implementation of the GUI menu for a coffee machine Return value: the option chosen by the user

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH An easy way Hack a similar code example from internet

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Java example Run modified hacked Java example in NetBins

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Adding more options There are 4 types of coffee where the user can add something more… Soy, sugar, whipped milk, cinnamon, coffee without caffeine, strong coffee, etc.. Each set of options have different prices Easy solution: one class for each combination of options

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH

Problems Predicting the future: in the design, you should predict the future: what if the client wants to add more options or change the price? Maintenance: how easy will it be to do a change or find and fix a bug? Reusability: can you reuse the system for a juice vending machine?

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH From problem to code Now that you decided to learn good software practices, what lies between an idea and a working product? Problem working product

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH From problem to code Analysis: define the problem to be solved Design: identify classes and their behaviour and relationships Implementation: implement and test classes and combine them into a working program

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Problem working product Programming and software quality Analysis and design –How to solve the problem –What to include in the program And is easy to –Communicate –Review –Implement –Evolve and modify (maintenance)

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Analysis and design Analysis: investigation of the problem and requirements. –How will the system be used? –What are the functionalities? Design: conceptual solution that fulfills the requirements

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design OO analysis: finding and describing (in the problem domain) the objects and the concepts OO design: how can we fulfill the requirements with collaborating software objects

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Tools UML (Unified Modelling Language): universily accepted visual language for software design Software design patterns: allows us to reuse ideas

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Some issues Knowing how to program in a oo language is not enough to build a system Distribution of responsibilities to objects Frequently used UML notation Common design patterns

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Principles in OODA Responsibilities of classes Collaboration between objects Allocation of tasks to classes

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Design Patterns We can make good or bad designs in the object model A large amount of experience has been gained. –Some properties that can make a design successful or not are now better understood. We have a little guidance for trying to come up with a model for a particular application. Design patterns attempts to meet this need identifying common modeling problems and providing verified solutions for them.

Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Steps Use cases: how the application is going to be used Domain model: shows the concepts and objects Interaction diagrams: sequence of collaborations and responsibilities of objects (dynamic view) Class diagrams: static view of the idealized system