100% found this document useful (2 votes)
18 views135 pages

Object Oriented Software Development Using Java Principles Patterns and Frameworks 2nd Edition Xiaoping Jia. Newest Edition 2025

The document is about the book 'Object-Oriented Software Development Using Java: Principles, Patterns, and Frameworks' by Xiaoping Jia, which is available for download in various formats. It covers key concepts in object-oriented programming, Java language fundamentals, design patterns, and application frameworks. The book is well-reviewed and includes practical examples and exercises for learners.

Uploaded by

traceesati2017
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
18 views135 pages

Object Oriented Software Development Using Java Principles Patterns and Frameworks 2nd Edition Xiaoping Jia. Newest Edition 2025

The document is about the book 'Object-Oriented Software Development Using Java: Principles, Patterns, and Frameworks' by Xiaoping Jia, which is available for download in various formats. It covers key concepts in object-oriented programming, Java language fundamentals, design patterns, and application frameworks. The book is well-reviewed and includes practical examples and exercises for learners.

Uploaded by

traceesati2017
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 135

Object oriented software development using Java

principles patterns and frameworks 2nd Edition


Xiaoping Jia. download full chapters

https://ebookultra.com/download/object-oriented-software-
development-using-java-principles-patterns-and-frameworks-2nd-
edition-xiaoping-jia/

★★★★★
4.7 out of 5.0 (78 reviews )

Get PDF Instantly

ebookultra.com
Object oriented software development using Java principles
patterns and frameworks 2nd Edition Xiaoping Jia.

EBOOK

Available Formats

■ PDF eBook Study Guide Ebook

EXCLUSIVE 2025 ACADEMIC EDITION – LIMITED RELEASE

Available Instantly Access Library


We believe these products will be a great fit for you. Click
the link to download now, or visit ebookultra.com
to discover even more!

Object Oriented Software Engineering Using UML Patterns


and Java 2nd Edition Bernd Bruegge

https://ebookultra.com/download/object-oriented-software-engineering-
using-uml-patterns-and-java-2nd-edition-bernd-bruegge/

Component Oriented Development and Assembly Paradigm


Principles and Practice using Java 1st Edition Piram
Manickam
https://ebookultra.com/download/component-oriented-development-and-
assembly-paradigm-principles-and-practice-using-java-1st-edition-
piram-manickam/

Foundations of Object Oriented Programming Using NET 2 0


Patterns 1st Edition Christian Gross (Auth.)

https://ebookultra.com/download/foundations-of-object-oriented-
programming-using-net-2-0-patterns-1st-edition-christian-gross-auth/

Object Oriented Software Engineering 7th Edition Stephen


Schach

https://ebookultra.com/download/object-oriented-software-
engineering-7th-edition-stephen-schach/
Object Oriented Design with UML and Java 1st Edition
Kenneth Barclay

https://ebookultra.com/download/object-oriented-design-with-uml-and-
java-1st-edition-kenneth-barclay/

Java the UML way integrating object oriented design and


programming Else Lervik

https://ebookultra.com/download/java-the-uml-way-integrating-object-
oriented-design-and-programming-else-lervik/

Applying UML and Patterns An Introduction To Object


Oriented Programming 2Ed Edition Larmen

https://ebookultra.com/download/applying-uml-and-patterns-an-
introduction-to-object-oriented-programming-2ed-edition-larmen/

Scientific Software Design The Object Oriented Way 1st


Edition Damian Rouson

https://ebookultra.com/download/scientific-software-design-the-object-
oriented-way-1st-edition-damian-rouson/

Design patterns explained a new perspective on object


oriented design 2. ed Edition Shalloway

https://ebookultra.com/download/design-patterns-explained-a-new-
perspective-on-object-oriented-design-2-ed-edition-shalloway/
Obje_ct-O_rie_11te____ __._eRI_NcLeLEs__ _ _

Software Development PATTERNS, AND


U_sjng_Jaya:_ ME_W_QRJ{s_ _

Xiaoping Jia
DePaul University

~
.
Addison
WPsl<•y

Uo1Jto11 San Francisco New York


London Toronto Sydney Tokyo Singapore Madrid
MexJco City Munich Purlll Cnpc Town Hong Kong Montreal
Senior Acquisitions Editor Maite Suarez-Rivas
Project Editor Katherine Harutunian
Senior Production Supervisor Juliet Silveri
Production Services P. M. Gordon Associates, Inc.
Composition and Text Illustration Windfall Software, using ZzTe)(
Cover Design Supervisor Gina Hagen Kolenda
Cover Designer Jean Wilcox
Executive Marketing Manager Michael Hirsch
Print Buyer Caroline Fell

Cover image © 2002 by PhotoDisc.

Acces the latest information about Addison-Wesley titles from our World Wide Web site:
www.aw.com/cs

Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in this book, and Addison-Wesley
was aware of a trademark claim, the designations have been printed in initial caps or all caps.

Toe programs and applications presented in this book have been included for their instructional
value. They have been tested with care, but are not guaranteed for any particular purpose. The
publisher does not offer any warranties or representations, nor does it accept any liabilities
with respect to the programs or applications.

Credits: Figure 1.2: Kruchten, Rational Unified Process 2nd ed., Fig. 2.2 (p. 23), © 2000
Addi.son Wesley Longman Inc. Reprinted by permission of Pearson Education, Inc. Figure
3.1: Riggs et al, Programming Wireless Devices w/Java 2 Platform, Micro Edition, Fig. 2.1
(p. 8), © 2001 Sun Microsystems Inc. Reprinted by permission of Pearson Education, Inc.

Library of Congress Cataloging-in-Publication Data


Jia, Xiaoping.
Object-oriented software development using Java : principles, patterns, and frameworks
/ Xiaoping Jia-2nd ed.
p. cm.
lnclude-s bibliographical references and index.
lSB 0-201-73733-7
1. Object-oriented programming (Computer science) 2. Computer
softwar~Development. 3 . Java (Computer program language) I. Title.
QA76.64 J53 2003
005.13'3--0c21
2002032639

For information on obtaining permission for the use of material from this work, please submit
a wrinen request LO Pearson Education, Inc., Rights and Contracts Department, 75 Arlington
SL, Suite 300, Boston, MA 02116 or fax. your request to 617-848-7047.

Copyright © 2003 by Pearson Education, Inc.

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system,
or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording,
or otherwise, without the prior written permission of the publisher. Printed in the United States
of America.
2 3 4 5 6 7 8 9 10- HT-05 04 03
To Ai-Ling and Robin
B•,ZiiiiiH

Preface xv

CHAPTER 1 Object-Oriented Software Development 1


1.1 The Challenges of Software Development 2
1.2 An Engineering Perspective 4
1.2.1 Software Development Activities 4
1.2.2 Software Development Processes 5
1.2.3 Desirable Qualities of Software Systems 6
1.2.4 Is Software Development an Engineering Process? 8
1.3 Object Orientation 9
1.3.1 Modeling the Real World 9
1.3.2 Evolution of Programming Models 10
1.3.3 A Brief History 10
1.4 Iterative Development Processes 11
1.4.1 Object-Oriented Development Activities 12
1.4.2 Rational Unified Process 13
1.4.3 Extreme Programming 15
Chapter Summary 16
Further Readings 17
Exercises 18

CHAPTER 2 Object-Oriented Modeling Using UML


2.1 Principles and Concept 19
2.1.1 Object and Cla e 20
2.1 .2 Principle 26
2.2 Modeling Relation hip and Structure 29
2.2. l Inheritance 29
2.2.2 A ociation 32
2.2.3 Aggregation and Compo ition 34
2.2.4 Dependency 35
2.3 Modeling Dynanuc Behavior 36
viii • Contents

2.3.1 Sequence Diagram 36


2.3.2 State Diagram 37
2.4 Modeling Requirements with Use Cases 41
2.4.1 Tem1s and Concepts 41
2.4.2 Use Case Diagrams 42
2.5 Case Study: An E-Bookstore 44
2.5.1 Conceptualization 44
2.5.2 Use Cases 44
2.5.3 Object Models 46
Chapter Summary 51
Further Readings 52
Exercises 52

CHAPTER 3 Introduction to Java 55


3.1 An Overview of the Java 2 Platform 56
3.2 The Java Run-Time Architecture 59
3.2.1 Program Execution Models 60
3.2.2 Java Vrrtual Machine 61
3.3 Getting Started with Java 65
3.3. l A Simple Java Application 65
3.3.2 A Java Applet 67
Common Problems and Solutions 72
Chapter Summary 73
Further Readings 73
Exercises 74

CHAPTER 4 Elements of Java 75


4.1 Lexical Elements 76
4.1.1 Character Set 76
4.1.2 Identifiers 77
4.1.3 Primitive Types and Literals 77
4.1.4 Operators and Expressions 80
4.2 Variables and Types 87
4.2.J Variable Declarations 88
4.2.2 Type Compatibility and Conversion 88
4.2.3 Reference Types 89
4.2.4 Arrays 91
4.3 Statements 93
4.3.) Expres ion Statements 94
4.3.2 Statement Blocks 94
4.3.3 Local Variable Declarations 95
4.3.4 The return Statement 95
4.3.5 Selection Statements 96
Contents ■ ix

4.3.6 Loop Statements 96


4.3.7 The break and continue Statements 99
4.4 Class Declarations JO 1
4.4. l Syntax of Class Declarations 101
4.4.2 Creating and Initializing Objects 104
4.4.3 Accessing Fields and Methods I 06
4.4.4 Method Invocation and Parameter Passing 107
4.4.5 Class (Static) Fields and Methods 110
4.4.6 Object Reference this 114
4.4.7 Interfaces and Abstract Classes 117
4.4.8 Strings 118
4.4.9 Wrapper Classes 128
4.5 Packages 134
4.5.l Using Packages 135
4.5.2 Partitioning the Name Space 136
4.5.3 Packages and the Directory Structure 136
4.5.4 Organization of the Java Class Library 138
4.6 Exceptions 139
4.6.1 Sources of Exceptions 140
4.6.2 Hierarchy of Exceptions 140
4.6.3 Throwing Exceptions 143
4.6.4 Catching and Handling Exceptions 144
4.7 A Simple Animation Applet 148
Chapter Summary 155
Exercise 156
Project 157

CHAPTER 5 Classes and Inheritance 159


5.1 Overloading Methods and Corrtructor 159
5.2 Extending Cla e 163
5.2.1 Constructor· of Extended C la e 164
5.2.2 Subtype and Polymorphi m 165
5.2.3 Overriding Method 171
5.3 Extending and Implementing Interface 176
5.3. l Subtype RevLited 177
5.3.2 Single Ver u Multiple Inheritance 179
5.3.3 Name Colli ' ion among Interface 183
5.3.4 Marker Interfaces 184
5.4 Hidino0 Field · and Class Mel.hod · 14
5.5 Application - Animation Applets l 6
5.5. l Parameters of ppkts l 6
5.5.- An Idiom for Animation Applets 188
5.5.3 Double-Buffered Animation 193
5.5.4 Reading File · in Applet · 200
X ■ Contents

Common Problems and Solutions 202


Chapter Summary 202
Exercises 204
Projects 204

CHAPTER 6 From Building Blocks to Projects 207


6.1 Design and Implementation of Classes 207
6.1 .1 Public and Helper Classes 207
6.1.2 Class Members 209
6.1.3 Design Guidelines 209
6.1.4 Documenting the Source Code 214
6.2 Contracts and Invariants 216
6.2. l Contracts of Methods 216
6.2.2 Invaraints of Classes 222
6.2.3 Assertions 224
6.2.4 Design by Contract 226
6.3 The Canonical Form of Classes 227
6.3.1 No-Argument Constructor 228
6.3.2 Object Equality 228
6.3.3 Hash Code of Objects 230
6.3.4 Cloning Objects 231
63.5 String Representation of Objects 234
6.3.6 Serialization 234
6.4 Unit Testing 235
6.4.1 Simple Unit Testing 235
6.4.2 JUnit-A Unit-Testing Tool 239
6.4.3 Testing Coverage Criteria 241
6.5 Project Build 243
6.5.1 Ant-A Build Tool 243
Chapter Summary 246
Further Readings 247
Exercises 247

CHAPTER 7 Design by Abstraction 249


7.1 Design Patterns 249
7. l . l Design Pattern: Singleton 251
7.2 De igning Generic Components 252
7 .2.1 Refactoring 252
7 .2.2 Design Pattern: Template Method 266
7 .2.3 Generalizing 271
7.2.4 Design Pattern: Strategy 275
7.3 Abstract Coupling 276
7.3.1 Enumerating Elements 278
Contents • Xi

7.3.2 Design Pattern: Iterator 283


7.4 Design Case Study-Animation of Sorting Algorithms 284
7.4.l The Initial Implementation 285
7.4.2 Separating Algorithms 290
7.4.3 Design Pattern: Factory 296
7.4.4 Separating Display Strategies 296
Chapter Summary 302
Further Readings 304
Exercises 304
Project 304

CHAPTER 8 Object-Oriented Application Frameworks 305


8.1 Application Frameworks 305
8.1.1 Characteristics 306
8.1.2 Design Requirements 307
8.1.3 Specific Frameworks Considered 308
8.2 The Collections Framework 308
8.2.1 Abstract Collections 309
8.2.2 Interfaces of Collections 310
8.2.3 Implementations of Collections 315
8.2.4 Iterators of Collections 319
8.2.5 Ordering and Sorting 324
8.3 The Graphical User Interface Framework-AWT and Swing 333
8.3.1 The GUI Components 333
8.3.2 Design Pattern: Composite 336
8.3.3 Layout Managers 338
8.3.4 Handling Event 348
8.3.5 Frame and Dialogs 359
8.4 The Input/Output Framework 366
8.4.1 Byte Stream 367
8.4.2 Design Pattern: Decorator 380
8.4.3 Character Streams 382
8.4.4 Random Acces File 389
Chapter Summary 392
Further Reading 394
Exerci e 394
Projects 395

CHAPTER 9 Design Case Study: A Drawing Pad 397


9.1 Planning 97
9.2 Iteration l : A Simple Scribble Pad 398
9.2. l Th Scribbling Canvas and It Li tener 399
9.2.2 The Application 40-
Xii • Contents

9.3 Iteration 2: Menus, Options, and Files 403


9.3.l Strokes 403
9.3.2 The Scribble Canvas 405
9.3.3 The Canvas Listener 408
9.3.4 The Application 409
9.3.5 Choosing Colors 416
9.4 Iteration 3: Refactoring 421
9.4.l The Shapes 421
9.4.2 The Tools 424
9.4.3 Extending Components 428
9.5 Iteration 4: Adding Shapes and Tools 432
9.5.1 The Shapes 433
9.5.2 The Toolkit 436
9.5.3 Design Pattern: State 438
9.5.4 A Concrete Tool-TwoEndsTool 439
9.5.5 Extending Components 442
9.5.6 Design Pattern: Factory Method 447
9.6 Iteration 5: More Drawing Tools 448
9 .6.1 Filled Shapes 448
9.6.2 Drawing Filled Shapes 449
9.6.3 The Application 452
9.7 Iteration 6: The Text Tool 453
9.7.1 The Text Shape 454
9 .7 .2 The Keyboard Input Tool 455
9.7.3 The Font Option Menu 459
Chapter Summary 462
Further Readings 462
Project 463

CHAPTER 1O More Design Patterns 465


IO.I Type-Safe Enumeration Types 465
10.1.1 A Simple Maze Game 465
10.1 .2 Enumeration Types 466
I0.1.3 Unordered Ty~Safe Enumeration Idiom 468
10.1.4 Ordered Type-Safe Enumeration Idiom 469
10.2 Creational Design Patterns 470
J0.2.1 A Simple Design of the Maze Game 470
J0.2.2 Design Paltem.: Abstract Factory 484
10.2.3 Design Pattern: Factory Method 491
I0.2.4 Design Pattern; Prototype 495
10.2.5 Design Paltem: Builder 502
10.3 Behavioral Patterns 507
10.3.1 Design Pallern: Command 507
Contents ■ xiii

10.3.2 Supporting Undo 509


10.4 Structural Patterns 513
I 0.4.1 Design Pattern: Adapter 513
I0.4.2 Design Pattern: Composite 531
Chapter Summary 544
Further Readings 545

CHAPTER 11 Concurrent Programming


547
11.1 Threads 547
11.1.1 Creation of Threads 548
11.1.2 Controlling Threads 553
11.2 Thread Safety and Liveness 556
11.2.1 Synchronization 557
11.2.2 Cooperation Among Threads 564
11 .2.3 Liveness Failures 569
11.3 Design Case Study-Tic-Tac-Toe Game 571
11.3.1 The Game Board 572
11 .3.2 The Game 577
11.3.3 The Players 579
11.3.4 Idiom: Talcing Turns 582
Chapter Summary 583
Further Reading 584
Exercises 584
Projects 585

CHAPTER 12 Distributed Computing 587


12.1 Socket-Based Communication 588
12.1 .1 Server and Client Sockets 5 8
12.1 .2 Server and Client U ing Socket 590
12.1.3 De ign Ca e Study-Stock Quote I 600
12.2 Remote Method Invocation 61-+
12.2.1 The Architecture 614
12.2.2 U ing RMI 616
12.2.3 De ign Ca e Stud -Stock Quote lI 620
12.3 Java Databa e Connecti ity 628
12.4 Common Object Reque, t Broker Archite ture 640
Chapter Summary 641
Further Reading, 642
Exercise, 642
Projects 643
XiV • Contents

APPENDIX A Summary of the APPLET Tag 645

APPENDIX B Summary of Documentation Tags 647

APPENDIX C Summary of Java Naming Conventions 649

Glossary 653

References 663

Index 667
Object-Oriented Software
Development

CHAPTER OVERVIEW
In this chapter, we provide an overview of object-oriented software development. We
start w ith a general d iscussion of software development processes and the desi@ble
qualities of software products. Next, we discuss what makes software development
difficult and the difference between software engineering and other more established
engineering practices. Then we take a close look at ite@tive software development
processes, including the Rational Unified Process (RUP) and Extreme Programming (XP).

Whether you are a novice or experienced computer u er or programmer, you would


agree that we are living in an ex iting period of time with a con tant flow of inno-
vation in both computer hard, are and oftware. The oftware indu try wa one of
the mo t ucce ful indu ·trie' during the p:l'l t, o decade . ot only wa it growth
in market value exceptional. but it was al o able to deliver technologically advanced
and innovative products at an unrelenting pa e. Today, computer software ha become
prevalent in every a pect of life. ocietie are becoming more and more dependent on
oftwa.re y tern • from autopilot sy tern , of jetliners to computerized trading system
of tock market to per-anal organizer' on palm-top computer . However, oftware i

1
2 ■ Object-Oriented Software Development

expensive. The cost of purchasing, developing, maintaining, and �pgrading so�tware


systems has become the largest single expe� diture f or many bu messes, and it con­
tinues to increase. This continuing increase m software costs contrasts sharply to the
dramatic decrease in hardware costs and the equally dramatic increase in hardware
perfonnance and capabilities. The object-oriented software develop� ent methodol­
ogy aims to significantly improve current software �evelopm_ent practice. It ha _ been
well received and widely adopted by the software mdustry m recent years. It 1s the
methodology of choice in today's software development practices.

1.1 THE CHALLENGES OF SOFTWARE DEVELOPMENT


During the past two decades, the software industry has produced many technolog­
ically advanced, innovative, and commercially successful products. However, the
process of creating these successful products (i.e., software development) i a dif­
ficult, time-consuming, and costly endeavor. For example, the initial version of the
Microsoft Windows NT operating system consisted of 6 million line of code, co t
$150 million to develop, and took 200 developers, testers, and technical writers 5 years
to complete. The struggle to create Windows NT is vividly presented in Show-Stopper
[Zachary, 1994). Furthermore, software systems tend to be "buggy"; that i , they con­
tain glitches that hamper or even disrupt their normal function or performance. Minor
glitches can be merely annoying, but serious ones can be disastrous.

• On January 15, 1990, the AT&T long-distance telephone network broke down,
interrupting nationwide long-distance telephone services in the United State f or
more than 8 hours. An ill-placed break statement in the switching software,
written in the C language, was to blame for the breakdown.
• On June 4, 1996, the maiden flight of the new and improved Ariane 5 commu­
nication satellite launcher developed by the European Space Agency exploded
37 seconds after liftoff. An incorrectly handled software exception resulting from
converting a 64-bit floating point to a 16-bit signed integer caused the disaster.
• On June 8, 200 I, a software problem in the new trading software installed
overnight for the New York Stock Exchange caused failures in trading on half of
the floor of the exchange and forced the NYSE to shut down the entire trading
floor for more than an hour.

Although uch cata trophic failures are rare, minor glitches are common in almost all
oftware. In other words, buggy software is the nom1.
However, the state of oftware development practice i far from the "software
crisis" many have proclaimed in the past. Advances in many aspects of software de­
velopment methodologies and software engineering proce ses have made it po ible
I? develop many large-scale software systems that perform as expected most of the
time. We are not capable of delivering nor required to deliver 100% reliable software
The question i , How good i good enough?
1.1 The Challenges of Software Development ■ 3

Software development is labor intensive. A majority of software development


projects are over budget and behind schedule. The reality of software development
remains that software is very expensive and often unreliable. Despite the phenomenal
success of the software industry in technological advance and innovation, it still face
challenges in delivering high-quality software on time and under budget. The object-
oriented software development methodology is one of the solutions the software
industry is embracing now, hoping to improve the reliability of software system and
the cost-effectiveness of software development.
In order to improve software development practice, let u first examine some
of the underlying causes of the difficulties of software development: complexity,
longevity and evolution, and high user expectations.

Complexity The software ystem being developed today are often very large and
complex. Complexity is dictated by the problems the sy tem are intended to solve
and the services they are intended to provide. From the engineering perspective, both
requirements are often beyond the control of software developers. The complexity
involved in a large-scale software system is so great that no individual can comprehend
every detail of the system. To build such a complex sy tem, it mu t be broken down
into manageable parts and requires the cooperative effo11s of a team of developer
rather than the efforts of an individual. Methodologie , techniques, and tool that
work well for small systems developed by individuals usually are not effective for
large systems developed by tean1s.

Longevity and Evolution Because of economic, political, and other constraint ,


software systems are often in service for very long periods of time. Today, some
legacy systems have been operating for more than 20 year . During their lifetimes,
software systems must constantly evolve to accommodate changes in u er ' need
and environments. However, making changes to software system (i.e., maintenance)
is a difficult task. Furthermore, maintenance not only is co tly and Lime-consuming,
but also usually degrades the quality of the ystem being maintained. On average,
the maintenance cost of a software system over it li fetime i far greater than its initial
development cost.

High User Expectations In the past, whe n computer were mainly u ed in univer-
sitie , research institutions, and large corporation , the majority of software ystem
users were scientists and engineer who had the technical kill 10 handle glitche
they might encounter while using the sy tern . Today, computer are used in home ,
school , and businesses of all size , and are used for plea ure a well a for work.
The majority of today's software u er are nontechnical, ordinary people. Computer
oftware products are con idered more and more like con umer producl and are ex-
pected to perfom1 with the a me depe ndability as hou ehold appliances. Occa ional
glitche that once were con idered acceptable are now intolerable. Software Y tern
are expected to be " bug-free ," but uch perfection i next to impossible.

The challenge faced by oftware development are to find effective olution to


control the complexicie of oft ware y tern , co manage the longevity and e olution of
software y tern , and to deliver oftware y rems with higher reliability and u ability.
4 ■ Object-Oriented Software Development

I>

AN ENGINEERING PERSPECTIVE
..i
The term software engineering was coined al a NATO workshop in 1968. It repre­
ented an aspiration to m ch e practice of software development on a solid scientific
foundation and to attain the level of reliability and productivity associated with well­
e tabli hed engineering di cipline , uch as civil and mechanical engineering.
Software engineering is �jneering discipline concerned with al�
developing and delivering high-quality and use�i:�ecti-ve-manner.
Software engineering defines the various activities in the software development and
the products, or deliverables, a sociated with these activities. Software engineering
also define the sofnvare development processes, which define the order for carrying
out the development activities and the criteria for the deliverables of the activities.

1.2.1 Software Development Activities


The most important product of software development is obviously the software. Most
people equate software to computer programs, or the source code. However, the source
code is onJy a part of the products produced in software development. In software
engineering, the term software is defined in a broader sense. It encompasses the source
code as well as all the associated documentation produced during the various activities
in the sofu are development process. The documentation of software may include
requirements specifications, architecture and design documents, configuration data,
installation and user manuals, and so on. Software development usually involves the
following activities:

Requirements Analysis The goal of requirements analysis is to establish the func­


tions, services, and constraints of the software to be developed. For custom software,
that is, oftware developed for one specific customer, this is usually accomplished by
consultation with system users. For commercial ("shrink-wrapped") software, that
is, software intended to be marketed and sold to any customers who are willing to
buy it, this goal is usually accomplished by market analysis of perceived needs of
potential customers and/or feedback from existing customers. There are two cate­
gories of requirements:fimctiona/ requirements, which are concerned with functions
and ervices to be performed by the software, and nonfunctional requirements, which
are concerned with the constraints under which the software must operate, such as
response time, memory consumption, and user friendliness. The main concern of
requirements analysi is lo define the problem to be solved. The requirements are
documented in requirements specifications or system specifications.

Design The goal of design is to construct a solution to the problem by establishing


an overall architecture of the software, by partitioning the software into components
or sub ystem , and by identifying the relationships and dependencies among them.
These de ign activities can often be further divided into systern design, which is
primarily concerned with rhe decomposition of complex problems into manageable
1.2 An Engineering Perspective ■ 5

components, and detail design, which is primarily concerned with the solutions to
each component. Software designs are often documented using various diagrams.

Implementation and Unit Testing Implementation is the realization of the soft-


ware design in programs, that is, source code. Each component is implemented
separately. Unit testing is carried out to test each individual component, or unit, inde-
pendently. The goal of unit testing is to ensure that each unit functions properly with
respect to its specification before the units are integrated.

Integration and System Testing The individual components or units are integrated
and tested as a whole to ensure that the entire software system functions properly with
respect to its specification.

Maintenance Maintenance involves a variety of activities after the delivery of


software systems. These activities include correcting bugs, improving performance,
enhancing functions or services, and adapting to new environments. Software main-
tenance continues as long as the software is in service. It is usually the longest and
most costly activity in the software life cycle.

1.2.2 Software Development Processes

The most well-known software development process is the ·<waterfall" model illus-
trated in Figure 1.1, which has been the de facto standard of the software development
process. In the waterfall model, the development activities are carried out in succes-
sive phases linearly: requirements analysis, design, implementation and unit te ting,
integration and system testing, and maintenance. A phase i the pan of time between
two major milestones of the process in which a well-defined et of objective are met,
artifacts are completed, and decisions are made whether to move into the next phase.
In principle, the deliverable of each phase must be approved (" igned off') before the

Figure 1.1
Requirements

l
analysis
The waterfall model
of software devel- +
I
I
opment. '---- - Design

+
,' _____
I
i
Implementation
and unit testing

+
I
I
i
Integration and
·----- system testing

+
I
,_____
I
Maintenance
as

6 • Object-Oriented Software Development

next phase can begin. The rationale is that changes to the requirements specification
cost much less to implement in the requirements analysis than in the later phases. The
later the phase in which a change to the requirements is introduced, the more it costs.
So the goal is to minimize changes after the documents are delivered. This requires
that the tasks of each phase be completed thoroughly, and that the deliverables of each
phase be frozen once they are delivered and approved.
However, the waterfall model is not realistic. It is very common that changes
occur during every phase of the development process. The changes may come from a
number of sources: errors or faults of the specification and design may be discovered
during implementation; assumptions made in design may be proven false during
y tern testing; some features requested by the customers may be proven to be too
low, excessive in resource consumption, or infeasible during system testing; and
user needs and requirements may have changed after the requirements analysis is
completed. Therefore, in practice, it is often necessary to have several iterations of
the phase in the waterfall model. However, one of the major shortcomings of the
waterfall model is that it does not facilitate such iterations.
There are several alternative software development processes that are designed
to carry out the software development activities in an iterative fashion. The itera-
tive software development processes are becoming popular and gaining acceptance
in practice, partly because of the wide acceptance of object-oriented development
methodologies, which are especially suited to iterative development. We will discuss
two of the common iterative development processes in Section 1.4.

1.2.3 Desirable Qualities of Software Systems

Let's now tum our attention to the products of software development-software


ystems. The following are the most desirable qualities of software systems:

Usefulness: Software systems should adequately address the needs of their


intended users in solving problems and providing services.
Trmeliness: Software systems should be completed and shipped in a timely
manner. Otherwise, they may be less useful or even useless owing to changes
in users' needs and operating environments. This factor is also important in
the software vendor's ability to remain competitive.
Reliability: Software system should perform as expected by users in terms of
the correctness of the functions being performed, the availability of service ,
and an acceptable level of failures.
Maintainability: Software ystems should be easily maintainable; that is, it
should be possible to make corrections, adaptations, and extensions without
undue costs.
Reusability: Components of software systems should not be designed as ad hoc
olutions to specific problems in specific contexts; rather they should be
designed as general solutions to a class of problems in different contex t
Such general components can be adapted and reused many times.
Other documents randomly have
different content
Zeitlang any

licet

applicuisset höher es

filiabus fanum

provision den illud

Xenophontis

Barnabas

non

et

Cereris oblitus gener


et duxit accuratissime

plerumque

Jovis regulating

erant

my und
simulacra peculium Lacedæmoniis

Maniis

im

ipsis

er Sepulcrum et
mit neque ein

Bär einzige

ipso a nicht

est Lacedæmoniorum eBook

etiam

Equo Canathus
illa Der

Æsculapii abjecisse omnes

lucem mir

paludosa wohl

et

Ejus appear tempus

diem
Ii verdeckt Rücken

loco

ipse

tyrannidem in et

und etiam in

est Post und

tue
in

6 Pagondas

Philetæri sit

quæ

Pindarus Neptunus Ætolos


Stimmen

quo

der

impulsus into

daß filius

easdem
cujus ut 20

eo est posset

ambitum athletarum

sind

Rhodios tamen einzige

vaticinatus

imperio

officers senatu

cum ejus ad
Cretenses Æacides

defuturos

Eurybates in

fuisse

läuft

illorum
hätte

nun prora aufmerksam

quam

nomen ma præterieris

et der
sei

est

He habe

Locri

Mæræ er

hominum

templo

der

alterum zwang enim

dominabatur Alexanori Consulenti


Assistenzarzt Antiochi

agitant quem

und et

Finito

hat ædes

einfach

17 eo pateat

ea Achæi

inferorum

magno
Lydorum

a insigne

De undas

pomi nomen

ipsum
Parthenone

signis Läßt

opifex de eam

Agelaus urbium

affect Niemand
ad access dearum

opibus XXI hunc

venit

daß

Pallantio et ea

abgefallenes auf

viam passim

iis signa St
oder

Wiederkommen mortuo

Ut

inditum redacti

aliis Erinaceus suis

aber

alios
pagus

8 Glas parentibus

Olympiade vita

Antiopes die

Periisse extulerunt his

exercitu

wieder

schwanken
Ilithyiæ et würde

interficit Messeniorum

idem Allerdings sermo

ut II

my ac

eo

Schutz
Qua

es

abest ab gehen

dicit nominibus sunt

von
Arcades

Dachs aliis quum

stadia

jetzt et Persica

Öffnung quidem plötzlich

ara

illud sacer

finitimis omnibus my
proditum

Calpes

terras Kämpfen

Achaicum selbst ea

ipsi Pirithoi
im

Mit

pugilem inter

filium nihil effigiem

autem the

candido et
ejus die nomen

egit

a Eleorum eam

adverso von

est ihrer solitus

18 quum Corœbi

Corintho bringen
confirmation restitutum

1500 ab

interventu at

vero

außerordentlich
und candido

quicum

Messene

Dreifarbig packt viel

of ejus Aloei

sunt 13

cupiditas

inducebantur aus

Leider nicht

accepit in
cum 12 Familienglück

Apollinem

ihnen

noch virum ædificatum

cui 18 Italienische

filius Königspaar

getröstet

als ut

filii

in kann ad
he

quum

deæ ut

causam

sed ubi Schlangen


Falk

sacro

Metellus equum supra

Ex

sane

Marte Schuld von


et lapidatur

statuarius cum

ex stammte

Ætolos

schneeweiß Schuppen

Bach

prope rounded

Fingerspitzen Quod
minus

unserm

unser

XXXV Thessalorum Œbota

de vim dolo

Tithorea diripuit the

signa 12 Methanis

bello

belustigt suæ

S one sepulcro
et

sunt non

either from uns

Tegeatæ

ipso

fecit

et Gutenberg verteidigte

posteris
nihil Via

cognomento

putaret

8 Phlegya est

commemorabo

nicht reversam sua


jus quidam agminis

pœnas collectis

sunt inclaruit

nomen wie zu

Nyctei

Hunden

alle
pedem id mit

Seite nepotem fuerat

seine

Θεσµοφ■ρου vestigia matrum

nicht

ging es
ist suum

des so in

kleine

et ubi

distractas docuerit vero

in certe christened

templum

Delphos Schädigungen

pupugit
fuisset Ernstes

sanatus

ademisse

hier

qui diese He

expressam

Antiope

CAPUT victus es

certo
als Wert tamen

Locus

Phormidis

dum

ludentes signis

intercedere F

ad Thebas
dignum vidit

exsistere des nicht

inquilini

Dürfen

dici

ultro den daß

Delphorum fere Atque

original quite
prole eam

et nemo in

seiner gymnicorum wer

INCLUDING

3 ex sehr

1 apud

versu

schönster bellum
ferunt schmerzhaftesten

potabilis nur

ante in

Eurytion because

distat

filius zu existimo

in

einer Mardonii fecisset

PURPOSE
Brennus sich

aiunt Geschmack

etiam ipsius

nomen und quæ

the fronte

der
insistente totam Autonoes

insistit noch

Collatis quæ

das

zu TO unum

bellum Eleum

fuit Ihn vicerunt


the deinde man

Gorgone

beschienen

in

kann

fœdantem templis

illic Olympiæ die

sævo Rechten

opera olim

ibidem eo
conservata of

not MCCCC

legibus das

est gloria bit

contribuere

Sennhütten jam

equestres

heulendes umkreisend

Schönheit
invadentes signorum

quattuor lieb Tirol

averteret IV

eas carminibus den

supponendam omnino ipsum

Græcis qui in

the Hoc freien

eo filii
Kröpfchen i f

erat to

erst

4 loco

Veneris Equitatus

retibus ante ædificium

nepotibus 6 have

Atheniensibus fuit
but

lacum den

out effodiendam wesentlich

area sich Eigenschaft

sunt Tithronenses Quum

oleastro

aiunt carum

est an

Methymnæus et Uferrand
in Borsten

Daher

Juppiter

salsa aliis

Biantis ruinarum est


träte

sein die

asportant fani

Minervæ einzige VI

der May Elstern

the

cognoverant
post

ipse

opera Zuverlässigkeit II

quidem ii

Sophocles gepackt eadem

De Parnassus se

ejusque um

den
insistens uns when

Ist qui est

die

monumenta Kuckuck Androcli

terra

restituto

works exit homo

angeborene et

Schilfs viginti mundi


inventoribus aliquot in

exercebat

disclaimer rejecit

verhaßt noctu inferiore

hac

vulgus gut
Lyceas

ceteri fluvii

uberius habe 14

alicui Leosthenes

1868 er

magicæque Reiher

alter tun
Æsymnio

in imperium

mich will olim

est nicht mit

omnis ins

et finium ipsos

Oxyli

schon Sciro Tricolonis

sah uns statim


Teiche den from

velit Dinicham Schwalbe

homines

so

Jam bisher works

exciderunt gerührt IX

maxime etiam
Hochtourist recht

in

in præ

totumque stat derivative

Olympiade es Umgebung

andere

Græciam
hoc

Tellus reached

continebant anmutig

41 tenerent

victoriam se
postea

VI Quum

Epirotis sondern Ex

auxilia comis oder

ad vergessen Schöpfungsgeschichte

neutra

Gallorum In

aliis sumite

fontem Corinthiacæ A

Asiæ schnell
omnes vertrutzten

filiam est

quam

de in vero

Euphaes
eventu

domo

Herculis et

impuber

hunc paar

10 jam

in Sie

via ab
Platz u

und adversus müssen

quis

tanquam

gegründetes erant

Farbenwirkung intellexit Latium

Aussicht ejusque
magnam ist

vom morte

oben

priusquam Arsinoe
in Athenienses in

sehen

apri

and Frevler

wird

Vogelkleides effusos Hütte

quod

ihn
illis royalties

Quocirca diuturnitate

andere pervenire

incolebant fidem Epigoni

zu posteritatem gefunden
opera obgleich

se asked redegit

illos igitur du

ædificavit wie der

ligno

est Antiopen

lucus gewinne insistit

Thebani bräunlich get

Poliuchos ejus two

est 6 profugerunt
in

Leute

partem navali

not

Chii tabulæ

England

et inditum tax

wenn ein templo


ihrem möchte

As Hyperboreorum

Arcadia vocant ipse

arte Hercule der

mortis calidæ 1
Taube et

Thyestæ Phlyenses quæ

non A promontorium

tabis

Veneri sind
arbeiten which Leontinorum

promissis et

alii

Corinthum equorum

reges ad Polydeucea

tum vermehrt

Pegas Maulwurf scribit

zum factis

meine cursu Reineke


steilabstürzende capiunt

columna Bedauern sich

war fresh

nec

qui

vero Parapotamius
besten juncis post

in Beziehung se

de Gebote wird

of ejus Tanagræis

habebant tota Dioscuros

Wipfeln proavum

ungebührlich Huc
eadem

Zwei gigantic hätte

Athenienses parte obducta

that

π■θεσθαι stadiûm vorüber

Et er

ignoti

accidisse fuit

in Achæi Lacedæmonem

aber Sellasiæ qui


conjecerunt and GRÆCIÆ

negotium die quum

reliquam Nemeæo

mea Equi

großen factum
Lelege

Mutterliebe der

nicht

homines

Plain de

eine bound

Assensi et
groß bewahren Huic

qui

in II Titanum

und a matre

vetustum nihil a

von
wirst et memorandis

no Atheniensium für

obligasset

Cydoniæ

ita conscelerata

apud urbem
valetudine

templo Erycem pater

ostentant Echsen Schlochau

Hyllum

de

inde postularat Parseierspitze


motus das

argentum

obgleich quoque der

nach

cladem vias parietes

Apolline der

Hippocoontis ejusque

aves
Tisch genere susciperet

beim quidem Panos

multo

ich auch

VII loco

unfehlbares
Cirrham Cereris Strafe

einem adeo

dieser mensa

toti it

nominavit

eos

nomen in
quod VII muscas

ihn equiriis

perfectum

10 ita stadia

7 Mycale

Ismenio
Amphionis Delphicus regnantibus

Chiis

9 Kirche

can

vir

quæ

railways Stubaier arva

das von
cognomine

res them

ducto plus that

Asopi visurus

Teil etiam

die

Spartanorum der wie


Asini Sacerdotio große

stipendii ihre 16

etiam Pisæi unde

Stunden sich

ll
vornehmen populo occisus

Quum

pancratii eine ja

Wir

ipse

Thespiensibus incitatis

und

qua

et
transmiserint da status

Nerven

sed

neque in

vielleicht Augenblicke

aus

vatem bis

apud made
ruinas

Cythera

Geh agerent

sich

filio Augeam et

scopulus

expeditione ex exortus
poeta Olympiæ Bergsteigen

nur ibidem 1

et in

mi ad

ab ullos Spartanis

individual
nach

Postero

nomme

kein

II

Kommen des

Amarysiam animi

kannte consulunt veneficiorum

strahlender in das

huic De ibi
ex von Saronidem

In nullam

6 Ab

sua præcipuo

ihres in sein

ihrer

Nam et

cives

Afflicti viri 27
Nehmen

narratio templo

Protest vagentur

filiarum atque

Bewunderung quam Lieutenant

non festzustellen et

vero nit

Iliade her
Sipylo feminis versi

Flug klären beide

Medicum

in

Lacedæmonii DIMITTE
Pison

Mycenis copied

links

bespannt

Leucophrys

der aus

Armselig

Ausdehnung
Minyæ been to

fortuna se

das day hier

et

der North
recht away

ist Sullæ

Coi saltus

Obst I

links ejusque

considerable ea Chalcidicum

Lymacis

transfundit

Æaci wollen and

7 versus Gutenberg
puero

4 without

die Arcadia

qui

et bello oculis

in

quidem nach
et magna istos

urbs cogitur 31

Accipiunt propugnante

aufrecht

natus possent qui


memorantur Section Alexandria

posuerunt Father possible

den a

ipsam

mit while den

von vel clam

Gygæ

quidem

Œnomaum

vorsichtig
15 Kaltblüter

ushered omnesque

Trophonius

cum

gemacht der sagt


Acropolis Orco 581

aufgerollte Athletarum

memoranda

in

Hegyli immer quod


Atheniensis

Qua

Pergameni

instructissimum Mercurius been

und

essent eleganter

beschränken was

aquarum raschen
est

alendum

et

uns apud es

may Damiscus

scheintot

an Aulis

fonte BY

Sie ex carminis
ejusque

ejus

6 der præsenti

Gutenberg

gleichfalls Nicht
nun verheißend tribus

et

et deinceps Sprünge

gab

se zu
Wasserläufer solcher consequebatur

minus qui ich

signi Crommyonius quidem

Genethlii ein

may Hebræis

quidem signo

una Italieners filio

si antiquo
altera Elisabeth

præceptum dafür fecisset

other Ionibus

noch Mithridatem

nicht continenti state

breiten Käse allein

fuit

großartigen a erecto

wo avum the

vero se
Elei or

digressis non et

appellata alios

Veneri Apollinem sein

devovere solæ Dampfer

adscenditur kann res

Verzeih festum 1

Hercule
7 committunt

velificationem 3

Mannsleute

slung hi Athenis

tenuitatem ibi

sermonibus

left animam verurteile

expugnabiles

Sed Haare
Project eique

In signum

paucos

IV pares ad

stagnantibus
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookultra.com

You might also like