software engineering - ut

33
2009/10/02 1/33 Ulrich Norbisrath (http://ulno.net) University of Tartu Software Engineering http://teaching.ulno.net Software Engineering Modeling UML and Objects First Lecture 2009/10/02

Upload: others

Post on 11-Apr-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering - ut

2009/10/021/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Software Engineering

Modeling

UML and Objects First

Lecture2009/10/02

Page 2: Software Engineering - ut

2009/10/022/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Content

● Modeling, an overview● Concrete abstract, scenarios and →

examples● User Stories, and Usecases ● Object Diagrams● Break● Class Diagrams● Sequence Diagrams● Acrivity Diagrams

Page 3: Software Engineering - ut

2009/10/023/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Warm-up Questions

● Who of you likes programming (who not)?● Who likes to program in “real” projects (who

prefers just for fun)?● Who uses modeling in their development

environment (in “real” projects in fun projects)?

● Who likes to use modeling (private, work)?

Page 4: Software Engineering - ut

2009/10/024/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Why Model?

● “If you were supposed to understand it, we wouldn't call it code.” -from a Federal Expresspromotion, reported by IS Survivalist Matthew Persico

● Enables better communication● Shows connections, relations, context at

once● Easier to see and estimate risks/costs

Page 5: Software Engineering - ut

2009/10/025/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Concrete, Abstract, Example

● Form teams of 3-4● Discuss and write down examples for

concrete and abstract things and for examples (total about 10 examples).

● Create definitions of concrete, abstract, and example

● Write down two ideas, what this could have to do with modeling.

● Work on this for 15 minutes.● Report

Page 6: Software Engineering - ut

2009/10/026/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

What is an example?

● Concrete!● Wictionary (example):

– Something that is representative of all such things in a group.

– Something that serves to illustrate or explain a rule.– Something that serves as a pattern of behavior to be

imitated (a good example) or not to be imitated (a bad example).

– A parallel or closely similar case, especially when serving as a precedent or model.

– An instance (as a problem to be solved) serving to illustrate the rule or precept or to act as an exercise in the application of the rule.

Page 7: Software Engineering - ut

2009/10/027/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Scenario (our definition)● A story (should be very concrete, lots of

details – not too many - assume the development project already exists - fiction)

● Long (half a page up to several pages)● Describing the system to develop● A case for things happening in and in

interaction with the system

Page 8: Software Engineering - ut

2009/10/028/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

User Story (our definition)

● Very concrete example of the problem to solve (assume the development project already exists)

● Very short (less than half a page) – fits on a flash card

● Write down as:– Title– Pre condition– Action (<3 sentences)– Post condition

Page 9: Software Engineering - ut

2009/10/029/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Scenarios and Examples

● Be specific and concrete not abstract● “A user interacts with a system” is not an

example● “Klaus clicks on the login button and enters

his username kla01 and the password klasecret into the name field of the appearing dialog” is an example (and a short scenario)

Page 10: Software Engineering - ut

2009/10/0210/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Scenario: Interactive Towers of Hanoi

http://en.wikipedia.org/wiki/Towers_of_hanoi

Discs should be moved interactively.

Page 11: Software Engineering - ut

2009/10/0211/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

How To Model Software?

● Use a standard● UML

– Unified Modeling Language– accepted Standard of Software Industry– managed by Object Management Group (OMG)– mainly used in OO-Design

● Stay critical– maybe other models more accurate than one of

the UML

Page 12: Software Engineering - ut

2009/10/0212/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

UML – start for yourself!

● http://www.uml.org/● http://www.agilemodeling.com/essays/umlDiagrams.htm● http://www.sparxsystems.com.au/UML_Tutorial.htm● http://en.wikipedia.org/wiki/Unified_Modeling_Language● Estonian translation of Martin Fowler's UML Distilled:

http://www.cyber.ee/uml/

Page 13: Software Engineering - ut

2009/10/0213/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Free UML Modeler

● ArgoUML: http://argouml.tigris.org/● Gaphor: http://gaphor.sourceforge.net/● Umbrello: http://uml.sourceforge.net/● Fujaba: http://www.fujaba.de/

Page 14: Software Engineering - ut

2009/10/0214/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

UML Overview

● Behavior diagrams– behavioral features of a system or business process– activity, state machine, use case, and all interaction

diagrams ● Interaction diagrams

– subset of behavior diagrams emphasizing object interactions

– communication, interaction overview, sequence, and timing diagrams

● Structure diagrams– depicts the elements of a specification irrespective of

time– class, composite structure, component, deployment,

object, and package diagrams

Page 15: Software Engineering - ut

2009/10/0215/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Used Material

● http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_usecasediagram.html

● http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_objectdiagram.html

● http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_classdiagram.html

● http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_activitydiagram.html

● http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_sequencediagram.html

Page 16: Software Engineering - ut

2009/10/0216/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Objects First Method

● Agile Software Development Method● In close contact with customer● Userstories and usecases● -> Object and Usecase Diagrams

– -> Class Diagrams– -> Activities (story diagrams)

● From concrete (specific) to abstract (generic).

Page 17: Software Engineering - ut

2009/10/0217/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Objects First Method

● Scenarios● User stories

– Tests– base for measurement

● Use cases● Object diagrams Class diagrams→● Story diagrams

● What is different to your dev. process?

Page 18: Software Engineering - ut

2009/10/0218/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Example User Story

● Name: Move red disk to second place● Precondition: 3 towerplaces on table, red

disc (size 1) on yellow (size 2) on blue (size 3) on orange (size 4) on initial towerplace (first)

● The player moves the red disc onto the second towerplace

● Postcondition: yellow, blue, and orange disc sorted on initial towerplace (of 3), red on second towerplace

Page 19: Software Engineering - ut

2009/10/0219/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Create User Stories

● Form teams (3-4)● Create stories:

– another positive concret move disc case– a failing move disc case (moving big disc on

small disc)– Reset/Setup Towers of Hanoi

● Note down difficulties/problems● Total time for activity: 20min● Report!

Page 20: Software Engineering - ut

2009/10/0220/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Model an Object Diagram

● Team● Object diagram for “Move red disk” and

“reset/setup”, pre and post condition (25min)

– pre- and post condition can be shown in one model (think how)

– show change to from pre to post condition– what is special about this, what did you do for

this change?– how can we go from here to class diagrams?

● Report

Page 21: Software Engineering - ut

2009/10/0221/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Object DiagramRed Disc

size: 1

Yellow Disc

size: 2

Blue Disc

size: 3

Orange Disc

size: 4

1st Towerplace 2nd Towerplace 3rd Towerplace

lies on top of

lies on top of

lies on top of

lies on top of

is next to is next to

Precondition for move red disc(table omitted)

Player

Page 22: Software Engineering - ut

2009/10/0222/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Object DiagramRed Disc

size: 1

Yellow Disc

size: 2

Blue Disc

size: 3

Orange Disc

size: 4

1st Towerplace 2nd Towerplace 3rd Towerplace

lies on top of

lies on top of

lies on top of

lies on top of

is next to is next to

Postconditionfor move red disc(table omitted)

Player

Page 23: Software Engineering - ut

2009/10/0223/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Usecase

● Team up● Create the two corresponding usecases● Create usecase diagram● Time: 15 min

Page 24: Software Engineering - ut

2009/10/0224/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Usecase diagram

Page 25: Software Engineering - ut

2009/10/0225/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Break

10 Minutes Break

Page 26: Software Engineering - ut

2009/10/0226/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Class Diagram Tasks

● Derive class diagrams from object diagrams (how will this be possible?)

● One team at blackboard● Add attributes and methods (how to get

methods?)● Note down difficulties/problems● Total time for activity: 30min

Page 27: Software Engineering - ut

2009/10/0227/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Class Diagram

Page 28: Software Engineering - ut

2009/10/0228/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Sequence Diagram Tasks

● Read description, read task● One team at blackboard● Create sequence diagrams● Note down difficulties/problems● Total time for activity: 30min

Page 29: Software Engineering - ut

2009/10/0229/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Scenario (quite abstract)● Customer brings items to the counter.● Cashier scans each customer item.● Cashier totals order, including tax.● Cashier requests form of payment.● Customer gives a credit card.● Cashier scans card.● Checkout system communicates scan data to verifier.● Verifier reports that credit card payment is acceptable.● Customer signs credit card slip.

Page 30: Software Engineering - ut

2009/10/0230/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Activity Diagram Tasks

● Read description● One team at blackboard● Create activity diagrams for move disc● Note down difficulties/problems● Total time for activity: 30min

Page 31: Software Engineering - ut

2009/10/0231/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Activity Diagram

Page 32: Software Engineering - ut

2009/10/0232/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Story Diagram (Outlook)

Be aware!This is an extensionto the activitydiagram defined inUML.

Page 33: Software Engineering - ut

2009/10/0233/33

Ulrich Norbisrath (http://ulno.net)University of Tartu

Software Engineeringhttp://teaching.ulno.net

Summary

● Why do we model?● What is the Objects First Method?● UML

– user story, scenario– usecase– object diagram– class diagram– activity diagram– sequence diagram