advanced software design lecture 1 introduction · 2013-10-30 · • analysis, design and...

40
ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION Dave Clarke 1 Wednesday 30 October 13

Upload: others

Post on 08-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

ADVANCED SOFTWARE DESIGNLECTURE 1

INTRODUCTIONDave Clarke

1Wednesday 30 October 13

Page 2: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

CONTENTS

• Practical Matters

• Course overview – topics, text book

• Project

• Achievement-driven approach to learning

• Analysis and Design primer

• Forming groups

2Wednesday 30 October 13

Page 3: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

ARE YOU REGISTERED?

• Admitted students must web-register themselves for this course in the Student Portal.

• Students who are unable to web-register (or who were registered before) should contact the Student Office ([email protected]).

• Do this as soon as possible! You will be able to web-register until November 11 at the latest.

3Wednesday 30 October 13

Page 4: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

DROPPING COURSES

• If you decide to drop it, you must inform the Student Office([email protected]).

• If less than 3 weeks have passed since the course started, your course registration will be removed.

• After 3 weeks a “course intermission” will be reported to UPPDOK instead.

4Wednesday 30 October 13

Page 5: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

COURSE OVERVIEW

5Wednesday 30 October 13

Page 6: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

TOPICS COVERED

• Requirements Analysis

• Structural Modelling – classes, components, subsystems, deployment.

• Software Architecture

• Behavioural modelling

• Design Patterns

• Design principles (GRASP)

• Design evaluation and improvement

6Wednesday 30 October 13

Page 7: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

TEXTBOOK AND REFERENCES

7Wednesday 30 October 13

Page 8: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

PROJECT

8Wednesday 30 October 13

Page 9: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

PROJECT

• Analysis, Design and implementation of DungeonQuest board game (with various extensions)

• Groups of 4 or 5.

• Follow iterative design process:

• elicit requirements, develop use cases, perform design, write code of small parts of whole

• each iteration develops more, and improves design based on experience gained

• No expectation that you will complete it

9Wednesday 30 October 13

Page 10: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

MEETINGS WITH TAS

• Weekly meetings with TAs:

• discuss issues that arise in lectures

• discuss project, obtain feedback

• be assessed on various points

10Wednesday 30 October 13

Page 11: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

DELIVERABLES

• Check-pointing:

• important to see progress/improvements to ongoing project

• Final design

• Review of other’s design

11Wednesday 30 October 13

Page 12: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

PROJECT

• Volume produced is not what will be measured.

• Rather, understanding and application of design processes and design principles, response to feedback, improvement of design through iterations, evaluation of others’ design.

• Assessment based on achievement-driven learning

12Wednesday 30 October 13

Page 13: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

ACHIEVEMENT-DRIVEN LEARNING

13Wednesday 30 October 13

Page 14: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

ACHIEVEMENT-DRIVEN LEARNING

• A new assessment approach based on a fine-grained breakdown of learning outcomes.

• Detailed list of learning outcomes (achievements) known in advance.

• Students need to work towards ticking-off achievements.

• Different achievements required for 3, 4, and 5 – higher grades require deeper levels of mastery, not more stuff.

• Idea of achievement-driven learn was developed by Tobias Wrigstad.

14Wednesday 30 October 13

Page 15: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

THE PROCESS

• You need to have a plan

• You decide how to convince us that you have unlocked an achievement

• TA will determine whether we agree – usually during weekly meeting.

• Achievements are individual

• when discussing with a TA need all members of team to participate

• missing meeting may mean missing/delayed opportunity

• Some time scheduled later in course to tick-off achievements.

15Wednesday 30 October 13

Page 16: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

EXPECTATIONS

• Don’t leave everything until the end

• Do research to find out how to do things – teach your team!

• Keep your group alive and active – or quickly get a new one

• Do not try to do too much (or too little)

• Structure your work towards ticking-off achievements

16Wednesday 30 October 13

Page 17: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

EMAIL ADDRESS

• If your email is broken –mailbox full, etc–, you will miss crucial information.

• Failing to exist is not an excuse for failure.

17Wednesday 30 October 13

Page 18: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

COMMENTS, CONSTRUCTIVE CRITICISM,

SUGGESTED IMPROVEMENTS

Please come to me first.

18Wednesday 30 October 13

Page 20: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

ANALYSIS AND DESIGN PRIMER

20Wednesday 30 October 13

Page 21: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

WHAT IS GOOD DESIGN?

21Wednesday 30 October 13

Page 22: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

GOOD DESIGN:DESIGN THAT COPES WITH

CHANGE.

22Wednesday 30 October 13

Page 23: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

EMBRACE CHANGE

23Wednesday 30 October 13

Page 24: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

KEY:ASSIGN RESPONSIBILITY

TO CLASSES

24Wednesday 30 October 13

Page 25: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

NOT RELIGIOUS ABOUT DESIGNDesign choices needs motivation:• Use cases. • Expected future use cases. • Non-functional properties. • Organisational constraints.

25Wednesday 30 October 13

Page 26: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

SOFTWARE DEVELOPMENT PROCESSES

• Ad hoc coding

• Waterfall model

• Iterative development method, agile methods

26Wednesday 30 October 13

Page 27: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

MODELLING AND UML

27Wednesday 30 October 13

Page 28: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

UML IS ABOUT COMMUNICATION

NOT DOCUMENTATION

28Wednesday 30 October 13

Page 29: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

MODELLING STARBUCKS

• As an example, we’ll model some of the activities that take place at Starbucks (or your favourite American coffee chain).

• We’ll model the activity of the customer ordering a cup of coffee.

29Wednesday 30 October 13

Page 30: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

REQUIREMENTS: USE CASE

The customer orders coffee at the cashier and pays.The cashier writes the order on a cup and places it in the queue for the barista. The barista retrieves the cup from the queue, makes the coffee, and places it in another queue for the customer to retrieve. When the customer’s coffee becomes available, the customer takes it and leaves.

30Wednesday 30 October 13

Page 31: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

FULLY DRESSED USE CASEScope: StarbucksLevel: user goalPrimary actor: cashierStakeholders and interests: – Cashier– Customer– BaristaPreconditions: Cashier is wearing Starbucks uniformSuccess Guarantee (or postcondition): Customer receives cup of coffee.Main Success Scenario (or basic flow):1. Customer arrives at the cashier.2. Cashier asks customer for order.3. Customer provides order....Extensions (or alternative flows):...

Use case: Process Sale

31Wednesday 30 October 13

Page 32: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

DOMAIN MODELLINGOutput QueueCustomer

Input Queue

Barista

Cup

CoffeePayment

Cashier

32Wednesday 30 October 13

Page 33: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

DOMAIN MODELLING

Customer

Barista

Cashier

Coffee

TypePaymentType

takes order

kind Cup

sizeInputQueue

sizeOutputQueue

processes

writes

reads

addsTo

removesFrom

addsTo

removesFrom

33Wednesday 30 October 13

Page 34: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

STATIC MODELLING

Customer

put(Cup)take() : Cup

Queue<<Cup>>

order(Customer)Cashier

brew(Cup)

inqueue : Queue<<Cup>>outqueue : Queue<<Cup>>

Barista

setCustomer()getCustomer() : Customer

customer : CustomerCup

34Wednesday 30 October 13

Page 35: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

DYNAMIC MODELLINGc:Customer

order(c)

:OutputQueue:Cashier :InputQueue :Barista

put(cup)

:Cup

cup = create()

cup=take()

put(cup)

cup=take()

35Wednesday 30 October 13

Page 36: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

DYNAMIC MODELLING

start

Idle newCup Busy

finished / filledCup

Barista

36Wednesday 30 October 13

Page 37: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

ASSIGNMENT GROUPS

37Wednesday 30 October 13

Page 38: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

TEAMWORK

38Wednesday 30 October 13

Page 39: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

TEAMWORK

• Assigning people to roles

• Swapping roles

• Peer learning: splitting up learning of material, and teaching remainder of group

39Wednesday 30 October 13

Page 40: ADVANCED SOFTWARE DESIGN LECTURE 1 INTRODUCTION · 2013-10-30 · • Analysis, Design and implementation of DungeonQuest board game (with various extensions) • Groups of 4 or 5

FORM GROUPS

• Groups of 4 or 5.

• Ensure that you have at least one hour time slot that you can meet with a TA per week.

• When you have your group, sign up with a TA (provisional).

• Leave room when you are signed up.

•Do not leave room without joining a group.

40Wednesday 30 October 13