sw design specification example

Upload: guru-prasad-iyer

Post on 10-Jan-2016

23 views

Category:

Documents


0 download

DESCRIPTION

This document is an example of the SW Design specification example

TRANSCRIPT

  • SOFTWARE DESIGN SPECIFICATION

    FOR A ONE RUNWAY AIRPORT/AIR TRAFFIC CONTROLLER SIMULATION

    BY: PATRICIA BURKE, KENNETH MARTIN, DIANE LONGTIN

    VERSION: REVISION 1.0

    OCTOBER 19, 2001

    Software Design Specification (10/24/01)

  • Software Design Specification

    REVISION CHART

    .

    Version Primary Author(s) Description of Version Date Completed

    Draft Tricia Burke

    Kenneth Martin

    Diane Longtin

    Initial draft created for distribution and review comments

    10/15/2001

    Revision 1.0 Tricia Burke

    Kenneth Martin

    Diane Longtin

    First Release 10/22/2001

    Revision 1.1 Tricia Burke

    Kenneth Martin

    Diane Longtin

    Final Release 10/24/01

    Software Design Specification (10/26/01) Page 2

  • Software Design Specification

    CONTENTS

    1. INTRODUCTION 6

    1.1 Purpose 6

    1.2 Scope 6

    1.3 Objective 6

    2. SYSTEM OVERVIEW 7

    2.1 Product Perspective 7 2.1.1 Design Method 7 2.1.1 User Interfaces 7 2.1.2 Hardware Interfaces 7 2.1.3 Software Interfaces 7 2.1.4 Memory Constraints 7 2.1.5 Operations 7 2.1.6 Site Adaptation Requirements 7

    2.2 Product Functions 8

    2.3 User Characteristics 8

    2.4 Constraints 8

    2.5 Assumptions and Dependencies 8

    2.6 Apportioning of Requirements 8

    3. DESIGN CONSIDERATIONS 9

    3.1 Operating Environment 9

    3.2 Fault Tolerant Design 9

    3.3 Design Conventions 9

    3.4 Architectural Design 9

    3.5 User Interface: 9

    Software Design Specification (10/26/01) Page 3

    3.5.1 Expected Input: 9

  • Software Design Specification

    3.5.2 Output: 10

    4. SYSTEM ARCHITECTURE 111

    4.1 View of Product Classes (Figure 1) 111

    4.2 Individual Classes of System 122 4.2.1 Airport: 12

    4.2.1.1 Attributes of Airport class 122 4.2.1.1.1 takeoffQueue 122 4.2.1.1.2 landingQueue 122

    4.2.1.2 Functions available in Airport Class 122 4.2.1.2.1 Averager ( ) 122 4.2.1.2.2 newArrival ( ) 122

    4.2.2 Airplane 122 4.2.2.1 Functions available in Airplane Class 12

    4.2.2.2.1 takeoff ( ) 12 4.2.2.2.2 land ( ) 133 4.2.2.2.3 crash ( ) 133

    4.2.3 Runway 133 4.2.3.1 Functions available in Runway Class 133

    4.2.3.1.1 isBusy ( ) 133 4.2.3.1.2 moveToRunway ( ) 133 4.2.3.1.3 timeleftonRunway ( ) 133

    4.2.4 Queue 133 4.2.4.1 Functions available in Queue class 133

    4.2.4.1.1 size ( ) 133 4.2.4.1.2 Capacity ( ) 133 4.2.4.1.3 insert ( ) 144 4.2.4.1.4 front ( ) 144

    4.2.5 Averager 144 4.2.5.1 Attributes of Averager Class 144

    4.2.5.1.1 count 144 4.2.5.1.2 sum 144

    4.2.5.1 Functions available in Averager Class 144 4.2.5.2.1 next_number ( ) 144 4.2.5.2.2 average ( ) 144

    4.2.6 NextArrival 144 4.2.6.1 Attributes of NextArrival Class 144

    4.2.6.1.1 aver_wait_time 144 4.2.6.2 Functions available in NextArrival Class 144

    4.2.6.2.1 wait_time ( ) 144

    Software Design Specification (10/26/01) Page 4

  • Software Design Specification 5. FIGURES 155

    5.1 Use Cases (Figure 2) 155

    5.2 Successful Takeoff 166 5.2.1 Successful Takeoff Sequence (Figure 3) 166 5.2.2 Successful Takeoff Collaboration (Figure 4) 177

    5.3 Successful Landing 188 5.3.1 Successful Landing Sequence (Figure 5) 188 5.3.2 Successful Landing Collaboration (Figure 6) 199

    5.4 Runway Busy 20 5.4.1 Runway Busy Sequence (Figure 7) 20 5.4.2 Runway Busy Collaboration (Figure 8) 211

    5.5 Crash 222 5.5.1 Crash Sequence (Figure 9) 222 5.5.2 Crash Collaboration (Figure 10) 233

    5.6 Print Report 244 5.6.1 Print Report Sequence (Figure 11) 244 5.6.3 Print Report Collaboration (Figure 12) 255

    6. REFERENCES 266

    6.1 References 266

    Software Design Specification (10/26/01) Page 5

  • Software Design Specification

    1. INTRODUCTION

    1.1 Purpose This document will define the design of the one runway simulator. It contains specific information about the expected input, output, classes, and functions. The interaction between the classes to meet the desired requirements are outlined in detailed figures at the end of the document.

    .

    1.2 Scope This Design Specification is to be used by Software Engineering and Software Quality Engineering as a definition of the design to be used to implement the One Runway Airport/Air Traffic Simulator

    1.3 Objective The One Runway Airport/Air Traffic Controller Simulation System is established to simulate a one runway airport that supports takeoff and landings of airplane. Its purpose is to establish the average time between runway activities that the one runway airport can support. It records the number of planes processed and their average time spent in waiting. It also records planes whose time spent in the queue exceeds the maximum fuel allotment

    Software Design Specification (10/26/01) Page 6

  • Software Design Specification

    2. SYSTEM OVERVIEW

    .

    2.1 Product Perspective This product simulates a one-runway airport that supports takeoff and landings of planes. It records the number of planes processed and their average time spent in waiting. It also records planes whose time spent in queue exceeded the maximum fuel allotment. Depending on the values that are used by the simulator operator, it can be determined what is the optimal way to utilize a one runway airport to achieve maximum takeoffs/landings without causing any crashes. .

    2.1.1 Design Method

    The design of this product utilizes an object-oriented approach.

    2.1.1 User Interfaces

    The user of this software product will be interfacing with the simulation system to help predict the behavior an actual air traffic control system. The product allows the user to get familiar with the software without actually having the responsibility of controlling the air traffic

    2.1.2 Hardware Interfaces

    This simulation software can run on most SPARC stations.

    2.1.3 Software Interfaces

    This simulator will execute on a Solaris UNIX platform running GNU C++ compiler.

    .

    2.1.4 Memory Constraints

    This program takes up about 7 kb of memory. The output reports are modest in size and take up about 7 kb.

    2.1.5 Operations

    The operator will be required to enter the parameters for the simulation run from an operator console.

    2.1.6 Site Adaptation Requirements

    This software is intended to execute on any UNIX platform with no modifications needed

    to support different sites.

    Software Design Specification (10/26/01) Page 7

  • Software Design Specification

    2.2 Product Functions Airplane Arriving-This function calculates the time of arrival and clears the airplane for landing.

    Wait in Queue-This function calculates the priority and statuses of the airplanes accordingly.

    Arrive on Runway-This function confirms arrival and departure. It calculates average time.

    Airplane Departing-This function calculates the time of arrival and clears the airplane for departure.

    2.3 User Characteristics The general characteristics of the intended users, include

    educational level bachelor of science experience- air traffic control knowledge

    2.4 Constraints This application can only run on a system that supports GNU C++ compiler.

    2.5 Assumptions and Dependencies This simulation is only intended to report on takeoff and landing patterns.

    2.6 Apportioning of Requirements There are requirements apportioned to later releases of the simulator.

    Software Design Specification (10/26/01) Page 8

  • Software Design Specification

    3. DESIGN CONSIDERATIONS

    3.1 Operating Environment The One Runway Airport/Air Traffic Controller Simulation is intended to be operated in a Solaris Unix environment.

    3.2 Fault Tolerant Design Application errors will be handled by common fault detection services

    ( e.g. common C++ exception handling, and error checking on task processing).

    3.3 Design Conventions The OneRunway software design uses the Object Oriented methodology

    described in "The Unified Software Development Process" by Ivar Jacobsen, Grady Booch and James Rumbaugh. (Booch, 1999)

    3.4 Architectural Design The software capabilities and requirements specified in the One Runway Airport/Air

    Traffic Controller Simulation Software Requirements Specification are transformed into programs that will execute on a Solaris. Software items are partitioned into classes and packages using Object Oriented methodology to maximize encapsulation and minimize interfaces. Packages are then built (compiled and linked) into executable programs.

    3.5 User Interface: The user or simulator operator interfaces via a text input screen. The user is prompted for several values in order to perform the calculations.

    3.5.1 Expected Input:

    The user is prompted to enter values for the following variables: Time in minutes to land Time in minutes to takeoff Average time between arrivals Average time between departures

    Maximum time in arrival queue (indicates how long before all fuel consumed) Number of minutes in simulation

    Software Design Specification (10/26/01) Page 9

  • Software Design Specification 3.5.2 Output:

    The user receives a report from the simulator indicating how many planes were able to depart and how many were able to arrive in the simulation time. They also receive data indicating the average time a plane waited to land/takeoff, as well as how many planes crashed, or ran out of fuel while waiting.

    Software Design Specification (10/26/01) Page 10

  • Software Design Specification

    4. SYSTEM ARCHITECTURE

    4.1 View of Product Classes (Figure 1)

    Runway

    isBusy()moveToRunway()timeLeftOnRunway()

    (from Use Case Realization - )

    Averager

    countsum

    next_number()average()

    (from Use Case Realization - )

    AirporttakeoffQueuelandingQueue

    averager()newArrival()

    11

    SimulationControl(from Use Case Realization - )

    Airplane

    takeoff()land()crash()

    nn

    Queue

    size()Capacity()insert()front()

    (from Use Case Realization - )

    NextArrival

    aver_wait_time

    wait_time()

    (from Use Case Realization - )

    Figure 1- One Runway View of Participating Class Diagram

    This figure shows the overall design of the system with outlining the individual classes and their relation to each other.

    Software Design Specification (10/26/01) Page 11

  • Software Design Specification

    4.2 Individual Classes of System

    4.2.1 Airport:

    The airport class is where the data about the planes that are waiting to take off and land is kept. This class utilizes two queues as the data structure to hold the planes, one for takeoffs waiting and another for planes waiting to land.

    4.2.1.1 Attributes of Airport class

    4.2.1.1.1 TAKEOFFQUEUE The takeoffQueue holds the data that for airplanes that are waiting to use the runway to takeoff.

    4.2.1.1.2 LANDINGQUEUE The landingQueue holds the data for the planes that are still in the air waiting to use the runway to land.

    4.2.1.2 Functions available in Airport Class

    4.2.1.2.1 AVERAGER ( ) Function: performs calculations on data that are used in the output report. Precondition: All values needed for calculation are accessible to this function. Postcondition: Necessary calculations are complete. 4.2.1.2.2 NEWARRIVAL ( ) Function: adds new plane to either takeoffQueue or landingQueue.

    Precondition: takeoff and landing queues have been instantiated, and there is room on the queue for another plane.

    Postcondition: New plane is on the queue.

    4.2.2 Airplane

    The airplane class simulates airplanes arriving at the airport and airplanes, which are ready for departure. A random number generator is utilized to randomly add planes for takeoff and add planes that are requesting to land.

    4.2.2.1 Functions available in Airplane Class 4.2.2.2.1 TAKEOFF ( ) Function: Generate a plane requesting a takeoff. Precondition: The average arrival time is greater than one minute.

    Postcondition: The next plane requesting takeoff has been initialized and q (average time between takeoffs) is at least 1 minute.

    Software Design Specification (10/26/01) Page 12

  • Software Design Specification 4.2.2.2.2 LAND ( ) Function: Generate plane requesting to land. Precondition: The average arrival time is greater than one minute.

    Postcondition: The next plane requesting to land has been initialized and q (average time between landings) is at least 1 minute.

    4.2.2.2.3 CRASH ( )

    Function: Simulate a crash of plane due to it being in the queue too long and running out of fuel.

    Precondition: Planes are in landing queue for greater than specified period. Postcondition: Plane in landing queue has been removed from queue and number Plane crashing has been increased.

    4.2.3 Runway

    4.2.3.1 Functions available in Runway Class 4.2.3.1.1 ISBUSY ( )

    Function: Indicates to calling function if runway is busy and cant accept a new takeoff or landing. Precondition: Plane has requested to land or takeoff and isBusy is true. Postcondition: Plane remains in queue. IsBusy remains true.

    4.2.3.1.2 MOVETORUNWAY ( ) Function: Removes plane from queue and begins to reinitializes time counter that when takeoff or landing is complete. Precondition: The runway is not busy.

    Postcondition: The runway has begun to simulate one takeoff/landing cycle. At this point isBusy is set to true to indicate that no other planes are allowed on the runway.

    4.2.3.1.3 TIMELEFTONRUNWAY ( ) Function: Keeps track of how much time is left of simulated takeoff/landing. Precondition: isBusy is true indicating runway is in use. Postcondition: Simulation of 1 minute has occurred and isBusy is set to false.

    4.2.4 Queue

    This class is utilized by the airport class to instantiate a takeoffQueue and landingQueue.

    4.2.4.1 Functions available in Queue class 4.2.4.1.1 SIZE ( ) Function: Instantiates a queue of size n. Precondition: Object of type queue class has been created. Postcondition: New queue of size n has been created. 4.2.4.1.2 CAPACITY ( ) Function: Indicates number of items currently in queue.

    Precondition: Item of queue class has been instantiated. Software Design Specification (10/26/01) Page 13

  • Software Design Specification

    Postcondition: Numbers of items in queue returned.

    4.2.4.1.3 INSERT ( ) Function: Adds new item at end of queue. Precondition: queue is not full. Postcondition: there is a new item at end of queue. 4.2.4.1.4 FRONT ( ) Function: Returns value of item at front of queue. Precondition: Queue is not empty. Postcondition: Value of front item has been returned.

    4.2.5 Averager

    4.2.5.1 Attributes of Averager Class 4.2.5.1.1 COUNT Total number of items sent to averager. 4.2.5.1.2 SUM Total sum of all items sent to averager. 4.2.5.1 Functions available in Averager Class 4.2.5.2.1 NEXT_NUMBER ( ) Function: Accepts next number to be summed for the average calculation. Precondition: Averager is ready to accept numbers. Postcondition: Next number has been added to sum and count is incremented by one. 4.2.5.2.2 AVERAGE ( ) Function: Uses sum and count to calculate average of all numbers. Precondition: Count is greater than zero. Postcondition: Average of summed numbers is returned.

    4.2.6 NextArrival

    4.2.6.1 Attributes of NextArrival Class 4.2.6.1.1 AVER_WAIT_TIME

    4.2.6.2 Functions available in NextArrival Class 4.2.6.2.1 WAIT_TIME ( ) Function: Indicates how long until next arrival. Postcondition: Amount of time until next arrival is returned.

    Software Design Specification (10/26/01) Page 14

  • Software Design Specification

    5. FIGURES

    5.1 Use Cases (Figure 2)

    Runway Test Report

    (from Actors)

    Statistics

    (f rom Use Cases)Crashes

    (f rom Use Cases)

    Landings

    (f rom U se Cases )Takeoffs

    (f rom Use Cases)

    Si mulat ion Op erator

    (from Actors)

    TimeController

    (f rom Actors)

    gathersacknowledgescontrols

    controls

    Test Case S tartup

    (f rom Use Cases)

    Initializesact ivate

    Figure 2- One Runway Use Cases

    Software Design Specification (10/26/01) Page 15

  • Software Design Specification

    5.2 Successful Takeoff

    5.2.1 Successful Takeoff Sequence (Figure 3)

    : TimeController

    recordTakeoff : Averager

    : TimeController

    : RunwayTakeoffRequest : NextArrival

    update time passing

    record stats

    checks

    TakeoffQ : Queue

    adds to

    not busy

    remove from queue

    takeoff

    Figure 3- Successful Takeoff Sequence

    Software Design Specification (10/26/01) Page 16

  • Software Design Specification 5.2.2 Successful Takeoff Collaboration (Figure 4)

    : TimeController

    TakeoffRequest : NextArrival

    recordTakeoff : Averager

    : Tim eControl ler

    : RunwayTakeoffQ :

    Queue

    1: checks

    2: adds to

    7: update time pas sing

    6: record stats

    3: not busy4: takeoff

    5: remove from queue

    Figure 4- Successful Takeoff Collaboration

    Software Design Specification (10/26/01) Page 17

  • Software Design Specification

    5.3 Successful Landing

    5.3.1 Successful Landing Sequence (Figure 5)

    : TimeControllerLandingReques

    t : NextArrivalLandingQ :

    QueueThe : Runway update time :

    Averager : TimeController

    checks for

    adds to

    is_busy

    LandingQ : Queue

    land

    remove

    record stats

    update time passing

    Figure 5- Successful Landing Sequence

    Software Design Specification (10/26/01) Page 18

  • Software Design Specification 5.3.2 Successful Landing Collaboration (Figure 6)

    : TimeController

    LandingRequest : NextArrival

    LandingQ : Queue

    The : Runway

    update time : Averager

    : TimeController

    1: checks for 2: adds to

    3: is_busy4: land

    5: remove

    6: record stats 7: update time passing

    Figure 6 - Successful Landing Collaboration

    Software Design Specification (10/26/01) Page 19

  • Software Design Specification

    5.4 Runway Busy

    5.4.1 Runway Busy Sequence (Figure 7)

    TakeoffQ: Queue : Queue : TimeController

    : TimeController

    TakeoffRequest : NextArrival

    checks

    adds to

    The : Runway

    busy

    update time passing

    Figure 7 - Runway Busy Sequence

    Software Design Specification (10/26/01) Page 20

  • Software Design Specification 5.4.2 Runway Busy Collaboration (Figure 8)

    TakeoffQ: Queue : Queue

    : TimeController : TimeControl ler

    TakeoffRequest : NextArrival

    The : Runway

    3: busy1: checks

    2: adds to4: update time passing

    Figure 8- Runway Busy Collaboration

    Software Design Specification (10/26/01) Page 21

  • Software Design Specification

    5.5 Crash

    5.5.1 Crash Sequence (Figure 9)

    : TimeControllerLandingQ :

    Queue : Averager : TimeController

    next

    fuel exceeded

    record crash

    increment time

    Figure 9 - Crash Sequence

    Software Design Specification (10/26/01) Page 22

  • Software Design Specification

    5.5.2 Crash Collaboration (Figure 10)

    : TimeController

    LandingQ : Queue

    : Averager

    : TimeController

    2: fuel exceeded

    1: next

    3: record crash

    4: increment time

    Figure 10 - Crash Collaboration

    Software Design Specification (10/26/01) Page 23

  • Software Design Specification

    5.6 Print Report

    5.6.1 Print Report Sequence (Figure 11)

    : TimeController : Averager : Runway Test

    Report

    The : SimulationControl

    start

    end simulation

    collate data

    print

    Figure 11 - Print Report Sequence

    Software Design Specification (10/26/01) Page 24

  • Software Design Specification

    5.6.3 Print Report Collaboration (Figure 12)

    : TimeController

    : Averager

    : Runway Test Report

    The : SimulationControl

    2: end simulation

    1: start

    4: print

    3: collate data

    Figure 12 - Print Report Collaboration

    Software Design Specification (10/26/01) Page 25

  • Software Design Specification

    6. REFERENCES

    6.1 References Appleton, Brad . A Software Design Specification Template. N.d. . Booch, Grady, Ivar Jacobsen, and James Rumbaugh. The Unified Software Development Process (The Addison-Wesley Object Technology Series). 1st. Ed. New York: Addison Wesley, 1999..

    GCC Home Page - GNU Project . Free Software Foundation. N.d. . Sommerville, Ian. Software Engineering. 6th. Ed. New York: Addison Wesley, 2001.

    Software Design Specification (10/26/01) Page 26

    Revision ChartContents1. Introduction1.1 Purpose1.2 Scope1.3 Objective

    2. System Overview2.1 Product Perspective2.1.1 Design Method2.1.1 User Interfaces2.1.2 Hardware Interfaces2.1.3 Software Interfaces2.1.4 Memory Constraints2.1.5 Operations2.1.6 Site Adaptation Requirements

    2.2 Product Functions2.3 User Characteristics2.4 Constraints2.5 Assumptions and Dependencies2.6 Apportioning of Requirements

    3. Design Considerations3.1 Operating Environment3.2 Fault Tolerant Design3.3 Design Conventions3.4 Architectural Design3.5 User Interface:3.5.1 Expected Input:3.5.2 Output:

    4. System Architecture4.1 View of Product Classes (Figure 1)4.2 Individual Classes of System4.2.1 Airport:4.2.1.1 Attributes of Airport class4.2.1.1.1 takeoffQueue4.2.1.1.2 landingQueue

    4.2.1.2 Functions available in Airport Class4.2.1.2.1 Averager ( )4.2.1.2.2 newArrival ( )

    4.2.2 Airplane4.2.2.1 Functions available in Airplane Class4.2.2.2.1 takeoff ( )4.2.2.2.2 land ( )4.2.2.2.3 crash ( )

    4.2.3 Runway4.2.3.1 Functions available in Runway Class4.2.3.1.1 isBusy ( )4.2.3.1.2 moveToRunway ( )4.2.3.1.3 timeleftonRunway ( )

    4.2.4 Queue4.2.4.1 Functions available in Queue class4.2.4.1.1 size ( )4.2.4.1.2 Capacity ( )4.2.4.1.3 insert ( )4.2.4.1.4 front ( )

    4.2.5 Averager4.2.5.1 Attributes of Averager Class4.2.5.1.1 count4.2.5.1.2 sum

    4.2.5.1 Functions available in Averager Class4.2.5.2.1 next_number ( )4.2.5.2.2 average ( )

    4.2.6 NextArrival4.2.6.1 Attributes of NextArrival Class4.2.6.1.1 aver_wait_time

    4.2.6.2 Functions available in NextArrival Class4.2.6.2.1 wait_time ( )

    5. Figures5.1 Use Cases (Figure 2)5.2 Successful Takeoff5.2.1 Successful Takeoff Sequence (Figure 3)5.2.2 Successful Takeoff Collaboration (Figure 4)

    5.3 Successful Landing5.3.1 Successful Landing Sequence (Figure 5)5.3.2 Successful Landing Collaboration (Figure 6)

    5.4 Runway Busy5.4.1 Runway Busy Sequence (Figure 7)5.4.2 Runway Busy Collaboration (Figure 8)

    5.5 Crash5.5.1 Crash Sequence (Figure 9)5.5.2 Crash Collaboration (Figure 10)

    5.6 Print Report5.6.1 Print Report Sequence (Figure 11)5.6.3 Print Report Collaboration (Figure 12)

    6. References6.1 References