A case study Whole-application development 6.0. 2 The case study A taxi company is considering expansion. –It operates taxis and shuttles. Will expansion.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Comp1004: Object Oriented Design II Designing Applications Based on BlueJ Chapter 13.
Test Taking Showing What You Know Chapter 8. Carter, Bishop, and Kravits Copyright 2003 by Pearson Education, Inc. Keys to Success in College, Career,
COSC 1P03 Data Structures and Abstraction 2.1 Software Development The leadership instinct you are born with is the backbone. You develop the funny bone.
A case study Whole-application development The case study A taxi company is considering expansion. –It operates taxis and shuttles. Will expansion.
Washington County Transportation Authority. Mission Statement  The mission of the Washington County Transportation Authority (Washington Rides) is to.
Copyright © 2012 Pearson Education, Inc. Chapter 6 More Conditionals and Loops Java Software Solutions Foundations of Program Design Seventh Edition John.
Designing applications Software Engineering from a Code Perspective.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Testing and Quality Assurance
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
10 Stages Of the Engineering Design Process
SABAL SHRESTHA SHERIF HALAWA SHAMA KHADPEKAR JIANWEI LAI SI TRAN GROUP A Tri-Airport Shuttle System.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Call-n-Ride Transportation Program
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
The Writing Process Introduction Prewriting Writing Revising
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
RUP Fundamentals - Instructor Notes
2- 1 Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall i t ’s good and good for you Chapter Two Company and Marketing Strategy Partnering.
Whole-application development
Demand Responsive Transport - an option for Patient and Community Transport.
Understand Application Lifecycle Management
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Objects First With Java A Practical Introduction Using BlueJ Designing applications 1.0.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
CSC 213 – Large Scale Programming. Today’s Goal  Improve design skills to make usable designs  Noun extraction & UML class diagram reviewed  Connections.
Data Structures and Abstractions with Java, 4e Frank Carrano
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
Ground Transportation Trip Fees Recent Changes at SJC.
2- 1 Copyright © 2012 Pearson Education. Chapter Two Company and Marketing Strategy Partnering to Build Customer Relationships.
Data Structures Using C++1 Chapter 1 Software Engineering Principles and C++ Classes.
Use Case Modeling Example By: Dr. Issam Al-Azzoni.
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.
Common Test Project CMU Presentation Jason Weighley Manager Test Engineering.
Software Testing and Quality Assurance Software Quality Assurance 1.
Designing Classes Prelude © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures and Abstractions with Java, 4e Frank.
Designing Classes Chapter 3. 2 Chapter Contents Encapsulation Specifying Methods Java Interfaces Writing an Interface Implementing an Interface An Interface.
Key Partners Key Activities Value Proposition Customer Relationships Customer Segments Drivers Phone Company Taking calls Scheduling Convenience Safety.
Designing applications Main concepts to be covered Discovering classes CRC cards Designing interfaces Patterns Objects First with Java - A Practical.
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
RECOGNIZING, ANALYZING, AND CONSTRUCTING ARGUMENTS
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Project management Topic 7 Controls. What is a control? Decision making activities – Planning – Monitor progress – Compare achievement with plan – Detect.
Protocols Software Engineering II Wirfs Brock et al, Designing Object-Oriented Software, Prentice Hall, Mitchell, R., and McKim, Design by Contract,
Key Partners Key Activities Value Proposition Customer Relationships Customer Segments Drivers Phone Company Taking calls Scheduling Convenience Safety.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Object-Oriented Analysis and Design Use cases Finding classes Collaboration and Sequence diagrams Associations between classes.
1 b Boolean expressions b truth tables b conditional operator b switch statement b repetition statements: whilewhile do/whiledo/while forfor Lecture 3.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
A Bag Implementation that Links Data Chapter 3 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures and Abstractions.
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
Designing applications Main concepts to be covered Discovering classes CRC cards Designing interfaces Patterns © 2017 Pearson Education, Inc. Hoboken,
Functional Processing of Collections (Advanced) 6.0.
In Concert: An Integrated Reading and Writing Approach by Kathleen T. McWhorter.
Beginning Fare File Management Hudson Fare Files 104 – Rev. 8/15 Point to Point (PTP)
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Requirements Determination
Product Validation Adapted from the NASA Systems Engineering Handbook for CSULB EE 400D by Alia Bonetti.
Objects First with Java A Practical Introduction using BlueJ
Slides by Steve Armstrong LeTourneau University Longview, TX
Use Case Modeling Example
Chapter Two Company and Marketing Strategy
Presentation transcript:

A case study Whole-application development 6.0

2 The case study A taxi company is considering expansion. –It operates taxis and shuttles. Will expansion be profitable? How many vehicles will they need? © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

3 The problem description (1) © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. The company operates both individual taxis and shuttles. The taxis are used to transport an individual (or small group) from one location to another. The shuttles are used to pick up individuals from different locations and transport them to their several destinations. When the company receives a call from an individual, hotel, entertainment venue, or tourist organization, it tries to schedule a vehicle to pick up the fare.

4 The problem description (2) © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. If it has no free vehicles, it does not operate any form of queuing system. When a vehicle arrives at a pick-up location, the driver notifies the company. Similarly, when a passenger is dropped off at their destination, the driver notifies the company.

5 Amendments The underlying purpose of the modeling suggests additions: –Record details of lost fares. –Record details of how each vehicle passes its time. These issues will help assess potential profitability. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

6 Discovering classes Singular nouns: company, taxi, shuttle, individual, location, destination, hotel, entertainment venue, tourist organization, vehicle, fare, pickup location, driver, passenger. Identify synonyms. Eliminate superfluous detail. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

7 Simplified nouns and verbs © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. Company Operates taxis. Receives calls. Schedules a vehicle. Taxi Transports a passenger. Shuttle Transports one or more passengers. Passenger Location Vehicle Pick up individual. Arrives at pickup location. Notifies company of arrival. Notifies company of drop-off. Passenger source Calls the company.

8 Scenarios Follow a pickup through from request to drop off with CRC cards. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. PassengerSource Collaborators Create a passenger. Passenger Request a taxi. TaxiCompany Generate pickup and Location destination.

9 Designing class interfaces © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved. public class PassengerSource { /** * Have the source generate a new passenger and * request a pickup from the company. true If the request succeeds, * false otherwise. */ public boolean requestPickup() /** * Create a new passenger. The created passenger. */ private Passenger createPassenger() }

10 Collaborators Received through a constructor: new PassengerSource(taxiCompany) Received through a method: taxiCompany.requestPickup(passenger) Constructed within the object. –Taxi company’s vehicle collection. –Some such objects may be passed as collaborators to other objects, as above. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

11 Outline implementation Once the interfaces are complete, the outline implementation can start. The outline implementation tests the adequacy of the interfaces. –Expect to have to correct the design. Lay down some basic tests that will be repeated as development continues. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

12 Iterative development Take relatively small steps towards the completion of the overall application. Mark the end of each step with a period of testing. –Regression test. –Fix errors early. –Revisit earlier design decisions, if necessary. –Treat errors-found as successes. © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.

13 Review Robust software requires thoughtful processes to be followed with integrity. –Analyze carefully. –Specify clearly. –Design thoroughly. –Implement and test incrementally. –Review, revise and learn. Nobody’s perfect! © 2017 Pearson Education, Inc. Hoboken, NJ. All rights reserved.