Object-Oriented Discrete-Event Simulation with Java: A Practical Introduction / Edition 1

Object-Oriented Discrete-Event Simulation with Java: A Practical Introduction / Edition 1

by Jose M. Garrido
     
 

ISBN-10: 0306466880

ISBN-13: 9780306466885

Pub. Date: 10/31/2001

Publisher: Springer US

This reference for researchers and students with a good knowledge of the Java programming language discusses the development of object- oriented discrete-event simulation models using Java as the implementation language and UML as the modeling language. For every topic discussed, a complete case study is presented and explained with the corresponding model implemented

Overview

This reference for researchers and students with a good knowledge of the Java programming language discusses the development of object- oriented discrete-event simulation models using Java as the implementation language and UML as the modeling language. For every topic discussed, a complete case study is presented and explained with the corresponding model implemented in Java. The CD-ROM contains the simulation models explained in the text. A PC with installed Java Software Development Kit from Sun Microsystems is required to run the simulations. Annotation c. Book News, Inc., Portland, OR (booknews.com)

Product Details

ISBN-13:
9780306466885
Publisher:
Springer US
Publication date:
10/31/2001
Series:
Series in Computer Science
Edition description:
2001
Pages:
256
Product dimensions:
9.21(w) x 6.14(h) x 0.69(d)

Table of Contents

1Introduction to Simulation1
1.1Introduction1
1.2Simulation with Java1
1.2.1Overview1
1.2.2Implementing Simulation Models with Java and Psim-J3
1.3Systems, Models, and Modeling4
1.4Categories of Models5
1.5Conceptual Models5
1.6Simulation Models6
1.6.1General Concepts6
1.6.2Designing Simulation Models8
1.6.3Implementing Simulation Models9
1.7Simulation Results9
1.8Types of Simulation Models10
1.9Phases in Model Development11
1.10Performance Measures and Performance Modeling13
1.10.1Performance Metrics13
1.10.2Workload14
1.10.3Additional Performance Concepts14
1.11Summary15
1.12Exercises15
2Objects, Classes and UML17
2.1Introduction17
2.2Object-Oriented Modeling17
2.2.1Conceptual Model17
2.2.2Modeling Objects18
2.2.3Encapsulation19
2.2.4Interfaces19
2.2.5Objects and Classes19
2.3Using UML For Object-Oriented Modeling20
2.4Use Case Diagrams21
2.5Static Modeling Diagrams22
2.5.1Class Diagrams22
2.5.2Associations23
2.5.3Multiplicity of the Association24
2.5.4Aggregation24
2.5.5Generalization and Inheritance25
2.5.5.1Class Inheritance25
2.5.5.2Generalization25
2.6Dynamic Modeling Diagrams26
2.6.1Collaboration Diagrams26
2.6.2Sequence Diagrams27
2.6.3State Diagrams27
2.7Concurrency28
2.8Summary29
2.9Exercises30
3Relevant Aspects Of The Java Programming Language31
3.1Introduction31
3.2Types Of Java Programs31
3.3Basic Object-Oriented Concepts Of Java32
3.3.1Java Classes32
3.3.2Java Packages33
3.3.3Constructors33
3.4A Simple Application With Two Classes34
3.5Dealing With Global Variables37
3.5.1Need For Global Variables37
3.5.2Global Constants37
3.6Arrays and Collection Classes38
3.6.1Collection Classes40
3.7Inheritance40
3.7.1Base and derived classes40
3.7.2Constructors of the Subclasses42
3.8Abstract Classes42
3.9Polymorphism43
3.10Classes and Interfaces43
3.11Exceptions44
3.12Java Threads45
3.12.1Using Threads45
3.12.2Inheriting the Thread Class46
3.12.3Other Basic Thread Methods47
3.12.4Thread Suspending Itself48
3.12.5Implementing the Runnable Interface48
3.12.6Interrupting a Thread Object49
3.12.7Thread Priorities51
3.12.8Simple Thread Synchronization51
3.12.9Wait/Notify Mechanism in Threads52
3.13Summary53
3.14Exercises53
4Discrete-Event Simulation55
4.1Introduction55
4.2Modeling System Behavior55
4.3Implementation of Discrete-Event Simulation56
4.4The Time Dimension57
4.5World Views For Discrete-Event Simulation58
4.5.1The Activity World View59
4.5.2The Event World View59
4.5.3The Process Interaction World View59
4.6Implementing The Process Worldview60
4.7Object-Oriented Simulation62
4.8Software For Discrete-Event Simulation63
4.9Discrete Event Simulation Packages64
4.9.1SimPack and Sim++64
4.9.2CSIM64
4.9.3ModSim64
4.9.4GPSS65
4.9.5Simula65
4.9.6Simscript65
4.9.7GASP66
4.9.8SLAM66
4.9.9Task Library66
4.9.10The Simulation Package and Language, Psim and PsimL66
4.9.11Other Simulation Packages67
4.10Simulation Packages in Java67
4.10.1Java version of Psim67
4.10.2Other Sources on Simulation Languages, Conferences, and Courses67
4.11Summary68
4.12Exercises69
5Simulation With The Process Worldview71
5.1Introduction71
5.2Processes and Simulation Models71
5.2.1Entities and Objects71
5.2.2Single-Server Models72
5.3A Model For The Car-Wash System73
5.3.1The Conceptual Model73
5.3.2The Car-Wash Deterministic Model75
5.3.3The Car-Wash Stochastic Model80
5.4Performance and Workload Characterization84
5.5Implementing The Simulation Model85
5.5.1Using Java And Psim-J85
5.5.2Java Implementation Of The Car-wash Model87
5.6Graphical User Interfaces93
5.7Summary93
5.8Exercises95
6Models of Multi-Server Systems97
6.1Introduction97
6.2Queuing Models97
6.3Multi-Server Queuing Models98
6.4The Multi-Server Model of the Car-Wash System99
6.4.1Description Of The Server Process100
6.4.2Description Of The Customer Process100
6.4.3Description Of The Arrivals Process101
6.4.4Simulation Results102
6.5Java Implementation of the Multi-Server Model105
6.6Multi-Server Models With Multiple Queues108
6.6.1Description Of The Server Process108
6.6.2Description of the Customer Process109
6.7Queuing Networks109
6.8Summary110
6.9Exercises111
7Multi-Class Queuing Models113
7.1Introduction113
7.2Priorities With Single-Server Models114
7.2.1Description of the Server Process114
7.2.2Description of the Arrivals Process115
7.2.3Description of the Car Process115
7.2.4Results from the Simulation116
7.2.5Implementation Of The Car-Wash Model120
7.3Multi-Server Models with Priorities123
7.4Summary123
7.5Exercises124
8Resources127
8.1Introduction127
8.2Resource Manipulation127
8.3Software Implementation of Resources128
8.4Model Implementation in Psim-J130
8.5A Model of a Busy Warehouse131
8.6Allocating Resources with Priorities136
8.7Deadlock136
8.8Summary137
8.9Exercises138
9Basic Process Cooperation139
9.1Introduction139
9.2Producer-Consumer Cooperation139
9.3Producer and Consumer Objects140
9.4Implementing Process Cooperation141
9.4.1Producer Implementation141
9.4.2Consumer Implementation142
9.5Model Of A Machine Parts-Replacement System142
9.6Summary147
9.7Exercises147
10Synchronous Cooperation149
10.1Introduction149
10.2Master-Slave Synchronization149
10.2.1General Synchronous Cooperation149
10.2.2Synchronous Communication150
10.3Implementing Process Cooperation in Java151
10.4Model With Synchronous Communication152
10.5Cooperation with Several Slaves156
10.6Summary157
10.7Questions157
11Conditional Waiting159
11.1Introduction159
11.2Modeling With Conditional Synchronization159
11.3Implementation with Java and Psim-J160
11.3.1General Approach160
11.3.2Implementing Simulation Models161
11.4A Model Of A Port System162
11.5Summary166
11.6Exercises166
12Interrupts167
12.1Introduction167
12.2Basic Notion of Interruptions167
12.3Interrupt Handling168
12.4Interrupts using Java and Psim-J169
12.5The Parts-Replacement Model With Interrupts171
12.6Car-Wash Model with Interrupts175
12.7Summary181
12.8Exercises181
13More Simulation Models183
13.1Introduction183
13.2Model of a Simple Client-Server System183
13.3Model of an Ethernet Client-Server System191
13.3.1The Ethernet Protocol191
13.3.2Network Performance192
13.3.3Model Implementation192
13.4Summary196
13.5Exercises196
14Basic Probability Theory and Random Numbers197
14.1Introduction197
14.2Experiments and Outcomes197
14.3Long-term Behavior of Systems198
14.4Overview of Set Theory198
14.5Probabilities199
14.6Random Variable and Distribution Functions199
14.7Expected Values, Variance and Covariance200
14.8The Geometric distribution201
14.9The Binomial Distribution202
14.10The Exponential Distribution203
14.11The Poisson Distribution203
14.12The Uniform Distribution204
14.13The Normal Distribution204
14.14Stochastic Processes204
14.15Random Numbers in Simulation Models205
14.16Markov Models206
14.16.1State Dependencies206
14.16.2Markov Chains207
14.17Summary Statistics208
14.18Comparing Sample Data209
14.19Summary210
14.20Questions211
15Overview of Model Verification and Validation213
15.1Introduction213
15.2Verification Techniques For Simulation Models213
15.2.1Object-Oriented Modeling and Programming213
15.2.2Using Traces214
15.2.3Graphical Outputs214
15.2.4Testing for Verification214
15.3Validation Techniques For Simulation Models215
15.3.1Importance215
15.3.2General Validation Approach215
15.3.3Black Box Validation216
15.3.4White Box Validation216
15.4Summary217
Appendix AA Short Manual For Psim-J219
A.1Introduction to The Psim-J Library219
A.2List Of Classes220
A.3Defining Processes in a Simulation Model221
A.4The Time Dimension222
A.5Other Process Methods222
A.6Starting and Running a Simulation226
A.7Priority of a Process226
A.8Process States227
A.9Scheduling Processes228
A.10Handling Queues228
A.10.1General Description228
A.10.2Methods in Class Squeue228
A.10.3Members of Class Pqueue231
A.11Classes for Resources235
A.11.1General Description235
A.11.2Class Res235
A.11.3Relevant Features in the Bin Class236
A.12Class Waitq238
A.13The Condq Class240
A.14Random Number Generation in Psim-J241
A.14.1Class Randint242
A.14.2Class Erand243
A.14.3Class Normal244
A.14.4Class Poisson245
A.14.5Class Urand246
Appendix BBibliography247
About the Author251
Index253

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >