Systems Analysis and Design with UML Version 2.0 An Object-Oriented Approach 2e Dennis Tegarden solutions manual and test bank
Chapter 2
Experiential
Exercises
A. Investigate the Unified
Modeling Language on the Web. Write a paragraph news brief describing the
current state of the UML. (Hint: A good Web site to begin with is www.uml.org.)
UML, A Tool for
Business Transformation
Business worldwide
has entered a period dominated by rapid discontinuous change in
operations. The introduction of Internet technologies and the
globalization of production have changed the way business is changing.
Previously change has been more incremental than revolutionary. Change in
the 21st century is frequently radical and dramatic. The production of software to
support business operations was limited in scope. Information Systems departments developed
departmental applications such as a payroll or inventory system. The processes, methods, and tools used by
software development organizations suited this type of problem. The analysis focused on extracting
requirements for the software from the departmental staff. The culmination of these approaches is
embodied in the Universal Modeling Language (UML) where at the highest level of
abstraction the interactions between the users (called Actors) and the software
system are described in terms of Use Cases.
These UML approaches have been refined over the years to effectively
develop such systems. Enterprise
Resource Planning (ERP) software took the next steps to tie departmental
software together into workflows stretching the limits of UML. The broadest application of UML encompasses
software systems and their users. UML
does not address business concerns except to the extent that they directly
impact the design of the software. UML
covers the definition, design, and development of software, but it needs to be
placed in the context of the business.
B. Investigate Rational’s Unified
Process (RUP) on the Web. RUP is a commercial version that extends aspects of
the Unified Process. Write a brief memo describing how it is related to the
Unified Process as described in this chapter. (Hint: A good Web site to
begin with is www.rational.com.)
Rational Rose is an
object-oriented Unified Modeling Language (UML) software design tool used for
visual modeling and component construction of enterprise-level software
applications. By
recognizing software development as a strategic business process — a series of
related activities that should be integrated and automated — organizations can
transform their software development activities into a source of strategic
advantage. In so doing they embrace a business-driven software development
process that yields both top-line business benefits and bottom-line
productivity improvements. These organizations use software development to
drive their business success.
Benefits of Rational
· Open and extensible. You can leverage existing assets
and choose from a wide array of development
languages,
deployment platforms and partner technologies
— including
Microsoft® .NET, BEA and Oracle solutions.
· Modular. You can choose the exact tools and
adoption path
that best fit your needs.
· Proven. It’s based on tools and best
practices that are the
choice of thousands of high-performance
software teams.
The
IBM Software Development Platform is:
· Complete. It supports every member of a
development
team as well as business and operations
stakeholders to drive
business value throughout the software
lifecycle.
Rational software is based on the
theory and structure of UML, however UML is simply a tool to document system
design. Rational goes another step and
allows the user to design software with additional business designs and
components, as well as facilitates communication and organization of the
project. These additional functions create an effective tool for enterprise
level application.
C. Investigate the Object
Management Group (OMG) on the Web. Write a report describing the purpose of the
OMG and what it is involved with, besides the UML. (Hint: A good Web
site to begin with is www.omg.org.)
OMG’s MDA (Model Driven
Architecture) aims to build industry standards for design architecture that
will utilize existing architecture, and allow effective future expansion. MDA is based on the concept of modeling with
UML. At the heart of
MDA is an approach to design based on treating it as a product, rather than a
process. Non-MDA approaches treat design as a process in which developers apply
their expertise to handcraft elegant solutions from often ill-defined problems.
The result is running code. The design is not captured explicitly, but instead
smeared across the code as a set of results of a skilled thinking process.
In an MDA approach, promulgated by
OMG and based on the work of Shlaer and Mellor, and others, the design is
itself a product that is expressed as a set of formal mapping rules. Examples
of such rules are "Turn an application class into a class in the
implementation with a container for its instances" and "Turn each
transition on a statechart diagram into a tuple in a linked list defining the
transition and the procedure to call to execute actions". These rules are
the design, and once they are executed against an application model that
captures a problem, the result is (more or less) running code.
In MDA the application model is
generalized as a platform-independent model1, or PIM, usually visualized using standard UML, and the framework for
formal transformation rules is currently being standardized as the QVT (Query,
Views, and Transforms) specification. The result of the transformation can
either be another, platform-specific, model (PSM), or components of the
target application, such as database schemas, deployment scripts, test scripts,
or indeed executable code. In the latter case, the PIM must be behaviorally
complete, defining business logic in terms of abstract actions.
D., Find a set of CASE tools using
the Web that support the UML. A couple of examples include Rational Rose and
Poseidon. Find at least two additional ones. Write a short report describing
how well they support the UML, and make a recommendation as to which one you
believe would be best for a project team to use in developing an
object-oriented information system using the UML.
Rational Rose
Rational
Rose is an object-oriented Unified Modeling Language (UML) software design tool
intended for visual modeling and component construction of enterprise-level
software applications. Software designers use Rational Rose to visually create
(model) the framework for an application by blocking out classes with actors
(stick figures), use case elements (ovals), objects (rectangles) and
messages/relationships (arrows) in a sequence diagram using drag-and-drop
symbols. Rational Rose documents the diagram as it is being constructed and
then generates code in the designer's choice of C++, Visual Basic, Java,
Oracle8, CORBA or Data Definition Language.
Two popular features of
Rational Rose are its ability to provide iterative development and round-trip
engineering. Rational Rose allows designers to take advantage of iterative
development (sometimes called evolutionary development) because the new
application can be created in stages with the output of one iteration becoming
the input to the next. Then, as the developer begins to understand how the
components interact and makes modifications in the design, Rational Rose can perform
what is called "round-trip engineering" by going back and updating
the rest of the model to ensure the code remains consistent.
Rational Rose is extensible, with
downloadable add-ins and third-party partner applications. It supports COM/DCOM
(ActiveX), JavaBeans, and Corba component standards.
Poseidon
Poseidon for UML is a fully featured UML
CASE Tool that directly extends the open source project ArgoUML, and lifts it
to a professionally usable level. It is fully implemented in Java, and it features
platform independence, support for all 9 diagrams of the UML, compliance to the
UML 1.3 standard, support for XMI as the standard file format, the ability to
export diagrams as GIF, PS, EPS, and SVG, undo/redo, copy/cut/paste, drag and
drop, internationalization and localization for English, German, French, and
Spanish, code generation for Java, reverse engineering from Java sources,
auto-layout of reverse engineered diagrams, cognitive support, and a discrete
critique mechanism. Poseidon for UML seamlessly integrates into Netbeans (3.3
and 3.4), Forte for Java (4.0), and SunOne Studio, and it is easy to install
and update with InstallAnywhere or JavaWebStart.
Poseidon has a free version available
online.
Visual UML
Visual UML
is an affordable, easy-to-use yet powerful and full-featured highly
UML-compliant object-modeling tool that provides complete and comprehensive
support for all ten of the diagram types defined in the OMG 1.3 &
1.4 UML specifications: Class, Object, Package, Use Case, Collaboration,
Component, Deployment, Activity, State and Sequence diagrams. Plus, Robustness
diagrams. Visual UML also includes UML extensions for Business Object modeling,
Robustness modeling, Web Application modeling (using Conallen WAE), XML
modeling, and Data modeling/Database design. Visual UML can be used for
modeling many types of systems, including databases, information systems and
web applications. Plus, as a result of its comprehensive support for Activity,
Collaborations, State and Sequence diagrams, Visual UML is also suitable for
modeling real-time systems.
Magic Draw
Java Developer's Journal, has named No
Magic's MagicDrawTM version 5.0 UML the Best Java Modeling Tool and MagicDrawTM
version 5.0 Teamwork Server the Best Team Development Tool. More than 30,000
JDJ readers selected No Magic products over competitors.
MagicDraw is a visual UML modeling and CASE tool with
teamwork support. Designed for Business Analysts, Software Analysts,
Programmers, QA Engineers, and Documentation Writers, this dynamic and
versatile development tool facilitates analysis and design of Object Oriented
(OO) systems and databases. It provides the industry's best code engineering
mechanism (with full round-trip support for Java, C++, C#, CIL (MSIL), WSDL,
XML Schema, and CORBA IDL programming languages), as well as database schema
modeling, DDL generation and reverse engineering facilities. It’s apparent there are many different design and modeling programs based on UML. The range is broad, spanning from simple chart & object drawing programs that are free to download to complex enterprise level programs that cost thousands of dollars. To properly choose a program for a specific situation, the analyst must first have a firm understanding of the system requirements. The scope of the system to design will dictate which programs are most suitable for the application. A very simple system that requires only one designer may require a much different modeling program than one that involves several process throughout a large corporation with many development teams. Additionally, cost must be considered since programs range from free to thousands of dollars. Additional consideration should be given to the program language the system will use since some programs are more closely aligned with certain programming languages than others.
E. Suppose you
are a project manager that typically has been using a waterfall
development-based methodology on a large and complex project. Your manager has
just read the latest article in Computerworld that advocates replacing this
methodology with the Unified Process and comes to your office requesting you to
switch. What do you say?
The two key advantages of the
structured design waterfall approach are that it identifies system requirements
long before programming begins and it minimizes changes to the requirements as
the project proceeds. The two key disadvantages are that the design must be
completely specified before programming begins and that a long time elapses
between the completion of the system proposal in the analysis phase and the
delivery of the system (usually many months or years). The lengthy deliverables
are often a poor communication mechanism; the result is that important
requirements can be overlooked in the voluminous documentation. Users rarely
are prepared for their introduction to the new system, which occurs long after
the initial idea for the system was introduced. If the project team misses
important requirements, expensive post-implementation programming may be needed.
A system also may require
significant rework because the business environment has changed from the time
that the analysis phase occurred. When changes do occur, it means going back to
the initial phases and following the change through each of the subsequent
phases in turn.
The Unified Process is a
two-dimensional systems development process described with a set of phases and
workflows. Depending on which development phases the evolving system is
currently in; the level of activity will vary over the workflows.
Object-oriented techniques view a system as a collection of self-contained
objects that have both data and processes.
The Unified Process is a specific methodology that maps out when and how
to use the various UML techniques for object-oriented analysis and design.
Whereas the UML provides
structural support for developing the structure and behavior of an information
system, the Unified Process provides the behavioral support. The Unified
Process, of course, is use-case driven, architecture centric, and iterative and
incremental. The Unified Process is a
two-dimensional systems development process described by a set of phases and
workflows. The phases are inception, elaboration, construction, and transition.
The workflows include business modeling, requirements, analysis, design,
implementation, test, deployment, project management, configuration and change
management, and environment.
Unified Process designers take
advantage of iterative development (sometimes called evolutionary development)
because the new application can be created in stages with the output of one
iteration becoming the input to the next. (This is in contrast to waterfall
development where the whole project is completed from start to finish before a
user gets to try it out.) In this case,
I would ask the manager to consider the benefits, and disadvantages of the two
methodologies, the efforts and costs to change methodology and train the
existing team on a different one, and the effect on the value to the customer.
F. Suppose you
were an analyst working for a small company to develop an accounting system.
Would you use the Unified Process to develop the system, or would you prefer
one of the traditional approaches described in Chapter 1? Why?
Yes, the unified process is well
designed to suit rapid, phase oriented, object oriented design, and could
effectively be used to develop an accounting system. The unified process would build a design
based on use-case requirements, and quickly provide users with a system to
begin using while continuing to refine the system through iterative, and
incremental development. For example,
the basic requirements would be designed into the system, and during later
phases of development additional requirements with lower priority would be developed.
If user requirements should change at a later time, adjustments can be made to
modify the system.
G. Suppose you were an analyst
developing a new information system to automate the sales transactions and
manage inventory for each retail store in a large chain. The system would be
installed at each store and exchange data with a mainframe computer at the
company’s head office. Would you use the Unified Process to develop the system
or would you prefer one of the traditional approaches described in Chapter 1?
Why?
Yes, the
unified process may be very useful in developing the sales transaction and
inventory system due to the benefits provided by an object-oriented
approach. These benefits include a more
user-friendly approach that combines data and process metrics, rapid
development relative to a traditional approach, increased communication and
deliverables during development, and development modules that can be applied to
other applications, and a complete system that allows for future expansion.
File: ch02, Chapter
2: Introduction to Object-Oriented Analysis and Design with the Unified
Modeling Language, Version 2.0
Multiple Choice
- _____ is the earliest object-oriented language.
- C++
- Java
- Smalltalk
- Simula
- VB .NET
Ans: d
Response: See
page 24
- Objects can be thought of as little modules the encapsulate _____.
- Techniques for system development
- Data and processes
- Other objects
- System specifications
- Business operations
Ans: b
Response: See
page 24
- The distinction between a class and an object is _____________________.
- A class is a template for creating objects, while an object is an instance of a class
- An object is a template for creating objects, while a class is an instance of an object
- Classes can be instantiated from objects, while the opposite is not true
- Classes and objects both are templates only, but classes provide a more complete template
- Neither a class nor an object is a template, but objects are better suited for system development
Ans: a
Response: See
page 24
- Each object has _______ that specify information about the object.
- Methods
- Messages
- Procedures
- Other objects
- Attributes
Ans: e
Response: See
page 24
- ________ implement an object’s behavior.
- Methods
- Messages
- Procedures
- Other objects
- Attributes
Ans: a
Response: See
page 25
- _________ are instructions sent to an object that in turn trigger methods.
- Data
- Messages
- Procedures
- Other objects
- Attributes
Ans: b
Response: See
page 25
- The idea of placing data and the processes (methods) that operate on the data into the same object is referred to as __________________.
- Information Hiding
- Polymorphism
- Object Binding
- Encapsulation
- Inheritance
Ans: d
Response: See
page 25
- According to the principle of inheritance, ________________________
- A superclass inherits methods and attributes from its subclass
- A subclass inherits messages and data from its superclass
- A superclass inherits messages and data from its subclass
- A class can inherit methods and attributes from every other class
- A subclass inherits methods and attributes from its superclass
Ans: e
Response: See
page 26
- _____ means that the same message can be interpreted differently by different classes of objects.
- Inheritance
- Encapsulation
- Polymorphism
- Information Hiding
- Dynamic Binding
Ans: c
Response: See
page 28
- In dynamic binding, the specific method that is used by the program must be determined at ____________
- Compile time
- Run time
- The time of development
- The time of specification of the system
- None of the above
Ans: b
Response: See
page 28
11. _____
is an object-oriented modeling language used to describe information systems.
a.
C++
b.
Java
c.
UML
d.
HTML
e.
C#
Ans: c
Response: See
page 30
12. A ___________
models the interaction of the information system with its end-users and other
external systems.
a.
Implementation plan.
b.
Use case diagram.
c.
Class diagram.
d.
Package diagram.
e.
Database diagram.
Ans: b
Response: See
page 34
13. ________
allow the analyst to model the processes in an information system.
a.
Package diagrams
b.
Deployment diagrams
c.
Component diagrams
d.
Class diagrams
e.
Activity diagrams
Ans: e
Response: See
page 33
14. _________
diagrams represent the things, concepts or ideas that are contained in an
application.
a.
Interaction diagrams
b.
Deployment diagrams
c.
Sequence diagrams
d.
Class diagrams
e.
Activity diagrams
Ans: d
Response: See
page 33
15. _____
groups UML elements together to form higher level constructs.
a.
Package diagrams
b.
Deployment diagrams
c.
Sequence diagrams
d.
Class diagrams
e.
Activity diagrams
Ans: a
Response: See
page 31
16. ___________
are used to represent the relationships between the hardware components used in
the physical infrastructure of an information system.
a.
Package diagrams
b.
Deployment diagrams
c.
Sequence diagrams
d.
Class diagrams
e.
Activity diagrams
Ans: b
Response: See
page 31
17. _____ are used to depict a time-based (ordered) set
of activities that take place between collaborating objects.
a.
Package diagrams
b.
Deployment diagrams
c.
Sequence diagrams
d.
Class diagrams
e.
Activity diagrams
Ans: c
Response: See
page 33
18. ________
is NOT an example of an interaction diagram.
a.
Sequence diagram
b.
Communication diagram
c.
Interaction overview diagram
d.
Use case diagram
e.
Timing diagram
Ans: d
Response: See
pages 33-34
19. ________
workflow uncovers the problems and identifies potential projects within a user
organization.
a.
Requirements
b.
Analysis
c.
Implementation
d.
Design
e.
Business Modeling
Ans: e
Response: See
page 40
20. Writing
new classes and related programming activities are part of the
_____________ workflow.
a.
Requirements
b.
Analysis
c.
Implementation
d.
Design
e.
Business Modeling
Ans: c
Response: See
pages 40-41
True/False
- A class is a general template used to define and create specific instances known as objects.
Ans: True
Response: See
page 24
- Attributes implement the behavior of the object while methods model the information contained within the object.
Ans: False
Response: See
pages 24-25
- A concrete class is a class from which instances (or objects) can be created.
Ans: True
Response: See
page 27
- An abstract class is primarily used as a template for defining other classes, and no instances can be created from abstract classes.
Ans: True
Response: See
page 27
- The same message can be interpreted differently by different objects is often referred to as inheritance.
Ans: False
Response: See
page 28
- According to the principle of inheritance, superclasses inherit methods and attributes from subclasses.
Ans: False
Response: See
page 26
- Dynamic binding allows the object-oriented system to choose the specific method to be called and used at run-time.
Ans: True
Response: See
page 28
- Static binding forces the object-oriented system developer to identify the type of the object by compile-time.
Ans: True
Response: See
page 28
- Information hiding suggests that only the information required to use the object
available to other objects.
Ans: True
Response: See
page 26
- The objective of UML is to provide diagramming techniques in the analysis and design phases that easily translate to Java code during the implementation phase.
Ans: False
Response: See
page 30
- UML provides a common vocabulary of object-oriented terms and diagramming techniques which help model information system projects from analysis through implementation.
Ans: True
Response: See
page 30
- UML provides diagramming techniques to present the dynamic behavior of the system, while it makes no attempt to model the structure of the information system.
Ans: False
Response: See
page 30
- UML structure diagrams provide a way to model the data and the static
relationships of an information system.
Ans: True
Response: See
page 30
- Class diagrams model things, ideas/concepts contained in an application, and do not depict the relationship among classes.
Ans: False
Response: See
page 31
- Object diagrams are helpful for an analyst to uncover additional details of a class, including additional attributes, methods and relationships to other objects.
Ans: True
Response: See page 31
Response: See page 31
16. A
package groups several UML elements together into a higher-level construct.
Ans:
True
Response:
See page 31
- Physical hardware infrastructure and how software components are deployed on this physical infrastructure is often depicted in a UML package diagram.
Ans: False
Response: See
page 32
- For a client-server system, a component diagram is useful in showing which packages are placed on the client computers versus which ones are placed on the server.
Ans: True
Response: See
page 32
- Composite structure diagrams are useful to model the relationships among parts of a class.
Ans: True
Response: See
page 32
- The dynamic behavior of an object-oriented system is captured by the structure diagrams such as class, object and component diagrams.
Ans: False
Response: See
page 33
- An individual use-case and its details can be modeled using an activity diagram.
Ans: True
Response: See
page 33
- There are six different types of interaction diagrams in the specification of UML 2.0.
Ans: False
Response: See
page 33
- The most commonly used interaction diagrams are the timing diagrams.
Ans: False
Response: See
page 33
- Sequence diagrams depict the time-based ordering of activity that takes place among a set of collaborating objects.
Ans: True
Response: See
page 33
- Communication diagrams emphasize/depict the time-based ordering of an activity, while sequence diagrams emphasize/depict the messages that are passed between collaborating objects.
Ans: False
Response: See
page 33
- Interaction overview diagrams extend the overview diagrams by adding sequence fragments from sequence diagrams.
Ans: True
Response: See
page 33
- The change of state of an object over time in response to events is depicted by interaction overview diagrams.
Ans: False
Response: See
page 34
- Primary purpose of a use case diagram is to understand and document the requirements of an evolving information system.
Ans: True
Response: See
page 34
- In UML model diagrams, only classes are allowed to have stereotypes, since there is no need for stereotypes for other UML elements such as use cases and relationships.
Ans: False
Response: See
page 35
- Tagged values are a mechanism to add new properties to a base element.
Ans: True
Response: See
page 35
- Object oriented methodologies are use-case driven, in that the use cases are the primary modeling tool to define the behavior of the system
Ans: True
Response: See
page 36
- Functional view of a system describes the internal behavior of the object-oriented system, while dynamic view specifies the external behavior of the system.
Ans: False
Response: See
page 36
- Object oriented systems analysis and design often emphasizes iterative approach, while discouraging incremental development approach.
Ans: False
Response: See
page 37
- Technical, economic and organizational feasibility of the proposed information system takes place in the inception phase of the Unified Process.
Ans: True
Response: See
page 37