Outline Derive some user stories for next Project

Slides:



Advertisements
Similar presentations
Selection Criteria Career Workshop #4 Careers Services University of Canberra
Advertisements

Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
How to Write your First Résumé ?
Intro to Scrum. What is Scrum? An answer to traditional “fixed cost / strict requirements” contracts which had very high rates of failure Recognizes the.
8 September Announcements  GIT Class: Friday 3-5 SN 115 (Peter Parente)  Information for Project Links PageProject Links Page  Hot Topics Teams.
Chapter 15: System Modeling with UML
Lecture 4 Class Responsibility Collaboration Cards
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
Use Case Modeling. Kendall & Kendall© 2005 Pearson Prentice Hall18-2 Commonly Used UML Diagrams The most commonly used UML diagrams are: – Use case diagram,
Introduction to Software Engineering CS-300 Fall 2005 Supreeth Venkataraman.
The Solution to Your Product Problems. Overview - What is PDS? ➲ Project Management System ➲ Web Based Easy to use Scalable ➲ Streamlined tools for software.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
The chapter will address the following questions:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Software Engineering 2003 Jyrki Nummenmaa 1 USE CASES In this lecture: Use cases - What are use cases? - Why to use use cases? - How to write.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
Chapter 4 Agile Development
Copyright David Churchville - XP and Agile Planning David Churchville ExtremePlanner Software XP Fishbowl.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Domain Driven Design Agile SIG Talk Richard Walls.
Use Case modelling 1. Objectives  Document user requirements with a model  Describe the purpose of an actor and a use case  Construct a use case model.
Chandan Rupakheti Office: Moench Room F203 Phone: (812) These slides and others derived from Shawn Bohner, Curt.
1 Responsibility Driven Design Responsibility Driven Design, Rebecca Wirfs Brock, 1990 The Coffee Machine Design Problem, Alistair Cockburn, C/C++ User's.
Mobile Aps: Agile Mentoring Review
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Software Requirements (Advanced Topics) “Walking on water and developing software from a specification are easy if both are frozen.” --Edward V Berard.
1 Object-Oriented Analysis Use Case Driven. 2 The outline method for OOA 1.Identify object classes within the problem domain 2.Define the behaviour of.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Faculty of Computer & Information
Object-Oriented Analysis and Design Fall 2009.
1 Responsibility Driven Design Responsibility Driven Design, Rebecca Wirfs Brock, 1990 The Coffee Machine Design Problem, Alistair Cockburn, C/C++ User's.
1-1 User Stories Much taken from User Stories Applied: For Agile Software Development Mike Cohn Mountain Goat Software.
CS Overview of CRC CS 4311 B. Beck and W. Cunningham, A Laboratory for Teaching Object-Oriented Thinking, OOPSLA ’89, October 1-6, R. Wirfs-Brock,
1 Object-Oriented Modeling Using UML CS 3331 Section 2.4 Modeling Requirements with Use Cases.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
Introduction to Unified Modeling Language (UML) By Rick Mercer with help from The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Use Case Diagram The purpose is to communicate the system’s functionality and behaviour to the customer or end user. Mainly used for capturing user requirements.
1 Software Development By Rick Mercer with help from these sources: Rational Unified Process Computing Fundamentals with C++, Rick Mercer Designing Object.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Virtual Business Virtual Communication Copyright © Texas Education Agency, All rights reserved.
1 By Rick Mercer with help from Object-Oriented Design Heuristics, Arthur Riel Coupling / Cohesion.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Résumé Building IAFNR Careers Module. This is a Résumé!
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
SWE 4743 Responsibility Driven Design with CRC cards Richard Gesick.
Web Databases Vast information provider. Offers information about jobs, photos, movies, weather, sporting events, etc. Shop for any product/service, buy/sell.
Some Common Interview Questions Exposed Lynn D’Angelo-Bello The Center for Career & Professional Development.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
1 Responsibility Driven Design Responsibility Driven Design, Rebecca Wirfs Brock, 1990 The Coffee Machine Design Problem, Alistair Cockburn, C/C++ User's.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
SmartPosition Customer Review and Feedback Presentation.
1 Jukebox Objects. 2 Outline  Design a solution as a set of candidate objects with well-defined responsibilities — Compare your objects to Rick’s  Role.
Identification of Classes. Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements.
RESUME WRITING WORKSHOP. INTRODUCTION You only get one chance to make a first impression! Your first contact with a prospective employer will be when.
Object Oriented Analysis & Design By Rashid Mahmood.
User Stories- 2 Advanced Software Engineering Dr Nuha El-Khalili.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Relationships amongst Objects
OO Domain Modeling With UML Class Diagrams and CRC Cards
Outline Derive some user stories for next Project
Obstacles to Agility 1. What does agile mean?
User Stories Applied, Mike Cohn Chapter 1: An Overview
User Stories Applied, Mike Cohn Chapter 2: Writing Stories
User Stories Applied, Mike Cohn Chapter 2: Writing Stories
Extreme Programming.
Obstacles to Agility 1. What does agile mean?
Presentation transcript:

Outline Derive some user stories for next Project Consider Responsibility Driven Design Design a solution as a set of candidate objects with well-defined responsibilities Role play different scenarios to understand the problem and help make design decisions Assign responsibilities, which is the most important part of OO Design Consider some design guidelines

User Stories Much taken from User Stories Applied: For Agile Software Development Mike Cohn Mountain Goat Software

User Stories Agile Process such as Scrum and Extreme programming (XP) introduced the practice of expressing requirements in the form of user stories A user story is a short descriptions of functionality–told from the perspective of a user–that are valuable to either a user of the software or the customer of the software

A few Example User Stories The following are typical user stories for a job posting and search site: A user can post her resume to the web site A user can search for jobs A company can post new job openings A user can limit who can see her résumé

User Stories A user story describes functionality that will be valuable to either a user or purchaser of the system User stories are traditionally written on an index card when the team and customers are communicating They will be written now as a line of text in the slides that follow, and in the project specification

Aspects of a User Story A user story can provide three things: Written description of the story, used for planning and as a reminder Placeholder for future conversations among the user, customer, and developer User: You, me, section leaders, maybe you can sell it? Customer: Rick Developer: You Tests that convey and document details that can be used to determine when a story is complete

In team of 2, write three user stories for the Cashless Jukebox we'll collate them in 5 minutes live The student affairs office want to put some newfound activity fee funds toward a Jukebox in the student center. The Jukebox must allow students to play a song. No money will be required. Instead, a student will swipe a magnetic ID card through a card reader, view the song collection and choose a song. Students will each be allowed to play up to 1500 minutes worth of "free" Jukebox music in their academic careers, but never more than two songs on any given date. No song can be played more than five times a day*. *What a drag it would be to hear "Dancing Queen" 14 times while eating lunch (apologies to ABBA)

User stories for the Cashless Jukebox One example Any song can be 5 times per day at most

Other Stories? In the past, other user stories seemed valuable to the students and the customer We will some, eliminate others intentionally small font: A user can select a Song from the collection of songs Songs can be played up to 5 times per day User can hear audio files play Any user can play up to 2 songs per day Jukebox can find a user given an ID Notify Student the song is not selectable The system should be able to queue songs on a FIFO basis Show the play list (queue) to help users decide what to do Have a nice GUI interface User can swipe card Students see their account status Students can see how long all songs in the queue would play Administrator can add and remove Students Administrator can add and remove songs Use this for "WebRadio" The system should be able to play mp3s

Responsibility Driven Design Responsibility Driven Design, Rebecca Wirfs Brock, 1990 The Coffee Machine Design Problem, Alistair Cockburn, C/C++ User's Journal, May and June 1998. Introducing Object-Oriented Design with Active Learning, Rick Mercer , Consortium for Computing in Small Colleges, 2000

In Rebecca Wirfs Brocks' Words Responsibility-Driven Design is a way to design that emphasizes behavioral modeling using objects, responsibilities and collaborations. In a responsibility-based model, objects play specific roles and occupy well-known positions in the application architecture. Each object is accountable for a specific portion of the work. They collaborate in clearly defined ways, contracting with each other to fulfill the larger goals of the application. By creating a "community of objects", assigning specific responsibilities to each, you build a collaborative model of our application. Responsible: able to answer for one's conduct and obligations—trustworthy, Merriam Webster

Responsibility Driven Design in Rick's words 1. Identify candidate objects that model a system as a sensible set of abstractions 2. Determine the responsibility of each object what an instance of the class must be able to do, and what each instance must know about itself 3. Understand the system through role play To help complete its responsibility, an object often needs help from other objects

OO Design Principle The Single Responsibility Principle Classes should have a single responsibility http://en.wikipedia.org/wiki/Single_responsibility_principle Why? Cohesion, when high, reduces complexity, makes the system more understandable http://en.wikipedia.org/wiki/Cohesion_%28computer_science%29 Maintenance: Fixing or changing a module should not break other parts of the system

First Design a Model Note: design is iterative Find a set of objects (candidate classes) that model a solution Each will be a part of the bigger system Each should have a single responsibility What are these objects?

Find the Objects Candidate objects may come from An understanding of the problem domain knowledge of the system that the problem specification may have missed or took for granted The words floating around the room Alistair Cockburn The nouns in the problem statement Underline the noun phrases to look for the objects that could model the system

The Problem Specification repeated The student affairs office want to put some newfound activity fee funds toward a Jukebox in the student center. The Jukebox must allow students to play a song. No money will be required. Instead, a student will swipe a magnetic ID card through a card reader, view the song collection and choose a song. Students will each be allowed to play up to 1500 minutes worth of "free" Jukebox music in their academic careers, but never more than two songs on any given date. No song can be played more than five times a day*. *What a drag it would be to hear "Dancing Queen" 14 times while eating lunch (apologies to ABBA)

A First Cut at the Candidate Objects (may become classes) What objects effectively model the system? What is the responsibility, Example Song: Know song title, artist, playtime, how often it's been played today Others?

Yesses Jukebox: coordinates activities one instance to start things and keep them going JukeboxAccount changed from Student: maintain one account: model user who play songs Song: one song that can be played CardReader: reads the magnetic ID card

A No Object-Oriented Design Guideline StudentIdCard: store user data Object-Oriented Design Guideline Eliminate classes that are outside the system The hallmark of such a class is one whose only importance to the system is the data contained in it. Student identification number is of great importance The system should not care whether the ID number was read from a swiped magnetic ID card, typed in at the keyboard, or "if a squirrel arrived carrying it in his mouth" Arthur Reil

More Candidate Objects? SongCollection: songs to choose from What about storing a collection of accounts? JukeBoxAccountCollection What about a compact disk player? Could have a software equivalent like SongPlayer to play audio files?

Date Date: Can determine when a song is played and the current date. Maybe Can we use use java.util.GregorianCalendar? Could we use class Usage?

Another No? The next slide summarizes some needed candidate objects StereoSystem: Amplifies the music No, it's on the other side what we have to build The next slide summarizes some needed candidate objects It also sets the boundaries of the system There are model of the real world objects

Candidate Objects and the system boundary CardReader Gets student ID JukeboxAccountCollection Stores all JukeboxAccount objects JukeboxAccount JukeBox Coordinates activities SongCollection Stores all Songs that can be played Song SongPlayer Plays a song

Role Play Need 7 volunteers to play the roles of these objects You must be willing to write down responsibilities as they are discovered on the whiteboard These are potential methods Should be related to encourage high cohesion Should have meaningful names When done, form teams of 2 or 3 and complete a class diagram We'll check it if you want, do not turn in these