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

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

    21-Dec-2015
  • Category

    Documents

  • view

    215
  • download

    2

Transcript of Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design - CDT309...

Page 1: 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 - CDT309

Period 4, Spring 2008

Introduction

Page 2: 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 U3-152

Email: marcelo.santos @ mdh.se

Home page for the course:

www.idt.mdh.se/kurser/cd5130/jgms/2008lp4

Page 3: 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

Presentation

• Students present themselves:

• Name?

• Where from?

• Have taken software engineering course?

• Have taken object oriented course?

Page 4: 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 - CDT309

• 7.5 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

Page 5: 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

Contents

• Lectures

• Laborations (U2-029): individual work, but group study encouraged

• Project (implementation and report): group work

• Written exam (June 4 or August 7)

Page 6: 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

Fundamental aspect of OO Design

• We will study patterns that help with the fundamental aspect of OO design: assigning responsibilities to objects

Page 7: 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

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

Page 8: 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

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 email the project proposal and names in the team

Page 9: 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

Why use objects, analysis, design, patterns, prototypes, …

Page 10: 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

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

Page 11: 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

An easy way

Hack a similar code example from internet

Page 12: 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

Java example• Run modified hacked Java example in

NetBins

Page 13: 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

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

Page 14: 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

Page 15: 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

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?

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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)

Page 19: 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

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

Page 20: 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

• 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

Page 21: 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

Tools

• UML (Unified Modelling Language): universily accepted visual language for software design

• Software design patterns: allows us to reuse ideas

Page 22: 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

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

Page 23: 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

Principles in OODA

• Responsibilities of classes

• Collaboration between objects

• Allocation of tasks to classes

Page 24: 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

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.

Page 25: 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

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