Hello Everyone,
I complete a project 1 team assignment in word document and PPT. I’m attached it, the word document of project 1 name is “ISEM 530 Project 1 Group 3” and PPT is “ISEM 530 Project 1 Presentation”.
I’m attaching Project 2 document in word doc with named as ” Project 2 – Late Fall 2021″.
In that word document you need to do questions 2,3,4,5,6 & 8.
Note: All the questions 2, 3, 4, 5, 6 & 8 needs to be done in one word document
2. Summarize the contents of Project Part 1 for clarity. Under this you need to give small briefing in 2-3 sentences. The contents are below and there are total 8 contents.
Step 1: Food – Grocery Store
Step 2: Organic House
Step 3 Business Overview
Step 4: Organizational Chart
Step 5: What system is broken:
Step 6 System Vision Document
Step 7 Use Cases
Step 8 Company Requirements
3. Each team member should provide a Storyboard for one of the dialogs you identified. (See Chapter 8 of your textbook, Figure 8-18)
4. Each team member should provide a class abstract with subclass for at least one of the objects (See
Chapter 12 of the textbook, Figure 12-11).
5. Add Sequence Diagrams for your use cases with data access layer (See
Chapter 13 of your textbook, Figure 13-23). Note: Please do two sequence diagrams
6. Add a Communications Diagram for your use cases (See Chapter 13 of your textbook, Figure 13-9). Note: Please do two communication diagrams
8. Research any Commercial Off the Shelf (COTS) that will satisfy your requirements. List at least one
COTS you found and describe at least one in more detail.
Note: Please prepare the charts and diagram by using Lucid Charts. Hope you understand.
Please prepare PPT also. In PPT you need to do these slides below:
Slide 3 should be a summary of your fictional company (from project part 1).
The Last slide should represent your references.
ISEM Project Part
1
Team Members: Naga Srinivas Guntupalli, Pranil Mali, Qing Jin
Step 1: Food – Grocery Store
Step
2
: Organic House Step
3
Business Overview Target Audience:
Our business mainly targets at individuals and families who are health conscious. They intend to lead a healthy lifestyle by consuming organic food and products of high quality. They care about where their food comes from and how it has been produced. Therefore, our business carries a very diverse library of high-quality organic products to meet the needs of our customers. For each type of product we sell, customers can track the entire life cycle of the products they intend to purchase. Beyond that, our target customers also have environmental concerns. As a result, our business manages to sell products with less or even no packaging. Instead of providing plastic bags, we offer our customers reusable grocery bags.
Besides providing customers who enjoy shopping at a local branch with the best experience, we also aim to win over people who prefer to buy their groceries online. They are expected to receive their groceries within hours with only a few clicks. They can be tech-savvy young people who have a busy life; They can be middle-aged family feeders who want to save some time on going to a local grocery store; They can be seniors who turn to online shopping to avoid covid-1
9
exposure or other mobility challenges. So technically speaking, our business is embracing all age groups who accept the concept and convenience of online grocery shopping.
Business Strategy:
We follow the following strategies to separate ourselves from other competitors and maintain competitiveness in the market:
1.
s of
High
Quality
We commit to offering only natural and organic products of high quality. Besides, we provide our customers with product traceability and transparency, which means they are able to see the entire history of a product from where it was first produced to where it was eventually sold or consumed. The whole process is entirely transparent to the users and hence very trustworthy.
2. Online Shopping System with Same-day
Delivery
or Pickup
With our online shopping system, customers can shop on their own schedule. They can add to the shopping list and place the grocery order at their convenience. What’s even better is that customers will expect to pick up or receive their order within a couple of hours within the same day, which will definitely save our customers a lot of time.
3. Inclusive Culture
With the concept of organic products and the convenience of online shopping appeal to almost people from all walks of life, we also want to create a more inclusive shopping experience for our customers both online and offline. We intend to hire staff that represents all our multi-cultural customers. Besides, we aim to ensure diversity in suppliers and vendors which leads to a diversity of representation exits on our shelves.
Demands Foreseen for Our Business:
1. Increase Product Diversity and Add More Non-food Organic Items
When it comes to organic products, most people think about organic food. However, that is not all. By definition, an organic product is made from materials produced by organic agriculture. Apart from organic food items, personal care products, alcohol, and even clothing can all be made with organic agriculture. Going forward, we plan to add diversity to our products by bringing more non-food products to our catalog.
2. Personalize Shopping Experience for Each
Customer
With the organic concepts appealing to people of all ages, we plan to customize our products and shopping experience according to the unique needs of each group or individual. Moving forward, we plan to create truly personalized experiences for both online shopping and brick-and-mortar channels.
Step
4
: Organizational Chart
1) Following are the fictional officers, directors, and managers of our company Called ““————————————————————————””
· Pranil Mali
President (CEO)
Vice president – Marketing and Sales
· Naga Srinivas Guntupalli
Vice President – Finance and systems
· Qing Jin
Vice president – Merchandising and Distribution
· James Hoyme
Director of Operations and Purchasing
· David Brunner
Director of Retail Sales
· Erik Spencer
Director of System Development and support
· Brian Hunt
Manager – Warehousing and Shipping
2) Our Company can be defined by the below organizational chart, which gives us a brief overview of different roles and responsibilities of individuals in our organization (Similar to RMO project from the textbook)
Fictional organizational chart:
Step
5
: What system is broken:
The below figure shows the typical business system of our company with different functions. It gives a high-level overview of our organization.
The procurement function needs to be added to the Supply chain management system. For the growth of the business, it is essential for our company to find reliable suppliers or even distributors, so that our company will save valuable time, money, and resources dealing with an inadequate supplier or the average distributor.
HR (Human Resource) department system might have some issues in terms of process improvement for smooth onboarding of employees, hiring the best candidates, maintaining the workplace diversity, or manually keeping a track of training of employees and compensation. We can look to automate some of these processes like we can put the ATS (application
tracking
system) in place so that it will help us hire the best candidates for our company. Also, we can provide an online learning platform for our employees, so that they can complete their mandatory training and they can enhance their knowledge through online courses whenever and wherever they want to.
Step
6
System Vision Document
1. Problem Description
There is an increasing need for online grocery shopping since the onset of COV
ID
–
19
, and the growth is expected to continue. According to the Mercator Advisory Group, online grocery shopping sales reached $
10
6 billion in
20
20, which makes up for 10 percent of the overall grocery market in 2020 and will account for about
22
percent by 20
25
. Recently, we have observed an increase in new customers, and more importantly, we have also received feedback from our existing customers about their wish for a better online shopping experience.
In order to meet the growing demand from our customers, we plan to upgrade our current mobile websites to a mobile app, since the webpages are not able to cater to all the needs of our customers anymore.
2. System Capabilities
The new system should be capable of:
· Supporting secure checkout and payment through fingerprints or face recognition
· Providing smoother user experience and reducing loading time
· Offering better customization options and instant customer service
· Providing a friendly user interface
3. Business Benefits
· Better user experience is likely to retain existing customers and attract new ones and therefore improve the chances of profits
· Secure checkout and payment can grow trust and loyalty in customers
· The mobile app makes our products and services more accessible and easy for us to provide our value to our customers and connect with them, which helps to build a stronger brand.
Step
7
Use Cases
No
User
Use case goal
Include
Extend
Priority
View the product
Logging in
Customer
Purchase product
Logging in and viewing product
Order
High
Customer
Make online order
Log in
, product
High
Customer
Product search
Log in,
make an order
High
Customer
Add to cart
Log in, product
Order
High
Customer
Check out car
Log in product, order
Delivery, printing bill
High
Customer
Emptying shopping cart
Log in, product
Cancellati on of order
High
8
Customer
Product changing
Cancellati on of order
High
Customer
Product changing
Log in
Cancellati on of order
High
Customer
Returning of product
Log in,
ID of the order
Printing of bill
High
11 |
Shippers and customer |
Tracking of the order |
Track the order ID |
|||||||
12 |
Rating review |
Log in,
ID of customer |
||||||||
13 |
Cancellation of the order |
No of the order |
||||||||
14 |
Product delivery |
Log in, ID of the order |
ID tracking |
|||||||
15 |
Viewing of the points assigned for loyalty |
Logging in, Card of loyalty |
Medium |
|||||||
16 |
Updating of profile of customers and shippers |
|||||||||
17 |
Picking up of the order |
Logging in,
ID of order |
No of the order (s) |
|||||||
18 |
Admin |
Stock monitoring |
Tracking of the user’s ID, viewing of order and product |
|||||||
19 |
Updating of the grocery stock |
Updating of the |
grocery’s orders |
|||
20 |
Suggestions and recommendation review |
||
21 |
Generating day-to-day summary report of grocery transactions |
Tracking and viewing of sales |
|
22 |
Creating |
Generating report for sales history |
Checking grocery sales |
23 |
Searching for profile of the customer |
Account of customer |
|
24 |
Generating report for sales trend |
Sales viewing |
|
25 | Shippers | ||
Step 8 Company Requirements
1.
Authentication
2. Product Use Case Diagram
3. User or Customer Use Case Diagram
4. Order Use Case Diagram
5. Customer Use Case Diagram
6. Detailed Grocery Case Diagram
MODULE CLASS DIAGRAM
Finding and Analysis
Product
· User chooses the menu by default category or by entering keywords – If the user wants to search by keyword processed to – The user enters the keyword of the product.
· System searches inventory for products that matches the keywords entered. 2.4. System returns the result and display products that are matched, process to – System display product by default category.
· Users add products to shopping carts or end browsing.
· If a user wants to add another product, proceed to
· User decides if he/she wants to modify the product in the shopping cart.
· If a user wants to modify, proceed to
· User makes changes to the shopping cart.
· System updates the shopping carts according to the user’s selected items.
· System displays all selected products in the shopping cart.
Order
· The user sends orders by desktop/mobile application.
· The system sends cart information which user selected
· The system calculates the total amount of the products.
· User checkout
· The app sends user’s selected items information
· The system displays the total amount, proceed to User will be notified the item is out of stock System will display payment options.
· User select payment options
· User pays by credit/debit cards.
· Users have the option to use loyalty points.
· The system prompts the user to select payment confirmation option.
· If the user confirms the payments, proceed to a successful transaction
· If the user rejects the payments, the process – Transaction successful – Bill will be printed.
· Products ready for delivery or pickup
Delivery
· Tracking number assigned to delivery.
· User location is located.
· Users are notified before the order is dispatched.
· User notified on arrival of product. – Delivery completed successfully.
· The user wants to update information on the system.
· The system requires users to log in with an existing account.
· If they don’t have an account, proceed
· The system validates the user account.
· If user input is valid, proceed to profile account and system display
· If user input is invalid, proceed to user log-in
· The system displays the account holder’s profile.
· Users can change and update addresses, telephone, and emails and reset passwords.
· Users cannot delete the existing profile.
· The system sends the confirmation that the setting has been updated.
· App guide the user to the homepage
Authentication
User
As a new customer, I want to be able to register myself into the database of the system and create my own account so that I could gain full access to the app functionalities.
Acceptance criteria
· I must choose a username and password.
· I could enter my personal information such: address, city, telephone number, and country.
· After completing registration, I should receive an activation code.
· I should be required to provide that activation code and validate my account. – I should be able to log in and use the app
Product
User
As a customer, I want to enter keywords so that I can view a list of products that I want to see for order followed by adding them into the shopping cart.
Acceptance criteria
· Available products are displayed.
· I can search for products by entering keywords.
· I can add products to the shopping cart.
· I can delete products from the shopping cart.
· I can finalize my order.
Order
User
As a customer, I want to order products and I want to have the option of paying my orders with different types of visa and debit cards.
Acceptance criteria
· Order products are displayed so I can change my product.
· I can cancel my order
· I can remove orders from my account
· I can pay my orders with visa, debit and redeem my points card
References:
Costain, G., & McKenna, B. (2011). Experiencing the elicitation of user requirements and recording them in use case diagrams through role-play. Journal of Information Systems Education, 22(4), 367-380.
Furterer, S. L. (2020, June). Applying Systems Engineering Tools to Model a Food Justice
System in an Engineering Management Course. In 2020 ASEE Virtual Annual
Conference
Gemino, A., & Parker, D. (2009). Use case diagrams in support of use case modeling: Deriving understanding from the picture. Journal of Database Management (JDM), 20(1), 1-24.
Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2012). Systems analysis and design in a changing world (6th ed). Course Technology, Cengage Learning.
https://www.netsuite.com/portal/resource/articles/accounting/procurement.shtml
https://arcoro.com/blog/most-common-hr-issues-solutions/
Organic House.
Team Members
Contributions:
Qing Jin: Target Market, Business Strategy, Foreseen Demands, System vision document
Naga Srinivas Guntupalli: Summary of the major systems in our company (Warehousing, shipping, marketing), System diagrams, Use case table and diagrams
Pranil Mali: Organizational Chart, Typical business system of our company, Process improvement for some of the business functions.
Target Audience
Individuals and families who are health conscious
Love organic food and products of high quality
Care about where their food comes from and how it has been produced
Enjoy shopping groceries online/offline
Business Strategy
Products of High Quality
Only natural and organic products of high quality
Product traceability and transparency
Online Shopping System with Same-day Delivery or Pickup
Shop on customers’ own schedule
Fast delivery with only a few clicks
Inclusive Culture
Hire staff that represents all our multicultural customers
Ensure diversity in suppliers and vendors
Demands Foreseen for Our Business
Increase Product Diversity and Add More Non-food organic Items
Personal care products, alcohol, clothing
Personalize Shopping Experience for Each Customer
Customize shopping experience based on unique needs
Organizational Chart
Following are the fictional officers, directors and managers of our company Called, “ ———————-”
Pranil Mali
President (CEO)
Vice president – Marketing and Sales
Naga Srinivas Guntupalli
Vice President – Finance and systems
Qing Jin
Vice president – Merchandising and Distribution
Continued…………
James Hoyme
Director of Operations and Purchasing
David Brunner
Director of Retail Sales
Erik Spencer
Director of System Development and support
Brian Hunt
Manager – Warehousing and Shipping
Fictional organizational chart:
To give a brief overview of our company we have formed a fictional organizational chart, which gives us a brief overview of different roles and responsibilities of individuals in our organization.
Typical business system of our company (What system is broken)
High-level picture of our company which shows the typical business system is show below.
This explains the different business functions and business processes our company has which eventually helps us to achieve our business outcome.
System Vision Document
Problem Description
In order to meet the growing demand from our customers, we plan to upgrade our current mobile websites to a mobile app, since the webpages are not able to cater to all the needs of our customers anymore.
System Capabilities
Support secure checkout and payment
Provide smoother user experience
Offer better customization options and instant customer service
System Vision Document
Business Benefits
Retain existing customers and attract new ones
Grow trust and loyalty in customers
Connect with our customers and build a stronger brand
Concise Summary
Warehouse: Tracking number assigned to delivery, User location is located. User notified before the order is dispatched, User notified on arrival of product, and delivery completed successfully.
Shipping: Customer browses the list of products by keyword searching or listing all of available products and then adding selected products into the shopping cart and deleting them from the cart.
Marketing: Application guide the user to the homepage, via social media and Internet.
Operations: Transaction processing systems that permits the organization to interact with external environments. it is essential to the day-to-day operations of business that these systems function smoothly and without interruption
Customer services: The agile approach based software development with values, principles, and core practices and four values are communication, simplicity, feedback, and courage for improving customer interaction with the software
Updating
User Updating
User wants to update information on the system.
System require user login with existing account.
Product
As customer want to enter keywords so that they can view a list of products that they want to see for order followed by adding into the shopping cart.
Shipping system
System updates the shopping carts according the user’s selected items.
System display all selected products in the shopping cart.
User updating (If they don’t have account, proceed System validates the user account, If user input is valid, proceed to profile account and system display If user input is invalid, proceed to user log-in, System displays the account holder’s profile, User can change and update address, telephone, and emails and reset passwords, User cannot delete the existing profile, System sends the confirmation that setting has been updated, App guide the user to the homepage)
Product (System updates the shopping carts according the user’s selected items and System display all selected products in the shopping cart).
Shipping system (System searches inventory for products matches the keywords entered. System returns the result and display products that matched, process and System display product by default category).
System Diagrams
1. Authentication/Registration Subsystem
2. Products Subsystem
3. Order Subsystem
4.Delivery Subsystem
5. User Updating Subsystem
6. Loyalty Subsystem
7. Tracking Subsystem
8. Report Subsystem
Use Case Diagram
1.2 User requests to login.
If user don not have an account, process to 1.2 registration.
1.1.3. User enter ID and password.
1.1.4. System verify the user ID and password, process to 1.1.5.
1.1.4.1. If it is invalid, process to 1.3.
1.1.4.2. If user failed to provide correct user ID and password in three successive attempts, block the account for 20 minutes and back to home page.
1.1.5. User is logged in.
References
Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2012). Systems analysis and design in a changing world (6th ed). Course Technology, Cengage Learning.
Gemino, A., & Parker, D. (2009). Use case diagrams in support of use case modeling: Deriving understanding from the picture. Journal of Database Management (JDM), 20(1), 1-24.
Costain, G., & McKenna, B. (2011). Experiencing the elicitation of user requirements and recording them in use case diagrams through role-play. Journal of Information Systems Education, 22(4), 367-380.
Furterer, S. L. (2020, June). Applying Systems Engineering Tools to Model a Food Justice System in an Engineering Management Course. In 2020 ASEE Virtual Annual Conference
https://www.netsuite.com/portal/resource/articles/accounting/procurement.shtml
https://arcoro.com/blog/most-common-hr-issues-solutions/
THANK YOU
Team project
Team project
Team project
ISEM 530: Analysis and Design of Information Systems
Project Part 2
Detailed Design:
1. Refer to work done for Project Part 1 as a reference.
2. Summarize the contents of Project Part 1 for clarity.
3. Each team member should provide a Storyboard for one of the dialogs you identified. (See Chapter 8 of your textbook, Figure 8-18)
4. Each team member should provide a class abstract with subclass for at least one of the objects (See
Chapter 12 of the textbook, Figure 12-11).
It is okay if you must slightly alter your Project 1 thinking. |
5. Add Sequence Diagrams for your use cases with data access layer (See
Chapter 13 of your textbook, Figure 13-23).
6. Add a Communications Diagram for your use cases (See Chapter 13 of your textbook, Figure 13-9).
7. Describe how to make your system operational (high-level steps – implementing, testing, deploying etc.). (See Chapter 14 of your textbook.)
8. Research any Commercial Off the Shelf (COTS) that will satisfy your requirements. List at least one
COTS you found and describe at least one in more detail.
Deliverables:
1- Report: Submit a word document including the 8 Steps above.
2- PowerPoint file: Summarize your team’s work in a PowerPoint slide presentation and submit it:
1. The PowerPoint slides will be a team presentation in class.
2. Slide 1 should be a title page
3. Slide 2 should clearly specify the team members with Contribution noted as a percentage.
4. Slide 3 should be a summary of your fictional company (from project part 1).
5. Slide 4 should be a concise summary of the major systems in your company.
6. Slide 5 should be a clear statement about the system that is being updated or changed.
7. Slide 6 – XX: will present your designs to propose to your board of directors. Use diagrams or text from the required elements on page 1.
8. The Last slide should represent your references.
9. Depending on available class time, we may have to stop presentations that are too long.
10. The last slide should specify references.
11. One person from the group will upload the Report and PowerPoint.
The team’s slide presentation should be timed to last about 30 minutes. At 30 minutes we may need to stop the presentation based on time. Each team member should speak about their contribution.
S I X T H E D I T I O N
SYSTEMS ANALYSIS
AND DESIGN
I N A C H A N G I N G W O R L D
John W. Satzinger
Missouri State University
Robert B. Jackson
RBJ and Associates
Stephen D. Burd
University of New Mexico
Australia • Brazil • Japan • Korea • Mexico • Singapore • Spain • United Kingdom • United States
This is an electronic version of the print textbook. Due to electronic rights restrictions,
some third party content may be suppressed. Editorial review has deemed that any suppressed
content does not materially affect the overall learning experience. The publisher reserves the right
to remove content from this title at any time if subsequent rights restrictions require it. For
valuable information on pricing, previous editions, changes to current editions, and alternate
formats, please visit www.cengage.com/highered to search by ISBN#, author, title, or keyword for
materials in your areas of interest.
www.cengage.com/highered
Systems Analysis and Design in a
Changing World, Sixth Edition
John W. Satzinger, Robert B. Jackson,
Stephen D. Burd
Publisher: Joe Sabatino
Senior Acquisitions Editor: Charles
McCormick Jr.
Senior Product Manager: Kate Mason
Development Editor: Kent Williams
Editorial Assistant: Courtney Bavaro
Marketing Director: Keri Witman
Marketing Manager: Adam Marsh
Senior Marketing Communications
Manager: Libby Shipp
Marketing Coordinator: Suellen Ruttkay
Design Direction, Production
Management, and Composition:
PreMediaGlobal
Media Editor: Chris Valentine
Senior Art Director: Stacy Jenkins Shirley
Cover Designer: Itzhack Shelomi
Cover Credit: ©iStock Photo
Manufacturing Coordinator: Julio Esperas
© 2012 Course Technology, Cengage Learning
ALL RIGHTS RESERVED. No part of this work covered by the copyright herein
may be reproduced, transmitted, stored, or used in any form or by any means
graphic, electronic, or mechanical, including but not limited to photocopying,
recording, scanning, digitizing, taping, Web distribution, information networks, or
information storage and retrieval systems, except as permitted under Section 107
or 108 of the 1976 United States Copyright Act, without the prior written
permission of the publisher.
For product information and technology assistance, contact us at
Cengage Learning Customer & Sales Support, 1-800-354-9706.
For permission to use material from this text or product,
submit all requests online at www.cengage.com/permissions.
Further permissions questions can be e-mailed to
permissionrequest@cengage.com.
Some of the product names and company names used in this book have been
used for identification purposes only and may be trademarks or registered
trademarks of their respective manufacturers and sellers.
Library of Congress Control Number: 2011940028
ISBN-13: 978-1-111-53415-8
ISBN-10: 1-111-53415-2
Instructor Edition:
ISBN-13: 978-1-111-53284-0
ISBN-10: 1-111-53284-2
Course Technology
20 Channel Center Street
Boston, MA 02210
USA
Screenshots for this book were created using Microsoft Visio® and Project®, and
were used with permission from Microsoft.
Microsoft and the Office logo are either registered trademarks or trademarks of
Microsoft Corporation in the United States and/or other countries. Course
Technology, a part of Cengage Learning, is an independent entity from the
Microsoft Corporation, and not affiliated with Microsoft in any manner.
iPhone, iPad, iTunes, Macintosh, and Mac OS X are registered trademarks of
Apple Inc.
Course Technology, a part of Cengage Learning, reserves the right to revise this
publication and make changes from time to time in its content without notice.
Cengage Learning is a leading provider of customized learning solutions with
office locations around the globe, including Singapore, the United Kingdom,
Australia, Mexico, Brazil, and Japan. Locate your local office at:
www.cengage.com/global.
Printed in the United States of America
1 2 3 4 5 6 7 15 14 13 12 11
www.cengage.com/permissions
www.cengage.com/global
DEDICATION
To my wife JoAnn—JWS
To my immediate and extended family—RBJ
To Dee, Amelia, and Alex—SDB
BRIEF CONTENTS
P A R T O N E An Introduction to Systems Development
1 From Beginning to End: An Overview of Systems Analysis and Design 3
Optional Online Chapter A The Role of the Systems Analyst
P A R T T W O Systems Analysis Activities
2 Investigating System Requirements 35
3 Use Cases 67
4 Domain Modeling 91
5 Extending the Requirements Models 119
Optional Online Chapter B The Traditional Approach to Requirements
P A R T T H R E E Essentials of Systems Design
6 Essentials of Design and the Design Activities 153
7 Designing the User and System Interfaces 187
P A R T F O U R Projects and Project Management
8 Approaches to System Development 225
9 Project Planning and Project Management 253
Optional Online Chapter C Project Management Techniques
P A R T F I V E Advanced Design and Deployment Concepts
10 Object-Oriented Design: Principles 293
11 Object-Oriented Design: Use Case Realizations 327
12 Databases, Controls, and Security 371
13 Making the System Operational 409
14 Current Trends in System Development 443
Index 481
iv
CONTENTS
Preface xvi
P A R T O N E An Introduction to Systems Development
1 From Beginning to End: An Overview of Systems Analysis
and Design 3
Software Development and Systems Analysis and Design 4
Systems Development Life Cycle 5
Introduction to Ridgeline Mountain Outfitters 6
Iterative Development 8
Developing RMO’s Tradeshow System 9
Where You Are Headed—The Rest of This Book 26
Chapter Summary 28
Review Questions 28
Chapter Case 29
P A R T T W O Systems Analysis Activities
2 Investigating System Requirements 35
Overview 36
The RMO Consolidated Sales and Marketing System Project 37
Systems Analysis Activities 40
What Are Requirements? 42
Models and Modeling 44
Stakeholders 46
Information-Gathering Techniques 48
Documenting Workflows with Activity Diagrams 57
Chapter Summary 60
Review Questions 61
Problems and Exercises 61
Case Study 62
Running Cases 63
Further Resources 66
v
3 Use Cases 67
Overview 68
Use Cases and User Goals 69
Use Cases and Event Decomposition 70
Use Cases and CRUD 77
Use Cases in the Ridgeline Mountain Outfitters Case 78
Use Case Diagrams 78
Chapter Summary 85
Review Questions 85
Problems and Exercises 86
Case Study 87
Running Case Studies 88
Further Resources 90
4 Domain Modeling 91
Overview 92
“Things” in the Problem Domain 92
The Entity-Relationship Diagram 98
The Domain Model Class Diagram 101
Chapter Summary 112
Review Questions 112
Problems and Exercises 113
Case Study 115
Running Case Studies 116
Further Resources 118
5 Extending the Requirements Models 119
Overview 120
Use Case Descriptions 121
Activity Diagrams for Use Cases 125
The System Sequence Diagram—Identifying Inputs and Outputs 126
The State Machine Diagram—Identifying Object Behavior 132
Integrating Requirements Models 142
Chapter Summary 143
Review Questions 144
Problems and Exercises 145
Case Study 147
Running Case Studies 148
Further Resources 150
P A R T T H R E E Essentials of Systems Design
6 Essentials of Design and the Design Activities 153
Overview 155
The Elements of Design 155
vi CONTENTS
Inputs and Outputs for Systems Design 159
Design Activities 160
Design the Environment 167
Chapter Summary 180
Review Questions 181
Problems and Exercises 182
Case Study 182
Running Case Studies 183
Further Resources 185
7 Designing the User and System Interfaces 187
Overview 188
User and System Interfaces 189
Understanding the User Interface 189
User-Interface Design Concepts 193
The Transition from Analysis to User-Interface Design 196
User-Interface Design 200
Identifying System Interfaces 208
Designing System Inputs 210
Designing System Outputs 211
Chapter Summary 218
Review Questions 219
Problems and Exercises 219
Case Study 220
Running Case Studies 221
Further Resources 222
P A R T F O U R Projects and Project Management
8 Approaches to System Development 225
Overview 226
The Systems Development Life Cycle 227
The Support Phase 232
Methodologies, Models, Tools, and Techniques 233
Two Approaches to Software Construction and Modeling 236
Agile Development 244
Chapter Summary 247
Review Questions 248
Problems and Exercises 249
Case Study 249
Running Case Studies 250
Further Resources 252
CONTENTS vii
9 Project Planning and Project Management 253
Overview 254
Principles of Project Management 255
Activities of Core Process 1: Identify the Problem and Obtain Approval 262
Activities of Core Process 2: Plan and Monitor the Project 271
Chapter Summary 283
Review Questions 283
Problems and Exercises 284
Case Study 286
Running Cases 287
Further Resources 289
P A R T F I V E Advanced Design and Deployment Concepts
10 Object-Oriented Design: Principles 293
Overview 294
Object-Oriented Design: Bridging from Analysis to Implementation 295
Object-Oriented Architectural Design 298
Fundamental Principles of Object-Oriented Detailed Design 304
Design Classes and the Design Class Diagram 308
Detailed Design with CRC Cards 314
Fundamental Detailed Design Principles 317
Chapter Summary 320
Review Questions 321
Problems and Exercises 322
Case Study 323
Running Cases 323
Further Resources 325
11 Object-Oriented Design: Use Case Realizations 327
Overview 328
Detailed Design of Multilayer Systems 329
Use Case Realization with Sequence Diagrams 332
Designing with Communication Diagrams 349
Updating and Packaging the Design Classes 351
Design Patterns 356
Chapter Summary 361
Review Questions 361
Problems and Exercises 362
Case Study 367
Running Case Studies 367
Further Resources 369
viii CONTENTS
12 Databases, Controls, and Security 371
Overview 373
Databases and Database Management Systems 373
Relational Databases 374
Data Access Classes 387
Distributed Database Architectures 387
Database Design Timing and Risks 391
Designing Integrity Controls 392
Designing Security Controls 396
Chapter Summary 403
Review Questions 404
Problems and Exercises 404
Case Study 405
Running Case Studies 406
Further Resources 408
13 Making the System Operational 409
Overview 410
Testing 411
Deployment Activities 417
Planning and Managing Implementation, Testing, and Deployment 423
Putting It All Together—RMO Revisited 434
Chapter Summary 437
Review Questions 438
Problems and Exercises 438
Case Study 439
Running Case Studies 439
Further Resources 441
14 Current Trends in System Development 443
Overview 444
Trends in System Development Methodologies 445
Trends in Technology Infrastructure 457
Trends in Application Software Availability 461
The Web as an Application Platform 465
Chapter Summary 475
Review Questions 476
Problems and Exercises 476
Case Study 477
Running Case Studies 478
Further Resources 480
Index 481
CONTENTS ix
FEATURES
Systems Analysis and Design in a Changing World, Sixth Edition, was written
and developed with instructor and student needs in mind. Here is just a sample
of the unique and exciting features that help bring the fi eld of systems analysis
and design to life.g
BRIEF CONTENTS
P A R T O N E An Introduction to Systems Development
1 From Beginning to End: An Overview of Systems Analysis and Design 3
Optional Online Chapter A The Role of the Systems Analyst
P A R T T W O Systems Analysis Activities
2 Investigating System Requirements 35
3 Use Cases 67
4 Domain Modeling 91
5 Extending the Requirements Models 119
Optional Online Chapter B The Traditional Approach to Requirements
P A R T T H R E E Essentials of Systems Design
6 Essentials of Design and the Design Activities 153
7 Designing the User and System Interfaces 187
P A R T F O U R Projects and Project Management
8 Approaches to System Development 225
9 Project Planning and Project Management 253
Optional Online Chapter C Project Management Techniques
P A R T F I V E Advanced Design and Deployment Concepts
10 Object-Oriented Design: Principles 293
11 Object-Oriented Design: Use Case Realizations 327
12 Databases, Controls, and Security 371
13 Making the System Operational 409
14 Current Trends in System Development 443
Index 481
hiking, ATV biking, camping, mountain climbing, rappelling—all had seen a
tremendous increase in interest in these states. People needed appropriate sports
clothes for these activities, so RMO expanded its line of sportswear to respond
to this market. It also added a line of high-fashion activewear and accessories
to round out its offerings to the expanding market of active people.
The company’s growth charted an interesting history of mail-order, brick-
and-mortar, and online sales. RMO got its start by selling to local clothing
stores in the Park City, Utah, area. In the late-1980s and early-1990s, it began
selling directly to customers by using catalogs with mail-in and telephone
orders. It opened its first store in 1994 and soon expanded to 10 retail outlets
throughout the West. Last year, retail store revenue was $67 million, telephone
and mail-order revenues were $10 million, and Web-based sales were $200 mil-
lion. Most sales continue to be in the West, although the market in several areas
of the eastern United States and Canada is growing.
RMO produces its own line of outdoor and sportswear clothing. However,
in order to offer a complete range of outdoor clothing in its retail outlets, it
also sells other brands of outdoor and sportswear clothing. In addition, other
types of clothing and accessories, such as footwear, leather apparel, and spe-
cialty sportswear, are available in the retail stores and through the online store.
Figure 1-2 shows a sample of the catalogs that RMO mails out. Although
mail-order and telephone sales are small, receiving the catalog encourages custo-
mers to go online to make purchases, so RMO continues to produce and mail
abbreviated versions of its catalogs.Figure 1-3 illustrates a typical order page from the online system.
Trade Shows
In order to keep its product line current and popular, RMO’s purchasing agents
attend apparel and fabric trade shows around the world. RMO purchasers have
a good track record of predicting what products will be good sellers. In addi-
tion, RMO is always watching for new products and accessories that will enable
it to expand its product line appropriately.
When purchasing agents attend a trade show, they frequently find various
products that they want to add to the spring, summer, or winter apparel offering.
2012 WINTER CATALOG
2012 W
IN
TER CATA
LO
G
FIGURE 1-2
RMO winter catalog
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 7
a formal p
rocess to g
et a projec
t approved
; other org
anizations
have a les
s for-
mal proce
ss. Norma
lly, there
are two g
oals an or
ganization
must decid
e on to
get a proje
ct off the g
round:
■ Identify t
he problem
and docum
ent the ob
jective of t
he solution
system.
(Core Proc
ess 1)
■ Obtain a
pproval to
commence
the projec
t. (Core Pr
ocess 1)
System Visi
on Docume
nt
As with al
l new proj
ects within
RMO, a S
ystem Visi
on Docum
ent is deve
loped to
identify th
e benefits
to the com
pany and
the functio
nal capabi
lities that
will be
included in
the system
. Frequent
ly, this is d
one in two
steps: deve
loping a p
relimi-
nary statem
ent of ben
efits and t
hen addin
g estimate
s of specif
ic dollar c
osts and
dollar ben
efits. Figur
e 1-5 is th
e System V
ision Docu
ment for t
his project
.
Problem D
escription
Trade sh
ows hav
e becom
e an imp
ortant in
formatio
n source
for new
product
s, new
fashions
, and ne
w fabrics
. In addi
tion to th
e large p
roviders
of outdo
or clothin
g and
fabrics, t
here are
many sm
aller pro
viders. It
is impor
tant for R
MO to ca
pture inf
ormation
about th
ese supp
liers whi
le the tra
de show
is in pro
gress. It
is also i
mportan
t to obta
in
informat
ion abou
t specific
mercha
ndise pr
oducts th
at RMO
plans to
purchas
e.
Addition
ally, if qu
ality pho
tographs
of the p
roducts
can be o
btained
while at
the trade
show, th
en the c
reation o
f online p
roduct p
ages is g
reatly fa
cilitated.
It is reco
mmende
d that a
new sys
tem be d
eveloped
and dep
loyed so
field pur
chasing
agents c
an comm
unicate m
ore rapid
ly with th
e home
office ab
out supp
liers and
specific
products
of intere
st. This s
ystem sh
ould be
deployed
on porta
ble equip
ment.
System V
ision Doc
ument
RMO Trad
eshow Sy
stem
System C
apabilities
The new
system
should b
e capab
le of:
• Collec
ting and
storing
informat
ion abou
t the ma
nufactur
er/whole
saler (su
ppliers)
• Collec
ting and
storing
informat
ion abou
t sales re
presenta
tives and
other ke
y
person
nel for e
ach supp
lier
• Collec
ting infor
mation a
bout pro
ducts
• Taking
pictures
of produ
cts (and
/or uploa
ding stoc
k images
of produ
cts)
• Functi
oning as
a stand
-alone w
ithout co
nnection
• Conne
cting via
Wi-Fi (In
ternet) a
nd trans
mitting d
ata
• Conne
cting via
telepho
ne and t
ransmitt
ing data
Business
Benefits
It is antic
ipated th
at the de
ploymen
t of this n
ew syste
m will pr
ovide the
followin
g
business
benefits
to RMO
:
• Increa
se timely
commu
nication
between
trade sh
ow atten
dees an
d home
office,
thereb
y improv
ing the q
uality an
d speed
of purch
ase orde
r decisio
ns
• Mainta
in correc
t and cu
rrent info
rmation
about su
ppliers a
nd their
key pers
onnel,
thereb
y facilita
ting rapi
d comm
unication
with sup
pliers
• Mainta
in correc
t and rap
id inform
ation an
d image
s about
new pro
ducts, th
ereby
facilita
ting the
developm
ent of ca
talogs an
d Web p
ages
• Exped
ite the p
lacing of
purchas
e orders
for new
mercha
ndise, th
ereby ca
tching
trends
more ra
pidly and
speedin
g up pro
duct ava
ilability
FIGURE 1
-5
Tradeshow
System Vi
sion Docum
ent
10 PART
1 ■ An Int
roduction t
o Systems
Developme
nt
The innovative and entirely new text organization starts
with a complete beginning-to-end system development
example, moves immediately to systems analysis models
and techniques, and then to system design concepts
emphasizing system architecture, user interfaces, and
system interfaces. Analysis and much of design is
covered in the fi rst seven chapters. Next, the text focuses
on managing system development projects, including
contemporary approaches such as Agile development,
the Unifi ed Process, Extreme Programming, and Scrum,
after the student has a chance to learn what is involved
in system development. Finally, the text covers detailed
design topics, deployment topics, and current trends.
The text uses a completely updated integrated case study
of moderate complexity—Ridgeline Mountain Outfi tters
(RMO)—to illustrate key concepts and techniques. In
addition, a smaller RMO application—the Tradeshow
System—is used in Chapter 1 to introduce the entire
system development process.
FEATURES
solution to customer demand for catalog phone and mail orders. It is
integrated with the SCM and has reached capacity.
■ Retail Store System (RSS)—A retail store package with point-of-sale proces-
sing. It was upgraded eight years ago from overnight batch to real-time
inventory updates to/from the SCM.
■ Customer Support System (CSS)—This system was first deployed 15 years ago
as a Web-based catalog to support customer mail and phone orders. Four
years later, it was upgraded to an Internet storefront, supporting customer
inquiries, shopping cart, order tracking, shipping, back orders, and returns.
All organizations—including RMO—face a difficult challenge keeping all
their information systems current and effective. Because development resources
are limited, an organization’s technology and application architecture and its
information system inventory will include a mix of old and new. Older systems
were often designed for outdated operational methods and typically lack mod-
ern technologies and features that some competitors have adopted to improve
efficiency or competitiveness. Such is the case with RMO’s existing customer-
facing systems, which have several shortcomings, including:
■ Treating phone, Web, and retail sales as separate systems rather than as
an integrated whole
■ Employing outdated Web-based storefront technology
■ Not supporting modern technologies and customer interaction modes,
including mobile computing devices and social networking
Rather than incrementally update the existing sales systems, RMO plans to
replace them, as shown in Figure 2-1.
FIGURE 2-1 Proposed application architecture for RMO
Supply Chain Management (SCM) Consolidated Sales and Marketing System (CSMS)
Suppliers
Customers
Buyers
Retail Stores
Retail Sales
Phone Sales
CustomersTrade Show System (TSS)
Warehouses
Shipments
Orders
Shipments
Orders
Shipments
Online Sales
38 PART 2 ■ Systems Analysis Activities
The New Consolidated Sales and Marketing System
The goals of the Consolidated Sales and Marketing System (CSMS) are to modern-
ize the technology and functionality of the CSS and to add more customer-oriented
functionality. On the technology side, the CSMS will incorporate current Web
standards and be built under the assumption of high-bandwidth customer Internet
connections and high-resolution displays. Updating the technology will enable a
higher degree of interactivity, richer graphics, and a streamlined interface.
Key additions to system functionality will be support for mobile computing
devices, incorporation of customer feedback and comments into product informa-
tion, and integration of social networking functions. Unlike the CSS, the CSMS
will support smartphones and tablet computers with interfaces specifically designed
for each platform and with downloadable apps. Customer feedback will be
captured directly through the Internet storefront, from RMO-supported comment
forums and blogs, and mined from Facebook and Twitter. RMO will develop a
complete presence in each social networking venue and enable system users to
share purchases, recommendations, coupons, and store credits using those venues.
The new CSMS will also have four subsystems:
■ The Sales subsystem provides such basic functions as searching the online
catalog and purchasing items and paying for them online. However, it has
many new capabilities to assist the shopper making purchases. The system
will provide specific suggestions about accessories that go with the pur-
chased item. Images and videos of animated models will be available to help
the customer see how various items and accessory packages will look
together. The system will also provide information to shoppers about
related purchases made by other shoppers. Customer ratings and comments
are available for viewing. Finally, key social networking components will
permit shoppers to network with their friends by sending messages to ask
their opinions about particular merchandise items.
■ The Order Fulfillment subsystem will perform all the normal tasks of ship-
ping items and allowing customers to track the status of their orders as well
as the shipments. In addition, as part of order fulfillment, customers can rate
and make comments about particular merchandise and their overall shopping
experience. They may also make suggestions directly to RMO about the
attractiveness of the Web site and the quality of the service they received.
■ The Customer Account subsystem provides all those services that enhance the
customer experience. Customers can view and maintain their account informa-
tion. They also can “link up” with friends who are also customers to share
experiences and opinions on merchandise. The system will keep track of
detailed shipping addresses as well as payment preferences and information.
RMO also instituted a Mountain Bucks program wherein customers accumu-
late credits that can be used to redeem prizes as well as purchase merchandise.
Customers may use these Mountain Bucks for themselves or they may transfer
them to other people in their family/friends group. This is a great opportunity
to combine accumulated bucks to obtain expensive merchandise.
■ The Marketing subsystem is primarily for employees to set up the informa-
tion and services for customers. In this subsystem, employees can enter
information about all the merchandise offered by RMO. This subsystem is
also fed by the SCM system to maintain accurate data on the inventory in
stock and anticipated arrival dates of items on order. Employees also set up
the various promotional packages and seasonal catalogs by using the func-
tions of this subsystem. RMO is experimenting with a new idea to enhance
customer satisfaction: It is building partner relationships with other retailers
so that customers can earn “combined” points with RMO purchases or a
partner retailer purchase. These points can be used at RMO or transferred
and used at the partner. For example, because RMO sells outdoor and
sporting clothing, it has partnered with various sporting goods stores.
CHAPTER 2 ■ Investigating System Requirements 39
Performanc
e Considera
tions
Web sites
in general
and brow
ser-based
forms in
particular
are sensiti
ve to
application
design and
to the qua
lity of the
network c
onnections
between t
he
user’s com
puting dev
ice and th
e servers t
hat host th
e site. Wh
en a user
clicks a
hyperlink
or a contr
ol that act
s like a hy
perlink, th
e browser
sends info
rmation
entered by
the user (
if any) to
a Web ser
ver, along
with a req
uest for a
new
page. Tha
t informat
ion traver
ses multip
le network
s, is receiv
ed and pr
ocessed
by a serve
r, and the
n the resp
onse (a ne
w page to
be display
ed) is sent
back
over the n
etwork. T
he delay b
etween cli
cking a hy
perlink an
d the disp
lay of the
requested
page depe
nds on th
e amount
of data to
be transm
itted, the
display
and netwo
rk connect
ion speed
of the user
computing
device, the
capacity o
f the
networks
that carry
the messag
es, and th
e number
of other u
sers and a
pplica-
tions that
are compe
ting for th
at network
capacity.
A trade-of
f exists be
tween the
amount of
informatio
n transmit
ted betwee
n
the user’s
computing
device and
the server
and the tim
e it takes
for the pa
ge to
refresh; th
e more in
formation
that is tra
nsmitted,
the longer
the delay.
That
trade-off i
s especiall
y importa
nt for com
municatio
n over the
Internet, a
lthough
it is also a
significant
issue with
in corpora
te network
s when us
er desktop
s and
servers sha
re high-sp
eed conne
ctions.
There is a
lso a trad
e-off betw
een the a
mount of
informatio
n and oth
er
data cont
ained wit
hin a We
b page an
d a Web-
based app
lication’s
perfor-
mance. Pa
ges with e
xtensive in
formation
content or
with embe
dded prog
ram-
ming can
avoid or p
ostpone p
age refresh
es. For ex
ample, a p
age contai
ning a
blank ord
er form
may be q
uite smal
l. But ma
ny page
refreshes
will be
required i
f the brow
ser must i
nteract wi
th the ser
ver to val
idate ever
y input
as the use
r enters it
. If the pa
ge contain
ing the fo
rm also co
ntains em
bedded
validation
programs,
then man
y server i
nteraction
s and pag
e refreshe
s can
be avoide
d. Howev
er, the in
itial down
load of t
he page
will take
longer
because th
ere is mo
re content
and the v
alidation
programs
may be s
low if
the user c
omputing
device isn
’t very po
werful (e.
g., a relat
ively inex
pensive
cell phone
).
Designers
of Web-ba
sed user i
nterfaces
must perfo
rm a care
ful balanc
ing
act, provid
ing embed
ded “intel
ligence” w
ithin a pag
e to avoid
refreshes b
ut not
overloadin
g page con
tent so as
to avoid lo
ng delays
when the
user move
s from
page to pa
ge. Thoro
ugh testin
g is the be
st way to
ensure tha
t the right
balance
FIGURE 7
-11
Shopping c
art page fr
om RMO’s
Web site
CHAPTER 7
■ Designin
g the User
and System
Interfaces
205
An overview of the RMO
Consolidated Sales and Marketing
System (CSMS) is presented in
Chapters 1 and 2 to place the
projects in context. The planned
system architecture provides for rich
examples—a Web-based component,
a wireless smartphone/tablet
application, and a client/server
Windows-based component.
The new Consolidated Sales and Marketing
System (CSMS) is the system development
project used throughout the text for examples
and explanations. It is strategically important to
RMO, and the company must integrate the new
system with legacy systems and other planned
systems. There are four subsystems, and the
requirements and design models are all new in
this edition. UML diagrams are used throughout
for examples and exercises.
FEATURES
added. Th
us, the pro
ject can b
e carefully
planned, a
nd the sys
tem can b
e built
according
to the spec
ifications.
An adapti
ve approa
ch to the
SDLC is us
ed when th
e system’s
requiremen
ts
and/or the
users’ need
s aren’t w
ell underst
ood. In th
is situation
, the proje
ct can’t
be planne
d complet
ely. Some
system req
uirements
may need
to be dete
rmined
after prelim
inary deve
lopment w
ork. Devel
opers shou
ld still be
able to bu
ild the
solution, b
ut they nee
d to be fle
xible and a
dapt the p
roject as it
progresses
. Recall
that the Tr
adeshow s
ystem desc
ribed in Ch
apter 1 us
ed this app
roach.
In practic
e, any pr
oject coul
d have—a
nd most
do have—
predictive
and
adaptive e
lements. T
hat is wh
y Figure 8
-1 shows
them as e
ndpoints a
long a
continuum
, not as m
utually ex
clusive cat
egories. T
he predict
ive approa
ches are
more trad
itional an
d were co
nceived d
uring the
1970s thr
ough the
1990s.
Many of
the newer
, adaptive
approache
s have ev
olved with
object-orie
nted
technology
and Web
developme
nt; they w
ere created
during the
late-1990s
and
into the 2
1st centur
y. Let us
look at th
e more pr
edictive ap
proaches a
nd then
examine th
e newer ad
aptive app
roaches.
Traditional
Predictive A
pproaches
to the SDLC
The develo
pment of a
new inform
ation syste
m requires
a number
of differen
t but
related set
s of activi
ties. In pr
edictive ap
proaches,
there is a
group of
activities
that identi
fies the pr
oblem and
secures ap
proval to
develop a
new system
; this is
called pro
ject initiat
ion. A sec
ond group
of activitie
s, called p
roject plan
ning,
involves p
lanning, o
rganizing,
and sched
uling the
project. T
hese activi
ties map
out the pr
oject’s ove
rall structu
re. A third
group—an
alysis—foc
uses on di
scover-
ing and u
nderstandi
ng the det
ails of the
problem o
r need. Th
e intent he
re is to
figure out
exactly wh
at the syst
em must d
o to suppo
rt the busi
ness proce
sses. A
fourth gro
up—design
—focuses
on configu
ring and
structuring
the new s
ystem
componen
ts. These
activities u
se the req
uirements
that were
defined ea
rlier to
develop th
e program
structure a
nd the alg
orithms fo
r the new
system. A
fifth
group—im
plementati
on—includ
es program
ming and
testing the
system. A
sixth
group—de
ployment—
involves in
stalling an
d putting t
he system
into opera
tion.
These six
groups of
activities—
project ini
tiation, pr
oject plan
ning, anal
ysis,
design, im
plementat
ion, and d
eployment
—are som
etimes refe
rred to as
phases
of the sys
tem develo
pment pro
ject, and t
hey provid
e the fram
ework for
man-
aging the
project. A
nother ph
ase, called
the suppo
rt phase, i
ncludes th
e activi-
ties neede
d to upgr
ade and m
aintain th
e system
after it ha
s been de
ployed.
The suppo
rt phase is
part of the
overall SD
LC, but it
isn’t norm
ally consid
ered
part of th
e initial d
evelopmen
t project.
Figure 8-2
illustrates
the six ph
ases of
a tradition
al predicti
ve SDLC p
lus the sup
port phase
.
The most
predictive
SDLC app
roach (i.e.,
farthest to
the left on
the predict
ive/
adaptive s
cale) is ca
lled a wa
terfall mo
del, with
the phase
s of the p
roject
flowing do
wn, one a
fter anoth
er. As sho
wn in Figu
re 8-3, thi
s model a
ssumes
that the p
hases can
be carried
out and co
mpleted se
quentially.
First, a de
tailed
plan is de
veloped, t
hen the re
quirement
s are thor
oughly spe
cified, then
the sys-
tem is des
igned dow
n to the la
st algorith
m, and th
en it is pr
ogrammed
, tested,
and instal
led. After
a project
drops ove
r the wat
erfall into
the next
phase,
The choice
of SDLC v
aries depe
nding on th
e project
Predictive
SDLC
Adaptive
SDLC
Requireme
nts well un
derstood
and well d
efined.
Low techn
ical risk.
Requireme
nts and ne
eds
uncertain.
High techn
ical risk.
FIGURE 8
-1
Predictive
versus ada
ptive appro
aches
to the SDL
C
adaptive
approach
to the SD
LC an
approach tha
t assumes th
e project mu
st be
more flexible
and adapt to
changing ne
eds as
the project p
rogresses
phases
related grou
ps of develo
pment
activities, su
ch as planni
ng, analysis,
design,
implementat
ion, and sup
port
waterfall
model a
n SDLC appr
oach that
assumes the
phases can
be complete
d
sequentially
with no over
lap
228 PART
4 ■ Projec
ts and Proj
ect Manage
ment
etimes refe
ide the fra
mework f
or man-
rt phase, i
ncludes th
e activi-
after it ha
s been de
ployed.
ut it isn’t
normally c
onsidered
2 illustrate
s the six p
hases of
hase.
hest to the
left on the
predictive/
with the
phases of
the projec
t
Figure 8-3
, this mod
el assumes
ed sequen
tially. Firs
t, a detaile
d
oroughly s
pecified, th
en the sys
–
d then it i
s program
med, teste
d,
waterfall
into the n
ext phase
,
In the past, when RMO buyers wanted to place an order, they would exchange
contact information with the seller at the trade show and upon returning to the
home office would then follow up via e-mails and phone calls to formulate a con-
tract and make a purchase order. However, to expedite orders, RMO has now
initiated a project to develop a system for collecting and tracking information
about its suppliers and the new products it adds to its merchandise offerings.
Iterative DevelopmentIterative development is an approach to system development in which the sys-
tem is “grown” in an almost organic fashion. Core components are developed
first and then additional components are added. It is called “iterative” because
the six core development processes are repeated over and over again to add
additional functionality to the overall system. In other words, there is one big
project, which consists of many mini-projects, and the information system is
grown piece by piece.Figure 1-4 illustrates how an iterative Agile project might be executed. This
is a sample diagram. Real projects might be quite different. Across the figure,
you see six iterations. An iteration is like a mini-project in that it has a com-
pleted result and a constrained time frame. Often, it will last two to four weeks.
Down the left side of the figure, you see the six core processes. The rounded
FIGURE 1-3
RMO sample online ordering page
Core
Processes
1 2 3 4 5 6
Identify problem and obtainapproval
Plan and monitor the project
Discover and understand details
Design system components
Build, test, and integrate systemcomponents
Complete system tests and deploy
solution
Iterations
FIGURE 1-4
The six core processes, with iterations
for a typical project
iterative development an approach to
system development in which the system is
“grown” piece by piece through multipleiterations
8 PART 1 ■ An Introduction to Systems Development
The text describes predictive and adaptive
approaches to the SDLC and recommends
Agile, iterative development for most
projects. The SDLC used in the text
features a generic, condensed version of
the Unifi ed Process SDLC, which empha-
sizes iterations and core development
processes found in most current develop-
ment methodologies. Core processes and
iterations are emphasized over phases to
reduce the confusion that ordinarily
occurs when students are taught “phases”
and then told to use iterations. Project
planning and project management are
emphasized throughout, and the book
focuses more on systems analysis and
systems design as development disciplines
rather than phases.
FEATURES
7
Designing the User andSystem Interfaces
Chapter Outline
■ User and System Interfaces
■ Understanding the User Interface■ User-Interface Design Concepts
■ The Transition from Analysis to User-Interface Design
■ User-Interface Design
■ Identifying System Interfaces
■ Designing System Inputs
■ Designing System Outputs
Learning Objectives
After reading this chapter, you should be able to:■ Describe the difference between user interfaces and system interfaces
■ Describe the historical development of the field of human-computer interaction (HCI)
■ Discuss how visibility and affordance affect usability
■ Describe user-interface guidelines that apply to all types of user-interface types
and additional guidelines specific to Web pages and mobile applications
■ Create storyboards to show the sequence of forms used in a dialog
■ Discuss examples of system interfaces found in information systems
■ Define system inputs and outputs based on the requirements of the application
program
■ Design printed and on-screen reports appropriate for recipients
187
OPENIN
G CASE
Blue Sky
Mutual Fu
nds: A Ne
w Develo
pment Ap
proach
Jim William
s, vice pre
sident of f
inance for
Blue Sky M
utual
Funds, sp
oke first.
“There are
some thin
gs I like a
bout
this new
approach,
but other
things wo
rry me,”
he
told Gary
Johnson,
the compa
ny’s direct
or of infor
mation
technology
.
“This idea
of ‘growin
g’ the sys
tem throu
gh severa
l
iterations
makes a l
ot of sens
e to me. I
t is alway
s hard
for my pe
ople to kn
ow exactl
y what th
ey need a
new
informatio
n system
to do an
d what w
ill work b
est
for the co
mpany. So
, if they c
an get the
ir hands o
n the
system ea
rly, they c
an begin a
cceptance
testing an
d try
it out to se
e whether
it address
es their ne
eds in the
best
way.
“Let me s
ee if I und
erstand th
e big pictu
re, though
.
Your deve
lopment te
am and m
y investme
nt advisors
will
decide on
a few core
processes
that the sy
stem need
s to
support an
d then you
r team wil
l design an
d build a s
ystem
to suppor
t those co
re process
es. You w
ill do that
in a
mini-projec
t that will
last about
six weeks
. Then, yo
u will
continue a
dding mor
e function
ality throu
gh severa
l other
mini-projec
ts until the
system is
complete
and functio
ning
well. Is tha
t right?”
Jim was b
ecoming m
ore enthus
iastic abou
t this new
approach t
o system
developme
nt.
“Yes, that
’s the bas
ic idea,” G
ary said. “
Your users
need to u
nderstand
that the f
irst few v
ersions of
the
system w
on’t be co
mplete an
d may no
t be comp
letely
robust eit
her. But
these ear
ly version
s will giv
e them
something
to work w
ith and try
out. We a
lso need g
ood
feedback f
rom their a
cceptance
testing so
the system
will
be thoroug
hly tested
by the tim
e we are t
hrough.”
“I realize
that,” Jim
said. “My
people wi
ll like not
having to
think from
the very b
eginning a
bout every
thing
they need
the system
to do. The
y’ll like be
ing able to
try
things out
. As I said
earlier, I lik
e this appr
oach. How
ever,
the part I
don’t like
about this
approach
is that it w
ill be
more diffic
ult for you
to give me
a firm time
schedule a
nd
project co
st. That w
orries me
. In the p
ast, those
have
been two
of the m
ajor tools
we used
to monito
r a
project’s p
rogress. A
re you sa
ying that
now we w
on’t
have a sch
edule at a
ll? And yo
u want an
open budg
et?”
Jim frown
ed.
“It’s not a
s bad as i
t first sou
nds,” Gar
y said. “T
his
approach
is an ‘adap
tive’ appro
ach, by w
hich I mea
n that
because t
he system
is growing
, the proje
ct is more
open
ended. Th
e project
manager w
ill still cre
ate a sche
dule
and estim
ate the pr
oject cost
s, but she
won’t eve
n try
to identify
and lock
in all the
required f
unctionalit
y for
several of
the iteratio
ns. Becau
se the sys
tem’s sco
pe is
going to c
ontinually
be refined
over the f
irst few it
era-
tions, ther
e is the r
isk of ‘sco
pe creep.’
That is on
e of
the bigge
st risks w
ith adaptiv
e approac
hes. You
and I
should me
et with th
e project
manager
fairly frequ
ently
to ensure
that the s
cope is c
ontrolled
and the p
roject
doesn’t ge
t out of co
ntrol.”
“Okay,” J
im said. “Y
ou have co
nvinced m
e to try thi
s
new appro
ach. Howe
ver, let’s t
reat this p
roject as a
pilot
and see h
ow it work
s. If it’s su
ccessful, w
e will cons
ider
using this
iterative a
pproach o
n our othe
r projects.
” Jim
and Gary
agreed th
at a pilot
was the b
est way t
o get
started. G
ary then h
eaded off
to meet w
ith the pro
ject
manager a
nd get the
project sta
rted.
Overvie
w
Chapter 8
introduced
you to the
SDLC and
the variou
s alternati
ves for org
aniz-
ing softwa
re develop
ment activ
ities. By n
ow, you m
ay be ask
ing yourse
lf such
questions
as:
■ “How ar
e all these
activities c
oordinated
?”
■ “How d
o I know
which task
s to do fir
st?”
■ “How is
the work a
ssigned to
the differe
nt teams a
nd team m
embers?”
■ “How do
I know wh
ich parts o
f the new
system sho
uld be dev
eloped firs
t?”
The purp
ose of pr
oject plan
ning and
project m
anagemen
t is to br
ing
some ord
er to all
these (som
etimes see
mingly un
related) ta
sks. As y
ou will
learn in t
his chapte
r, the suc
cess of an
y given p
roject hig
hly depen
ds on
the skills
and abilit
ies of tho
se manag
ing the p
roject. Yo
u will als
o learn
that proje
ct manage
ment skill
s aren’t o
nly for pr
oject man
agers—tha
t all the
project tea
m membe
rs contrib
ute to the
manageme
nt of the
project an
d thus
to its succ
ess.
254 PART
4 ■ Projec
ts and Proj
ect Manage
ment
Each chapter provides a chapter outline,
states clear learning objectives, and
includes an opening case study.
FEATURES
because the packages contain only the classes from the use case interaction
diagrams that were developed in this chapter.
The other symbol used on a package diagram is a dashed arrow, which
represents a dependency relationship. The arrow’s tail is connected to the
package that is dependent, and the arrowhead is connected to the independent
package. Dependency relationships are used in package diagrams, class dia-
grams, and even interaction diagrams. A good way to think about a depen-
dency relationship is that if one element changes (the independent element),
the other (dependent) element might also have to be changed. Dependency
relationships can be between packages or between classes within packages.
Figure 11-19 indicates that several classes in the view layer are dependent on
classes in the domain layer. Thus, for example, if a change is made in the
ProductItem class, the SearchItemWindow class should be evaluated to capture
that change. However, the reverse isn’t necessarily true. Changes to the view
layer usually don’t carry through to the domain layer.
Two examples of dependency relationships are given in Figure 11-19. The
first, we have seen, is between classes. Another example is less detailed and indi-
cates a dependency between packages. Figure 11-20 indicates that the view
layer and the domain layer depend on the data access layer. For some simple
queries against the database, the view layer may directly access the data layer
without requiring any involvement of the domain layer. These dependencies
indicate that changes to the data structures, as reflected in the data access layer,
usually require changes at the domain layer and the view layer.
FIGURE 11-20 RMO subsystem packages
SearchItemWindow
AddItemWindow
AddAccessWindow
CustLoginWindow
Sales Subsystem
CartHandler
OnlineCart
CartItem
ReturnItem
Sale
SaleItem
AccessoryPackage
SaleTxn
Data Access Layer
PromoOfferingDA
ProductItemDA
InventoryItemDA
CustomerDA
OnlineCartDA
CartItemDA
ViewAccessWinodw
DisplayItem+AccessWindow
DisiplayItemWindow
Reporting Subsystem
Customer Account Subsystem
CustomerHandler
Customer
Address
FamilyLink
Message
Suggestion
Account CustPartnerCredit
Order Fulfillment Subsystem
Shipment Shipper
View Layer
Domain Layer
ProductItem
Inventory Item
PromoPartner
Promotion
PromoOffering
Marketing Subsystem
dependency relationship a relation-
ship between packages, classes, or use cases
in which a change in the independent item
requires a change in the dependent item
354 PART 5 ■ Advanced Design and Deployment Concepts
Note that each EBP (and thus each use case) occurs in response to a busi-
ness event. An event occurs at a specific time and place, can be described, and
should be remembered by the system. Events drive or trigger all processing that
a system does, so listing events and analyzing them makes sense when you need
to define system requirements by identifying use cases.Event Decomposition TechniqueAs stated previously, the event decomposition technique focuses on identifying
the events to which a system must respond and then determining how a system
must respond (i.e., the system’s use cases). When defining the requirements for
a system, it is useful to begin by asking, “What business events occur that will
require the system to respond?” By asking about the events that affect the
system, you direct your attention to the external environment and look at the
system as a black box. This initial perspective helps keep your focus on a high-
level view of the system (looking at the scope) rather than on the inner workings
of the system. It also focuses your attention on the system’s interfaces with out-
side people and other systems.Some events that are important to a retail store’s charge account processing
system are shown in Figure 3-2. The functional requirements are defined by
use cases based on six events. A customer triggers three events: “customer pays a bill,”
“customer makes a charge,” and “customer changes address.” The system responds
with three use cases: Record a payment, Process a charge, or Maintain customer
data. Three other events are triggered inside the system by reaching a point in time:
“time to send out monthly statements,” “time to send late notices,” and “time to
FIGURE 3-2 Events in a charge account processing system that lead to use cases
Charge account processing system
event something that occurs at a specific
time and place, can be precisely identified, and
must be remembered by the system
CHAPTER 3 ■ Use Cases 71
usually dis
tributed ac
ross geogr
aphic loca
tions. App
lication pr
ograms ca
n
access any
server and
usually ma
ke databas
e updates
to only on
e server.
Servers pe
riodically
exchange
update inf
ormation
to synchro
nize their
database c
opies.
■ Partition
ed databa
se server
architectu
re—Multip
le distribu
ted databa
se
servers are
used and t
he databas
e schema i
s partition
ed, with so
me conten
t
on only on
e server an
d some co
ntent copi
ed on all s
ervers. Co
ntent that
appears on
multiple se
rvers is pe
riodically
synchroniz
ed.
■ Cloud-ba
sed datab
ase serve
r architec
ture—Thi
s architect
ure isn’t re
ally
a separate
architectur
e. Rather,
it is a spec
ific implem
entation o
f one or
more of th
e other arc
hitectures
by using t
he services
of a cloud
computing
provider, s
uch as Am
azon or G
oogle. The
cloud prov
ider hosts
the databa
se
on multipl
e servers d
istributed
across a p
redefined
geographic
area.
Applicatio
n program
s access da
tabase serv
ices throug
h the clou
d provider
.
The cloud
provider t
akes care
of databas
e synchron
ization an
d backup.
The prima
ry advanta
ge of sing
le databas
e server a
rchitecture
is its simp
lic-
ity. There
is only on
e server to
manage, a
nd all clien
ts are prog
rammed to
direct
requests to
that server
. Disadvan
tages inclu
de suscept
ibility to s
erver failu
re and
possible o
verload o
f the netw
ork or se
rver. All
application
programs
that
FIGURE 1
2-16 Int
eraction am
ong proble
m domain
class, data
access cla
ss, and the
DBMS
promotio
nID
season
year
Promotio
n
descripti
on
startDate
endDate
getProm
otionID()
setProm
otionID()
getSeas
on()
setSeas
on()
getYear(
)
setYear(
)
getDesc
ription()
setDesc
ription()
getStartD
ate()
setStartD
ate()
getEndD
ate()
setEndD
ate()
Data upda
tes
and querie
s
Extracted
data and
processing
results
Database
DBMS
Data
SQL
dbConne
ction
Promotio
nDA
updateP
romotion
ID()
updateS
eason()
updateY
ear()
updateD
escriptio
n()
updateS
tartDate(
)
updateE
ndDate()
addNew
()
delete()
find()
// find
() – fi
nd a Pr
omotion
in the
databa
se
// base
d on Pr
omotion
ID
public
Promoti
on find
(int pr
omotion
ID)
thro
ws NotF
oundExc
eption
{
openCon
nection
(dbConn
ection)
;
// Buil
d an SQ
L query
String
query;
query =
“SELEC
T * FRO
M Promo
tion”;
query +
= ” WHE
RE Prom
otionID
= “;
query +
= promo
tionID;
try
{
resul
t = exe
cuteQue
ry(quer
y);
}
// rema
ining s
tatemen
ts not
shown
partitione
d databas
e server
architectu
re multipl
e distributed
data-
base servers
are used and
the database
schema
is partitioned
, with some
content on o
nly one
server and s
ome content
copied on al
l servers
cloud-bas
ed databa
se server
architectu
re use of
a cloud com
puting
service provi
der to provid
e some or al
l database
services
388 PART
5 ■ Advan
ced Design
and Deploy
ment Conce
pts
Margin defi nitions of key terms are placed in the
text when the term is fi rst used. Each chapter
includes extensive fi gures and illustrations
designed to clarify and summarize key points
and to provide examples of UML models and
other deliverables produced by an analyst.
FEATURES
Chapter Summary
Multilayer design of new systems isn’t limited to architec-
tural design. Detailed object-oriented design also identi-
fies the various levels in a system. The identification of
classes and their responsibilities follows the three-layer
pattern explained in this chapter. The three layers are
the view layer, the business (or logic) layer, and the data
access layer.
Three-layer design is part of the overall movement in
systems design based on design patterns. A design pattern
is a standard solution or template that has proven to be
effective to a particular requirement in systems design.
The other pattern, introduced in Chapter 10, is a use
case controller, which addresses the need to isolate the
view layer from the business layer in a simple way that
limits coupling between the two layers.
Detailed design is use case driven in that each use
case is designed separately. This type of design is called
use case realization. The two primary models used for
detailed design are the design class diagram and the
sequence diagram. Design class diagrams were discussed
in Chapter 10.
Detailed design of use cases entails identifying prob-
lem domain classes that collaborate to carry out a use
case. Each input message from an external actor triggers
a set of internal messages. Using a sequence diagram or a
communication diagram, the designer identifies and
defines all these internal messages. In the first cut, only
the problem domain classes and their internal messages
are identified. Next, the solution is completed by adding
the classes and messages for the view layer and the data
access layer.
The final step is to convert each message, along with
the passed parameters and return values, into method sig-
natures located in the correct classes. This information is
used to update the design class diagram. Changes are also
made to the design class diagram to show required visi-
bility between the classes in order to send messages in the
sequence diagrams.
As classes are identified during the design process,
they are added to the DCD. The DCD can also be parti-
tioned into several layers or into subsystems. Package dia-
grams are used to partition the DCD into appropriate
packages. Dependency between the classes and the
packages is also added to the package diagram.
Popular design patterns include the adapter pattern,
factory pattern, singleton pattern, and observer pattern.
The adapter pattern implements the design principle
“protection from variations” by allowing a changing
piece of the system to simply plug into a more stable
part of the system. When the pluggable piece of the sys-
tem needs to change, it can just be unplugged and the
updated component can be plugged in.
The factory and singleton patterns have much in
common. Both return a reference to a specific object.
Both allow only one instance of that object to exist in
the system. The difference is that the factory pattern
enforces a single occurrence for utility classes and the sin-
gleton only enforces a single occurrence for itself.
Key Terms
activation lifeline 335
communication diagrams 332
dependency relationship 354
design patterns 330
persistent classes 345
separation of responsibilities 345
sequence diagrams 332
use case realization 328
Review Questions
1. What is meant by the term use case realization?
2. What are the benefits of knowing and using design
patterns?
3. What is the contribution to systems development by
the Gang of Four?
4. What are the five components of a standard design
pattern definition?
5. List five elements included in a sequence diagram.
6. How does a sequence diagram differ from an SSD?
7. What is the difference between designing with CRC
cards and designing with sequence diagrams?
8. Explain the syntax of a message on a sequence
diagram.
9. What is the purpose of the first-cut sequence
diagram? What kinds of classes are included?
10. What is the purpose of the use case controller?
11. What is meant by an activation lifeline? How is it
used on a sequence diagram?
CHAPTER 11 ■ Object-Oriented Design: Use Case Realizations 361
Problems and Exercises1. Write a one-page paper that distinguishes among
the fundamental purposes of the analysis phase, the
design phase, and the implementation phase of the
traditional predictive SDLC.2. Describe an information system project that might
have three subsystems. Discuss how three iterations
might be used for the project.3. Why might it make sense to teach analysis and
design phases and activities sequentially, like a
waterfall, even though iterations are, in practice,
used in nearly all development projects?
4. List some of the models that architects create to
show different aspects of a house they are designing.
Explain why several models are needed.
5. What models might an automotive designer use to
show different aspects of a car?6. Sketch and write a description of the layout of your
room at home. Are both the sketch and the written
description considered models of your room?
Which is more accurate? More detailed? Which
would be easier to follow by someone unfamiliar
with your room?7. Describe a technique you use to help you complete
the activity “Get to class on time.” What are some
of the tools you use with this technique?
8. Describe a technique you use to make sure you get
assignments done on time. What are some of the
tools you use with this technique?9. What are some other techniques you use to help you
complete activities in your life?10. There are at least two approaches to the SDLC, two
approaches to software construction and modeling,
and a long list of techniques and models. Discuss
the following reasons for this diversity of
approaches: The field is young; the technology
changes quickly; different organizations have dif-
ferent needs; there are many types of systems;
developers have widely different backgrounds.
11. Go to the campus placement office to gather some
information on companies that recruit information
systems graduates. Try to find any information
about the companies’ approaches to developing
systems. Is their SDLC described? Do any mention
an IDE or a visual modeling tool? Visit the compa-
nies’ Web sites to look for more information.
12. Visit the Web sites of a few leading information
systems consulting firms. Try to find information
about their approaches to developing systems. Are
their SDLCs described? Do the sites mention any
tools, models, or techniques?
Case Study
A “College Education Completion” Methodology
Given that you are reading this book, you are probably a
college student working on a degree. Think about complet-
ing college as a project—a big project lasting many years
and costing more than you might want to admit. Some
students do a better job managing their college completion
projects than others. Many fail entirely (certainly not you),
and most complete college late and way over budget
(again, certainly not you).As with any other project, to be successful, you need
to follow some sort of “college education completion”
methodology—that is, a comprehensive set of guidelines
for completing activities and tasks from the beginning of
planning for college through to the successful completion.
1. What are the phases that your college education
completion life cycle might have?
2. What are some of the activities included with each
phase?
3. What are some of the techniques you might use to
help complete those activities?
4. What models might you create? Differentiate the
models you create to get you through college from
those that help you plan and control the process of
completing college.5. What are some of the tools you might use to help you
complete the models?
CHAPTER 8 ■ Approaches to System Development 249
RUNNI
NG CA
SE STU
DIES
Commu
nity Boa
rd of Re
altors
The Board
of Realtor
s Multiple
Listing Ser
vice (MLS
)
system isn
’t very la
rge in ter
ms of use
cases and
domain c
lasses. In
that resp
ect, the
functional
requireme
nts are sim
ple and w
ell unders
tood. ML
S
needs a W
eb site wi
th public
access to
the listing
s,
and it also
needs to a
llow agen
ts and bro
kers to lo
g
in to the s
ystem to a
dd and up
date listin
gs. There
is
very little
back-end
administra
tive data
maintenan
ce
required,
except to
add or up
date a rea
l estate of
fice
or agent.
1. Comp
ared to the
Tradeshow
application
described
in Chapter
1, how lon
g might th
is project
take,
and which
approach
to the SDL
C would b
e most
appropriat
e?
2. If you
use a pred
ictive SDL
C, how m
uch time
might eac
h phase o
f the proje
ct take? H
ow
much ove
rlap of ph
ases migh
t you plan
for?
Be specific
about how
you would
overlap
the phases
.
3. If you
use an ada
ptive SDLC
, how man
y iteration
s
might you
plan to inc
lude? Wha
t use cases
would
you analyz
e, design,
and imple
ment in th
e first
iteration?
What use
cases wou
ld you wo
rk on in
the second
iteration?
In addition
al iteration
s?
Think in t
erms of ge
tting the c
ore functio
nality
implement
ed early an
d then bui
lding the s
upport-
ing functio
nality.
4. Let us
say this pr
oject focus
ed on Web
access to
the MLS.
If you also
plan to de
ploy a sma
rtphone
application
for use by
the public
and by the
agents
and broke
rs, how m
ight this a
ffect your
choice of
the approa
ch to the S
DLC? Wh
at are the
implica-
tions for i
ncluding t
he smartp
hone appl
ication in
the initial
project ver
sus having
a separate
project
for wireles
s later?
5. Consi
der using
incrementa
l developm
ent to
include th
e Web app
lication an
d the wire
less sup-
port. Desc
ribe what
would be
included in
the first
and secon
d deploym
ents of the
project. Ta
ke into
considerat
ion that yo
u might w
ant to wor
k on
some initia
l problem
solving for
requireme
nts,
design, an
d impleme
ntation of
the wireles
s support
at the sam
e time you
are workin
g on the W
eb
application
.
The Spr
ing Bre
aks ‘R’
Us Trav
el Servi
ce
Recall fro
m Chapte
r 2 that
SBRU’s in
itial syste
m
included
four majo
r subsyste
ms: Reso
rt relation
s,
Student bo
oking, Acc
ounting an
d finance,
and Socia
l
networkin
g. The
project c
alls for
an adapt
ive
approach
to the SD
LC for sev
eral reason
s. One, it
is
relatively l
arge in sco
pe. Two, t
here is a d
iverse set o
f
users in se
veral func
tional area
s, internal
and extern
al
to the co
mpany an
d in seve
ral foreig
n countri
es.
Three, the
project ne
eds to us
e an asso
rtment of
newer tech
nologies th
at can com
municate a
nytime and
anywhere.
1. The SB
RU inform
ation syste
m includes
four major
subsystem
s: Resort r
elations, S
tudent boo
king,
Accountin
g and fina
nce, and S
ocial netw
orking.
Although
you have o
nly worke
d with the
domain
model clas
s diagram
for the So
cial netwo
rking
subsystem
, list as ma
ny of the d
omain clas
ses
that would
probably b
e involved
in each of
the
subsystem
s. Note wh
ich classes
are used b
y more
than one s
ubsystem.
2. Based
on the ove
rlapping c
lasses, wh
at domain
classes see
m to be pa
rt of the co
re function
ality for
SBRU? Dr
aw a dom
ain model
class diagr
am that
shows the
se classes
and their a
ssociations
.
3. Let us
say you pl
an to impl
ement the
basic use
cases that
create and
maintain t
he classes
that are
part of the
core funct
ionally yo
u just mod
eled.
Describe w
hat domai
n classes y
ou would
focus on
in each ite
ration if y
ou assume
d that you
would
need two
iterations
for the ini
tial core fu
nctional-
ity and tw
o addition
al iteration
s to comp
lete each
of the sub
systems.
4. How
might you
use increm
ental deve
lopment to
get some c
ore functio
nality or s
ome subsy
stems
deployed a
nd put int
o use befo
re the pro
ject is
completed
?
(continued
on page 2
51)
250 PART
4 ■ Projec
ts and Proj
ect Manage
ment
End-of-chapter material includes a
detailed summary, an indexed list of
key terms, and ample review
questions.
Each chapter also includes a collection of
problems and exercises that involves additional
research or problem solving, an end-of-chapter
case study that invites students to complete
analysis and design tasks appropriate to the
chapter, four running cases that create
challenging and integrated course assignments,
and a list of further resources.
PREFACE
When we wrote the first edition of this textbook, the world of system develop-
ment was in a major transition period—from structured methodologies to
object-oriented methodologies. We were among the first to introduce a compre-
hensive treatment of object-oriented methodologies, and Systems Analysis and
Design in a Changing World, Sixth Edition, continues to be the leader in teach-
ing object-oriented techniques.
However, change continues. Today, many new initiatives and trends have
become firmly embedded in the world of system development. First and fore-
most is the ubiquitous access to the Internet throughout the global economy.
The resulting explosion of connectivity means that project teams are now dis-
tributed around the world. In addition, large providers (such as Microsoft) and
a proliferation of small providers now contribute to a wonderfully rich and var-
ied software development environment.
In order to manage system development teams in today’s distributed, fast-
paced, connected, ever-changing environment, the techniques for software devel-
opment and the approach to project management have expanded. Along with
the foundational project management principles, additional approaches and phi-
losophies provide new, success-oriented methodologies, such as iterative, incre-
mental development approaches. These are thoroughly covered in this edition.
Even though Systems Analysis and Design in a Changing World, Sixth
Edition, continues to be the leader in its field, with thorough treatment of such
topics as use cases, object-oriented modeling, comprehensive project manage-
ment, the unified modeling language, and Agile techniques, it was time to take
another step forward in textbook design. This edition uses an innovative
approach to teaching systems analysis and design, taking advantage of the new
teaching tools and techniques that are now available. As a result, not only is
systems analysis and design easier to learn by using this approach, it is also
easier to teach. It brings together the best approaches for teachers and students.
In this edition, we accomplish three major new objectives. First, we teach all
the essential principles of system development—principles that must be followed
in today’s connected environment. Second, we teach and explain the new meth-
odologies and techniques that are now available because of widespread connec-
tivity. Third, we have organized and revamped the textbook so that it teaches
these new concepts in a new way.
For example, Chapter 1 presents a complete iteration in the development of
a new system. Students get to see that complete iteration—from beginning to
end (through implementation and testing)—before having to learn abstract prin-
ciples or memorize terms. Also, the newly written running cases throughout the
book focus on current issues of communication and connectedness and take the
students through all aspects of system development. Along with the textbook
itself, there are teaching tools, such as video explanations of complex models
and topics. We have also expanded the Instructor’s Materials and enhanced the
aids available through CourseMate, our online resource. Additional online
chapters are also available to enhance and extend the learning experience.
xvi
We are excited about this new approach. The time is right for new materials
and new tools for teaching systems analysis and design. Instructors will find this
textbook intuitive, powerful, and easy to use. Students will find it engaging and
empowering. Many concepts are presented so the students can teach themselves,
with coaching and direction provided by the professor. It will be an incredible
experience to teach and learn with this textbook.
Innovations
This edition is innovative in many respects. It includes key concepts from tradi-
tional and object-oriented approaches, covers the use case–driven object-
oriented approach (with UML modeling being detailed in depth), emphasizes
Agile and iterative development, and incorporates the latest concepts in project
management. Also, the material is completely reorganized to better support
learning systems analysis and design.
Coverage of Object Orientation and Traditional
Analysis and Design
This textbook is unique in its integration of key systems-modeling concepts that
apply to the traditional structured approach and the object-oriented approach—
user goals and events that trigger system use cases, plus objects/entities that are
part of the system’s problem domain. We devote one chapter to identifying use
cases and another chapter to modeling key objects/entities, including coverage of
entity-relationship diagrams, while emphasizing UML domain model class dia-
grams. After completing these chapters, instructors can cover structured analysis
and design by including an online chapter, or they can focus on object-oriented
analysis and design by using the chapters in this textbook. It is assumed from
the beginning that everyone should understand the key object-oriented concepts.
The traditional approach isn’t discarded; key structured concepts are included.
But these days, most instructors are emphasizing the object-oriented approach.
Full Coverage of UML and the Object-Oriented Approach
The object-oriented approach presented in this textbook is based on the Unified
Modeling Language (UML 2.0) from the Object Management Group, as origi-
nated by Grady Booch, James Rumbaugh, and Ivar Jacobson. A model-driven
approach to analysis starts with use cases and scenarios and then defines prob-
lem domain classes involved in the users’ work. We include requirements model-
ing with use case diagrams, domain modeling, use case descriptions, activity
diagrams, and system sequence diagrams. The FURPS+ model is used to empha-
sis functional and nonfunctional requirements.
Design principles and design patterns are discussed in depth, and system
architecture is modeled by using UML component diagrams and package dia-
grams. Detailed design models are also discussed in detail, with particular atten-
tion given to use case realization with CRC cards, sequence diagrams, and
design class diagrams.
Project Management Coverage
Many undergraduate programs depend on their systems analysis and design
course to teach project management principles. To satisfy this need, we cover
project management by taking a four-pronged approach. First, specific project
management techniques, skills, and tasks are included and highlighted through-
out this book. This integration teaches students how to apply specific project
management tasks to the various activities of the systems development life cycle,
including iterative development. Second, complete coverage of project planning
and project management is included in a separate chapter. Third, we include a
120-day trial version of Microsoft Project 2010 Professional in the back of this
PREFACE xvii
book so students can obtain hands-on experience with this important tool.
Fourth, a more in-depth treatment of project management techniques and prin-
ciples is provided in an online chapter on this book’s Web site. This information
is based on the Project Management Body of Knowledge (PMBOK), as devel-
oped by the Project Management Institute—the primary professional organiza-
tion for project managers in the United States.
Organized for More Effective Learning
This edition’s innovative and entirely new organization starts with a complete
beginning-to-end example of system development, moves immediately to systems
analysis models and techniques, and then proceeds to system design concepts,
emphasizing system architecture, user interfaces, and system interfaces. The stu-
dent sees analysis and much of design covered in the first seven chapters. Next,
the text focuses on managing system development projects, including Agile
development, after the student has had a chance to understand what is actually
involved in system development. Finally, the text covers detailed design topics,
deployment topics, and current trends, going into more depth about such
contemporary approaches as the Unified Process, Extreme Programming,
and Scrum.
Coursemate Companion Web Site
Cengage Learning’s Systems Analysis and Design in a Changing World, Sixth
Edition, CourseMate brings course concepts to life with interactive learning,
study, and exam preparation tools that support the printed textbook. Watch
student comprehension soar as your class works with the printed textbook and
the textbook-specific Web site. CourseMate goes beyond the book to deliver
what you need! Learn more at cengage.com/coursemate.
Engagement Tracker
How do you assess your students’ engagement in your course? How do you
know your students have read the material or viewed the resources you have
assigned? How can you tell if your students are struggling with a concept?
With CourseMate, you can use the included Engagement Tracker to assess stu-
dent preparation and engagement. Use the tracking tools to see progress for the
class as a whole or for individual students. Identify students at risk early in the
course. Uncover which concepts are most difficult for your class. Monitor time
on task. Keep your students engaged.
Interactive Teaching and Learning Tools
CourseMate includes interactive teaching and learning tools:
■ Quizzes
■ Case projects
■ Flashcards
■ Videos
■ PowerPoint presentations
These assets enable students to review for tests, prepare for class, and
address the needs of students’ varied learning styles.
Interactive eBook
In addition to interactive teaching and learning tools, CourseMate includes an
interactive eBook. Students can take notes, highlight, search for, and interact
with embedded media specific to their book. Use it as a supplement to the
printed text or as a substitute—the choice is your students’ with CourseMate.
xviii PREFACE
Organization and Use
Systems Analysis and Design in a Changing World, Sixth Edition, includes this
printed textbook, electronic editions, and supporting online chapters. The cur-
rent printed textbook provides a compact, streamlined, and focused presentation
of those topics that are essential and most important for information systems
developers. The online chapters extend those concepts and provide a broader
presentation of several topics. The online chapters may be integrated into the
course or simply used as additional readings as prescribed by the instructor.
There are three major subject areas discussed in this book: systems analysis,
systems design, and project management. There are additional subject areas,
which are no less important but aren’t discussed in as much depth. These
include systems implementation, testing, and deployment. In addition, we have
taken an approach that is quite different from other texts. Because students
already have a basic understanding of systems analysis and design from
Chapter 1, we immediately present in-depth concepts related to systems analysis
and design. We present project management topics later in the text. This allows
students to learn those project management concepts after understanding the
elements of systems analysis and design. We think it will be more meaningful
for students at that point in the course.
Part 1: Introduction to Systems Development
Part 1, comprising Chapter 1 and Online Chapter A, presents an overview of
systems development. The first chapter begins by briefly explaining the objec-
tives of systems analysis and systems design. Then, it provides a detailed, con-
crete example of what is required in a typical software development project.
Many students who take a programming class think that programming is all
you need to develop software and deploy a system. This chapter and the rest of
the book should dispel that myth.
Online Chapter A, “The Role of the Systems Analyst,” describes the many
skills required of a systems analyst. It also discusses the various career options
available to information systems majors. For students who are new to the disci-
pline of information systems, this chapter will provide interesting and helpful
knowledge about information systems careers.
Part 2: Systems Analysis Tasks
Chapters 2 through 5 cover systems analysis in detail. Chapter 2 discusses sys-
tem requirements, analysis activities, and techniques for gathering information
about the business problem. Developing the right system solution is possible
only if the problem is accurately understood. Chapter 2 also explains how to
identify and involve the stakeholders and introduces the concept of models and
modeling. Chapters 3 and 4 teach modeling techniques for capturing the
detailed requirements for the system in a useful form. When discussing an infor-
mation system, two key concepts are particularly useful: the use cases that
define what the end users need the system to do and the data entities/domain
classes that users work with while carrying out their work tasks. These two con-
cepts—use cases and data entities/domain classes—are important no matter
what approach to system development is being used. Chapter 5 presents more
in-depth requirements models, such as use case descriptions, use case diagrams,
system sequence diagrams, and state machine diagrams.
Online Chapter B, “The Traditional Approach to Requirements,” presents
the traditional, structured approach to developing systems. To those instructors
and students who desire to learn about data flow diagrams and structured
English, this chapter provides an in-depth presentation.
All these modeling techniques provide in-depth analysis of user needs and
allow the analyst to develop requirements and specifications. Again, the purpose
PREFACE xix
of systems analysis is to thoroughly understand and specify the user’s needs and
requirements.
Part 3: Essentials of Systems Design
Chapters 6 and 7 provide the fundamental concepts related to systems design
and designing the user experience. Chapter 6 provides broad and comprehensive
coverage of important principles of systems design and architectural design. It
serves not only as a broad overview of design principles but also as a founda-
tion for later chapters that explain the detailed techniques, tasks, skills, and
models used to carry out design.
Chapter 7 presents additional design principles related to designing the user
interface and the system interfaces. Designing the user interface is a combination
of analysis and design. It is related to analysis because it requires heavy user
involvement and includes specifying user activities and desires. On the other
hand, it is a design activity because it is creating specific final components that
are used to drive the programming effort. The screens and reports and other
user interaction components must be precisely designed so they can be pro-
grammed as part of the final system. Systems interfaces occur when one infor-
mation system communicates or interacts with another information system
without human intervention. System interfaces are becoming increasingly impor-
tant because of Web services and cloud computing.
Part 4: Projects and Project Management
By this point, students will have a basic understanding of all the elements of sys-
tems development. Part 4 brings together all these concepts by explaining more
about the process of organizing and managing development projects. Chapter 8
describes different approaches to systems development in today’s environment,
including several important system development life cycle models and Agile
development. It is an important chapter to help you understand how projects
actually get executed.
Chapter 9 extends these concepts by teaching foundation principles of project
planning and project management. Every systems analyst is involved in helping
organize, coordinate, and manage software development projects. In addition,
most good students will eventually become team leaders and project managers.
The principles presented in Chapter 9 are essential to a successful career.
Online Chapter C, “Project Management Techniques,” goes into more
detail regarding the tools and techniques used by systems analysts and project
managers to plan and monitor development projects. For those instructors and
students who would like to learn specific project management skills, this is an
important chapter.
Part 5: Advanced Design and Deployment Concepts
Part 5 goes into more depth with respect to systems design, database design,
and other important issues related to effective and successful system develop-
ment and deployment.
Chapters 10 and 11 explain in detail the models, skills, and techniques used
to design software systems. As mentioned earlier, systems design is a fairly
complex activity, especially if it is done correctly. The objective of these
two chapters is to teach the student the various techniques—from simple to
complex—that can be used to effectively design software systems.
Chapter 12 explains how to design the database from the information
gleaned during analysis and the identification of the object classes. Other related
concepts, such as controls and security, are also presented in this chapter.
Chapter 13 describes the final elements in systems development: final testing,
deployment, maintenance, and version control. Chapter 14 wraps things up by
looking at current trends and the future of software development.
xx PREFACE
Designing Your Analysis and Design Course
There are many approaches to teaching analysis and design courses, and the
objectives of the course differ considerably from college to college. In some aca-
demic information systems departments, the analysis and design course is a cap-
stone course in which students apply the material learned in prior database,
telecommunications, and programming courses to a real analysis and design
project. In other information systems departments, analysis and design is used
as an introduction to the field of system development and is taken prior to
more specialized courses. Some information systems departments offer a two-
course sequence emphasizing analysis in the first semester and design and imple-
mentation in the second semester. Some information systems departments have
only one course that covers analysis and design.
The design of the analysis and design course is complicated even more by the
choice of emphasizing either traditional content or object-oriented content—again,
depending on local curriculum priorities. Additionally, the more iterative
approach to development in general has made choices about sequencing the anal-
ysis and design topics more difficult. For example, with iterative development, a
two-course sequence can’t be divided into analysis and then design as easily.
The objectives, course content, assignments, and projects have many varia-
tions. What we offer below are some suggestions for using this textbook in vari-
ous approaches to the course.
Object-Oriented Analysis and Design Course
This is the course we designed the printed textbook to support, so all the
printed chapters but none of the online chapters are included. Note that object-
oriented design is included in detail. The course covers object-oriented analysis
and design, user and system interface design, database design, controls and secu-
rity, and implementation and testing. It is usually assumed that the projects will
use custom development, including Web development. The course emphasizes
iterative development with three-layer architecture, project management, infor-
mation gathering, and management reporting. One-semester courses are usually
limited to completing some prototypes of the user interface to give students clo-
sure. Sometimes, this course is spread over two semesters, with some implemen-
tation of an actual system in the second semester for a more complete
development experience. Iterative development is emphasized.
A suggested outline for a course emphasizing object-oriented development is:
Chapter 1: From Beginning to End: An Overview of Systems Analysis
and Design
Chapter 2: Investigating System Requirements
Chapter 3: Use Cases
Chapter 4: Domain Modeling
Chapter 5: Extending the Requirements Models
Chapter 6: Essentials of Design and the Design Activities
Chapter 7: Designing the User and System Interfaces
Chapter 8: Approaches to System Development
Chapter 9: Project Planning and Project Management
Chapter 10: Object-Oriented Design: Principles
Chapter 11: Object-Oriented Design: Use Case Realizations
Chapter 12: Databases, Controls, and Security (combine)
Chapter 13: Making the System Operational
Chapter 14: Current Trends in System Development
PREFACE xxi
Traditional Analysis and Design Course
A traditional systems analysis and design course provides coverage of activities and
tasks by using structured analysis, user and system interface design, database
design, controls and security, and implementation and testing. It is usually assumed
that the project will use custom development, including Web development. The
course emphasizes the SDLC, project management, information gathering, and
management reporting. One-semester courses are usually limited to completing
some prototypes of the user interface to give students closure. Sometimes, this
course is spread over two semesters, with some implementation of an actual system
in the second semester for a more complete development experience.
For this approach to the analysis and design course, a reasonable outline
would omit chapters and sections detailing object orientation and possibly cur-
rent trends but include the online chapters on the role of the systems analyst
and on traditional structured analysis. However, object-oriented concepts are
introduced throughout the text, so students will still be familiar with them.
Additionally, because of the amount of material to cover, the online chapter
detailing project management, financial feasibility, and scheduling might
be omitted.
A suggested outline for a course emphasizing the traditional structured
approach is:
Chapter 1: From Beginning to End: An Overview of Systems Analysis
and Design
Online Chapter A: The Role of the Systems Analyst
Chapter 2: Investigating System Requirements
Chapter 3: Use Cases
Chapter 4: Domain Modeling
Online Chapter B: The Traditional Approach to Requirements
Chapter 6: Essentials of Design and the Design Activities
Chapter 7: Designing the User and System Interfaces
Chapter 8: Approaches to System Development
Chapter 9: Project Planning and Project Management
Chapter 12: Databases, Controls, and Security (combine)
Chapter 13: Making the System Operational
In-Depth Analysis and Project Management
Some courses cover object-oriented systems analysis methods in more depth and
briefly survey structured analysis—with not much about object-oriented design—
while emphasizing project management. Sometimes, these courses are graduate
courses; sometimes, they assume design and implementation are covered in more
technical courses. In some cases, it might be assumed that packages are likely
solutions rather than custom development, so defining requirements and manag-
ing the process are more important than design activities. The online chapters
covering the role of the systems analyst, the traditional approach to structured
analysis, and project management would be included.
A suggested outline for a course emphasizing object-oriented analysis, with
in-depth coverage of project management, is:
Chapter 1: From Beginning to End: An Overview of Systems Analysis
and Design
Online Chapter A: The Role of the Systems Analyst
Chapter 2: Investigating System Requirements
Chapter 3: Use Cases
xxii PREFACE
Chapter 4: Domain Modeling
Chapter 5: Extending the Requirements Models
Online Chapter B: The Traditional Approach to Requirements
Chapter 6: Essentials of Design and the Design Activities
Chapter 7: Designing the User and System Interfaces
Chapter 8: Approaches to System Development
Chapter 9: Project Planning and Project Management
Online Chapter C: Project Management
Chapter 14: Current Trends in System Development
Available Support
Systems Analysis and Design in a Changing World, Sixth Edition, includes
teaching tools to support instructors in the classroom. The ancillary materials
that accompany the textbook include an Instructor’s Manual, solutions, test
banks and test engine, PowerPoint presentations, and figure files. Please contact
your Cengage Course Technology sales representative to request the Teaching
Tools CD-ROM if you haven’t already received it. Or go to the Web page for
this book at login.cengage.com to download all these items.
The Instructor’s Manual
The Instructor’s Manual includes suggestions and strategies for using the text,
including course outlines for instructors that emphasize the traditional struc-
tured approach or the object-oriented approach. The manual is also helpful for
those teaching graduate courses on analysis and design.
Solutions
We provide instructors with answers to review questions and suggested solu-
tions to chapter exercises and cases. Detailed traditional and UML object-
oriented models are included for all exercises and cases that ask for modeling
solutions.
ExamView
This objective-based test generator lets the instructor create paper, LAN, or
Web-based tests from test banks designed specifically for this Course
Technology text. Instructors can use the QuickTest Wizard to create tests in
fewer than five minutes by taking advantage of Course Technology’s question
banks or instructors can create customized exams.
Plug and Play!
Jumpstart your course with customizable, text-specific content within your
Course Management System!
■ Jumpstart—Instructors simply load a WebTutor cartridge or e-Pack into
their Course Management System.
■ Content—Text-specific content, media assets, quizzing, Web links, discus-
sion topics, interactive games and exercises, and more.
■ Customizable—Instructors can easily blend, add, edit, reorganize, or delete
content.
Whether you want to Web-enable your class or put an entire course online,
WebTutor delivers! Visit academic.cengage.com/webtutor to learn more.
PREFACE xxiii
Product Description
WebTutor and WebTutor Toolbox products are Course Cartridges and e-Packs
that provide content natively on a Course Management System (WebCT,
BlackBoard, Angel, D2L, and eCollege). The purpose of the product is to pro-
vide electronic solutions in an easy-to-use format with little upfront costs to
instructors.
For more information on how to bring WebTutor to your course, instruc-
tors should contact their Cengage Learning sales representative.
PowerPoint Presentations
Microsoft PowerPoint slides are included for each chapter. Instructors might use
the slides in a variety of ways, such as teaching aids during classroom presenta-
tions or as printed handouts for classroom distribution. Instructors can add
their own slides for additional topics they introduce to the class.
Figure Files
Figure files allow instructors to create their own presentations by using figures
taken directly from this text.
Credits and Acknowledgments
We have been very gratified as authors to receive so many supportive and
enthusiastic comments about Systems Analysis and Design in a Changing
World. Students and instructors in the United States and Canada have found
our text to be the most up-to-date and flexible book available. The book has
also been translated into many languages and is now used productively in
Europe, Australia, New Zealand, India, China, and elsewhere. We truly thank
everyone who has been involved in all the editions of our textbook.
This sixth edition was managed by Kate Mason, who was charged with
recruiting a new developmental editor, negotiating with the production depart-
ment for an accelerated writing and editing schedule, and dealing with numer-
ous author uncertainties and scheduling conflicts. Our developmental editor,
Kent Williams, was charged with the daunting task of pulling together material
that had been completely reorganized and submitted in what probably seemed
like a random order by what probably seemed like mad professors.
Last but certainly not least, we want to thank all the reviewers who worked
so hard for us—beginning with an initial proposal and continuing throughout
the completion of all six editions of this text. We were lucky enough to have
reviewers with broad perspectives, in-depth knowledge, and diverse preferences.
We listened very carefully, and the text is much better as a result of their input.
Reviewers for the various editions include:
Rob Anson, Boise State University
Marsha Baddeley, Niagara College
Teri Barnes, DeVry Institute—Phoenix
Robert Beatty, University of Wisconsin—Milwaukee
James Buck, Gateway Technical College
Anthony Cameron, Fayetteville Technical Community College
Genard Catalano, Columbia College
Paul H. Cheney, University of Central Florida
Kim Church, Oklahoma State University
Jung Choi, Wright State University
Jon D. Clark, Colorado State University
Mohammad Dadashzadeh, Oakland University
Lawrence E. Domine, Milwaukee Area Technical College
Gary Garrison, Belmont University
Cheryl Grimmett, Wallace State Community College
xxiv PREFACE
Jeff Hedrington, University of Phoenix
Janet Helwig, Dominican University
Susantha Herath, St. Cloud State University
Barbara Hewitt, Texas A&M University
Ellen D. Hoadley, Loyola College in Maryland
Jon Jasperson, Texas A&M University
Norman Jobes, Conestoga College—Waterloo, Ontario
Gerald Karush, Southern New Hampshire University
Robert Keim, Arizona State University
Michael Kelly, Community College of Rhode Island
Rajiv Kishore, The State University of New York—Buffalo
Rebecca Koop, Wright State University
Hsiang-Jui Kung, Georgia Southern University
James E. LaBarre, University of Wisconsin—Eau Claire
Ingyu Lee, Troy University
Terrence Linkletter, Central Washington University
Tsun-Yin Law, Seneca College
David Little, High Point University
George M. Marakas, Indiana University
Roger McHaney, Kansas State University
Cindi A. Nadelman, New England College
Bruce Neubauer, Pittsburgh State University
Michael Nicholas, Davenport University—Grand Rapids
Mary Prescott, University of South Florida
Alex Ramirez, Carleton University
Eliot Rich, The State University of New York—Albany
Robert Saldarini, Bergen Community College
Laurie Schatzberg, University of New Mexico
Deborah Stockbridge, Quincy College
Jean Smith, Technical College of the Lowcountry
Peter Tarasewich, Northeastern University
Craig VanLengen, Northern Arizona University
Bruce Vanstone, Bond University
Haibo Wang, Texas A&M University
Terence M. Waterman, Golden Gate University
All of us involved in the development of this text wish you all the best as
you take on the challenges of analysis and design in a changing world.
—John Satzinger
—Robert Jackson
—Steve Burd
PREFACE xxv
This page intentionally left blank
PART 1
An Introduction to Systems
Development
Chapter 1
From Beginning to End:
An Overview of Systems
Analysis and Design
Optional Online Chapter A
The Role of the Systems
Analyst
1
This page intentionally left blank
1
From Beginning to End:
An Overview of Systems
Analysis and Design
Chapter Outline
■ Software Development and Systems Analysis and Design
■ Systems Development Life Cycle
■ Introduction to Ridgeline Mountain Outfitters
■ Iterative Development
■ Developing RMO’s Tradeshow System
■ Where You Are Headed—The Rest of This Book
Learning Objectives
After reading this chapter, you should be able to:
■ Describe the purpose of systems analysis and design in the development of
information systems
■ Describe the characteristics of iterative systems development
■ Explain the six core processes of the Systems Development Life Cycle
■ Identify key documents that are used in planning a project
■ Identify key diagrams used in systems analysis and systems design
■ Explain the utility of identifying use cases in systems development
■ Explain the utility of identifying object classes in systems development
3
Software Development and
Systems Analysis and Design
Computers are everywhere today, and microchips impact every part of our lives.
We live in a world not only of ubiquitous computing but of pervasive communi-
cation and connectivity. An incredibly large part of our everyday lives depends
on computer chips, connection links, and application software.
You have grown up in this world of high technology. You use smartphones,
laptops, iPads, notepads, electronic game equipment, and so on. Your mobile
devices provide daily (if not hourly) text messages, tweets, videos, snapshots,
Internet access, games, and much more. Many of you have already developed
your own application software or you have a friend who has written applica-
tions for laptops, smartphones, iPads, or Facebook. Some of you have taken
programming classes; others of you have taught yourself how to write computer
application programs. Given that we live in this world of high-tech gadgets, we
might ask, “What is systems analysis and design, and why is it important?”
How does the development of new technology and new application software
utilize systems analysis and design? In other words, what role does systems anal-
ysis and design play in the development of high-tech solutions and applications?
First, let us provide two important definitions. A computer application
is a computer software program that executes on a computing device to carry
out a specific function or set of related functions. Sometimes, computer applica-
tion is shortened to app (such as an iPhone app or a Facebook app). An
information system is a set of interrelated computer components that collects,
processes, stores (usually in a database), and provides as output the information
needed to complete business tasks. Although these terms are sometimes used
synonymously, an application usually refers to only the computer software
involved, whereas an information system may include the software, the data-
base, and even the related manual processes. Examples of computer applications
include browsers that access the Internet to play games or calendaring apps.
Figure 1-1 shows a typical mobile digital device.
Why is systems analysis and design important in the development of infor-
mation systems? To answer that question, let us consider an analogous
FIGURE 1-1
Typical mobile digital device
computer application (app) a com-
puter software program that executes on a
computing device to carry out a specific
function or set of related functions
information system a set of interre-
lated computer components that collects,
processes, stores, and provides as output the
information needed to complete business tasks
4 PART 1 ■ An Introduction to Systems Development
situation: the art and science of creating a beautiful building. In this scenario,
there is the buyer who has the vision, the builder who will construct the build-
ing, and the architect who serves as the bridge between the buyer and the
builder. The architect helps the buyer develop the vision but must also commu-
nicate the building’s specifications to the builder. In doing so, the architect uses
various tools to first capture the vision from the buyer and then provide the
builder with instructions—including such tools as line drawings, blueprints, to-
scale models, detail specifications, and even on-site inspections.
Just as a builder doesn’t start construction without plans, programmers
don’t just sit down and start writing program code. They need someone (maybe
themselves) to function like an architect—planning, capturing the vision, under-
standing details, specifying needs—before writing the code and verifying that it
satisfies the vision. The software architect has to be able to understand and cap-
ture the vision of the persons funding the project. Usually, we call this person a
systems analyst. In situations where you are the programmer as well as the ana-
lyst, it might be easy to keep track of the details without writing them down.
However, in today’s world, with some system development teams distributed
worldwide, you may only be responsible for part of the programming, with the
rest handled by team members around the world. In a distributed team situa-
tion, it is much more important to have written documents to assist in under-
standing, capturing, explaining, and specifying the software application.
In a nutshell, systems analysis and design (SA&D) is about providing the
tools and techniques to you, the developer, so you can understand the need
(business need), capture the vision, define a solution, communicate the vision
and the solution, build the solution and direct others in building the solution,
confirm that the solution meets the need, and launch the solution application.
Included in SA&D are all the skills, steps, guidelines, and tools that support
and lead up to the actual programming of the system. SA&D includes such
“soft” skills as interviewing and talking to users as well as such “hard” (more
technical) skills as detailing specifications and designing solutions. Many of the
technical skills are associated with creating models that capture specifications or
define solutions. In this book, you will learn all these skills as well as how they
work together to develop an information system.
Let us conclude this section with a few more definitions. Systems analysis
consists of those activities that enable a person to understand and specify what
the new system should accomplish. The operative words here are “understand”
and “specify.” Systems analysis is much more than simply a brief statement of
the problem. For example, a customer management system must keep track of
customers, register products, monitor warranties, and keep track of service
levels, among many other functions—all of which have myriad details. Systems
analysis describes in detail the “what” that a system must do to satisfy the need
or to solve the problem.
Systems design consists of those activities that enable a person to describe
in detail the system that solves the need. The operative word in this case is
“solves.” In other words, systems design describes “how” the system will work.
It specifies in detail all the components of the solution system and how they
work together to provide the desired solution.
Systems Development Life Cycle
Initial development of a new system is usually done as a project. What this
means is that the activities required to develop a new system are identified,
planned, organized, and monitored. We can think of a project as a planned
undertaking that has a beginning and an end and produces some definite result.
Some projects are very formal, whereas others are so informal they can barely
be recognized as projects.
systems analysis those activities that
enable a person to understand and specify what
the new system should accomplish
systems design those activities that
enable a person to define and describe in detail
the system that solves the need
project a planned undertaking that has a
beginning and an end, and that produces some
definite result
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 5
To manage a project with analysis, design, and other development activities,
you need a project management framework to guide and coordinate the work of
the project team. The Systems Development Life Cycle (SDLC) identifies all
the activities required to build, launch, and maintain an information system.
Normally, the SDLC includes all the activities that are part of systems analysis,
systems design, programming, testing, and maintaining the system as well as
other project management processes that are required to successfully launch and
deploy the new information system.
There are many approaches to the SDLC and many variations for projects
that have various needs. However, there is a core set of processes that is always
required, even though there is also an incredible number of variations of these
core processes—in how each process is planned and executed and in how the
processes are combined into a project. Here are six core processes required in
the development of any new application:
1. Identify the problem or need and obtain approval to proceed.
2. Plan and monitor the project—what to do, how to do it, and who does it.
3. Discover and understand the details of the problem or the need.
4. Design the system components that solve the problem or satisfy the need.
5. Build, test, and integrate system components.
6. Complete system tests and then deploy the solution.
There are many ways to implement these six core processes of the SDLC.
An information systems development process is the actual approach used
to develop a particular information system. Most information systems you will
develop are conceived and built to solve organizational problems, which are
usually very complex, thus making it difficult to plan and execute a develop-
ment project. In fact, many projects end up being much larger than expected—
often resulting in late deliveries that are over budget. During the last 10 years,
several new information systems development processes have been developed to
enhance project success. One of the newer and more effective ones is called
Agile Development. The basic philosophy of Agile Development is that neither
team members nor the user completely understands the problems and complexi-
ties of a new system, so the project plan and the execution of the project must
be responsive to unanticipated issues. It must be agile and flexible. It must have
procedures in place to allow for, anticipate, and even embrace changes and new
requirements during the development process.
Maybe the best way to understand these concepts is to see the way they
play out in a complete example. That is the objective of this chapter, “From
Beginning to End: An Overview of Systems Analysis and Design.” Here, we will
use a fairly small information system application to show you all six core pro-
cesses (as much as is feasible in a textbook, anyway). We will illustrate one way
to organize the various activities into an actual working project; in other words,
we will show you one version of an information system development process.
By going all the way through a very simple project, you will more easily learn
and understand the complex concepts provided in the rest of the text. Our proj-
ect involves Ridgeline Mountain Outfitters, a retailer and manufacturer of cloth-
ing for all types of outdoor activities.
Introduction to Ridgeline
Mountain Outfitters
Ridgeline Mountain Outfitters (RMO) is a large retail company that specializes
in clothing and related accessories for all types of outdoor and sporting activi-
ties. By the 2010s, the Rocky Mountain and Western states had seen tremen-
dous growth in recreation activities, and with the increased interest in outdoor
sports, the market for winter and summer sports clothes had exploded. Skiing,
snowboarding, mountain biking, water skiing, jet skiing, river running, jogging,
Systems Development Life Cycle
(SDLC) the entire process consisting of all
the activities required to build, launch, and
maintain an information system
information systems development
process the actual approach used to
develop a particular information system
Agile Development an information
systems development process that emphasizes
flexibility to anticipate new requirements during
development
6 PART 1 ■ An Introduction to Systems Development
hiking, ATV biking, camping, mountain climbing, rappelling—all had seen a
tremendous increase in interest in these states. People needed appropriate sports
clothes for these activities, so RMO expanded its line of sportswear to respond
to this market. It also added a line of high-fashion activewear and accessories
to round out its offerings to the expanding market of active people.
The company’s growth charted an interesting history of mail-order, brick-
and-mortar, and online sales. RMO got its start by selling to local clothing
stores in the Park City, Utah, area. In the late-1980s and early-1990s, it began
selling directly to customers by using catalogs with mail-in and telephone
orders. It opened its first store in 1994 and soon expanded to 10 retail outlets
throughout the West. Last year, retail store revenue was $67 million, telephone
and mail-order revenues were $10 million, and Web-based sales were $200 mil-
lion. Most sales continue to be in the West, although the market in several areas
of the eastern United States and Canada is growing.
RMO produces its own line of outdoor and sportswear clothing. However,
in order to offer a complete range of outdoor clothing in its retail outlets, it
also sells other brands of outdoor and sportswear clothing. In addition, other
types of clothing and accessories, such as footwear, leather apparel, and spe-
cialty sportswear, are available in the retail stores and through the online store.
Figure 1-2 shows a sample of the catalogs that RMO mails out. Although
mail-order and telephone sales are small, receiving the catalog encourages custo-
mers to go online to make purchases, so RMO continues to produce and mail
abbreviated versions of its catalogs.
Figure 1-3 illustrates a typical order page from the online system.
Trade Shows
In order to keep its product line current and popular, RMO’s purchasing agents
attend apparel and fabric trade shows around the world. RMO purchasers have
a good track record of predicting what products will be good sellers. In addi-
tion, RMO is always watching for new products and accessories that will enable
it to expand its product line appropriately.
When purchasing agents attend a trade show, they frequently find various
products that they want to add to the spring, summer, or winter apparel offering.
2012 WINTER CATALOG
2012 W
IN
TER CATA
LO
G
FIGURE 1-2
RMO winter catalog
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 7
In the past, when RMO buyers wanted to place an order, they would exchange
contact information with the seller at the trade show and upon returning to the
home office would then follow up via e-mails and phone calls to formulate a con-
tract and make a purchase order. However, to expedite orders, RMO has now
initiated a project to develop a system for collecting and tracking information
about its suppliers and the new products it adds to its merchandise offerings.
Iterative Development
Iterative development is an approach to system development in which the sys-
tem is “grown” in an almost organic fashion. Core components are developed
first and then additional components are added. It is called “iterative” because
the six core development processes are repeated over and over again to add
additional functionality to the overall system. In other words, there is one big
project, which consists of many mini-projects, and the information system is
grown piece by piece.
Figure 1-4 illustrates how an iterative Agile project might be executed. This
is a sample diagram. Real projects might be quite different. Across the figure,
you see six iterations. An iteration is like a mini-project in that it has a com-
pleted result and a constrained time frame. Often, it will last two to four weeks.
Down the left side of the figure, you see the six core processes. The rounded
FIGURE 1-3
RMO sample online ordering page
Core
Processes
1 2 3 4 5 6
Identify problem and obtain
approval
Plan and monitor the project
Discover and understand details
Design system components
Build, test, and integrate system
components
Complete system tests and deploy
solution
Iterations
FIGURE 1-4
The six core processes, with iterations
for a typical project
iterative development an approach to
system development in which the system is
“grown” piece by piece through multiple
iterations
8 PART 1 ■ An Introduction to Systems Development
mounds inside the graph represent the amount of effort for that core process
during that iteration. The amount of area under a curve is an approximate indi-
cation of the amount of effort expended within an iteration with regard to a
particular core process. For example, in Figure 1-4, Iteration 1 appears to pri-
marily focus on identifying the problem and planning the project. Lesser
amounts of discovery, design, and build and test may also be done. For this iter-
ation, nothing is done with regard to deploying the system.
There are several benefits to iterative development. For one, portions of the
often system can sometimes be deployed sooner. If there are core functions that
provide basic support, these can be deployed in an early iteration. A second bene-
fit is that by taking a small portion and developing it first, many tough problems
can be addressed early in the project. Many of today’s systems are so large and
complex that it is impossible to remember and understand everything. By focusing
on only a small portion, the requirements are fewer and easier to grasp and solve.
Finally, developing a system in iterations makes the entire development process
much more flexible and able to address new requirements throughout the project.
A key element of iterative development is choosing a part of the solution
system that can be done in two to four weeks. During one iteration, often all
the core development processes are involved, including programming and
system-wide testing, so the result is a part of the working system, even though
it may only have a portion of the functionality that is ultimately required.
Developing RMO’s Tradeshow System
We will organize our sample project—the RMO Tradeshow System—for the
first iteration, and our goal is to have the iteration last six days. However, our
primary objective is to introduce you to the concepts and techniques of the six
core processes. Therefore, in some instances, we may go a little deeper into a
core process than we might do on the first iteration of a real project. It is a little
unrealistic to complete an entire iteration with all the necessary details in only
six days, but it should be a good learning experience. There will not be a one-
to-one correspondence with the six SDLC core processes and the six days of the
project, but we will include all the SDLC core processes within the project.
At the end of this chapter, we have provided a small case project that has
also been divided into a six-day project. Each day of the project has several pos-
sible assignments that can be completed to help you solidify your understanding
of systems analysis and design and the six core processes.
Most new applications require a project with several iterations. In the first
iteration, there are usually three major objectives. The first objective is to get proj-
ect approval. The second objective is to get a clear picture of the system’s overall
vision—all the major functions and data requirements. The third objective is to
determine the detail specifications and develop a solution for one portion of the
system (i.e., actually analyze, design, build, and test one part of the system).
In our project, we will touch on all these objectives. We will show an exam-
ple of a System Vision Document and then develop one portion of the overall
system. We have constrained the scope of the new system so we can complete it
in one iteration. It should be noted that the division of this project into days and
daily activities is somewhat arbitrary. There are numerous ways to partition and
organize the work. The following organization is quite workable, but it is not
the only way to organize the project.
Pre-Project Activities
Before the project actually begins, the head of RMO’s purchasing department
works with a systems analyst to identify and document the specific business
need as well as define a specific project objective. RMO’s management reviews
the primary project objective and provides budget approval. Every organization
has to give budget approval before a project can start. Some organizations have
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 9
a formal process to get a project approved; other organizations have a less for-
mal process. Normally, there are two goals an organization must decide on to
get a project off the ground:
■ Identify the problem and document the objective of the solution system.
(Core Process 1)
■ Obtain approval to commence the project. (Core Process 1)
System Vision Document
As with all new projects within RMO, a System Vision Document is developed to
identify the benefits to the company and the functional capabilities that will be
included in the system. Frequently, this is done in two steps: developing a prelimi-
nary statement of benefits and then adding estimates of specific dollar costs and
dollar benefits. Figure 1-5 is the System Vision Document for this project.
Problem Description
Trade shows have become an important information source for new products, new
fashions, and new fabrics. In addition to the large providers of outdoor clothing and
fabrics, there are many smaller providers. It is important for RMO to capture information
about these suppliers while the trade show is in progress. It is also important to obtain
information about specific merchandise products that RMO plans to purchase.
Additionally, if quality photographs of the products can be obtained while at the trade
show, then the creation of online product pages is greatly facilitated.
It is recommended that a new system be developed and deployed so field purchasing
agents can communicate more rapidly with the home office about suppliers and specific
products of interest. This system should be deployed on portable equipment.
System Vision Document
RMO Tradeshow System
System Capabilities
The new system should be capable of:
• Collecting and storing information about the manufacturer/wholesaler (suppliers)
• Collecting and storing information about sales representatives and other key
personnel for each supplier
• Collecting information about products
• Taking pictures of products (and/or uploading stock images of products)
• Functioning as a stand-alone without connection
• Connecting via Wi-Fi (Internet) and transmitting data
• Connecting via telephone and transmitting data
Business Benefits
It is anticipated that the deployment of this new system will provide the following
business benefits to RMO:
• Increase timely communication between trade show attendees and home office,
thereby improving the quality and speed of purchase order decisions
• Maintain correct and current information about suppliers and their key personnel,
thereby facilitating rapid communication with suppliers
• Maintain correct and rapid information and images about new products, thereby
facilitating the development of catalogs and Web pages
• Expedite the placing of purchase orders for new merchandise, thereby catching
trends more rapidly and speeding up product availability
FIGURE 1-5
Tradeshow System Vision Document
10 PART 1 ■ An Introduction to Systems Development
As described earlier, RMO needs a portable system that can be used by its
purchasing agents as they attend various product and clothing fabric trade
shows. The system needs to fulfill two major requirements. First, it has to have
the functionality to capture information about suppliers and products. Second,
it needs to be able to communicate with the home office systems, and because
these trade shows are held in various venues around the world, various methods
of connectivity are needed.
Preliminary investigation considered various equipment options, including
laptop computers, iPad computing devices, and smartphones. Even though
smartphones appeared to have the best connection options, the small size made
viewing the details of photographs somewhat difficult; the iPad and other simi-
lar portable devices with advanced technology also appear to be viable options.
However, due to the similarity of the smartphones and tablets, it seems feasible
to develop an application that will execute on either device. Each purchasing
agent could use his or her preferred device.
Toward the end of the pre-project activities, a meeting is held involving all
the key persons, including a representative of executive management. The deci-
sion is made to move ahead with the project and budget the necessary funds.
Day 1 Activities
RMO—Supplier Information Subsystem
The project actually begins with Day 1, which is essentially a planning day.
Usually, the first activity is the project team reviewing the System Vision
Document and verifying that the preliminary work is still valid. It reviews the
scope of the project to become familiar with the problem to be solved, then it
plans the iterations and activities for the remainder of the project. The second
SDLC core process—planning the project—includes business analysis and proj-
ect management activities. All these topics will be treated in depth in later chap-
ters. These activities are completed on Day 1:
■ Determine the major components (functional areas) that are needed. (Core
Process 2)
■ Define the iterations and assigning each functional area to an iteration.
(Core Process 2)
■ Determine team members and responsibilities. (Core Process 2)
Planning the Overall Project and the Project Iterations
Myriad details need to be considered in a project plan. For our project, we will
only focus on the bare essentials. We will describe project planning more elabo-
rately in later chapters.
The project team meets with the users to review the overall business need
and the objectives of the new system. The System Vision Document serves as
the starting point for these discussions. As is often the case, the list of System
Capabilities provides the foundation information for determining the overall
project plan. The first step is to divide the system into several subsystems or
components. A subsystem is simply a portion of the overall system. Based on
the list of System Capabilities, the project team identifies these functional
subsystems:
■ Supplier Information subsystem
■ Product Information subsystem
The Supplier Information subsystem will collect and maintain information
about the manufacturers or wholesalers and the contract people that work for
them. The Product Information subsystem will capture information about the
various products, including detailed descriptions and photographs.
The next step is to identify which subsystems will be developed in which
order. Many issues are considered, such as dependencies between the various
subsystem an identifiable and partitioned
portion of an overall system
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 11
tasks, sequential versus parallel development, project team availability, and proj-
ect urgency. In our case, the team decides that the project will proceed in a serial
fashion, with the Supplier Information subsystem scheduled as the first iteration.
Planning the First Iteration
Each iteration is like a systems development mini-project. The core processes
described earlier can all be applied, with the scope limited to the component
that is to be developed during the iteration. The planning process for an itera-
tion consists of these three steps:
■ Identify the tasks required for the iteration.
■ Organize and sequence these tasks into a schedule.
■ Identify required resources (especially people) and assign people to tasks.
The first step is to identify—or attempt to identify—all the individual tasks
that need to be done. As these tasks are identified, they are compiled and orga-
nized. Sometimes, this organized list of tasks is called a Work Breakdown
Structure. Figure 1-6 shows the Work Breakdown Structure for this iteration.
Part of the effort is trying to estimate how long each task will take. Because
this project has a very limited scope (only six days), all the estimates will be in
hours. These estimates do not include the time expended by those who are not
on the team. However, of those on the team, the estimates include the time for
the original work, the time for discussion, and the time for reviewing and check-
ing the Work Breakdown Structure for accuracy and correctness.
The next step is to get these tasks organized into a schedule. Again, we can
be very formal and use a sophisticated project-scheduling tool or we can just
list the tasks in the order we think they need to be done. An important part of
building the schedule is identifying any dependencies between the tasks. For
FIGURE 1-6
Sample handwritten Work Breakdown
Structure
12 PART 1 ■ An Introduction to Systems Development
example, it does not make sense to try to design the database before we have
identified the information requirements. But many tasks can be done in parallel.
Again, the great benefit of a single iteration is that we can make the sched-
ule informal, and we will be able to adjust the work day by day to respond to
specific complexities that occur.
For our project, we will not build a complete schedule. You will learn how
to do that in a later chapter. However, in order to organize our six-day project,
we have taken the tasks from the Work Breakdown Structure and placed them
on a day-by-day sequence that we call a work sequence draft, as shown in
Figure 1-7. To develop a formal schedule, the project leader will use this dia-
gram to assign people to the tasks as well as put the tasks on a specific schedule
chart with calendar dates.
You should be aware that the sequence of activities and the dependencies of
those activities are represented in this diagram with only partial accuracy. For
example, we show that programming does not start until design has finished.
However, in reality, there may be some overlap between the two activities.
0-1
Develop project plan
Day 1: Plan
project
Day 2: 12 hours
Day 3: 14 hours
Day 6: 12 hours
Start
I-1 3 hrs
Meet with purchasing manager
I-2 4 hrs
Meet with purchasing agents
I-3 3 hrs
Define use cases
I-5 6 hrs
Develop workflows
I-4 2 hrs
Define information requirements
II-1 8 hrs
Design screens
Day 5: 28 hours
IV-1 5 hrs
Perform functional tests
IV-2 7 hrs
Perform user acceptance test
II-2 4 hrs
Design and build database
II-3 4 hrs
Design overall architecture
II-4 6 hrs
Design program
details
III-1 14 hrs
Code and test
GUI layer
III-2 8 hrs
Code and test logic
layer
Morning of Day 4: 8
hours
FIGURE 1-7
Work sequence draft
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 13
The benefit of a work sequence draft is threefold. First, it helps the team orga-
nize its work so there is enough time set aside to think through the critical
design issues before programming begins. Second, it provides a measuring rod
to see if the iteration is on schedule. For example, if meetings with the purchas-
ing agents take all day or more than a day, the team will know early on that
this iteration will take longer than expected. Third, the project leader can see
that programming may require more resources if the project is going to stay on
this schedule. Hence, the project leader can begin lining up resources early on
to help with that part of the project. It should be obvious that even this simple
dependency diagram can help a project manager plan and organize the work.
Day 2 Activities
Day 1 involved planning and organizing the project. Day 2 involves systems anal-
ysis activities that help us understand and document requirements. On Day 2, we
will specify the functions in more detail. These activities are included:
■ Do preliminary fact-finding tasks to understand the requirements. (Core
Process 3)
■ Develop a preliminary list of use cases and a use case diagram. (Core
Process 3)
■ Develop a preliminary list of classes and a class diagram. (Core Process 3)
Fact Finding and User Involvement
Before the project commenced, a preliminary, broad definition of functions was
developed. It is now time to examine the specifics of those functions and deter-
mine exactly what the user needs the system to do. The first step is to identify
the key users that will help define these details. Obviously, the manager of the
purchasing department will be one of the first ones to meet with. She will proba-
bly designate one or two knowledgeable purchasing agents who can work with
the team on an ongoing basis to develop the specifications and to verify that the
system performs as required. All successful projects depend on heavy user involve-
ment. In Chapter 2, you will learn more about identifying key stakeholders.
There are various techniques to ensure that the fact finding is complete and
thorough. These include interviewing the key users, observing existing work
processes, reviewing existing documentation and existing systems, and even
researching other companies and other systems.
Identifying Use Cases
A use case documents a single user-triggered business event and the system’s
response to that event. For example, let us say a purchasing agent goes to a
trade show and finds some new lightweight sports jackets that will work well
for RMO’s fall merchandise offerings. Maybe the first task the purchasing
agent needs to do is find out if this supplier has worked with RMO before.
Thus, the business event that requires the Tradeshow System might be “Look
up a supplier.” Activities leading up to the event of using the system are impor-
tant, but we do not identify them as business events until the Tradeshow System
is used—hence, the term use case—a case or situation where the system is used.
One good way to help you identify use cases is to say, “The purchasing agent
‘uses’ the system to ‘Look up a supplier.’”
There are multiple methods used to identify use cases, which you will learn
about later in this book. Figure 1-8 is a preliminary list of use cases for the
entire Tradeshow System. When the project team meets with the purchasing
agents in brainstorming sessions, they together identify every business event
in which a purchasing agent might use the system. However, because this first
iteration is focusing only on the Supplier Information subsystem, the project
team will also focus its attention on only the first four use cases on the list.
14 PART 1 ■ An Introduction to Systems Development
Identifying Object Classes
Object classes identify those things in the real world that the system needs to
know about and keep track of. In order to find object classes, we look for all
the objects, or things, that the system uses or captures. Objects come in all
types and variations, from tangible items (such as merchandise products that
you can see and touch) to more abstract concepts that you cannot touch (such
as an order), which, though intangible, definitely exist.
Object classes are identified in the discussions with purchasing agents by
looking for the nouns that describe categories of things. For example, the agents
will often talk about suppliers, merchandise products, or inventory items. More
details about how to identify object classes and their attributes are provided
later in this book.
Figure 1-9 illustrates which nouns have been determined to be fundamental
object classes for the Tradeshow System. The attributes are descriptors that help
define and describe an object class.
In addition to just providing a list of object classes, systems analysts often
develop a visual diagram of the classes, their attributes, and their relationships
to other classes. This diagram is called a class diagram. Figure 1-10 illustrates
a class diagram for the Tradeshow System.
Each box is a class and can be thought of as a particular set of objects that
are important to the system. Important attributes of each class are also included
in each box. These represent the detailed information about each object that will
be maintained by the system. Note that some classes have lines between them.
These represent relationships between the classes that need to be captured in
the system. For example, a contact is a person who works for a particular sup-
plier. A specific example might be that Bill Williams is the contact person for
FIGURE 1-9
List of object classes
Object Classes Attributes
Supplier supplier name, address, description, comments
Contact name, address, phone(s), e-mail address(es),
position, comments
Product category, name, description, gender, comments
ProductPicture ID, image
FIGURE 1-8
List of use cases
Use Case Description
Look up supplier Using supplier name, find supplier information and
contacts
Enter/update supplier
information
Enter (new) or update (existing) supplier information
Look up contact Using contact name, find contact information
Enter/update contact
information
Enter (new) or update (existing) contact information
Look up product
information
Using description or supplier name, look up product
information
Enter/update product
information
Enter (new) or update (existing) product information
Upload product image Upload images of the merchandise product
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 15
the South Pacific Sportswear Company. Thus, the system needs to associate Bill
Williams and the South Pacific Sportswear Company. The relationship line
documents that requirement.
Class diagrams are a powerful and frequently used way to understand and
document the information requirements of a system. The Tradeshow System is
extremely simple, with only four classes identified—two of which belong to the
Supplier Information subsystem. Most real-life systems are much larger and
have dozens of classes.
Day 3 Activities
The purpose of Day 3 activities is to analyze in detail those use cases and classes
that were selected to be implemented in this first iteration. During Day 3, we are
still performing processes that are considered systems analysis. We are still try-
ing to understand the requirements at a detailed level for the system. Included
are these activities:
■ Perform in-depth fact finding to understand details. (Core Process 3)
■ Understand and document the detailed workflow of each use case. (Core
Process 3)
■ Define the user experience with screens and reports. (Core Processes 3 and 4)
It is important to note that the use cases help the project team organize its
work. These drill-down activities are done for each use case. As mentioned ear-
lier, these use cases pertain to the Supplier Information subsystem:
■ Look up supplier.
■ Enter/update supplier information.
■ Look up contact information.
■ Enter/update contact information.
The project team will develop a workflow for each use case to better under-
stand how it works and to identify what screens and possibly what reports will
need to be developed. As the team gets more into the details, it may discover
that some of the initial analysis is incomplete, if not incorrect. This is a good
time to make such discoveries—much better than after the programs have been
written.
Figure 1-11 illustrates a simple use case diagram. It shows the four afore-
mentioned use cases identified and the user who will be the primary person
name
address
description
comments
Supplier
productCategory
name
description
gender
comments
Productltem
1..*
1
1 1..*
name
address
phone(s)
emailAddress(es)
position
comments
Contact
pictureID
image
ProductPicture
1 0..*
FIGURE 1-10
Preliminary class diagram for the
Tradeshow System
16 PART 1 ■ An Introduction to Systems Development
performing that function. What the diagram means in detail and how to develop
one will be discussed in a later chapter.
Developing Use Case Descriptions and Workflow Diagrams
There are various methods for documenting the details of a use case. One that
you will learn later in this text is called a use case description. Another method
is developing a workflow diagram, which shows all the steps within the use
case. The purpose with either method is to document the interactions between
the user and the system (i.e., how the user interacts and uses the system to
carry out a specific work task for a single use case).
Let us develop a workflow for one use case. To develop a workflow, we
will use a simple type of diagram called an activity diagram. Figure 1-12 illus-
trates the workflow for the Look up supplier use case. The ovals in the diagram
represent the tasks, the diamonds represent decision points, and the arrows rep-
resent the sequence of the flow. The columns represent who performs which
tasks. Usually, workflow diagrams are quite easy to understand.
The arrows that cross the center line represent the interactions between the
system and the user. These are critically important because the developers must
provide a screen or Web page that either captures or displays information. The
arrows that cross the center line identify the data elements that become part of
the user interface.
Looking at Figure 1-12, we see that the top arrow indicates that the sup-
plier name enters into the system. Thus, we infer that the user must have an
online form in order to enter the supplier name for the initial lookup. The next
arrow indicates that there must be a form that displays all the details for an
individual supplier, including a list of existing contacts. The user may also want
to see more details about a specific contact person for this supplier, so the user
may request detailed information for a particular person. Because the user can
select one of the displayed results, it appears that we must design the form so
each entry on the list is either a hotlink or has some mechanism to select it.
Defining Screen Layout
User-interface design includes all those tasks that describe the look and feel of
the system to the user. Because the user interface is the window that the users
Look up supplier
Enter/update
supplier
information
Look up contact
Enter/update
contact
information
ManagerPurchasing
agent
FIGURE 1-11
Use case diagram
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 17
work with to utilize the functionality of the system, the user interface is essen-
tially the system. If the interface is poorly designed, users will not be able to
take full advantage of the system; they may even consider the system to be less
than optimal. On the other hand, a well-designed user interface—one that is
intuitive and easy to use, with a full range of features to facilitate navigation,
and that provides good information—will enhance the utility of the system
tremendously.
Figure 1-13 illustrates the layout of the first screen used for the workflow in
the use case Look up supplier. The top portion of the screen provides the loca-
tions for the user to enter the supplier information, and the bottom portion of
the screen shows the results. When results are provided, the search box for data
entry will remain visible to allow the user to enter another search. Each entry in
the results will be built as a hotlink, so the user can click on any particular sup-
plier to retrieve more detailed information. This drill-down technique is a com-
mon method used in today’s systems and will be intuitively easy for the users.
Searches are conducted on the RMO database, resulting in such RMO
information as name, address, and contact information. An Internet-wide search
is also possible. This allows the purchasing agents to look for and view the sup-
pliers’ own Web sites, which can be helpful, as can looking at forums and dis-
cussions about the supplier. Note that this tangential activity is not captured in
the workflow of Figure 1-12. It is intended to assist in screen design, not docu-
ment everything the user can or will do.
Purchasing Agent Tradeshow System
Start
Enter supplier name
Return supplier information
not found
found
View supplier and
contact names
done
look up contact
Select contact name
Retrieve contact information
View contact information
End
FIGURE 1-12
Workflow diagram for the Look up
supplier use case
18 PART 1 ■ An Introduction to Systems Development
Day 4 Activities
The primary focus of Day 4 activities is to design the various components of the
solution system. Up to now, we have mostly been trying to understand the user
requirements. On Day 4, we carry out design activities that direct programming
efforts. In that sense, design activities can be considered somewhat of a bridge.
During analysis activities, the project team’s objective is to understand user
needs. During programming, the objective is to produce the solution. Thus,
design is the bridge between understanding and construction. It provides the
outline for how the solution will be structured and how it is to be programmed.
System design also tends to involve the technical people, with less need for user
participation.
Design can be a complex process. In our small project, we will limit
our design examples to only a few models and techniques. Later in this text-
book, you will learn additional design techniques. Day 4 Activities include the
following:
■ Design the database structure (schema). (Core Process 4)
■ Design the system’s high-level structure. (Core Process 4)
Database design is a fairly straightforward activity that uses the class dia-
gram as input and develops the detailed database schema that can be directly
implemented by a database management system. Such elements as table design,
key and index identification, attribute types, and other efficiency decisions are
made during this activity.
Designing the high-level system structure and the individual programs can
be an intricate and complex process. First, the overall structure of the system is
designed, including identifying the subsystems and connections to other systems.
Within each subsystem, decisions are made about individual programs, such as
user-interface programs, business logic programs, and database access programs.
Then, at the lowest level, the login within each program is defined, including
what program functions are required and what variables are used.
It is not uncommon for developers to begin writing program code as they
develop portions of the design. It is a good idea to complete most of the
Web Search
RMO Database Search
Supplier Name
Product Category
Product
Country
Contact Name
Supplier Name
Search Results
Contact PositionContact Name
GO
GO
Logo
FIGURE 1-13
Draft of screen layout for the Look up
supplier use case
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 19
structural design before writing code. But as the lower levels of the system are
being designed, programming often begins. However, in the RMO Tradeshow
System project, we will list them as separate activities.
Designing the Database
Designing the database uses the information provided by the class diagram to
determine the tables, the columns in the tables, and other components. Sometimes,
the database design is done for the entire system or subsystem. At other times, it is
built piecemeal—use case by use case. To keep our project simple, we will just
show the database design for the two classes that are required for the Supplier
Information subsystem. Figure 1-14 shows the database schema for the Supplier
Information subsystem. Two tables are defined: Supplier and Contact.
Approaching High-Level Systems Design
There are fundamental design principles that will guide you through systems
and program design; they will be explained in detail later in this book. For
now, we will describe the general approach to design.
One of the first questions encountered in systems design is how and where
to start. So far, we have three types of documents that can provide specifications
to help answer that question. We have use cases, with their accompanying docu-
mentation, such as use case workflow diagrams. We have a class diagram that
will help us identify some of the object-oriented classes that will be needed in
the system. (In the previous section, we used the class diagram as the basis for
the database design. Those same classes are important in developing object-
oriented program classes.) Finally, we have screens and reports that also provide
specifications for program logic and display logic.
Before we jump into design, let us briefly discuss the objective of systems
design and what we expect to have as the output or result. Object-oriented pro-
grams are structured as a set of interacting classes. Therefore, in order to pro-
gram, we need to know what those programming classes are, what the logic is
within each class (i.e., the functions), and which programming classes must
interact together. That is the final objective of systems design: to define the clas-
ses, the methods within those classes, and the interactions between classes.
Supplier SupplierID: integer {key}
Name: string {index}
Address1: string
Address1: string
City: string
State-province: string
Postal-code: string
Country: string
SupplierWebURL: string
Comments: string
ContactID: integer {key}
SupplierID: integer {foreign key}
Name: string {index}
Title: string
WorkAddress1: string
WorkAddress2: string
WorkCity: string
WorkState: string
WorkPostal-code: string
WorkCountry: string
WorkPhone: string
MobilePhone: string
EmailAddress1: string
EmailAddress2: string
Comments: string
Contact
Table Name Attributes
FIGURE 1-14
Database schema for Supplier
Information subsystem
20 PART 1 ■ An Introduction to Systems Development
We perform this design by starting at the very highest level and then drilling
down to the lowest level until we have defined all the functions within each
class. Detailed design is the thought process of how to program each use case.
Later in the text, you will learn techniques to carry out detailed design. For
Day 4, we will focus only on the overall design.
Designing the Overall Architecture
Figure 1-15 shows the overall architecture or structure of the new system.
Although the figure itself appears rather simple, some important decisions have
been involved in the development of this design. First, note that the decision
was made to build this application as a browser-based system. A different and
very popular approach would have been to build smartphone or tablet applica-
tions. Browser-based systems sometimes do not provide the same connectivity
speed and control as smartphone or tablet applications, but they are more versa-
tile in that they can be more easily deployed on different equipment, such as
laptops, without modification.
These high-level design decisions will determine the detailed structure of the
system. A browser-based system is structured and constructed differently than
an application system that runs on a smartphone or a tablet computer.
Defining the Preliminary Design Class Diagram
Given that the Tradeshow System will be built by using object-oriented pro-
gramming (OOP) techniques, an important component of the design is develop-
ing the set of object classes and functions that will be needed for the system.
This process can become quite detailed, and we will not try to explain it for
this project. You will learn those techniques later in this book.
Figure 1-16 is a preliminary design class diagram for the Tradeshow
System. A design class diagram (DCD) identifies the OOP classes that will be
needed for the system. The set of design classes includes problem domain clas-
ses, view layer classes, sometimes separate data access classes, and utility classes.
In Figure 1-16, we show only the problem domain classes and the view layer
classes. Problem domain classes are usually derived from those classes that were
identified during analysis activities—hence, the name: problem (user need)
domain classes. You will also notice that they very closely correspond to the
Supplier
Information
subsystem
Product
Information
subsystem
Browser
Internet
Tradeshow System
Internet server
FIGURE 1-15
Tradeshow System architectural con-
figuration diagram
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 21
database tables; in fact, in this simple project, they are almost exactly the same
as the database tables. On more complex systems, they will be similar but not
exactly the same. However, remember that programming classes are distinct
from database tables.
Other classes are required for the graphical user interface (GUI). In a
dynamic Web system, such as the Tradeshow System, they are the classes that
receive the input from the browser and format the output HTML files to be dis-
played by the browser.
The design classes in Figure 1-16 include the class-level variables that are
needed for the class. These classes also show method names of the important meth-
ods within each class. These methods are identified and specified during high-level
design and detailed design. One final element in the design class diagram are
arrows that show which classes can access the methods of which other classes.
Designing Subsystem Architecture
Once we have an overall structure and an overall approach for implementing
the new system, we begin to drill down to the subsystem design. Figure 1-17
illustrates the architectural design of the Supplier Information subsystem. Notice
that this subsystem is further divided into layers: a view layer and a model layer.
You will learn much more about multilevel design later in this textbook. One of
the advantages of partitioning the system into layers is that the system is much
easier to build and maintain with this kind of structure. For example, the system
will be browser based, but different browsers require different techniques. It is
better not to get these complexities mixed in with the basic program functions.
Hence, they are separated out into a distinct layer.
lookupSupplier ( )
displaySupplier ( )
SupplierView
lookUpContact ( )
displayContact ( )
ContactView
supplierID {key}
name: string
address: string
address2: string
city: string
state: string
country: string
URL: string
comments: string
Supplier
contactID {key}
name: string {index}
title: string
waddress1: string
waddress2: string
wcity: string
wstate: string
wpostal: string
wcountry: string
wphone: string
mobilephone: string
email1: string
email2: string
comments: string
Contact
getSupplierInfo ( ) getContactInfo ( )
FIGURE 1-16
Preliminary design class diagram
22 PART 1 ■ An Introduction to Systems Development
Figure 1-17 shows that the view layer has two PHP classes that process user
inputs from the browser and format output HTML files. It also contains various
JavaScript functions that will execute within the browser itself. The model layer
classes are those classes that perform the business logic as well as access the
database. Sometimes, the data layer and the business logic layer are further
divided.
Managing the Project
Design is a complex activity with multiple levels—from high-level structural
design to low-level detailed program design. In our project, we have separated
the tasks for designing the overall system structure from detailed design of the
programs themselves. However, these activities are often done concurrently.
The basic high-level architectural structure is defined first, but mid-level and
low-level design are often done concurrently with programming.
In Figure 1-17, we can see that detailed design and programming are quite
time-consuming activities. A project manager must decide whether to extend the
project or bring on additional programmers to help write the code. In our proj-
ect, we have elected to insert a half-day of free time to bring in two additional
programmers and train them. Of course, we could go ahead and begin Day 5’s
activities to ensure that we keep the project on schedule.
Day 5 Activities
Even though detailed design and programming may frequently begin earlier in
the project, we have identified it as a separate day’s activities. We do this for a
couple of very important reasons. First, we want to emphasize that it is not a
good practice to begin programming before critical information is obtained and
decisions are made. Often, novice programmers will begin to program before
lookUpSupplier ( )
displaySupplier ( )
SupplierView
getSupplierInfo ( )
Supplier
lookUpContact ( )
displayContact ( )
validateSupplierInput ( )
validateContactInput ( )
php
html/css
javascript
php
sql
Javascript
Functions
View layer
Supplier Subsystem
Model layer
ContactView
getContactInfo ( )
Contact
FIGURE 1-17
Supplier subsystem architectural
design diagram
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 23
the users’ needs are adequately understood or even before the structure of the
overall system has been determined. But a much better approach is to under-
stand, design, and build small chunks of the system at a time. Agile Development
anticipates and plans for the expected changes and refinements to the problem
requirements that happen during detailed design and programming.
As the programmers write the code, they also perform individual testing on
the classes and functions they program. This textbook does not focus on program-
ming activities. However, we include an example of program code so you can see
how systems design relates to the final program code. Figure 1-18 is an example
of a class that receives and processes the request for supplier information.
Day 6 Activities
The focus of Day 6 activities is to do the final testing that is required before the
system is ready to be deployed. There are many types of testing that are
required. In this example, we mention only two types of testing: overall system
functional testing and user acceptance testing. Functional testing is usually a
system-level test of all user functions and is often done by a quality assurance
team. User acceptance tests are similar in nature, but they are done by the
users, who test not only the correctness of the system but its “fitness” to accom-
plish the business requirements.
Each of the various testing activities in Day 6 has a somewhat similar
sequence of tasks to perform. The tasks themselves highly depend on the test
data and on the method for testing a particular test case. In some instances, the
testing may be automated. In others, individuals may need to manually conduct
the tests. Many new systems are interactive systems with user activity. There are
some testing tools that automate that process somewhat, but it tends to be a
rather complex task.
theSupplier = new Supplier();
}
function lookupSupplier()
{
include(‘lookupSupplier.inc.html’);
}
function displaySupplier()
{
include(‘displaySupplierTop.inc.html’);
extract($_REQUEST); // get Form data
//Call Supplier class to retrieve the data
$results = $theSupplier->getSupplierInfo($supplier, $category,
$product, $country, $contact);
foreach ($results as $resultItem){
?>
FIGURE 1-18
Code for the SupplierView class
24 PART 1 ■ An Introduction to Systems Development
Figure 1-19 is a generalized workflow for testing the new system. In this
workflow, we have shown the different testing tasks as separate steps. In reality,
they all tend to be carried out together. However, any given test case will follow
this flow.
First Iteration Recap
Figure 1-20 is a screenshot of the browser page that is used in the Tradeshow
System to enter and view suppliers.
As stated previously, this is the first (six-day) iteration of a longer project.
Using Agile techniques and iterations within an overall project allows flexibility
in defining and building a new system. One of the Agile mandates is that the
user should be heavily involved in the development of the new system. In this
six-day project, the users have had major involvement during all days except
Day 4 and Day 5.
A primary problem in developing a new system is that as the project pro-
gresses, new requirements are often identified. This happens because the users
and the project team learn more about how to solve the business need. Agile,
iterative projects are structured to handle these new requirements—often by
adding another iteration to the overall project.
As a final step in a current iteration, or perhaps as part of the planning
process for the next iteration, there should be a review of the processes and
success of the current iteration. The lessons learned and issues to be carried
forward create an environment of continual improvement and refinement.
Iterative projects tend to improve and become more efficient during the life of
the project.
Start Create test data Conduct tests
End
Document errors
and issues
Fix errors
FIGURE 1-19
Generalized workflow of testing tasks
Web Search
RMO Database Search
Supplier Name
Product Category
Product
Country
Contact Name
Supplier Name
Search Results
Contact PositionContact Name
GO
GO
FIGURE 1-20
Screen capture for Look up supplier
use case
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 25
Where You Are Headed—The Rest of
This Book
This sixth edition of Systems Analysis and Design in a Changing World includes
the printed textbook and supporting online chapters. The current printed text-
book provides a compact, streamlined, and focused presentation of those topics
that are essential for information systems developers. The online chapters extend
those concepts and provide a broader presentation of several topics. The online
chapters may be integrated into the course or simply used as additional reading
as prescribed by the instructor.
Part 1: Introduction to Systems Development
Part 1—comprising Chapter 1 and Online Chapter A—presents an overview of
systems development. The introductory chapter provides a detailed, concrete
example of what is required in a typical software development project. Of
course, many details had to be left out to keep this chapter at a reasonable
length. However, this chapter does present many processes, techniques, and dia-
grams. You are not expected to understand all the elements from this brief
introduction. However, you should have a general idea of the approach to
developing systems. You may want to refer back to this chapter from time to
time to help understand the big picture.
This first chapter begins by briefly explaining the objectives of systems anal-
ysis and systems design. Many students who take a programming class think
that programming is all you need to develop software and deploy a system.
This chapter and the rest of this book should dispel that myth.
Online Chapter A, “The Role of the Systems Analyst,” describes the many
skills required of a systems analyst. It also discusses the various career options
available to information systems majors. For those of you who are new to the
discipline of information systems, this chapter will provide interesting and help-
ful knowledge about information systems careers.
There are three major subject areas discussed in this book: systems analysis,
systems design, and project management. There is also one minor subject area,
which is no less important but not discussed in as much depth, and that is sys-
tems implementation, testing, and deployment. In addition, we have taken an
approach that is quite different from other texts. Because you already have a
basic understanding of systems analysis and design from Chapter 1, we can
immediately present in-depth concepts about systems analysis and design. We
present project management topics later in this text. This will allow you to
learn those project management concepts after understanding the elements of
systems analysis and design. We think it will be more meaningful for you at
that point in the course.
Part 2: Systems Analysis Tasks
Chapters 2 through 5 cover systems analysis in detail. Chapter 2 discusses tech-
niques for gathering information about the business problem. Developing the
right system solution is possible only if the problem is accurately understood.
The various people who are affected by the system (the stakeholders) are also
included in the development of the solution. Chapter 2 also explains how to
identify and involve the stakeholders and introduces the concept of models and
modeling. Chapters 3 and 4 present methods for capturing the detailed require-
ments for the system in a useful form. When discussing an information system,
two key concepts are particularly useful: use cases, which define what the end
users need the system to do, and the things, called data entities or classes, that
users work with while carrying out their tasks. These two concepts—use cases
and data entities/classes—are important no matter what approach to system
26 PART 1 ■ An Introduction to Systems Development
development is being used. Chapter 5 presents more in-depth models, such as
use case descriptions, use case diagrams, and system sequence diagrams.
Online Chapter B, “The Traditional Approach to Requirements,” presents
the traditional, structured approach to developing systems. To those instructors
and students who desire to learn about data flow diagrams, this chapter pro-
vides an in-depth presentation.
All these modeling techniques provide in-depth analysis of the user’s needs
and allow the analyst to develop requirements and specifications. Again, the
purpose of systems analysis is to thoroughly understand and specify the user’s
needs and requirements.
Part 3: Essentials of Systems Design
Chapters 6 and 7 provide the fundamental concepts related to systems design
and to defining and designing the user experience. Chapter 6 provides broad
and comprehensive coverage of important principles of systems design. It serves
not only as a broad overview of design principles but as a foundation for later
chapters that explain the detailed techniques, tasks, skills, and models used to
carry out design.
Chapter 7 presents additional design principles related to designing the user
interface and the system interfaces. Designing the user interface is a combination
of analysis and design. It is related to analysis because it requires heavy user
involvement and includes specifying user activities and desires. On the other
hand, it is a design activity because it is creating specific final components that
are used to drive the programming effort. The screens and reports and other
user interaction components must be precisely designed so they can be pro-
grammed as part of the final system. System interfaces occur when one informa-
tion system communicates or interacts with another information system without
human intervention. System interfaces are becoming increasingly important
because of Web services and cloud computing.
Part 4: Projects and Project Management
By this point, you will have a basic understanding of all the elements of systems
development.
Part 4 brings together all these concepts by explaining more about the pro-
cess of organizing and managing development projects. Chapter 8 describes dif-
ferent approaches to systems development in today’s environment, including
several important System Development Life Cycle models. It is an important
chapter to help you understand how projects actually get executed.
Chapter 9 extends these concepts by teaching foundation principles of proj-
ect management. Every systems analyst is involved in helping organize, coordi-
nate, and manage software development projects. In addition, almost all of you
will become team leaders and project managers. The principles presented in
Chapter 9 are essential to a successful career.
Online Chapter C, “Project Management Techniques,” goes into more
detail regarding the tools and techniques used by systems analysts and project
managers to plan and monitor development projects. For those instructors and
students who would like to learn specific project management skills, this is an
important chapter.
Part 5: Advanced Design and Deployment Concepts
Part 5 goes into more depth with respect to systems design, database design,
and other important issues related to effective and successful system develop-
ment and deployment.
Chapters 10 and 11 explain in detail the models, skills, and techniques used
to design software systems. As mentioned earlier in this chapter, systems design
is a fairly complex activity, especially if it is done correctly. The objective of
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 27
these two chapters is to teach you the various techniques—from simple to
complex—that can be used to effectively design software systems.
Chapter 12 explains how to design the database from the information
gleaned during analysis and the identification of the object classes. Other related
concepts, such as controls and security, are also presented in this chapter.
Chapter 13 describes the final elements in systems development: final testing,
deployment, maintenance, and version control. Chapter 14 concludes this book
by looking toward the future of software development and assessing the current
trends that may eventually enhance and improve the approaches to software
development.
Chapter Summary
This chapter provided a quick overview of a particular
software system development project called the
Tradeshow System. The six core processes that control
software development were presented. Then, the various
activities that support the execution of these six core pro-
cesses were explained as we went through an implementa-
tion of the Tradeshow System. The six core processes are:
1. Identify the problem or need and obtain approval to
proceed.
2. Plan and monitor the project—what to do, how to do
it, and who does it.
3. Discover and understand the details of the problem
or the need.
4. Design the system components that solve the problem
or satisfy the need.
5. Build, test, and integrate system components.
6. Complete system tests and then deploy the solution.
In order to facilitate learning and to help you remember
the core processes and related activities, we divided the
project into pre-project activities and then six other
groupings, which we called project days. It should be
noted that there is nothing magical or mandatory about
this way of organizing a project. It was done in this man-
ner simply to help you understand the various activities
related to the core processes.
Key Terms
Agile Development 6
computer application (app) 4
information system 4
information systems development
process 6
iterative development 8
project 5
subsystem 11
systems analysis 5
systems design 5
Systems Development Life
Cycle (SDLC) 6
Review Questions
1. What is the difference between an information sys-
tem and a computer application?
2. What is the purpose of systems analysis? Why is it
important?
3. What is the difference between systems analysis and
systems design?
4. What is a project?
5. What are the six core processes for software systems
development?
6. What is meant by Agile Development?
7. What is the purpose of a System Vision Document?
8. What is the difference between a system and a
subsystem?
9. What is the purpose of a Work Breakdown
Structure?
10. What are the components of a Work Breakdown
Structure? What does it show?
11. What information is provided by use cases or a use
case diagram?
12. What information is provided by a class diagram?
13. How do a use case diagram and a class diagram
drive the system development process?
28 PART 1 ■ An Introduction to Systems Development
14. What is another way to describe an activity
diagram? What does it show?
15. How does an activity diagram help in user-interface
design?
16. What is the purpose of architectural design?
17. What new information is provided in a design class
diagram (more than a class diagram)?
18. What are the steps of system testing?
19. What is the purpose of user acceptance testing?
20. Why is it a good practice to divide a project into
separate iterations?
21. What should be the objective or result of an
iteration?
CHAPTER CASE
Keeping Track of Your Geocaching Outings
When Wayne Johansen turned 16, his dad bought him
a new Garmin handheld GPS system. His family had
always enjoyed camping and hiking, and Wayne was
usually the member of the family who monitored their
hikes with his dad’s GPS system. He always liked to
carry the GPS because he really enjoyed monitoring
the routes, distances, and altitudes of their hikes.
More recently, though, he had found a new hobby
by using his GPS system: geocaching.
Geocaching is akin to the treasure hunts that most
of us did when we were kids. The difference is that
geocaching is a high-tech version of a treasure hunt
that uses GPS but also calls on one’s basic treasure-
hunting skills.
As Wayne became more involved with his hobby,
he discovered that there are many different kinds of
activities for geocaching enthusiasts. The simplest
ones are those that involve caches that can be found
by using GPS coordinates, although even some of these
can be difficult if the caches are well hidden and well
camouflaged. Some of the activities involve multipoint
drops in which there is a set of clues at multiple loca-
tions that must be followed in order to arrive at the
final cache point. Some activities involve puzzles that
must be solved in order to determine the coordinates
and location of the final cache.
Before long, Wayne wanted to make his own
caches and post them for people to find. He discovered
that there were several Web sites, including individuals’
blogs, with geocaching information, caches, and mem-
berships. He joined one of the geocaching Web sites and
used it to log his finds. It was fun to log and publish his
finds and to post the geocaches that he created. But he
decided he would like his own little system for keeping
track of all the information he wanted to maintain
about his caches. Conveniently, Wayne’s older brother
Nick, a college student majoring in information sys-
tems, was looking for a semester project for one of
his programming classes. The two of them decided to
work together and develop a system to help Wayne
keep track of all his geocaching activities.
In this end-of-chapter case, you will go through
the various core processes of an SDLC and perform
some of the activities of a development project. Of
course, this is a very small project with very limited
requirements. The project and various assignments
are divided into days, as was our Tradeshow project.
You have not learned all the skills required to effec-
tively produce all the documents illustrated in the
chapter. Hence, the daily assignments for this case
should be considered as preliminary efforts and
rough drafts. The objective of these assignments is sim-
ply to help you remember the overall approach to soft-
ware development. Several assignments have been
listed for each day to allow your instructor to select
those that best meet the objectives of the course.
Day 0: Define the Vision
The primary purpose of pre-project activities is to
define a vision for the new system. Either by yourself
or with another class member, brainstorm all the neat
functions this geocaching system might do. Keep it at a
very high level. You just want to think of the major
functions that Wayne might want the system to do
for him. These activities closely relate to Core Process
1: Identify the problem or need and obtain approval to
proceed.
Assignment D0-1: Write a rough draft of the System Vision
Document based on your brainstorming ideas. [Hint: Think of
what Wayne wants the system to do and why this is a benefit
to him.]
Day 1: Plan the Project
Obviously, this is a small project and does not require
an elaborate project plan. Based on the scope and vision
you described in the System Vision Document, divide
the project into at least two separate subsystems or
(continued on page 30)
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 29
sets of functions that can be done in two different itera-
tions. For example, perhaps a first version can run on a
laptop, with a second version that includes mobile com-
ponents for a smartphone. Or perhaps the first version
can maintain a history of past geocache hunts, and the
second version can allow Wayne to record geocaches
that he creates. Or the first version can create a simple
database system, and the second version can enhance it
by linking to photo albums and/or blog posts. As you
can see, there are often many different ways that a proj-
ect can be partitioned. These activities are related to
Core Process 2: Plan and monitor the project—what
to do, how to do it, and who does it.
Assignment D1-1: Divide the system into at least two separate
components or subsystems, which can be supported with two
iterations. Briefly describe each.
Assignment D1-2: Create a Work Breakdown Structure that lists
all the steps to complete the first iteration. Put a time estimate on
each step. [Hint: Use the one in this chapter as a model.]
Day 2: Define and Understand the
Requirements
We often describe the activities on Day 2 and Day 3
with the word understanding. On Day 2, we want to
get an overall view of what the system needs to do for
Wayne. As you learned in this chapter, there are two
primary areas we focus on to obtain this high-level
understanding of the system: a list of use cases and a
list of object classes. We could document this informa-
tion in lists, but diagrams provide a visual representa-
tion that is often easier to remember and understand.
These activities support Core Process 3: Discover and
understand the details of the problem or the need.
Assignment D2-1: Identify a few use cases that apply to one
subsystem. [Hint: Think of what Wayne plans to do with the
system. He will use the system to “do what”?]
Assignment D2-2: Try to identify the classes that apply to the
first project iteration. [Hint: Think of “information things” that
Wayne wants the system to “remember.”]
Assignment D2-3: Create a simple use case diagram from the
list of use cases. [Hint: Drawing by hand is fine. Use the one in
this chapter as a model.]
Assignment D2-4: Create a simple class diagram from the list
of classes. [Hint: Drawing by hand is fine. Use the one in this
chapter as a model. Think of some other pieces of information
that apply to each class.]
Day 3: Define the User Experience
These activities are a continuation of what we began in
Day 2. The objective here is to further understand
what Wayne will need and how he will actually use
the system. We will determine exactly how each use
case works—what steps and options are available
with the use case and even what the display and data
entry screens will look like. Unfortunately, this often
requires a lot of work. For this case, though, let us
keep it simple. These activities primarily support
Core Process 3: Discover and understand the details
of the problem or the need.
Assignment D3-1: Select a single use case and then identify
the individual steps required to perform the use case. [Hint:
Think of what Wayne does and how the system responds.]
Assignment D3-2: Make a workflow diagram of the selected
use case. [Hint: Drawing by hand is fine. Each step from D3-1
goes in an oval. Connect the ovals with arrows.]
Assignment D3-3: Sketch out one of the screens that will be
required to support a use case. The screen should allow for data
entry and display of information. [Hint: Don’t make it elaborate.
Focus only on the input and output data fields that apply to only
one use case.]
Day 4: Develop the Architectural Design
The high-level architectural design of the system gener-
ally includes decisions about how the system will be
built and what the database will look like. Design is
a technical activity that requires experience in pro-
gramming, database development, and system archi-
tecture. These activities support Core Process 4:
Design the system components that solve the problem
or satisfy the need.
Assignment D4-1: Design a preliminary database schema for
the classes in this iteration. [Hint: Each class becomes a table.
The attributes become table columns.]
Assignment D4-2: Decide whether you will build a desktop
system or a browser-based system. Write a couple of para-
graphs listing the pros and cons of each alternative in order to
defend your decision. [Hint: Either option is valid. Think of rea-
sons to support your decision.]
Day 5: Develop the Detailed Design and
Program the System
You have learned how to do these activities in your pro-
gramming classes. You probably have had many class
projects where you designed a system and then
(continued from page 29)
(continued on page 31)
30 PART 1 ■ An Introduction to Systems Development
programmed it. These kind of activities support Core
Process 5: Build, test, and integrate system components.
Assignment D5-1: Write a paragraph describing what program-
ming language(s) you would recommend and what development
environment you prefer. For this answer, draw on your previous
programming and development experiences. [Hint: There are
many valid solutions. Give reasons for your preference.]
Day 6: Test and Deploy the System
You may have had opportunities to perform compre-
hensive testing of your programming class projects,
especially if you have developed systems that inte-
grated with other systems. These activities support
Core Process 6: Complete system tests and then deploy
the solution. Obviously, you can only do this if you
have programmed the system.
Assignment D6-1: Write a paragraph describing the difference
between programmer testing and user testing. [Hint: Why is it
hard to test your own work? What do the users know that you
don’t know?]
Assignment D6-2: Write a paragraph describing all the issues
that might need to be addressed to deploy this system. [Hint:
You might want to search the Internet to learn about deploy-
ment issues.]
Assignment D6-3: Look at www.geocaching.com, which is a
commercial Web site. What other issues need to be addressed
to deploy this type of Web site? [Hint: Think about all the issues
related to security, robustness, financial protection, high
volumes, up-time, different browsers, and so forth.]
(continued from page 30)
CHAPTER 1 ■ From Beginning to End: An Overview of Systems Analysis and Design 31
www.geocaching.com
This page intentionally left blank
PART 2
Systems Analysis Activities
Chapter 2
Investigating System
Requirements
Chapter 3
Use Cases
Chapter 4
Domain Modeling
Chapter 5
Extending the Requirements
Models
Optional Online Chapter B
The Traditional Approach
to Requirements
33
This page intentionally left blank
2
Investigating System
Requirements
Chapter Outline
■ The RMO Consolidated Sales and Marketing System Project
■ Systems Analysis Activities
■ What Are Requirements?
■ Models and Modeling
■ Stakeholders
■ Information-Gathering Techniques
■ Documenting Workflows with Activity Diagrams
Learning Objectives
After reading this chapter, you should be able to:
■ Describe the activities of systems analysis
■ Explain the difference between functional and nonfunctional requirements
■ Describe the role of models in systems analysis
■ Identify and understand different kinds of stakeholders and their contributions
to requirements definition
■ Describe information-gathering techniques and determine when each is best
applied
■ Develop activity diagrams to model workflows
35
OPENING CASE
Mountain Vista Motorcycles
Amanda Lamy, president and majority stockholder of
Mountain Vista Motorcycles (MVM), is an avid motorcycle
enthusiast and businesswoman. MVM is headquartered in
Denver and has locations throughout the western United
States and Canada. Since the late-1990s, the market for
motorcycles has grown tremendously. Amanda expects
that the market will continue to be strong throughout the
2010s, although she is concerned about the “graying” of a
significant portion of MVM’s customer base.
The demographics of the motorcycle market are an
interesting study in contrasts. At present, the majority of
customers are over 50 years of age, male professionals or
businesspeople, and partly or fully retired. They have sub-
stantial disposable income, lots of free time, and tend to
own multiple expensive motorcycles from such manufac-
turers as Harley-Davidson, Honda, Ducati, and Moto Guzi.
Older customers are generally comfortable with Internet
and Web technology but are not significant users of social
media technology. Although many own smartphones, they
tend to use them primarily for voice, e-mail, and texting.
Male customers under 30 years of age tend to buy
sport and dirt bikes, typically from such manufacturers as
Suzuki and Kawasaki. They buy less expensive bikes than
older customers and are more likely to buy parts and sup-
plies from MVM to service their own bikes. Female custo-
mers under 30 years of age tend to buy motor scooters
and smaller “commuter” motorcycles. Customers in the
30–50 age range include men and women who buy bikes
of many types from many manufacturers. Comfort with
and use of Internet technology, social media, and portable
computing devices such as smartphones and iPads is very
high with customers under 50 years of age, especially with
customers under age 30.
Amanda is convinced that the key to long-term suc-
cess in the motorcycle market is to build an active commu-
nity of motorcycle enthusiasts at each MVM location that
includes a broad spectrum of customers. In essence, each
location needs to be seen as a hub of local motorcycle-
related activity and information in physical and virtual
terms. On the physical side, MVM has added activity and
event-oriented pages to its Web sites, sponsored rallies
and clubs, added meeting rooms and small coffee shops
in some locations, and colocated with bars and restaurants
that feature motorcycle-related themes and entertainment.
These efforts have yielded good results with older custo-
mers but less so with younger customers.
Amanda is concerned about the lack of participation by
younger customers and is sure that MVM’s lack of pres-
ence in social media and virtual relationships is a signifi-
cant factor. She and her senior staff, most of whom are
older, are unsure how to attract younger customers. They
have little knowledge of and no experience creating mod-
ern technology-based virtual communities.
MVM’s chief information officer is starting to develop
a project plan for a virtual community oriented toward
younger customers. If the plan were for developing a tradi-
tional information system, she would use such standard
approaches as interviewing internal users and managers
and having her development staff write specifications,
generate storyboards and screen layouts, and develop pro-
totypes. But few of the intended virtual community users
are MVM employees, and none of her staff members fully
comprehends how to successfully use social media and
other techniques for building virtual societies. Traditional
methods of defining and refining requirements seem inad-
equate to the task.
Overview
In Chapter 1, you saw the System Development Life Cycle (SDLC) being
employed by Ridgeline Mountain Outfitters (RMO) for a small information
system application called the Tradeshow System. Development of that system
followed the six core processes of the SDLC:
1. Identify the problem or need and obtain approval to proceed.
2. Plan and monitor the project—what to do, how to do it, and who does it.
3. Discover and understand the details of the problem or the need.
4. Design the system components that solve the problem or satisfy the need.
5. Build, test, and integrate system components.
6. Complete system tests and then deploy the solution.
In this chapter, we start expanding the scope and detail of the SDLC pro-
cesses to cover a wider range of concepts, tools, and techniques. The extra
depth and detail are needed to tackle larger and more complex projects. This
chapter concentrates on systems analysis activities (the third core process listed),
and the next few chapters follow up on that with detailed discussions of models
36 PART 2 ■ Systems Analysis Activities
developed during those systems analysis activities. Subsequent chapters expand
the discussion of other core SDLC processes.
The RMO Consolidated Sales
and Marketing System Project
Ridgeline Mountain Outfitters has an elaborate set of information systems
applications developed over the years to support operations and management.
However, there is a growing gap between customer expectations, modern tech-
nological capabilities, and existing RMO systems that support sales and cus-
tomer interaction. This section reviews the existing system inventory and
introduces the proposed Consolidated Sales and Marketing System that will
update and enhance sales and marketing.
Existing RMO Information Systems and Architecture
RMO’s Information Systems Department has always been forward looking. In
past years, the department, in conjunction with corporate strategic plans, has
developed five-year plans for development and deployment of new technology
and information systems. The planning process has been an excellent tool to
help the organization stay current with new trends and technology capabilities.
However, the plans themselves have had mixed success. One of the complexities
with long-range IT and software development plans is that technology changes
rapidly and moves in unexpected directions. For example, the Tradeshow
System described in Chapter 1 was made possible by the availability of powerful
and flexible handheld devices and the widespread availability of Wi-Fi and
Internet connections. Both technologies reached a fairly mature level in just a
couple of years, which created an opportunity for RMO to optimize this impor-
tant business process.
Historically, RMO has adopted new technology as soon as it became cost-
effective. Past examples include adoption of smaller servers and desktop comput-
ing, interconnection of locations with dedicated telecommunications links, and
such Web-based technologies as customer-oriented Web sites and browser-based
user interfaces for internal systems. At present, RMO has a disparate collection
of computers dispersed across home offices, retail stores, telephone centers, order
fulfillment/shipping centers, and warehouses—everything connected by a complex
set of local area networks (LANs), wide area networks (WANs), and virtual pri-
vate networks (VPNs). The term technology architecture describes the set of
computing hardware, network hardware and topology, and system software—
such as operating and database management systems—employed by an organiza-
tion. RMO’s technology architecture is modern but not state of the art, which is
consistent with its goal of adopting only cost-effective technology.
The term application architecture describes how software resources are
organized and constructed to implement an organization’s information systems.
It describes the organization of software into modules and subsystems and
includes supporting technologies (such as programming languages and develop-
ment environments), architectural approaches (such as service-oriented architec-
ture), and user-interface technologies (such as mobile computing displays, touch
screen technology, and voice recognition).
Currently, the major RMO systems consist of:
■ Supply Chain Management (SCM)—This application was deployed five
years ago as a client/server application using Java and Oracle. Currently, it
supports inventory control, purchasing, and distribution, although integra-
tion of functions needs improvement. The new Tradeshow System will
interface with this system.
■ Phone/Mail Order System—A modest client/server application developed
12 years ago by using Visual Studio and Microsoft SQL Server as a quick
technology architecture a set of
computing hardware, network hardware and
topology, and system software employed by
an organization
application architecture the organiza-
tion and construction of software resources to
implement an organization’s information
systems
CHAPTER 2 ■ Investigating System Requirements 37
solution to customer demand for catalog phone and mail orders. It is
integrated with the SCM and has reached capacity.
■ Retail Store System (RSS)—A retail store package with point-of-sale proces-
sing. It was upgraded eight years ago from overnight batch to real-time
inventory updates to/from the SCM.
■ Customer Support System (CSS)—This system was first deployed 15 years ago
as a Web-based catalog to support customer mail and phone orders. Four
years later, it was upgraded to an Internet storefront, supporting customer
inquiries, shopping cart, order tracking, shipping, back orders, and returns.
All organizations—including RMO—face a difficult challenge keeping all
their information systems current and effective. Because development resources
are limited, an organization’s technology and application architecture and its
information system inventory will include a mix of old and new. Older systems
were often designed for outdated operational methods and typically lack mod-
ern technologies and features that some competitors have adopted to improve
efficiency or competitiveness. Such is the case with RMO’s existing customer-
facing systems, which have several shortcomings, including:
■ Treating phone, Web, and retail sales as separate systems rather than as
an integrated whole
■ Employing outdated Web-based storefront technology
■ Not supporting modern technologies and customer interaction modes,
including mobile computing devices and social networking
Rather than incrementally update the existing sales systems, RMO plans to
replace them, as shown in Figure 2-1.
FIGURE 2-1 Proposed application architecture for RMO
Supply Chain Management (SCM) Consolidated Sales and Marketing System (CSMS)
Suppliers
Customers
Buyers
Retail Stores
Retail Sales
Phone Sales
CustomersTrade Show System (TSS)
Warehouses
Shipments
Orders
Shipments
Orders
Shipments
Online Sales
38 PART 2 ■ Systems Analysis Activities
The New Consolidated Sales and Marketing System
The goals of the Consolidated Sales and Marketing System (CSMS) are to modern-
ize the technology and functionality of the CSS and to add more customer-oriented
functionality. On the technology side, the CSMS will incorporate current Web
standards and be built under the assumption of high-bandwidth customer Internet
connections and high-resolution displays. Updating the technology will enable a
higher degree of interactivity, richer graphics, and a streamlined interface.
Key additions to system functionality will be support for mobile computing
devices, incorporation of customer feedback and comments into product informa-
tion, and integration of social networking functions. Unlike the CSS, the CSMS
will support smartphones and tablet computers with interfaces specifically designed
for each platform and with downloadable apps. Customer feedback will be
captured directly through the Internet storefront, from RMO-supported comment
forums and blogs, and mined from Facebook and Twitter. RMO will develop a
complete presence in each social networking venue and enable system users to
share purchases, recommendations, coupons, and store credits using those venues.
The new CSMS will also have four subsystems:
■ The Sales subsystem provides such basic functions as searching the online
catalog and purchasing items and paying for them online. However, it has
many new capabilities to assist the shopper making purchases. The system
will provide specific suggestions about accessories that go with the pur-
chased item. Images and videos of animated models will be available to help
the customer see how various items and accessory packages will look
together. The system will also provide information to shoppers about
related purchases made by other shoppers. Customer ratings and comments
are available for viewing. Finally, key social networking components will
permit shoppers to network with their friends by sending messages to ask
their opinions about particular merchandise items.
■ The Order Fulfillment subsystem will perform all the normal tasks of ship-
ping items and allowing customers to track the status of their orders as well
as the shipments. In addition, as part of order fulfillment, customers can rate
and make comments about particular merchandise and their overall shopping
experience. They may also make suggestions directly to RMO about the
attractiveness of the Web site and the quality of the service they received.
■ The Customer Account subsystem provides all those services that enhance the
customer experience. Customers can view and maintain their account informa-
tion. They also can “link up” with friends who are also customers to share
experiences and opinions on merchandise. The system will keep track of
detailed shipping addresses as well as payment preferences and information.
RMO also instituted a Mountain Bucks program wherein customers accumu-
late credits that can be used to redeem prizes as well as purchase merchandise.
Customers may use these Mountain Bucks for themselves or they may transfer
them to other people in their family/friends group. This is a great opportunity
to combine accumulated bucks to obtain expensive merchandise.
■ The Marketing subsystem is primarily for employees to set up the informa-
tion and services for customers. In this subsystem, employees can enter
information about all the merchandise offered by RMO. This subsystem is
also fed by the SCM system to maintain accurate data on the inventory in
stock and anticipated arrival dates of items on order. Employees also set up
the various promotional packages and seasonal catalogs by using the func-
tions of this subsystem. RMO is experimenting with a new idea to enhance
customer satisfaction: It is building partner relationships with other retailers
so that customers can earn “combined” points with RMO purchases or a
partner retailer purchase. These points can be used at RMO or transferred
and used at the partner. For example, because RMO sells outdoor and
sporting clothing, it has partnered with various sporting goods stores.
CHAPTER 2 ■ Investigating System Requirements 39
That way, a person can buy sporting equipment at the sporting equipment
store and get promotional discounts for clothing at RMO. The success of
this new venture has yet to be proven, but RMO anticipates that it will
enhance the shopping experience of all its customers.
In later chapters, more details will be given about the capabilities of the new
CSMS system. Detailed explanations will also describe the information that
must be maintained in the database to support these functions.
Systems Analysis Activities
The callout on the left side of Figure 2-2 lists the activities of the third core
process, which is to discover and understand the details. This core process also
goes by the name systems analysis. By completing these activities, the analyst
defines in great detail what the information system needs to accomplish to pro-
vide the organization with the desired benefits. In essence, analysis activities are a
second and more thorough pass at defining the problem and need. The first pass
generates only enough detail to decide whether a new or upgraded system is war-
ranted and feasible. The second (analysis) pass assumes that the organization is
committed to the project. Thus, considerably more time and resources are
invested to produce a much more detailed description of what the system will do.
Although we concentrate only on analysis activities in this chapter, keep in
mind that they are usually intermixed with design, implementation, and other activ-
ities during the system development life cycle. For example, as shown in Figure 2-2,
analysis activities are most intensive in the second iteration but occur in varying
degrees during all project iterations except the last. This pattern is typical because
an analyst will often concentrate on one part of a system, defining requirements
only for that part and simultaneously designing and implementing software to sat-
isfy those requirements. Organizing development activities in this iterative manner
enables development to be broken into smaller steps and enables users to validate
requirements by testing and observing a functional system. The following sections
briefly describe analysis activities, and the remainder of this chapter expands the
discussion of information gathering and defining system requirements.
Gather Detailed Information
Systems analysts obtain information from people who will be using the system,
either by interviewing them or by watching them work. They obtain additional
information by reviewing planning documents and policy statements. Analysts
also study existing systems, including their documentation. They also frequently
obtain additional information by looking at what other companies (particularly
vendors) have done when faced with a similar business need. They try to
FIGURE 2-2 Analysis activities
Analysis activities
Gather detailed information
Define requirements
Prioritize requirements
Develop user-interface dialogs
Evaluate requirements with users
Core
Processes
1 2 3 4 5 6
Identify problem and obtain
approval
Plan and monitor the project
Discover and understand details
Design system components
Build, test, and integrate system
components
Complete system tests and deploy
solution
Iterations
40 PART 2 ■ Systems Analysis Activities
understand an existing system by identifying and understanding the activities of
all the current and future users and by identifying all the present and future loca-
tions where work occurs and all the system interfaces with other systems, both
inside and outside the organization. In short, analysts need to talk to nearly every-
one who will use the new system or has used similar systems, and they must read
nearly everything available about the existing system. Later in this chapter, we
discuss how to identify and extract information from all these people.
Beginning analysts often underestimate how much there is to learn about the
work the user performs. The analyst must become an expert in the business area
the system will support. For example, if you are implementing an order-entry
system, you need to become an expert on the way orders are processed (including
related accounting procedures). If you are implementing a loan-processing
system, you need to become an expert on the rules used for approving credit. If
you work for a bank, you need to think of yourself as a banker. The most
successful analysts become experts in their organization’s main business.
Define Requirements
The analyst uses information gathered from users and documents to define
requirements for the new system. System requirements include the functions the
system must perform (functional requirements) and such related issues as user-
interface formats and requirements for reliability, performance, and security
(nonfunctional requirements). We further discuss the distinction between func-
tional and nonfunctional requirements a bit later in this chapter.
Defining requirements is not just a matter of writing down facts and figures.
Instead, the analyst creates models to record requirements, reviews the models
with users and others, and refines and expands the models to reflect new or
updated information. Building and refining requirements models occupies much
of the analyst’s time. This chapter and the next two chapters explain in consid-
erable depth how to create requirements models.
Prioritize Requirements
Once the system requirements are well understood, it is important to establish
which requirements are most crucial for the system. Sometimes, users suggest
additional system functions that are desirable but not essential. However, users
and analysts need to ask themselves which functions are truly important and
which are fairly important but not absolutely required. Again, an analyst who
understands the organization and the work done by the users will have more
insight toward answering these questions.
Why prioritize the functions requested by the users? Resources are always
limited, and the analyst must always be prepared to justify the scope of the system.
Therefore, it is important to know what is absolutely required. Unless the analyst
carefully evaluates priorities, system requirements tend to expand as users make
more suggestions (a phenomenon called scope creep). Requirements priorities also
help to determine the number, composition, and ordering of project iterations.
High-priority requirements are often incorporated into early project iterations so
analysts and users have ample opportunity to refine those parts of the system. Also,
a project with many high-priority requirements will typically have many iterations.
Develop User-Interface Dialogs
When a new system is replacing an old system that does similar work, users are usu-
ally quite sure about their requirements and the desired form of the user interface.
But many system development projects break new ground by automating functions
that were previously performed manually or by implementing functions that were
not performed in the past. In either case, users tend to be uncertain about many
aspects of system requirements. Such requirements models as use cases, activity dia-
grams, and interaction diagrams can be developed based on user input, but it is
often difficult for users to interpret and validate such abstract models.
CHAPTER 2 ■ Investigating System Requirements 41
In comparison, user validation of an interface is much simpler and more reli-
able because the user can see and feel the system. To most users, the user interface
is all that matters. Thus, developing user-interface dialogs is a powerful method of
eliciting and documenting requirements. Analysts can develop user interfaces via
abstract models, such as storyboards (covered in more detail in Chapter 7), or
they can develop user-interface prototypes on the actual input/output devices that
users will use (e.g., a computer monitor, iPad, or cell phone). A prototype interface
can serve as a requirement and a starting point for developing a portion of the sys-
tem. In other words, a user-interface prototype developed in an early iteration can
be expanded in later iterations to become a fully functioning part of the system.
Evaluate Requirements with Users
Ideally, the activities of evaluating requirements with users and documenting the
requirements are fully integrated. But in practice, users generally have other responsi-
bilities besides developing a new system. Thus, analysts usually use an iterative
process in which they elicit user input, work alone to model requirements, return to
the user for additional input or validation, and then work alone to incorporate the
new input and refine the models. Prototypes of user interfaces and other parts of the
system may also be developed when “paper” models are inadequate or when users
and analysts need to prove that chosen technologies will do what they are supposed
to do. Also, if the system will include new or innovative technology, the users may
need help visualizing the possibilities available from the new technology when defin-
ing what they require. Prototypes can fill that need. The processes of eliciting require-
ments, building models and prototypes, and evaluating them with users may repeat
many times until requirements models and prototypes are complete and accurate.
What Are Requirements?
As you can see from the previous section, requirements and models that repre-
sent them are a key focus of analysis phase activities. Most of the analyst’s time
is devoted to requirements: gathering information about them, formalizing them
by using models and prototypes, refining and expanding them, prioritizing
them, and generating and evaluating alternatives. But to fully understand those
activities, you need to answer a fundamental question: What are requirements?
System requirements are all the activities the new system must perform
or support and the constraints that the new system must meet. Generally, ana-
lysts divide system requirements into two categories: functional and nonfunc-
tional requirements. Functional requirements are the activities that the system
must perform (i.e., the business uses to which the system will be applied). For
example, if you are developing a payroll system, the required business uses
might include such functions as “generate electronic fund transfers,” “calculate
commission amounts,” “calculate payroll taxes,” “maintain employee-dependent
information,” and “report tax deductions to the IRS.” The new system must
handle all these functions. Identifying and describing all these business uses
require a substantial amount of time and effort because the list of functions and
their relationships can be very complex.
Functional requirements are based on the procedures and rules that the
organization uses to run its business. Sometimes, they are well documented and
easy to identify and describe. An example might be the following: “All new
employees must fill out a W-4 form to enter information about their tax with-
holding in the payroll system.” Other business rules might be more obtuse or
difficult to find. An example from RMO might be the following: “Air shipping
charges are reduced by 50 percent for orders over $200 that weigh less than
two pounds.” Discovering such rules is critical to the final design of the system.
If this rule were not discovered, customers that had relied on it in the past might
become angry. Modifying the system after customers start complaining would
be much more difficult and expensive than building in the rule from the start.
system requirements the activities a
system must perform or support and the
constraints that the system must meet
functional requirements the activities
that the system must perform
42 PART 2 ■ Systems Analysis Activities
Nonfunctional requirements are characteristics of the system other than
those activities it must perform or support. It is not always easy to distinguish
functional from nonfunctional requirements. One way to do so is to use a
framework for identifying and classifying requirements. There have been many
such frameworks developed over time; the most widely used today is called
FURPS+ (see Figure 2-3). FURPS is an acronym that stands for functionality,
usability, reliability, performance, and security. The “F” in FURPS is equivalent
to the functional requirements defined previously. The remaining FURPS catego-
ries describe nonfunctional requirements:
■ Usability requirements describe operational characteristics related to
users, such as the user interface, related work procedures, online help, and
documentation. For example, the user interface for a smartphone app
should behave similarly to other apps when responding to such gestures as
two-finger slides, pinching, and expanding. Additional requirements might
include menu format, color schemes, use of the organization’s logo, and
multingual support.
■ Reliability requirements describe the dependability of a system—how
often a system exhibits such behaviors as service outages and incorrect
processing and how it detects and recovers from those problems.
■ Performance requirements describe operational characteristics related to
measures of workload, such as throughput and response time. For example,
the client portion of a system might be required to have a one-half-second
response time to all button presses, and the server might need to support
100 simultaneous client sessions (with the same response time).
■ Security requirements describe how access to the application will be
controlled and how data will be protected during storage and transmission.
For example, the application might be password protected, encrypt locally
stored data with 1024-bit keys, and use secure HTTP for communication
among client and server nodes.
FURPS+ is an extension of FURPS that adds additional categories, includ-
ing design constraints as well as implementation, interface, physical, and sup-
portability requirements—all these additional categories summarized by the plus
sign. Here are short descriptions of each category:
■ Design constraints describe restrictions to which the hardware and soft-
ware must adhere. For example, a cell phone application might be required
to use the Android operating system, consume no more than 30MB of flash
memory storage, consume no more than 10MB of system memory while
running, and operate on CPUs rated at 1 GHz or higher.
User interface, ease of use
Failure rate, recovery methods
Response time, throughput
Access controls, encryption
Hardware and support software
Development tools, protocols
Data interchange formats
Size, weight, power consumption
Installation and updates
Functional
Requirement
categories
FURPS +
categories
Nonfunctional Usability
Reliability
Performance
Security
+ Design constraints
Implementation
Interface
Physical
Support
Functions Business rules and processes
Example
requirements
FIGURE 2-3
FURPS+
nonfunctional requirements system
characteristics other than the activities it must
perform or support
FURPS a requirements classification
framework (acronym stands for functionality,
usability, reliability, performance, and security)
usability requirements operational
characteristics related to users, such as the
user interface, related work procedures, online
help, and documentation
reliability requirements requirements
that describe system dependability
performance requirements opera-
tional characteristics related to measures
of workload, such as throughput and
response time
security requirements requirements
that describe how access to the application will
be controlled and how data will be protected
during storage and transmission
FURPS+ an extension of FURPS that
includes design constraints as well as
implementation, interface, physical, and
supportability requirements
design constraints restrictions to which
the hardware and software must adhere
CHAPTER 2 ■ Investigating System Requirements 43
■ Implementation requirements describe constraints such as required
programming languages and tools, documentation method and level
of detail, and a specific communication protocol for distributed
components.
■ Interface requirements describe interactions among systems. For
example, a financial reporting system for a publicly traded company
in the United States must generate data for the Securities and Exchange
Commission (SEC) in a specific XML format. The system might also
supply data directly to stock exchanges and bond rating agencies and
automatically generate Twitter messages, RSS feeds, and Facebook
updates.
■ Physical requirements describe such characteristics of hardware as size,
weight, power consumption, and operating conditions. For example, a sys-
tem that supports battlefield communications might have such requirements
as weighing less than 200 grams, being no larger than 5 centimeters cubed,
and operating for 48 hours on a fully charged 1200 milliwatt lithium ion
battery.
■ Supportability requirements describe how a system is installed, config-
ured, monitored, and updated. For example, requirements for a game
installed on a home PC might include automatic configuration to maximize
performance on existing hardware, error reporting, and download of
updates from a support server.
As with any set of requirements categories, FURPS+ has some gray areas
and some overlaps among its categories. For example, is a requirement that a
battlefield communications device survive immersion in water and operate
across a temperature range of –20°C to 50°C a performance or physical require-
ment? Is a restriction to use no more than 100 MB of memory a performance
or design requirement? Is a requirement to secure communication between
workstations and servers with 1024-bit encryption a performance, design, or
implementation requirement? The answers to such questions are not important.
What is important is that all requirements be identified and precisely stated
early in the development process and that inconsistencies or trade-offs among
them be resolved.
Models and Modeling
Modeling is an important part of analysis and design. Analysts build models to
describe system requirements and use those models to communicate with users
and designers. By developing a model and reviewing it with a user, an analyst
demonstrates an understanding of the user’s requirements. If the user spots
errors or omissions, they are incorporated into the model before it becomes the
basis for subsequent design and implementation activities. Figure 2-4 summarizes
the key reasons for building and using models.
Designers construct high-level and detailed models to describe system com-
ponents and their interactions. Design models serve as a scratch pad for evaluat-
ing design alternatives and as a way to communicate the final design to
programmers, vendors, and others who will build, acquire, and assemble com-
ponents to create the final system. In general, models built during one SDLC
activity are “consumed” during other activities.
A model is a representation of some aspect of the system being built. There
are dozens of different models that an analyst or designer might develop and use
(see Figure 2-5). Although this book emphasizes models and techniques for
creating models, it is important to remember that system projects vary in the
number of models required and in their formality. Smaller, simpler system
projects will not need models showing every system detail, particularly when
implementation requirements
constraints such as required programming
languages and tools, documentation method
and level of detail, and a specific communica-
tion protocol for distributed components
interface requirements required
interactions among systems
physical requirements characteristics
of hardware such as size, weight, power con-
sumption, and operating conditions
supportability requirements how a
system is installed, configured, monitored, and
updated
model representation of some aspect
of a system
44 PART 2 ■ Systems Analysis Activities
the project team has experience with the type of system being built. Sometimes,
the key models are created informally in a few hours. Although models are
often created by using specialized software tools, useful and important models
are sometimes drawn quickly over lunch on a paper napkin or in an airport
waiting room on the back of an envelope! As with any development activity, an
iterative approach is used for creating models. The first draft of a model has
some but not all details worked out. The next iteration might fill in more details
or correct previous misconceptions.
Analysis and design models can be grouped into three generic types:
■ Textual models—Analysts use such textual models as memos, reports,
narratives, and lists to describe requirements that are detailed and are diffi-
cult to represent in other ways. The event list in Figure 2-5 is one example
of a textual model. Narrative description is often the best way to initially
record information gathered verbally from stakeholders, such as during an
interview. In many cases, narratives and other textual models are later con-
verted into a graphical format.
1 buy new car
2 sell car
3 get car serviced
4 make payment
5 trade in car
Event list Use case
description
Use case
diagram
Sequence
diagram
Communication
diagram
State machine
diagram
Class diagram
Location
diagram
FIGURE 2-5
Some analysis and design models
Learning from the modeling process
Reducing complexity by abstraction
Remembering all the details
Communicating with other development team members
Communicating with a variety of users and stakeholders
Documenting what was done for future maintenance/enhancement
FIGURE 2-4
Reasons for modeling
textual models text-based system mod-
els such as memos, reports, narratives, and lists
CHAPTER 2 ■ Investigating System Requirements 45
■ Graphical models—Graphical models make it easier to understand com-
plex relationships that are difficult to follow when described as a list or
narrative. Recall the old saying that a picture is worth a thousand words.
In system development, a carefully constructed graphical model might be
worth a million words! Some graphical models actually look similar to a
real-world part of the system, such as a screen design or a report layout
design. However, the graphical models developed during analysis activities
typically represent more abstract things, such as external agents, processes,
data, objects, messages, and connections.
■ Mathematical models—Mathematical models are one or more formulas
that describe technical aspects of a system. Analysts often use mathematical
models to represent functional requirements for scientific and engineering
applications and occasionally use them to describe business system require-
ments in areas such as accounting and inventory control. Analysts and
designers use mathematical models to describe requirements and operational
parameters such as network throughput or database query response time.
Many graphical models used in system development are drawn according to the
notation specified by the Unified Modeling Language (UML). In Figure 2-5, the
use case diagram, class diagram, sequence diagram, communication diagram, and
state machine diagram are UML graphical models. UML is the standard set of
model constructs and notations defined by the Object Management Group (OMG),
a standards organization for system development. By using UML, analysts and end
users are able to depict and understand a variety of specific diagrams used in a
system development project. Prior to UML, there was no standard, so diagrams
could be confusing, and they varied from company to company (and from book
to book).
We expand the discussion of models later in this chapter with a detailed
look at one type of graphical model: the workflow diagram. In later chapters,
you learn how to develop many of other types of analysis and design models.
Stakeholders
Stakeholders are your primary source of information for system requirements.
Stakeholders are all the people who have an interest in the successful imple-
mentation of the system. Depending on the nature and scope of the system, this
can be a small or a large, diverse group. For example, when implementing a
comprehensive accounting system for a publicly traded corporation in the
United States, the stakeholders include bookkeepers, accountants, managers and
executives, customers, suppliers, auditors, investors, the SEC, and the Internal
Revenue Service (IRS). Each stakeholder group interacts with the system in dif-
ferent ways, and each has a unique perspective on system requirements. Before
gathering detailed information, the analyst identifies every type of stakeholder
who has an interest in the new system and ensures that critical people from
each stakeholder category are available to serve as the business experts.
One useful way to help identify all the interested stakeholders is to con-
sider two characteristics by which they vary: internal stakeholders versus exter-
nal stakeholders and operational stakeholders versus executive stakeholders
(see Figure 2-6). Internal stakeholders are those within the organization who
interact with the system or have a significant interest in its operation or suc-
cess. You may be tempted to define internal stakeholders as employees of an
organization, but some organizations—such as nonprofits and educational
institutions—have internal users (e.g., volunteers and students) who are not
employees. External stakeholders are those outside the organization’s control
and influence, although this distinction can also be fuzzy, such as when an
organization’s strategic partners (e.g., suppliers and shipping companies) inter-
act directly with internal systems.
graphical models system models that
use pictures and other graphical elements
mathematical models system models
that describes requirements numerically or as
mathematical expressions
Unified Modeling Language (UML)
standard set of model constructs and notations
defined by the Object Management Group
stakeholders persons who have an
interest in the successful implementation
of the system
internal stakeholders persons within
the organization who interact with the system
or have a significant interest in its operation or
success
external stakeholders persons outside
the organization’s control and influence who
interact with the system or have a significant
interest in its operation or success
46 PART 2 ■ Systems Analysis Activities
Operational stakeholders are those who regularly interact with a system in
the course of their jobs or lives. Examples include bookkeepers interacting with
an accounting or billing system, factory workers interacting with a production
scheduling system, customers interacting with an Internet storefront, and patients
who interact with a health care Web site, Facebook page, or Twitter newsfeed.
Operational users are a key source of requirements information, especially as it
pertains to user interfaces and related functionality. Executive stakeholders
are those who do not interact directly with the system but who either use infor-
mation produced by the system or have a significant financial or other interest in
its operation and success. Examples include an organization’s senior managers
and board of directors, regulatory agencies, and taxing authorities.
Including such stakeholders in analysis activities is critical because the
requirements information they possess may not be obvious or widely known in
the organization. In addition, system requirements imposed by executive stake-
holders, especially external ones, often have significant legal and financial impli-
cations. For example, consider the potential effects of IRS regulations on an
accounting system or the effects of federal and state privacy laws on a social
networking system.
Two other stakeholder groups that do not neatly fall into the categories just
described deserve special attention. The client is the person or group that pro-
vides the funding for the project. In many cases, the client is senior management.
However, clients may also be a separate group, such as a corporation’s board of
directors, executives in a parent company, or the board of regents of a university.
The project team includes the client in its list of important stakeholders because
the team must provide periodic status reviews to the client throughout develop-
ment. The client or a direct representative on a steering or oversight committee
also usually approves stages of the project and releases funds.
An organization’s technical and support staff are also stakeholders in any
system. The technical staff includes people who establish and maintain the com-
puting environment of the organization. Support staff provide user training,
troubleshooting, and related services. Both groups should provide guidance in
such areas as programming language, computer platforms, network interfaces,
and existing systems and their support issues. Any new system must fit within
an organization’s existing technology architecture, application architecture, and
support environment. Thus, technical and support representatives are important
stakeholders.
Regulators
Partner organizations
Bookkeepers
Operational Executive
Accountants
Internal auditors
Internal
External
Customers
Investors
Board of directors
Senior managers
External
auditors
Operational
managers
FIGURE 2-6
Stakeholders of a comprehensive
accounting system for a publicly traded
company
operational stakeholders persons
who regularly interact with a system in the
course of their jobs or lives
executive stakeholders persons who
don’t interact directly with the system but who
either use information produced by the system
or have a significant financial or other interest
in its operation and success
client person or group that provides the
funding for a system development project
CHAPTER 2 ■ Investigating System Requirements 47
The Stakeholders for RMO
As a starting point for identifying CSMS stakeholders, it is helpful to develop a
list of CSS stakeholders, which include:
■ Phone/mail sales order clerks
■ Warehouse and shipping personnel
■ Marketing personnel who maintain online catalog information
■ Marketing, sales, accounting, and financial managers
■ Senior executives
■ Customers
■ External shippers (e.g., UPS and FedEx)
Because the CSMS will take over existing functions of the CSS, the list of
CSMS stakeholders includes all the stakeholders in the CSS list. However, there
are some subtle differences. For example, the inclusion of social networking
functions in the CSMS and the planned ability to share Mountain Bucks
expands the concept of who is a customer. While the old CSS was intended for
use by potential customers visiting the Web site, the new system potentially
interacts with a much larger group of external stakeholders, including friends
and family of existing customers and potentially all users of popular social net-
working sites. In essence, the stakeholder group “Customers” is much larger,
more diverse, and includes people who have not purchased from RMO.
Ensuring that the viewpoints and requirements of this diverse group are repre-
sented during analysis activities will be a considerable challenge.
Expanded functionality for sales promotions with partner organizations
creates an entirely new group of external stakeholders within those partner
organizations. At this point, it is unclear whether that group will include oper-
ational stakeholders, executive stakeholders, or both and exactly how those
stakeholders will interact with the system. Once again, ensuring adequate
input from those stakeholders will be a significant challenge, especially because
the portions of the system used by those stakeholders will not be based on an
existing system.
RMO is a privately held company; John and Liz Blankens are the owners,
and they hold two senior management positions. This is significant because the
key operational systems of any publicly traded company “inherit” many exter-
nal stakeholders due to the flow of information from those systems to the orga-
nization’s financial reports. RMO is audited by an external accounting firm,
primarily to ensure access to bank loans and other private financing.
As owners and senior managers, John and Liz are the primary clients,
but so are other senior executives who form a collaborative decision-making
body. In addition, existing technical and support staff are key stakeholders.
Figure 2-7 summarizes the internal managerial stakeholders in the form of
an organization chart.
Information-Gathering Techniques
Techniques for gathering detailed requirements information include:
■ Interviewing users and other stakeholders
■ Distributing and collecting questionnaires
■ Reviewing inputs, outputs, and documentation
■ Observing and documenting business procedures
■ Researching vendor solutions
■ Collecting active user comments and suggestions
All these methods have proven to be effective, although some are more efficient
than others. In most cases, analysts combine methods to increase their effectiveness
and efficiency and to provide a comprehensive fact-finding approach.
48 PART 2 ■ Systems Analysis Activities
Interview Users and Other Stakeholders
Interviewing users and other stakeholders is an effective way to understand busi-
ness functions and business rules. Unfortunately, it is also the most time-
consuming and resource-expensive option. In this method, systems analysts:
■ Prepare detailed questions.
■ Meet with individuals or groups of users.
■ Obtain and discuss answers to the questions.
■ Document the answers.
■ Follow up as needed in future meetings or interviews.
Obviously, this process may take some time, so it usually requires multiple
sessions with each of the users or user groups.
Jason Nadold
Manager
Warehousing/Shipping
John Blankens
President CEO
William Mcdougal
VP Marketing
and Sales
Genny Monson
AVP Retail
Sales
Brian Haddock
Director of
Operations
Karen Hansen
Director of
New Design
Henry Manwaring
Director of U.S.
Purchasing
Nathan Brunner
AVP
Production
Maryann Whitehead
Director of International
Purchasing
Elizabeth Blankens
VP Merchandising
and Distribution
Joann White
VP Finance and
Systems
April Sterling
AVP Accounting
and Finance
Joe Jones
AVP
Marketing/Advertising
Robert Schneider
Director of
Catalog Sales
Christine Roundy
Manager of Telephone
Sales
Mac Preston
Chief Information
Officer
John Macmurty
Director of System
Development
Ann Hamilton
Director of System
Support
FIGURE 2-7
RMO management stakeholders
involved in the CSS requirements
definition
CHAPTER 2 ■ Investigating System Requirements 49
Question Themes
Whether in informal meetings, formal interviews, or as part of a questionnaire
or survey, analysts ask questions. But which questions should analysts ask?
Figure 2-8 shows three major themes that guide the analysts when they are ask-
ing questions to define system requirements; it also shows sample questions that
arise from those themes.
What Are the Business Processes? The analyst must obtain a comprehensive list of
all the business processes. In most cases, the users provide answers in terms of the
current system, so the analyst must carefully discern which of those functions are
fundamental (i.e., which will remain and which may possibly be eliminated with an
improved system). For example, sales clerks might indicate that the first task they
perform when a customer places an order is to check the customer’s credit history.
In the new system, sales clerks might never need to perform that function; the system
might perform the check automatically. The function remains a system requirement,
but the method of carrying out the function and its timing are changed.
How Are the Business Processes Performed? Again, the focus starts with the
current system but gradually moves to the new system. The goal is to determine
how the new system should support the function rather than how it supports it
now. The analyst must be able to help the user visualize new and more efficient
approaches to performing the business processes made possible by new technology
or processes.
What Information Is Required? Some information inputs are formal; others are
informal. When questioning the user, the analyst should specifically ask about
exceptions or unusual situations in order to identify additional (nonroutine) infor-
mation requirements. In this theme and the previous one, detail is the watchword.
An analyst must understand the nitty-gritty detail to develop a correct solution.
Question Types
Questions can be roughly divided into two types:
■ Open-ended questions—questions such as “How do you do this function?”
that encourage discussion and explanation
■ Closed-ended questions—questions such as “How many forms a day do
you process?” that are used to get specific facts
Generally, open-ended questions help to start a discussion and enable a
large number of requirements to be uncovered fairly quickly. Note that all the
questions in the previous section are open ended. A discussion that starts with
open-ended questions usually shifts gradually to closed-ended questions that
elicit or confirm specific details of a business process.
Focus of Questions—Current System or New?
A significant question that faces all analysts is how much effort to expend
studying and documenting the existing system (if one exists). Excess attention to
Theme Questions to users
What are the business operations and processes? What do you do?
What information is needed to perform those
operations?
How should those operations be performed? How do you do it?
What steps do you follow?
How could they be done differently?
What information do you use?
What inputs do you use?
What outputs do you produce?
FIGURE 2-8
Themes for information-gathering
questions
open-ended questions questions that
encourage discussion or explanation
closed-ended questions questions
that elicit specific facts
50 PART 2 ■ Systems Analysis Activities
an existing system can consume considerable time and can result in simply
updating that system with newer technology. As a result, no matter how ineffi-
cient the current system is, system developers simply reimplement the procedures
that are already in place. On the other hand, if a new system inherits many or
all of the requirements of an existing system, then an analyst risks missing
important requirements through insufficient study of the existing system.
To minimize both risks, analysts must balance the review of current busi-
ness functions with discovery of new system requirements. It is still critical to
have a complete correct set of system requirements, but in today’s fast-paced
world, there is no time or money to review all the old systems and document
all the inefficient procedures. In fact, in today’s development environment, one
of the most valuable capabilities that a good system developer can bring is a
new perspective to the problem.
Interview Preparation, Conduct, and Follow-Up
Figure 2-9 is a sample checklist that summarizes the major points to be covered;
it is useful in preparing for, conducting, and following up an interview.
Preparing for the Interview Every successful interview requires preparation. The
first and most important step in preparing for an interview is to establish its
objective. In other words, what do you want to accomplish with this interview?
Write down the objective so it is firmly established in your mind. The second
step is to determine which stakeholders should be involved in the interview. A
small number of interviewees is generally best when the objective is narrow or
of a fact-finding nature. Larger groups are better if the objective is more open
ended, such as when generating and evaluating new ideas. However, it can be
difficult to manage a large group meeting to ensure high-quality input from all
participants. If possible, have at least two analysts involved in every interview,
and have them compare notes afterward to ensure accuracy.
The next step is to prepare detailed questions to be used in the interview.
Write down a list of specific questions, and prepare notes based on the forms
or reports received earlier. Usually, you should prepare a list of questions that
are consistent with the objective of the interview. Open-ended questions and
closed-ended questions are appropriate. Generally, open-ended questions help
Establish the objective for the interview.
Determine correct user(s) to be involved.
Determine project team members to participate.
Build a list of questions and issues to be discussed.
Review related documents and materials.
Set the time and location.
Inform all participants of objective, time, and locations.
Checklist for Conducting an Interview
Before
During
Review notes for accuracy, completeness, and understanding.
Transfer information to appropriate models and documents.
Identify areas needing further clarification.
Thank the participants.
Follow up on open and unanswered questions.
Arrive on time.
Look for exception and error conditions.
Probe for details.
Take thorough notes.
Identify and document unanswered items or open questions.
After
FIGURE 2-9
Sample checklist to prepare for user
interviews
CHAPTER 2 ■ Investigating System Requirements 51
get the discussion started and encourage the user to explain all the details of the
business process and the rules.
The last step is to make the final interview arrangements and then communi-
cate those arrangements to all participants. A specific time and location should be
established. If possible, a quiet location should be chosen, to avoid interruptions.
Each participant should know the objective of the meeting and, when appropri-
ate, should have a chance to preview the questions or materials to be used.
Interviews consume a substantial amount of time, and they can be made more
efficient if each participant knows beforehand what is to be accomplished.
Conducting the Interview The usual rules of workplace meetings apply during
stakeholder interviews: plan ahead, arrive early, and ensure that the room is
prepared and that needed resources are available. Limit the time of the interview
for the benefit of the analyst(s) and stakeholder(s); stakeholders have other
responsibilities, and the analysts can absorb only so much information at one
time. It is better to have several shorter interviews than one long interview. A
series of interviews provides an opportunity to absorb the material and then go
back to get clarification later.
Look for exception and error conditions. Look for opportunities to ask
“what if” questions. “What if it doesn’t arrive? What if the signature is missing?
What if the balance is incorrect? What if two orders are exactly the same?” The
essence of good systems analysis is understanding all the “what ifs.” Make a
conscious effort to identify all the exception conditions and then ask about
them. More than any other skill, the ability to think of the exceptions will help
you discover the detailed business rules. It is a hard skill to teach from a text-
book; experience will hone this skill. You will teach yourself this skill by consci-
entiously practicing it.
Probe for details. In addition to looking for exception conditions, the ana-
lyst must probe to ensure a complete understanding of all procedures and rules.
One of the most difficult skills to learn as a new systems analyst is how to get
enough details. Frequently, it is easy to get a general overview of how a process
works. But do not be afraid to ask detailed questions until you thoroughly
understand how the process works and what information is used. You cannot
do effective systems analysis by glossing over the details.
Take careful notes. It is a good idea to take handwritten notes. Usually,
tape recorders make users nervous. However, taking notes signals that you
think the information you are obtaining is important, and the user is compli-
mented. If two analysts conduct each interview, they can compare notes later.
Identify and document in your notes any unanswered questions or outstanding
issues that were not resolved. A good set of notes provides the basis for building
the analysis models as well as establishing a basis for the next interview session.
Figure 2-10 is a sample agenda for an interview session. Obviously, you do
not need to conform exactly to a particular agenda. However, as with the inter-
view checklist shown in Figure 2-9, this figure will help prod your memory on
issues and items that should be discussed in an interview. Make a copy and use
it. As you develop your own style, you can modify the checklist to the way you
like to work.
Following Up the Interview Follow-up is an important part of each interview.
The first task is to absorb, understand, and document the information that was
obtained. Generally, analysts document the details of the interview by construct-
ing models of the business processes and writing textual descriptions of non-
functional requirements. These tasks should be completed as soon after the
interview as possible and the results distributed to the interview participants for
validation. If the modeling methods are complex or unfamiliar to the users, the
analyst should schedule follow-up meetings to explain and verify the models, as
described in the last section of this chapter.
52 PART 2 ■ Systems Analysis Activities
During the interview, you probably asked some “what if” questions that the
users could not answer. They are usually policy questions raised by the new sys-
tem that management has not considered before. It is extremely important that
these questions not get lost or forgotten. Figure 2-11 shows a sample table for
tracking outstanding or unresolved issues for RMO. The table includes ques-
tions posed by users or analysts and responsibilities assigned for resolving the
issues. If several teams are working, a combined list can be maintained. Other
columns that might be added to the list are an explanation of the problem’s res-
olution and the date resolved.
FIGURE 2-11 Sample open-items list
ID Issue title Date identified
Target
end date
Responsible
project person
User contact Comments
1 Partial
shipments
6-12-2012 7-15-2012 Jim Williams Jason Nadold Ship partials or wait
for full shipment?
2 Returns and
commissions
7-01-2012 9-01-2012 Jim Williams William
McDougal
Are commissions
recouped on
returns?
3 Extra
commissions
7-01-2012 8-01-2012 Mary Ellen Green William
McDougal
How to handle com-
missions on special
promotions?
Discussion and Interview Agenda
Setting
Objective of Interview
Determine processing rules for sales commission rates
Date,Time, and Location
April 21, 2012, at 9:00 a.m. in William McDougal’s office
User Participants (names and titles/positions)
William McDougal, vice president of marketing and sales, and
several of his staff
Project Team Participants
Mary Ellen Green and Jim Williams
Interview/Discussion
1. Who is eligible for sales commissions?
2. What is the basis for commissions? What rates are paid?
3. How is commission for returns handled?
4. Are there special incentives? Contests? Programs based on time?
5. Is there a variable scale for commissions? Are there quotas?
6. What are the exceptions?
Follow-Up
Important decisions or answers to questions
See attached write-up on commission policies
Open items not resolved with assignments for solution
See Item numbers 2 and 3 on open items list
Date and time of next meeting or follow-up session
April 28, 2012, at 9:00 a.m.
FIGURE 2-10
Sample interview session agenda with
follow-up information
CHAPTER 2 ■ Investigating System Requirements 53
Finally, make a list of new questions based on areas that need further elabo-
ration or that are missing information. This list will prepare you for the next
interview.
Distribute and Collect Questionnaires
Questionnaires enable analysts to collect information from a large number of
stakeholders. Even if the stakeholders are widely distributed geographically, they
can still help define requirements through questionnaires. Questionnaires are often
used to obtain preliminary insight into stakeholder information needs, which helps
to determine areas that need further research by using other methods.
Figure 2-12 is a sample questionnaire showing three types of questions. The
first part has closed-ended questions to determine quantitative information.
FIGURE 2-12 Sample questionnaire
RMO Questionnaire
This questionnaire is being sent to all telephone-order sales personnel. As you know, RMO is developing a new
customer support system for order taking and customer service.
The purpose of this questionnaire is to obtain preliminary information to assist in defining the requirements for
the new system. Follow-up discussions will be held to permit everybody to elaborate on the system requirements.
Part I. Answer these questions based on a typical four-hour shift.
1. How many phone calls do you receive?_______________________________________________________
2. How many phone calls are necessary to place an order for a product?_______________________________
3. How many phone calls are for information about RMO products, that is, questions only?_________________
4. Estimate how many times during a shift customers request items that are out of stock.__________________
5. Of those out-of-stock requests, what percentage of the time does the customer desire to put the item
on back order?______________%
6. How many times does a customer try to order from an expired catalog?______________________________
7. How many times does a customer cancel an order in the middle of the conversation?___________________
8. How many times does an order get denied due to bad credit?______________________________________
Part II. Circle the appropriate number on the scale from 1 to 7 based on how strongly you
agree or disagree with the statement.
Question Strongly Agree Strongly Disagree
It would help me do my job better to have longer 1 2 3 4 5 6 7
descriptions of products available while talking
to a customer.
It would help me do my job better if I had the 1 2 3 4 5 6 7
past purchase history of the customer available.
I could provide better service to the customer if I 1 2 3 4 5 6 7
had information about accessories that were
appropriate for the items ordered.
The computer response time is slow and causes 1 2 3 4 5 6 7
difficulties in responding to customer requests.
Part III. Please enter your opinions and comments.
Please briefly identify the problems with the current system that you would like to see resolved in a new system.
_________________________________________________________________________________________
_________________________________________________________________________________________
_________________________________________________________________________________________
54 PART 2 ■ Systems Analysis Activities
The second part consists of opinion questions in which respondents are asked
whether they agree or disagree with the statement. Both types of questions are
useful for tabulating and determining quantitative averages. The third part
requests an explanation of a procedure or problem. Questions such as these are
good as a preliminary investigation to help direct further fact-finding activities.
Questionnaires are not well suited to helping you learn about processes, work-
flows, or techniques. Open-ended questions such as “How do you do this process?”
are best answered by using interviews or observation. Although a questionnaire can
contain a very limited number of open-ended questions, stakeholders frequently do
not return questionnaires that contain many open-ended questions.
Review Inputs, Outputs, and Procedures
There are two sources of information about inputs, outputs, and procedures.
One source is external to the organization—industry-wide professional organiza-
tions and other companies. It may not be easy to obtain information from other
companies, but they are a potential source of important information.
Sometimes, industry journals and magazines report the findings of “best prac-
tices” studies. The project team would be negligent in its duties if its members
were not familiar with best practice information.
The second source of inputs, outputs, and procedures is existing business
documents and procedure descriptions within the organization. Reviewing inter-
nal documents and procedures serves two purposes. First, it is a good way to
get a preliminary understanding of the processes. Second, existing inputs, out-
puts, and documents can serve as visual aids for the interview and as the work-
ing documents for discussion (see Figure 2-13). Discussion can focus on a
specific input or output, its objective, its distribution, and its information con-
tent. The discussion should also include specific business events that initiate the
use of an input or generation of an output. Several different business events
FIGURE 2-13 RMO mail-order form used as a visual aid during an interview
Ridgeline Mountain Outfitters—Customer Order Form
Name and address of person placing order.
(Please verify your mailing address and make correction below.)
Order Date
Description
Name
Address Apt. No
City State Zip
Phone: Day ( ) Evening ( )
Item No. Style Color Size
Sleeve
Length Qty Monogram Style
Price
Each Total
Method of Payment
Check/Money Order Gift Certificate(s) AMOUNT ENCLOSED $
Account Number
American Express MasterCard VISA
Signature
Other
Expiration Date
MO YR
Delivery Phone ( )
MERCHANDISE TOTAL
Regular FedEx shipping $4.50 per U.S. delivery address
(Items are sent within 24 hours for delivery in 2 to 4 days)
Please add $4.50 per each additional U.S. delivery address
FedEx Standard Overnight Service
Any additional freight charges
International Shipping (see shipping information on back)
Gift Order or Ship To: (Use only if different from address at left.)
Name
Address Apt. No
City State Zip
Gift Card Message
Gift Address for this Shipment Only Permanent Change of Address
CHAPTER 2 ■ Investigating System Requirements 55
might require the same form, and specific information about the event and the
business process is critical. It is always helpful to have screens and forms that
have been filled out with real information to ensure that the analyst obtains a
correct understanding of the data content.
Reviewing the documentation of existing procedures helps identify business
rules that may not come up in the interviews. Analyzing formal procedure docu-
mentation also helps reveal discrepancies and redundancies in the business pro-
cesses. However, procedure documents frequently are not kept up to date, and
they commonly include errors. To ensure that the assumptions and business
rules that derive from the existing documentation are correct, analysts should
review them with the users.
Observe and Document Business Processes
Firsthand experience is invaluable to understand exactly what occurs within
business processes. More than any other activity, observing a business process
in action will help you understand the business functions. However, while
observing existing processes, you must also be able to visualize the new system’s
associated business processes. That is, as you observe the current business pro-
cesses to understand the fundamental business needs, you should never forget
that the processes could and often should change to be made more efficient. Do
not get locked into believing there is only one way of performing the process.
You can observe a business process in many ways, ranging from a quick
walk-through of an office or plant to doing the work yourself. A quick walk-
through gives a general understanding of the layout of the office, the need for
and use of computer equipment, and the general workflow. Spending several
hours observing users at their jobs helps you understand the details of using the
computer system and carrying out business functions. Being trained as a user
and actually doing the job enables you to discover the difficulties of learning
new procedures, the importance of a system that is easy to use, and the stum-
bling blocks and bottlenecks of existing procedures and information sources.
It is not necessary to observe all processes at the same level of detail. A
quick walk-through may be sufficient for one process, whereas a process that is
critical or more difficult to understand might require an extended observation
period. If you remember that the objective is a complete understanding of the
business processes and rules, you can assess where to spend your time to gain
that understanding. As with interviewing, it is usually better if two analysts
combine their efforts in observing procedures.
Observation often makes the users nervous, so you need to be as unobtru-
sive as possible. You can put users at ease in several ways, such as by working
alongside a user or observing several users at once. Common sense and sensitiv-
ity to the needs and feelings of the users will usually result in a positive
experience.
Research Vendor Solutions
Many of the problems and opportunities that companies want to address with
new information systems have already been solved by other companies. In addi-
tion, consulting firms often have experience with the same problems, and soft-
ware firms may have already packaged solutions for a particular business need.
Taking advantage of existing knowledge or solutions can avoid costly mistakes
and save time and money.
There are three positive contributions and one danger in exploring existing
solutions. First, researching existing solutions will frequently help users generate
new ideas for how to better perform their business functions. Seeing how some-
one else solved a problem and applying that idea to the culture and structure of
the existing organization will often provide viable alternative solutions for busi-
ness needs.
56 PART 2 ■ Systems Analysis Activities
Second, some of these solutions are excellent and state of the art. Without
this research, the development team may create a system that is obsolete even
before it is designed. Companies need solutions that not only solve basic busi-
ness problems but that are up to date with competitive practices.
Third, it is often cheaper and less risky to buy a solution rather than to
build it. If the solution meets the needs of the company and can be purchased,
then that is usually a safer, quicker, and less expensive route.
The danger in exploring existing solutions is that the users and even the sys-
tems analysts may want to buy one of the alternatives immediately. But if a
solution, such as a packaged software system, is purchased too early in the pro-
cess, the company’s needs may not be thoroughly investigated. Too many com-
panies have purchased systems only to find out later that they only support half
the functions that were needed. Do not rush into a purchase decision until
requirements are fully defined and all viable alternatives have been thoroughly
investigated.
Collect Active User Comments and Suggestions
As discussed in Chapter 1 and earlier in this chapter, system development nor-
mally proceeds with analysis, design, and other activities spread across multiple
iterations. Portions of the system are constructed and tested during each itera-
tion. Users and other stakeholders perform the initial testing of system functions
during the iteration in which those functions are implemented. They also test
and use those same functions during later iterations.
User feedback from initial and later testing is a valuable source of require-
ments information. Interviews, discussions, and model reviews are an imperfect
way of eliciting complete and accurate requirements. The phrase “I’ll know it
when I see it” applies well to requirements definition. Users often cannot
completely or accurately state their requirements until they can interact with a
live system that implements those requirements. Based on those interactions,
users can develop concrete suggestions for improvement and identify missing or
poorly implemented requirements.
Documenting Workflows with Activity
Diagrams
As you gather information about business processes, you will need to document
your results. One effective way to capture this information is with diagrams.
Eventually, you may want to use diagrams to describe the workflows of the
new system, but for now, let us focus on how we would document the current
business workflows.
A workflow is the sequence of processing steps that completely handles one
business transaction or customer request. Workflows may be simple or complex.
Complex workflows can be composed of dozens or hundreds of processing steps
and may include participants from different parts of an organization.
An activity diagram describes the various user (or system) activities, the
person who does each activity, and the sequential flow of these activities.
Figure 2-14 shows the basic symbols used in an activity diagram. The ovals
represent the individual activities in a workflow. The connecting arrows repre-
sent the sequence between the activities. The black circles denote the beginning
and the ending of the workflow. The diamond is a decision point at which the
flow of the process will either follow one path or another. The heavy solid line
is a synchronization bar, which either splits the path into multiple concurrent
paths or recombines concurrent paths. The swimlane heading represents an
agent who performs the activities. Because it is common in a workflow to have
different agents (i.e., people) performing different steps of the workflow process,
workflow sequence of processing steps
that completely handles one business transac-
tion or customer request
activity diagram describes user (or sys-
tem) activities, the person who does each
activity, and the sequential flow of these
activities
synchronization bar activity diagram
component that either splits a control path into
multiple concurrent paths or recombines
concurrent paths
swimlane heading activity diagram col-
umn containing all activities for a single agent
or organizational unit
CHAPTER 2 ■ Investigating System Requirements 57
the swimlane symbol divides the workflow activities into groups showing which
agent performs which activity.
Figure 2-15 is an activity diagram that describes the order fulfillment pro-
cess for the current RMO CSMS. Processing begins when the customer has com-
pleted the order checkout process. The diagram describes the back-and-forth
flow of information and control between the Order subsystem, Inventory sub-
system, warehouse(s), and shipper. The diagram is simplified because it omits
many error-handling pathways, including what happens if enough item stock is
on hand to fulfill part of an order.
Figure 2-16 illustrates another workflow diagram, which demonstrates
some new concepts. In this example, a customer is ordering a product that has
to be manufactured specifically to match customer specifications. The salesper-
son sends the order to Engineering, and the diagram uses a new symbol to
emphasize the transmission of the document between Sales and Engineering.
After Engineering develops the specifications, two concurrent activities happen:
Purchasing orders the materials, and Production writes the program for the
automated milling machines. These two activities are completely independent
and can occur at the same time. Notice that one synchronization bar splits the
path into two concurrent paths and that another synchronization bar reconnects
them. Finally, Scheduling puts the order on the production schedule.
Creating activity diagrams to document workflows is straightforward. The
first step is to identify the agents to create the appropriate swimlanes. Next, fol-
low the various steps of the workflow and then make appropriate ovals for the
activities. Connect the activity ovals with arrows to show the workflow. Here
are a couple guidelines:
■ Use a decision symbol to represent an either/or situation—one path or the
other path but not both. As a shorthand notation, you can merge an activ-
ity (by using an oval) and a decision (by using a diamond) into a single oval
with two exit arrows, as indicated on the right in Figure 2-14. This notation
represents a decision (either/or) activity. Wherever you have an activity that
reads “verify” or “check,” you will probably require a decision—one for
the “accept” path and one for the “reject” path.
■ Use synchronization bars for parallel paths—situations in which both paths
are taken. Include a beginning and an ending synchronization bar. You can
also use synchronization bars to represent a loop, such as a “do while” pro-
gramming loop. Put the bar at the beginning of the loop and then describe
it as “for every.” Put another synchronization bar at the end of the loop
with the description “end for every.”
Ending activity
(Pseudo)
Activity
Transition arrow
Starting activity
(Pseudo)
Decision
activity
Another way
to show decision
Synchronization
bar (Split)
Synchronization
bar (Join)
Manager
Review
financials
Prepare
report
[yes][no]
Swimlane
heading
FIGURE 2-14
Activity diagram symbols
58 PART 2 ■ Systems Analysis Activities
FIGURE 2-15 Simple activity diagram for online checkout
Order subsystem
Order Fulfillment
Pick item from
stock
Prepare shipment
Generate tracking
record
Store shipment
record
Transmit shipment Receive shipment
Decrement item
stock count
Update order
status
Transmit
shipping details
Update order
shipment status
Inventory
subsystem
Warehouses
Shipping
company
Find location with
sufficient stock
Stock
found?
For each item in
completed order
No
Yes
End
for each
item
End for each item
Create back
order record
CHAPTER 2 ■ Investigating System Requirements 59
Chapter Summary
There are five primary activities of systems analysis:
■ Gather detailed information.
■ Define requirements.
■ Prioritize requirements.
■ Develop user-interface dialogs.
■ Evaluate requirements with users.
Functional requirements are those that explain the
basic business functions that the new system must sup-
port. Nonfunctional requirements involve the system’s
objectives with regard to technology, performance,
usability, reliability, and security.
Mathematical, descriptive, and graphical models are
developed to document requirements and as an aid in
evaluating requirements with users and other stake-
holders. Stakeholders include internal and external users
of the system and other persons or organizations that
have a vested interest in the system.
Analysts use many techniques to gather information
about requirements, including:
■ Interviews
■ Questionnaires
■ Documentation, input, and output reviews
■ Process observation and documentation
■ Vendor solution research
■ Active comments and suggestions from users
Workflow diagrams are a key modeling technique
often used as an early requirements model. Workflow
diagrams graphically model the steps of a business pro-
cess and the participants who perform them. Other mod-
els and diagrams are covered in later chapters.
FIGURE 2-16 Activity diagram showing concurrent paths
Salesperson Engineering Purchasing Production
Accept
order
Make
specifications
Buy
materials
Program
computer
Schedule
production
Scheduling
Order
60 PART 2 ■ Systems Analysis Activities
Key Terms
activity diagram 57
application architecture 37
client 47
closed-ended questions 50
design constraints 43
executive stakeholders 47
external stakeholders 46
functional requirements 42
FURPS 43
FURPS+ 43
graphical models 46
implementation requirements 44
interface requirements 44
internal stakeholders 46
mathematical models 46
model 44
nonfunctional requirements 43
open-ended questions 50
operational stakeholders 47
performance requirements 43
physical requirements 44
reliability requirements 43
security requirements 43
stakeholders 46
supportability requirements 44
swimlane heading 57
synchronization bar 57
system requirements 42
technology architecture 37
textual models 45
unified modeling
language (UML) 46
usability requirements 43
workflow 57
Review Questions
1. List and briefly describe the five activities of systems
analysis.
2. What are three types of models?
3. What is the difference between functional require-
ments and nonfunctional requirements?
4. Describe the steps in preparing for, conducting, and
following up an interview session.
5. What are the benefits of doing vendor research
during information-gathering activities?
6. What types of stakeholders should you include in
fact finding?
7. Describe the open-items list and then explain why it
is important.
8. List and briefly describe the six information-
gathering techniques.
9. What is the purpose of an activity diagram?
10. Draw and explain the symbols used on an activity
diagram.
Problems and Exercises
1. Provide an example of each of the three types of
models that might apply to designing a car, a house,
and an office building.
2. One of the toughest problems in investigating system
requirements is to make sure they are complete and
comprehensive. How would you ensure that you get
all the right information during an interview session?
3. One of the problems you will encounter during
your investigation is “scope creep” (i.e., user
requests for additional features and functions).
Scope creep happens because users sometimes have
many unsolved problems and the system investiga-
tion may be the first time anybody has listened to
their needs. How do you keep the system from
growing and including new functions that should
not be part of the system?
4. What would you do if you got conflicting answers for
the same procedure from two different people you
interviewed? What would you do if one was a clerical
person and the other was the department manager?
5. You have been assigned to resolve several issues on
the open-items list, and you are having a hard time
getting policy decisions from the user contact. How
can you encourage the user to finalize these policies?
6. In the running case of RMO, assume that you have
set up an interview with the manager of the
CHAPTER 2 ■ Investigating System Requirements 61
shipping department. Your objective is to determine
how shipping works and what the information
requirements for the new system will be. Make a list
of questions—open ended and closed ended—that
you would use. Include any questions or techniques
you would use to ensure you find out about the
exceptions.
7. Develop an activity diagram based on the following
narrative. Note any ambiguities or questions that
you have as you develop the model. If you need to
make assumptions, also note them.
The purchasing department handles purchase
requests from other departments in the company.
People in the company who initiate the original
purchase request are the “customers” of the pur-
chasing department. A case worker within the
purchasing department receives the request and
monitors it until it is ordered and received.
Case workers process requests for the purchase
of products under $1,500, write a purchase order,
and then send it to the approved vendor. Purchase
requests over $1,500 must first be sent out for bid
from the vendor that supplies the product. When
the bids return, the case worker selects one bid and
then writes a purchase order and sends it to the
vendor.
8. Develop an activity diagram based on the following
narrative. Note any ambiguities or questions that
you have as you develop the model. If you need to
make assumptions, also note them.
The shipping department receives all shipments
on outstanding purchase orders. When the clerk in
the shipping department receives a shipment, he or
she finds the outstanding purchase order for those
items. The clerk then sends multiple copies of the
shipment packing slip. One copy goes to
Purchasing, and the department updates its records
to indicate that the purchase order has been ful-
filled. Another copy goes to Accounting so a pay-
ment can be made. A third copy goes to the
requesting in-house customer so he or she can
receive the shipment.
After payment is made, the accounting depart-
ment sends a notification to Purchasing. After the
customer receives and accepts the goods, he or she
sends notification to Purchasing. When Purchasing
receives these other verifications, it closes the pur-
chase order as fulfilled and paid.
9. Conduct a fact-finding interview with someone
involved in a procedure that is used in a business
or organization. This person could be someone at
the university, in a small business in your neigh-
borhood, in the student volunteer office at the
university, in a doctor’s or dentist’s office, or in a
volunteer organization. Identify a process that is
done, such as keeping student records, customer
records, or member records. Make a list of ques-
tions and then conduct the interview. Remember,
your objective is to understand that procedure
thoroughly (i.e., to become an expert on that single
procedure).
10. Using RMO and the CSMS as your guide, develop
a list of all the procedures that may need to be
researched. You may want to think about the
exercise in the context of your experience with
such retailers as L.L. Bean, Lands’ End, or
Amazon.com. Check out the Internet marketing
done on the retailers’ Web sites and then think
about the underlying business procedures that are
required to support those sales activities. List the
procedures and then describe your understanding
of each.
Case Study
John and Jacob, Inc.: Online Trading System
John and Jacob, Inc. is a regional brokerage firm that has
been successful over the last several years. Competition for
customers is intense in this industry. The large national firms
have very deep pockets, with many services to offer clients.
Severe competition also comes from discount and Internet
trading companies. However, John and Jacob has been
able to cultivate a substantial customer base from upper-
middle-income clients in the northeastern United States. To
maintain a competitive edge with its customers, John and
Jacob is in the process of modernizing its online trading sys-
tem. The modernization will add new features to the existing
system and expand the range of interfaces beyond desktop
and laptop computers to include tablet computers and
smartphones. The system will add Twitter messaging in addi-
tion to continued support for traditional e-mail.
Edward Finnigan, the project manager, is in the pro-
cess of identifying all the groups of people who should
be included in the development of the system require-
ments. He is not quite sure exactly who should be
included. Here are the issues he is considering:
■ Users: The trading system will be used by customers
and by staff in each of the company’s 30 trading
offices. Obviously, the brokers who are going to use
the system need to have input, but how should this be
done? Edward also is not sure what approach would be
best to ensure that the requirements are complete yet
not require tremendous amounts of time. Including all
62 PART 2 ■ Systems Analysis Activities
the offices would increase enthusiasm and support for
the system, but it would take a lot of time. Involving
more brokers would bring divergent opinions that
would have to be reconciled.
■ Customers: The trading system will also include trade
order entry, investment analysis reports, trade confir-
mations, standard and customized reporting, and
customer statements. Edward wonders how to
involve John and Jacob customers in the develop-
ment of system requirements. Edward is sensitive to
this issue because many brokers have told him that
many customers are unhappy with the current sys-
tem, and customer complaints are sometimes posted
to the public comments area of the current Web site.
He would like to involve customers, but he does not
know how.
■ Other stakeholders: Edward knows he should involve
other stakeholders to help define system require-
ments. He is not quite sure whom he should contact.
Should he go to senior executives? Should he contact
middle management? Should he include such back-
office functions as accounting and investing? He is
not quite sure how to get organized or how to decide
who should be involved.
Answer the following questions:
1. What is the best method for Edward to involve the
brokers (users) in the development of the updated
online trading system? Should he use a questionnaire?
Should he interview the brokers in each of the com-
pany’s 30 offices or would one or two brokers repre-
senting the entire group be better? How can Edward
ensure that the information about requirements is
complete yet not lose too much time doing so?
2. Concerning customer input for the new system, how
can Edward involve customers in the process? How
can he interest them in participating? What methods
can Edward use to ensure that the customers he
involves are representative of John and Jacob’s entire
customer group?
3. As Edward considers what other stakeholders he should
include, what are some criteria he should use? Develop
some guidelines to help him build a list of people to
include.
RUNNING CASES
Community Board of Realtors
The real estate business relies on an extensive amount of
information used in the buying and selling of real prop-
erty. Most communities of real estate agents and brokers
have formed cooperative organizations to help consoli-
date and distribute information on the real estate profes-
sion, real estate trends, properties in the community,
historical records of property sales, and current listings
of properties for sale. These organizations are usually
referred to as the Community Board of Realtors.
Research your local Community Board of Realtors
to answer these questions:
1. Who are the stakeholders for the issues related to
real estate in your community, and what are their
main interests?
2. What types of information does the board collect
and make available to its members and to the
community?
3. Research the real estate industry in at least two
countries other than the United States. For each of
these countries, what are some of the cultural and
legal issues that differ from those in the United
States? If you were working on support for an
international real estate cooperative system, in
what ways would the information collection
activity process be complicated?
The Spring Breaks ‘R’ Us Travel Service
Spring Breaks ‘R’ Us (SBRU) is an online travel
service that books spring break trips to resorts for
college students. Students have booked spring break
trips for decades, but changes in technology have
transformed the travel business in recent years.
SBRU moved away from having campus reps with
posted fliers and moved to the Web early on. The
basic idea is to get a group of students to book a
room at a resort for one of the traditional spring
break weeks. SBRU contracts with dozens of resorts
(continued on page 64)
CHAPTER 2 ■ Investigating System Requirements 63
in key spring break destinations in Florida, Texas, the
Caribbean, and Mexico. Its Web site shows informa-
tion on each resort and includes prices, available
rooms, and special features. Students can research
and book a room, enter contract information, and
pay deposits and final payments through the system.
SBRU provides updated booking information, resort
information updates, and travel information for
booked students when they log in to the site.
The resorts also need access to information from
SBRU. They need to know about their bookings for
each week, the room types that are booked, and so
forth. Before the spring break booking season starts,
they need to enter information on their resorts, includ-
ing prices and special features. Resorts need to be paid
by SBRU for the bookings, and they need to be able to
report and collect for damages caused by spring-
breakers during their stay.
SBRU has recently decided to upgrade its system
to provide social networking features for students. It
is currently researching possibilities and collecting
information from prospective customers about desir-
able features and functions. From the business stand-
point, the idea is to increase bookings by enhancing
the experience before, during, and after the trip.
1. Who are the stakeholders for SBRU? For each type
of stakeholder, what aspects of the SBRU booking
system are of particular interest?
2. What are the main functional requirements for the
major subsystem areas (i.e., resort relations, stu-
dent booking, accounting and finance, and social
networking)?
3. Describe some usability requirements for students,
booking interactions, and social networking
interactions.
4. Assuming that social networking at the resorts will
require wireless communication and connection to
the Internet, what are some reliability requirements
that resorts might be asked to maintain? What are
some performance requirements? Is this a bigger
issue because resorts are in international locations?
5. What are some security requirements? Is there any
reason why students in Europe, Asia, or other
locations could not book rooms through SBRU?
What issues might be anticipated?
6. To collect information on functional requirements
for the social networking subsystem, what are
some techniques that might be used? Be specific
and include some sample questions you might ask
by using various techniques.
On the Spot Courier Services
As an employee of a large international courier and
shipping service, Bill Wiley met almost every day with
many companies that shipped and received packages.
He was frequently asked if his company could deliver
local packages on the same day. Over several months,
he observed that there appeared to be a substantial need
for courier services in the city in which he lived. He
decided that he would form his own courier delivery
company called On the Spot to fill this need.
Bill began by listing his mobile telephone number
in the Yellow Pages. He also sent letters to all those
companies that had requested same-day courier service
that his prior company had not been able to serve. He
hoped that, through good service and word-of-mouth
advertising, his business would grow. He also began
other advertising and marketing activities to promote
his services.
At first, Bill received delivery requests on his busi-
ness mobile phone. However, it was not long before
his customers were asking if he had a Web site where
they could place orders for shipments. He knew that if
he could get a Web presence he could increase his
exposure and help his business grow.
After he had been in business only a few short
months, Bill discovered he needed to have additional
help. He hired another person to help with the delivery
and pickup of packages. It was good to see the business
grow, but another person added to the complexity of
coordinating pickups and deliveries. With the addition
of a new person, he could no longer “warehouse” the
packages out of his delivery van. He now needed a cen-
tral warehouse where he could organize and distribute
packages for delivery. He thought that if his business
grew enough to add one more delivery person he
would also need someone at the warehouse to coordi-
nate the arrival and distribution of all the packages.
1. Who are the stakeholders for On the Spot? How
involved should On the Spot’s customers be in
system definition? As the business grows, who else
might be potential stakeholders and interested in
system functions?
2. If you were commissioned to build a system for
Bill, how would you determine the requirements?
Be specific in your answer. Make a list of the
questions you need answered.
(continued from page 63)
(continued on page 65)
64 PART 2 ■ Systems Analysis Activities
3. What technology and communication requirements
do you see? What are the hardware requirements, and
what kind of equipment will provide viable options to
the system? What would you recommend to Bill?
4. What are the primary functional requirements for
the system as described so far in the case?
Sandia Medical Devices
Medical monitoring technology has advanced signifi-
cantly in the last decade. Monitoring that once
required a visit to a health-care facility can now be
performed by devices located in a patient’s home or
carried or worn at all times. Examples include glucose
level (blood sugar), pulse, blood pressure, and electro-
cardiogram (EKG). Measurements can be transmitted
via telephone, Internet connection, and wireless data
transmission standards, such as Bluetooth. A particu-
larly powerful technology combination is a wearable
device that records data periodically or continuously
and transmits it via Bluetooth to a cell phone app.
The cell phone app can inform the patient of problems
and can automatically transmit data and alerts to a
central monitoring application (see Figure 2-17).
Health-care providers and patients incur signifi-
cant costs when glucose levels are not maintained
within acceptable tolerances. Short-term episodes of
very high or very low glucose often result in expensive
visits to urgent care clinics or hospitals. In addition,
patients with frequent but less severe episodes of high
or low glucose are more susceptible to such expensive
long-term complications as vision, circulatory, and
kidney problems.
Sandia Medical Devices (SMD), an Albuquerque
manufacturer of portable and wearable medical moni-
toring devices, has developed a glucose monitor
embedded in a wristband. The device is powered by
body heat and senses glucose levels from minute quan-
tities of perspiration. SMD is developing the Real-Time
Glucose Monitoring (RTGM) device in partnership
with New Mexico Health Systems (NMHS), a compre-
hensive health delivery service with patients through-
out New Mexico, The system’s vision statement reads
as follows:
RTGM will enable patients and their healthcare
providers to continuously monitor glucose levels,
immediately identify short- and long-term medical
dangers, and rapidly respond to those dangers in
medically appropriate ways.
SMD will develop the initial prototype software
for smartphones with Bluetooth capability running
the Google Android operating system. If successful,
(continued from page 64)
FIGURE 2-17 Data movement among devices and users
Cell phone app
routes date and
interacts with
patient for alerts
and monitoring
Wristband continuously
measures glucose level
Data sent to/from
server via
wireless Internet
Server archives
data and
generates alerts
Medical personnel
monitor levels/trends
and plan response
Communication with
patient via voice
or text messages
Data transmitted
to cell phone
via Bluetooth
(continued on page 66)
CHAPTER 2 ■ Investigating System Requirements 65
NMHS and its patients will have free use of the soft-
ware and SMD will resell the software to other health
systems worldwide.
1. Who are RTGM’s stakeholders? Should NMHS’s
patients be included in defining the system
requirements? Why or why not? Should RTGM
interact with medical professionals other than
physicians? Why or why not?
2. If you were the lead analyst for RTGM, how would
you determine the requirements? Be specific in your
answer. List several questions you need answered.
3. What are the primary functional requirements for
the system as described so far in the case?
4. Are the parameters for alerting patients and medi-
cal personnel the same for every patient? Can they
vary over time for the same patient? What are the
implications for the system’s functional
requirements?
5. Briefly describe some possible nonfunctional
requirements for RTGM.
Further Resources
Soren Lauesen, Software Requirements: Styles
and Techniques. Addison-Wesley, 2002.
Stan Magee, Guide to Software Engineering
Standards and Specifications. Artech House,
1997.
Suzanne Robertson and James Robertson,
Mastering the Requirements Process, Second
Edition. Addison-Wesley, 2006.
Karl Wiegers, Software Requirements. Microsoft
Press, 2003.
Karl Wiegers, More About Software Requirements:
Thorny Issues and Practical Advice. Microsoft
Press, 2006.
Ralph Young, The Requirements Engineering
Handbook. Artech House, 2003.
(continued from page 65)
66 PART 2 ■ Systems Analysis Activities
3
Use Cases
Chapter Outline
■ Use Cases and User Goals
■ Use Cases and Event Decomposition
■ Use Cases and CRUD
■ Use Cases in the Ridgeline Mountain Outfitters Case
■ User Case Diagrams
Learning Objectives
After reading this chapter, you should be able to:
■ Explain why identifying use cases is the key to defining functional requirements
■ Describe the two techniques for identifying use cases
■ Apply the user goal technique to identify use cases
■ Apply the event decomposition technique to identify use cases
■ Apply the CRUD technique to validate and refine the list of use cases
■ Describe the notation and purpose for the use case diagram
■ Draw use case diagrams by actor and by subsystem
67
OPENING CASE
Waiters on Call Meal-Delivery System
Waiters on Call is a restaurant meal-delivery service
started in 2008 by Sue and Tom Bickford. The Bickfords
worked for restaurants while in college and always
dreamed of opening their own restaurant. Unfortunately,
the initial investment was always out of reach. The
Bickfords noticed that many restaurants offer takeout
food and that some restaurants—primarily pizzerias—offer
home-delivery service. However, many people they met
seemed to want home delivery with a wider food
selection.
Sue and Tom conceived Waiters on Call as the best
of both worlds: a restaurant service without the high
initial investment. They contracted with a variety of
well-known restaurants in town to accept orders from
customers and to deliver the complete meals. After pre-
paring the meal to order, the restaurant charges Waiters
on Call a wholesale price, and the customer pays retail
plus a service charge and tip. Waiters on Call started
modestly, with only two restaurants and one delivery
driver working the dinner shift. Business rapidly
expanded, and the Bickfords realized they needed a
custom computer system to support their operations.
They hired a consultant, Sam Wells, to help them define
what sort of system they needed.
“What sort of events happen when you are running
your business that make you want to reach for a
computer?” asked Sam. “Tell me about what usually
goes on.”
“Well,” answered Sue, “when a customer calls in
wanting to order, I need to record it and get the informa-
tion to the right restaurant. I need to know which driver to
ask to pick up the order, so I need drivers to call in and tell
me when they are free. Perhaps this could be included as
a smartphone or iPad app. Sometimes, customers call
back wanting to change their orders, so I need to get my
hands on the original order and notify the restaurant to
make the change.”
“Okay, how do you handle the money?” queried
Sam.
Tom jumped in. “The drivers get a copy of the bill directly
from the restaurant when they pick up the meal. The bill
should agree with our calculations. The drivers collect that
amount plus a service charge. When drivers report in at
closing, we add up the money they have and compare it
with the records we have. After all drivers report in, we
need to create a deposit slip for the bank for the day’s total
receipts. At the end of each week, we calculate what we owe
each restaurant at the agreed-to wholesale price and send
each a statement and check.”
“What other information do you need to get from the
system?” continued Sam.
“It would be great to have some information at the
end of each week about orders by restaurant and orders
by area of town—things like that,” Sue said. “That would
help us decide about advertising and contracts with restau-
rants. Then, we need monthly statements for our
accountant.”
Sam made some notes and sketched some diagrams
as Sue and Tom talked. Then, after spending some time
thinking about it, he summarized the situation for Waiters
on Call. “It sounds to me like you need a system to use
whenever these events occur:
■ A customer calls in to place an order, so you need to
Record an order.
■ A driver is finished with a delivery, so you need to Record
delivery completion.
■ A customer calls back to change an order, so you need
to Update an order.
■ A driver reports for work, so you need to Sign in the
driver.
■ A driver submits the day’s receipts, so you need to
Reconcile driver receipts.
“Then, you need the system to produce information at
specific points in time—for example, when it is time to:
■ Produce an end-of-day deposit slip.
■ Produce end-of-week restaurant payments.
■ Produce weekly sales reports.
■ Produce monthly financial reports.
“Am I on the right track?”
Sue and Tom quickly agreed that Sam was talking
about the system in a way they could understand. They
were confident that they had found the right consultant
for the job.
Overview
Chapter 2 described the systems analysis activities used in system development
and then introduced the many tasks and techniques involved when completing
the first analysis activity—gathering information about the system, its stake-
holders, and its requirements. An extensive amount of information is required
68 PART 2 ■ Systems Analysis Activities
to properly define the system’s functional and nonfunctional requirements. This
chapter, like Chapter 4 and Chapter 5, presents techniques for documenting the
functional requirements by creating a variety of models. These models are cre-
ated as part of the analysis activity Define functional requirements, although
remember that the analysis activities are actually done in parallel and in each
iteration of the project.
Virtually all newer approaches to system development begin the require-
ments modeling process with the concept of a use case. A use case is an
activity the system performs, usually in response to a request by a user. In
Chapter 1, the RMO Tradeshow System example had a list of uses that
included Look up supplier, Enter/update product information, and Upload
product information. Two techniques are recommended for identifying use
cases: the user goal technique and the event decomposition technique. An
additional technique, known as the CRUD technique, is often used to validate
and enhance the list of use cases. These techniques are described in the follow-
ing sections.
Use Cases and User Goals
One approach to identifying use cases, called the user goal technique, is to
ask users to describe their goals for using the new or updated system. The ana-
lyst first identifies all the users and then conducts a structured interview with
each user. By focusing on one type of user at a time, the analyst can systemati-
cally address the problem of identifying use cases.
During the interview, the analyst guides the user to identify specific ways
that a computer system can help the user perform his or her assigned tasks. The
overarching objective is to identify how a system can improve the user’s perfor-
mance and productivity. Subsidiary goals might include streamlining tasks the
user currently performs or enabling the user to perform new tasks that are not
possible or practical with the current system. As these goals are uncovered and
described, the analyst probes for specific requests from the user and desired
responses from the proposed system, which the analyst documents as use cases.
Although the user is the ultimate source of this information, he or she often
requires guidance from the analyst to think beyond the boundaries of the ways
they currently approach their jobs.
Consider various user goals for the RMO Consolidated Sales and
Marketing System (CSMS) introduced in Chapter 2. In an example like this, the
analyst might talk to the people in the shipping department to identify their spe-
cific goals. These might include: Ship items, Track shipment, and Create item
return. When talking with people in the marketing department, goals identified
might include Add/update product information, Add/update promotion, and
Produce sales history report. When considering the goals of the prospective cus-
tomer, the analyst might ask a number of people to think about the system from
the customer’s viewpoint and to imagine the value-added features and functions
that would make RMO appealing and useful to customers. Focus groups might
be formed to uncover the wants and needs of potential customers. Potential cus-
tomer goals identified might include Search for item, Fill shopping cart, and
View product comments and ratings. Figure 3-1 lists a few of the user goals for
potential users of the CSMS.
The user goal technique for identifying use cases includes these steps:
1. Identify all the potential users for the new system.
2. Classify the potential users in terms of their functional role (e.g., shipping,
marketing, sales).
3. Further classify potential users by organizational level (e.g., operational,
management, executive).
use case an activity that the system
performs, usually in response to a request by
a user
user goal technique a technique to
identify use cases by determining what specific
goals or objectives must be completed by a user
CHAPTER 3 ■ Use Cases 69
4. For each type of user, interview them to find a list of specific goals they
will have when using the new system. Start with goals they currently
have and then get them to imagine innovative functions they think would
add value. Encourage them to state each goal in the imperative verb-noun
form, such as Add customer, Update order, and Produce month end
report.
5. Create a list of preliminary use cases organized by type of user.
6. Look for duplicates with similar use case names and resolve
inconsistencies.
7. Identify where different types of users need the same use cases.
8. Review the completed list with each type of user and then with interested
stakeholders.
Use Cases and Event Decomposition
The most comprehensive technique for identifying use cases is the event
decomposition technique. The event decomposition technique begins by
identifying all the business events that will cause the information system to
respond, and each event leads to a use case. Starting with business events
helps the analyst define each use case at the right level of detail. For example,
one analyst might identify a use case as typing in a customer name on a form.
A second analyst might identify a use case as the entire process of adding a
new customer. A third analyst might even define a use case as working with
customers all day, which could include adding new customers, updating cus-
tomer records, deleting customers, following up on late-paying customers, or
contacting former customers. The first example is too narrow to be useful.
The second example defines a complete user goal, which is the right level of
analysis for a use case. Working with customers all day—the third example—
is too broad to be useful.
The appropriate level of detail for identifying use cases is one that focuses
on elementary business processes (EBPs). An EBP is a task that is performed
by one person in one place in response to a business event, adds measurable busi-
ness value, and leaves the system and its data in a stable and consistent state. In
Figure 3-1, the RMO CSMS customer goals that will become use cases are
Search for item, Fill shopping cart, View product ratings and comments, and so
forth. These use cases are good examples of elementary business processes. To fill
a shopping cart is in response to the business event “Customer wants to shop.”
There is one person filling the cart, and there is measurable value for the cus-
tomer as items are added to the cart. When the customer stops adding items and
moves to another task, the system remembers the current cart and is ready to
switch to the new task.
User User goal and resulting use case
Potential customer Search for item
Fill shopping cart
View product rating and comments
Marketing manager Add/update product information
Add/update promotion
Produce sales history report
Shipping personnel Ship items
Track shipment
Create item return
FIGURE 3-1
Identifying use cases with the user
goal technique
event decomposition technique a
technique to identify use cases by determining
the external business events to which the
system must respond
elementary business processes
(EBPs) the most fundamental tasks in a
business process, which leaves the system and
data in a quiescent state; usually performed by
one person in response to a business event
70 PART 2 ■ Systems Analysis Activities
Note that each EBP (and thus each use case) occurs in response to a busi-
ness event. An event occurs at a specific time and place, can be described, and
should be remembered by the system. Events drive or trigger all processing that
a system does, so listing events and analyzing them makes sense when you need
to define system requirements by identifying use cases.
Event Decomposition Technique
As stated previously, the event decomposition technique focuses on identifying
the events to which a system must respond and then determining how a system
must respond (i.e., the system’s use cases). When defining the requirements for
a system, it is useful to begin by asking, “What business events occur that will
require the system to respond?” By asking about the events that affect the
system, you direct your attention to the external environment and look at the
system as a black box. This initial perspective helps keep your focus on a high-
level view of the system (looking at the scope) rather than on the inner workings
of the system. It also focuses your attention on the system’s interfaces with out-
side people and other systems.
Some events that are important to a retail store’s charge account processing
system are shown in Figure 3-2. The functional requirements are defined by
use cases based on six events. A customer triggers three events: “customer pays a bill,”
“customer makes a charge,” and “customer changes address.” The system responds
with three use cases: Record a payment, Process a charge, or Maintain customer
data. Three other events are triggered inside the system by reaching a point in time:
“time to send out monthly statements,” “time to send late notices,” and “time to
FIGURE 3-2 Events in a charge account processing system that lead to use cases
Charge account processing system
event something that occurs at a specific
time and place, can be precisely identified, and
must be remembered by the system
CHAPTER 3 ■ Use Cases 71
produce end-of-week summary reports.” The system responds with use cases that
carry out what it is time to do: Produce monthly statements, Send late notices, and
Produce summary reports. Describing this system in terms of events keeps the focus
of the charge account system on the business requirements and the elementary busi-
ness processes. The next step is to divide the work among developers: One analyst
might focus on the events triggered by people, and another analyst might focus on
events triggered by reaching a point in time. The system is decomposed in a way
that allows it to be understood in detail. The result is a list of use cases triggered by
business events at the right level of analysis.
The importance of the concept of events for defining functional requirements
was first emphasized for real-time systems in the early 1980s. Real-time systems
must react immediately to events in the environment. Early real-time systems
include manufacturing process control systems and avionics guidance systems. For
example, in process control, if a vat of chemicals is full, then the system needs
to Turn off the fill valve. The relevant event is “vat is full,” and the system needs
to respond to that event immediately. In an airplane guidance system, if the
plane’s altitude drops below 5,000 feet, then the system needs to Turn on the
low-altitude alarm.
Most information systems now being developed are so interactive that they
can be thought of as real-time systems. In fact, people expect a real-time
response to almost everything. Thus, use cases for business systems are often
identified by using the event decomposition technique.
Types of Events
There are three types of events to consider when using the event decomposi-
tion technique to identify use cases: external events, temporal events, and
state events (also called internal events). The analyst begins by trying to iden-
tify and list as many of these events as possible, refining the list while talking
with system users.
External Events
An external event is an event that occurs outside the system—usually initi-
ated by an external agent or actor. An external agent (or actor) is a person
or organizational unit that supplies or receives data from the system. To
identify the key external events, the analyst first tries to identify all the exter-
nal agents that might want something from the system. A classic example of
an external agent is a customer. The customer may want to place an order
for one or more products. This event is of fundamental importance to an
order-processing system, such as the one needed by Ridgeline Mountain
Outfitters. But other events are associated with a customer. Sometimes, a
customer wants to return an ordered product or a customer needs to pay the
invoice for an order. External events such as these are the types that the
analyst looks for because they begin to define what the system needs to be
able to do. They are events that lead to important transactions that the system
must process.
When describing external events, it is important to name the event so the
external agent is clearly defined. The description should also include the action
that the external agent wants to pursue. Thus, the event “Customer places an
order” describes the external agent (a customer) and the action that the cus-
tomer wants to take (to place an order for some products) that directly affects
the system. Again, if the system is an order-processing system, the system needs
to create the order for the customer.
Important external events can also result from the wants and needs of
people or organizational units inside the company (e.g., management requests
for information). A typical event in an order-processing system might be
external event an event that occurs
outside the system, usually initiated by an
external agent
actor an external agent; a person or group
that interacts with the system by supplying or
receiving data
72 PART 2 ■ Systems Analysis Activities
“Management wants to check order status.” Perhaps managers want to follow
up on an order for a key customer; the system must routinely provide that
information.
Another type of external event occurs when external entities provide new
information that the system simply needs to store for later use. For example, a
regular customer reports a change in address, phone, or employer. Usually, one
event for each type of external agent can be described to handle updates to data,
such as “Customer needs to update account information.” Figure 3-3 provides a
checklist to help in identifying external events.
Temporal Events
A second type of event is a temporal event—an event that occurs as a result of
reaching a point in time. Many information systems produce outputs at defined
intervals, such as payroll systems that produce a paycheck every two weeks (or
each month). Sometimes, the outputs are reports that management wants to
receive regularly, such as performance reports or exception reports. These events
are different from external events in that the system should automatically pro-
duce the required output without being told to do so. In other words, no exter-
nal agent or actor is making demands, but the system is supposed to generate
information or other outputs when they are needed.
The analyst begins identifying temporal events by asking about the specific
deadlines that the system must accommodate. What outputs are produced at
that deadline? What other processing might be required at that deadline? The
analyst usually identifies these events by defining what the system needs to pro-
duce at that time. In a payroll system, a temporal event might be named “Time
to produce biweekly payroll.” The event defining the need for a monthly sum-
mary report might be named “Time to produce monthly sales summary
report.” Figure 3-4 provides a checklist to use in identifying temporal events.
Temporal events do not have to occur on a fixed date. They can occur after
a defined period of time has elapsed. For example, a bill might be given to a
customer when a sale has occurred. If the bill has not been paid within 15 days,
the system might send a late notice. The temporal event “Time to send late
notice” might be defined as a point 15 days after the billing date.
State Events
A third type of event is a state event—an event that occurs when something
happens inside the system that triggers the need for processing. State events are also
called internal events. For example, if the sale of a product results in an adjustment
to an inventory record and the inventory in stock drops below a reorder point, it is
External events to look for include:
√ External agent wants something resulting in a transaction
√ External agent wants some information
√ Data changed and needs to be updated
√ Management wants some information
FIGURE 3-3
External event checklist
Temporal events to look for include:
√ Internal outputs needed
√ Management reports (summary or exception)
√ Operational reports (detailed transactions)
√ Internal statements and documents (including payroll)
√ External outputs needed
√ Statements, status reports, bills, reminders
FIGURE 3-4
Temporal event checklist
temporal event an event that occurs as
a result of reaching a point in time
state event an event that occurs when
something happens inside the system that
triggers some process
CHAPTER 3 ■ Use Cases 73
necessary to reorder. The state event might be named “Reorder point reached.”
Often, state events occur as a consequence of external events. Sometimes, they are
similar to temporal events, except the point in time cannot be defined.
Identifying Events
It is not always easy to define the events that affect a system, but some guide-
lines can help an analyst think through the process.
Events versus Prior Conditions and Responses
It is sometimes difficult to distinguish between an event and part of a sequence of
prior conditions that leads up to the event. Consider a customer buying a shirt
from a retail store (see Figure 3-5). From the customer’s perspective, this pur-
chase involves a long sequence of events. The first event might be that the cus-
tomer wants to get dressed. Then, the customer wants to wear a striped shirt.
Next, the striped shirt appears to be worn out. Then, the customer decides to
drive to the mall. Then, he decides to go into Sears. Then, he tries on a striped
shirt. Then, the customer decides to leave Sears and go to Walmart to try on a
shirt. Finally, the customer wants to purchase the shirt. The analyst has to think
through such a sequence to arrive at the point at which an event directly affects
the system. In this case, the system is not affected until the customer is in the
store, has a shirt in hand ready to purchase, and says “I want to buy this shirt.”
In other situations, it is not easy to distinguish between an external event
and the system’s response. For example, when the customer buys the shirt, the
system requests a credit card number and then the customer supplies the credit
card. Is the act of supplying the credit card an event? In this case, no. It is part
of the interaction that occurs while completing the original transaction.
The way to determine whether an occurrence is an event or part of the interac-
tion following the event is by asking whether any long pauses or intervals occur
(i.e., can the system transaction be completed without interruption?). Or is the sys-
tem at rest again, waiting for the next transaction? After the customer wants to buy
the shirt, the process continues until the transaction is complete. There are no sig-
nificant stops after the transaction begins. After the transaction is complete, the sys-
tem is at rest, waiting for the next transaction to begin. The EBP concept defined
earlier describes this as leaving the system and its data in a consistent state.
On the other hand, separate events occur when the customer buys the shirt
by using his store credit card account. When the customer pays the bill at the
Customer thinks
about getting a
new shirt
Customer drives to
the mall
Customer tries on a
shirt at Sears
Customer goes to
Walmart
Customer tries on a
shirt at Walmart
Customer buys
a shirt
FIGURE 3-5
Sequence of actions that lead up to
only one event affecting the system
74 PART 2 ■ Systems Analysis Activities
end of the month, is the processing part of the interaction involving the pur-
chase? In this case, no. The system records the transaction and then does other
things. It does not halt all processes to wait for the payment. A separate event
occurs later that results in sending the customer a bill. (This is a temporal
event: “Time to send monthly bills.”) Eventually, another external event occurs
(“Customer pays the bill”).
The Sequence of Events: Tracing a Transaction’s Life Cycle
It is often useful in identifying events to trace the sequence of events that might
occur for a specific external agent or actor. In the case of Ridgeline Mountain
Outfitters’ new CSMS, the analyst might think through all the possible trans-
actions that might result from one new customer (see Figure 3-6). First, the
customer wants a catalog or asks for some information about item availability,
resulting in a name and address being added to the database. Next, the cus-
tomer might want to place an order. Perhaps he or she will want to change the
order—for example, correcting the size of the shirt or buying another shirt.
Next, the customer might want to check the status of an order to find out the
shipping date. Perhaps the customer has moved and wants an address change
recorded for future catalog mailings. Finally, the customer might want to return
an item. Thinking through this type of sequence can help identify events.
Technology-Dependent Events and System Controls
Sometimes, the analyst is concerned about events that are important to the sys-
tem but do not directly concern users or transactions. Such events typically
involve design choices or system controls. During analysis, the analyst should
temporarily ignore these events. However, they are important later for design.
Some examples of events that affect design issues include external events
that involve actually using the physical system, such as logging on. Although
important to the final operation of the system, such implementation details
should be deferred. At this stage, the analyst should focus only on the functional
requirements (i.e., the work that the system needs to complete). A functional
requirements model does not need to indicate how the system is actually imple-
mented, so the model should omit the implementation details.
Most of these events involve system controls, which are checks or safety
procedures put in place to protect the integrity of the system. For example,
logging on to a system is required because of system security controls. Other
controls protect the integrity of the database, such as backing up the data every day.
FIGURE 3-6 The sequence of “transactions” for one specific customer resulting in many events
Customer requests a
catalog
Customer wants to check
item availability
Customer places
an order
Customer changes or
cancels an order
Customer wants to
check order status
Customer updates
account information
Customer returns
the item
system controls checks or safety proce-
dures to protect the integrity of the system and
the data
CHAPTER 3 ■ Use Cases 75
These controls are important to the system, and they will certainly be added to
the system during design. But spending time on these controls during analysis
only adds details to the requirements model that users are not typically very
concerned about; they trust the system developers to take care of such details.
One technique used to help decide which events apply to controls is to assume
that technology is perfect. The perfect technology assumption states that events
should be included during analysis only if the system would be required to respond
under perfect conditions (i.e., with equipment never breaking down, capacity for
processing and storage being unlimited, and people operating the system being
completely honest and never making mistakes). By pretending that technology is
perfect, analysts can eliminate events like “Time to back up the database” because
they can assume that the disk will never crash. Again, during design, the project
team adds these controls because technology is obviously not perfect. Figure 3-7
lists some examples of events that can be deferred until the design phase.
Using the Event Decomposition Technique
To summarize, the event decomposition technique for identifying use cases includes
these steps:
1. Consider the external events in the system environment that require a
response from the system by using the checklist shown in Figure 3-3.
2. For each external event, identify and name the use case that the system
requires.
3. Consider the temporal events that require a response from the system by
using the checklist shown in Figure 3-4.
4. For each temporal event, identify and name the use case that the system
requires and then establish the point of time that will trigger the use case.
5. Consider the state events that the system might respond to, particularly if it is
a real-time system in which devices or internal state changes trigger use cases.
6. For each state event, identify and name the use case that the system requires
and then define the state change.
7. When events and use cases are defined, check to see if they are required by
using the perfect technology assumption. Do not include events that involve
such system controls as login, logout, change password, and backup or
restore the database, as these are put in as system controls.
FIGURE 3-7 Events and functions deferred until design
User wants to log on
to the system
User wants to change the
password
User wants to change
preference settings
System crash
requires database
recovery
Time to back up the
database
Time to require the
user to change the
password
Don’t worry much
about these until you are
considering design issues
perfect technology assumption the
assumption that a system runs under perfect
operating and technological conditions
76 PART 2 ■ Systems Analysis Activities
Use Cases and CRUD
Another important technique used to validate and refine use cases is the CRUD
technique. “CRUD” is an acronym for Create, Read or Report, Update, and
Delete, and it is often introduced with respect to database management. The
analyst starts by looking at the types of data stored by the system, which are
modeled as data entities or domain classes, as described in Chapter 4. In the
RMO Tradeshow System discussed in Chapter 1, the types of data included
Supplier, Contact, Product, and ProductPicture. In the RMO CSMS, the types
of data include Customer, Sale, Inventory Item, Promotion, and Shipment. To
validate and refine use cases, the analyst looks at each type of data and verifies
that use cases have been identified that create the data, read or report on the
data, update the data, and delete (or archive) the data.
The CRUD technique is most useful when used as a cross-check along with the
user goal technique. Users will focus on their primary goals, and use cases that
update or archive data will often be overlooked. The CRUD technique makes sure
all possibilities are identified. Sometimes, data entities or domain classes are shared
by a set of integrated applications. For example, RMO has a supply chain manage-
ment application that is responsible for managing inventory levels and adding pro-
ducts. The RMO CSMS will not need to create or delete products, but it will need
to look up and update product information. It is important to identify the other
application that is responsible for creating, updating, or deleting the data to be
clear about the scope of each system. Figure 3-8 shows an example of potential
use cases based on the CRUD technique for RMO Customer data.
Note in Figure 3-8 that the analyst has not blindly added a use case to
create, read/report, update, and delete instances of a customer. The CRUD tech-
nique is best used to take already identified use cases and verify that there are
use cases for create, read, update, and delete as a cross-check.
Another use of the CRUD technique is to summarize all use cases and all data
entities/domain classes to show the connection between use cases and data. In
Figure 3-9, some of the use cases are matched with data entities/domain classes by
including “C,” “R,” “U,” or “D” in the cell corresponding to the role of the use
Data entity/domain class CRUD Verified use case
Customer Create
Read/report Look up customer
Produce customer usage report
Process account adjustment
Update customer account
Create customer account
Update
Delete Update customer account (to archive)
FIGURE 3-8
Verifying use cases with the CRUD
technique
FIGURE 3-9 CRUD table showing use cases and corresponding data entities/domain classes
Use case vs.
entity/domain class
Create customer account
Look up customer
Produce customer usage
report
Process account adjustment
Update customer account
Customer
C
R
R
R
UD (archive)
Account
C
R
R
U
UD (archive)
Adjustment
C
Sale
R
R
CRUD technique an acronym for Create,
Read/Report, Update, and Delete; a technique
to validate or refine use cases
CHAPTER 3 ■ Use Cases 77
case in terms of data. For example, the use case Create customer account actually
creates customer data and account data, so the “C” is included in those two cells.
The use case Process account adjustment reads information about the sale, reads
information about the customer, updates the account, and creates an adjustment.
The CRUD technique for validating and refining use cases includes these steps:
1. Identify all the data entities or domain classes involved in the new system.
Chapter 4 discusses these in more detail.
2. For each type of data (data entity or domain class), verify that a use case
has been identified that creates a new instance, updates existing instances,
reads or reports values of instances, and deletes (archives) an instance.
3. If a needed use case has been overlooked, add a new use case and then
identify the stakeholders.
4. With integrated applications, make sure it is clear which application is
responsible for adding and maintaining the data and which system merely
uses the data.
Use Cases in the Ridgeline Mountain
Outfitters Case
The RMO CSMS involves a variety of use cases, many of them just discussed.
The analysts working on the new system have used all three techniques for identi-
fying, validating, and refining use cases. The initial system vision (discussed in
Chapter 2) identified four subsystems: the Sales subsystem, the Order Fulfillment
subsystem, the Customer Account subsystem, and the Marketing subsystem. As
work progressed, the analysts combined reports required by each subsystem into
a fifth subsystem called the Reporting subsystem. In a system this size, the analyst
should organize the use cases by subsystem to help track which subsystem is
responsible for each use case. The analyst should also identify which use cases
involve more than one type of user.
It is important to recognize that this list of use cases will continue to evolve
as the project progresses. Additional use cases will be added, some might be
eliminated, and some might be combined. It is helpful to immediately describe
some of the details of each use case, preferably in one sentence. This brief
description is usually expanded to record more of the details when the developers
are designing and implementing the use case (see Chapter 5). Some examples of
brief use case descriptions are shown in Figure 3-10. Figures 3-11a through
Figure 3-11e show the initial list of use cases for the RMO CSMS along with the
users. Note that many use cases have more than one user.
Use Case Diagrams
Sometimes, it is useful to create diagrams that more graphically show use cases
and how they are organized. The use case diagram is the UML model used to
graphically show the use cases and their relationship to users. Recall from
Chapter 2 that UML is the standard set of diagrams and model constructs used
Use case
Create customer account
Look up customer
Process account adjustment
Brief use case description
User/actor enters new customer account data, and the system
assigns account number, creates a customer record, and
creates an account record.
User/actor enters customer account number, and the system
retrieves and displays customer and account data.
User/actor enters order number, and the system retrieves
customer and order data; actor enters adjustment amount, and
the system creates a transaction record for the adjustment.
FIGURE 3-10
Use cases and brief descriptions
brief use case description an often
one-sentence description that provides a quick
overview of a use case
use case diagram the UML model used
to graphically show use cases and their rela-
tionships to actors
78 PART 2 ■ Systems Analysis Activities
CSMS sales subsystem
Use cases Users/actors
Search for item Customer, customer service representative, store
sales representative
View product comments and ratings Customer, customer service representative, store
sales representative
View accessory combinations Customer, customer service representative, store
sales representative
Fill shopping cart
Customer
Customer
CustomerEmpty shopping cart
Check out shopping cart
CustomerFill reserve cart
CustomerEmpty reserve cart
Convert reserve cart Customer
Store sales representative
Customer service representativeCreate phone sale
Create store sale
CSMS order fulfillment subsystem
Use cases Users/actors
Ship items Shipping
Manage shippers Shipping
Create backorder Shipping
Create item return
Shipping, customer, marketing
Shipping, customer
Shipping, customer, management Look up order status
Track shipment
CustomerRate and comment on product
CustomerProvide suggestion
Review suggestions Management
Shipping
Shipping Ship items
Manage shippers
FIGURE 3-11A,B
Use cases and users/actors by
CSMS subsystem
CHAPTER 3 ■ Use Cases 79
CSMS Customer account subsystem
Use cases Users/actors
Create/update customer account Customer, customer service representative, store
sales representative
Process account adjustment Management
Send message Customer
Browse messages
Customer
Customer
CustomerRequest friend linkup
Reply to linkup request
CustomerSend/receive points
CustomerView “mountain bucks”
CustomerTransfer “mountain bucks”
CSMS marketing subsystem
Use cases Users/actors
Add/update product information Merchandising, marketing
Add/update promotion Marketing
Add/update accessory package Merchandising
Add/update business partner link Marketing
CSMS reporting subsystem
Use cases Users/actors
Produce daily transaction summary
report
Management
Produce sales history report Management, marketing
Produce sales trends report Marketing
Produce customer usage report Marketing
Produce shipment history report Management, shipping
Produce promotion impact report Marketing
Produce business partner activity report Management, marketing
FIGURE 3-11C,D,E
Use cases and users/actors by
CSMS subsystem (continued)
80 PART 2 ■ Systems Analysis Activities
in system development. You saw an example of a use case diagram in Chapter 1.
The notation is fairly simple.
Use Cases, Actors, and Notation
Implied in most use cases is a person who uses the system, which we have referred
to up to this point as the user. In UML, that person is called an actor. An actor is
always outside the automation boundary of the system but may be part of the
manual portion of the system. Sometimes, the actor for a use case is not a person;
instead, it can be another system or device that receives services from the system.
Figure 3-12 shows the basic parts of a use case diagram. A simple stick
figure is used to represent an actor. The stick figure is given a name that charac-
terizes the role the actor is playing. The use case itself is represented by an oval
with the name of the use case inside. The connecting line between the actor and
the use case indicates that the actor is involved with that use case. Finally, the
automation boundary, which defines the border between the computerized
portion of the application and the people operating the application, is shown as
a rectangle containing the use case. The actor’s communication with the use case
crosses the automation boundary. The example in Figure 3-12 shows the actor
as a shipping clerk and the use case Ship items.
Use Case Diagram Examples
Figure 3-13 shows a more complete use case diagram for a subsystem of the RMO
CSMS: the Customer Account subsystem. The information in Figure 3-11c is
recast as a single use case diagram to visually highlight the use cases and
actors for an individual subsystem. This diagram would be useful to take to a
meeting to review the use cases and actors for the subsystem. In this example,
the customer, customer service representative, and store sales representative
are all allowed to access the system directly. As indicated by the relationship
lines, each actor can use the use case Create/update customer account. The cus-
tomer might do this when checking out online. The customer service represen-
tative might do this when talking to a customer on the phone. The store sales
representative might do this when dealing with the customer in a store. Only a
member of management can process an account adjustment. The other use
cases are included only for the customer.
There are many ways to organize use case diagrams for communicating
with users, stakeholders, and project team members. One way is to show all
use cases that are invoked by a particular actor (i.e., from the user’s view-
point). This approach is often used during requirements definition because
the systems analyst may be working with a particular user and identifying all
Actor is a stick
figure, usually
meaning an
actual person
using the system
Automation
boundary
Ship items
Shipping clerk
Connecting line
to show which
actors participate
in use cases
FIGURE 3-12
A simple use case with an actor
automation boundary the boundary
between the computerized portion of the
application and the users who operate the
application but are part of the total system
CHAPTER 3 ■ Use Cases 81
the functions that user performs with the system. Figure 3-14 illustrates this
viewpoint, showing all the use cases involving the customer for the Sales
subsystem. Figure 3-15 shows use cases involving the customer service repre-
sentative and the store sales representative for the Sales subsystem. Analysts
can expand this approach to include all the use cases belonging to a particu-
lar department regardless of the subsystem or all use cases important to a
specific stakeholder.
,,includes.. Relationships
Frequently during the development of a use case diagram, it becomes appar-
ent that one use case might use the services of another use case. For example,
in the Sales subsystem use case diagram shown in Figure 3-14, the customer
might search for an item, view product comments and ratings, and view
accessory combinations before beginning to fill the shopping cart. However,
while filling the shopping cart, the customer might also search for an item,
view product comments, and view accessories. Therefore, one use case uses,
or “includes,” another use case. Figure 3-16 shows a use case diagram
emphasizing this aspect of these use cases. Fill shopping cart also includes
Search for item, View product comments and ratings, and View accessory
combinations. Thus, the Customer can view comments initially and also
while carrying out the Fill shopping cart use case. The relationship between
these use cases is denoted by the dashed connecting line with the arrow that
Create/update
customer account
Customer Account Subsystem
All Actors
Process account
adjustment
Send message
Browse
messages
Request friend
linkup
Reply to friend
linkup
Send/receive
points
View “mountain
bucks”
Transfer
“mountain bucks”
Customer Store sales
representative
Management
Customer service
representative
FIGURE 3-13
A use case diagram of the Customer
Account subsystem for RMO, showing
all actors
82 PART 2 ■ Systems Analysis Activities
points to the use case that is included. The relationship is read Fill shopping
cart includes Search for item. Sometimes, this relationship is referred to as the
,,includes.. relationship or the �uses� relationship. Note that the word
“includes” is enclosed within guillemets in the diagram; this is the way to refer
to a stereotype in UML. It means that the relationship between one use case and
another use case is a stereotypical �includes� relationship.
Developing a Use Case Diagram
Analysts create a variety of use case diagrams to communicate with users,
stakeholders, management, and team members. The steps to develop use case
diagrams are:
1. Identify all the stakeholders and users who would benefit by having a use
case diagram.
2. Determine what each stakeholder or user needs to review in a use case
diagram. Typically, a use case diagram might be produced for each subsys-
tem, for each type of user, for use cases with the �includes� relationship,
and for use cases that are of interest to specific stakeholders.
3. For each potential communication need, select the use cases and actors to
show and draw the use case diagram. There are many software packages
that can be used to draw use case diagrams.
4. Carefully name each use case diagram and then note how and when the
diagram should be used to review use cases with stakeholders and users.
Search for item
Sales Subsystem
Actor: Customer
Fill reserve cart
Empty reserve
cart
Empty shopping
cart
View product
comments and
ratings
View accessory
combinations
Check out shopping
cart
Fill shopping cart
Convert reserve
cart
Customer
FIGURE 3-14
All use cases involving the customer
actor for the Sales subsystem
,,includes.. relationship a relation-
ship between use cases in which one use case
is stereotypically included within the other use
case
CHAPTER 3 ■ Use Cases 83
Customer
Search for item
Fill shopping cart
View product
comments and
ratings
View accessory
combinations
Sales Subsystem
Fill Shopping Cart <
<
<
<
FIGURE 3-16
A use case diagram of the Fill shopping
cart �includes� relationships
FIGURE 3-15 Use cases involving the customer service representative and store sales
representative for the Sales subsystem
Sales Subsystem
Actors: Service Representative and Store Representative
Customer service
representative
Store sales
representative
View product
comments and
ratings
View accessory
combinations
Create phone sale
Search for item
Create store sale
84 PART 2 ■ Systems Analysis Activities
Chapter Summary
This chapter is the first of three chapters that present tech-
niques for modeling a system’s functional requirements. A
key early step in the modeling process is to identify and
list the use cases that define the functional requirements
for the system. Use cases can be identified by using the
user goal technique and the event decomposition tech-
nique. The user goal technique begins by identifying
types of system end users, called actors. Then, users are
asked to list specific user goals they have when using the
system to support their work. The event decomposition
technique begins by identifying the events that require a
response from the system. An event is something that can
be described, something that occurs at a specific time and
place, and something worth remembering. External
events occur outside the system—usually triggered by
someone who interacts with the system. Temporal events
occur at a defined point in time, such as the end of a
workday or the end of every month. State or internal
events occur based on an internal system change. For
each event, a use case is identified and named. The event
decomposition technique helps ensure that each use case
is identified at the elementary business process (EBP) level
of detail. Use cases are validated and refined by using the
CRUD technique—“CRUD” being an acronym for
Create, Read or Report, Update, and Delete.
Each use case identified by the analyst is further
documented by a brief use case description and by iden-
tifying the actors. UML use case diagrams are drawn to
document use cases and their actors. Many different use
case diagrams are drawn based on the need to review
use cases with various stakeholders, users, and team
members.
Key Terms
actor 72
automation boundary 81
brief use case descriptions 78
CRUD technique 77
elementary business processes (EBPs) 70
event 71
event decomposition technique 70
external event 72
�includes� relationship 83
perfect technology assumption 76
state event 73
system controls 75
temporal event 73
use case 69
use case diagram 78
user goal technique 69
Review Questions
1. What are the six activities of systems analysis, and
which activity is discussed beginning with this
chapter?
2. What is a use case?
3. What are the two techniques used to identify use
cases?
4. Describe the user goal technique for identifying
use cases.
5. What are some examples of users with different
functional roles and at different operational levels?
6. What are some examples of use case names that
correspond to your goals as a student going through
the college registration process? Be sure to use the
verb-noun naming convention.
7. What is the overarching objective of asking users
about their specific goals?
8. How many types of users can have the same user
goals for using the system?
9. Describe the event decomposition technique for
identifying use cases.
10. Why is the event decomposition technique consid-
ered more comprehensive than the user goal
technique?
11. What is an elementary business process (EBP)?
12. Explain how the event decomposition technique
helps identify use cases at the right level of analysis.
13. What is an event?
14. What are the three types of events?
15. Define an external event and then give an example
that applies to a checking account system.
16. Define a temporal event and then give an example
that applies to a checking account system.
CHAPTER 3 ■ Use Cases 85
17. What are system controls, and why are they not
considered part of the users’ functional
requirements?
18. What is the perfect technology assumption?
19. What are three examples of events that are system
controls in a typical information system that should
not be included as a use case because of the perfect
technology assumption?
20. What are the four operations that make up the
CRUD acronym?
21. What is the main purpose of using the CRUD
technique?
22. What is a brief use case description?
23. What is UML?
24. What is the purpose of UML use case diagrams?
25. What is another name for “actor” in UML, and
how is it represented on a use case diagram?
26. What is the automation boundary on a use case
diagram, and how is it represented?
27. How many actors can be related to a use case on a
use case diagram?
28. Why might a systems analyst draw many different
use case diagrams when reviewing use cases with
end users?
29. What is the �includes� relationship between two
use cases?
Problems and Exercises
1. Review the external event checklist in Figure 3-3
and then think about a university course registra-
tion system. What is an example of an event of each
type in the checklist? Name each event by using the
guidelines for naming an external event.
2. Review the temporal event checklist in Figure 3-4.
Would a student grade report be an internal or
external output? Would a class list for the instructor
be an internal or external output? What are some
other internal and external outputs for a course
registration system? Using the guidelines for naming
temporal events, what would you name the events
that trigger these outputs?
3. Consider the following sequence of actions taken by
a customer at a bank. Which action is the event the
analyst should define for a bank account
transaction-processing system? (1) Kevin gets a
check from Grandma for his birthday. (2) Kevin
wants a car. (3) Kevin decides to save his money.
(4) Kevin goes to the bank. (5) Kevin waits in line.
(6) Kevin makes a deposit in his savings account.
(7) Kevin grabs the deposit receipt. (8) Kevin asks
for a brochure on auto loans.
4. Consider the perfect technology assumption, which
states that use cases should be included during
analysis only if the system would be required to
respond under perfect conditions. Could any of the
use cases listed for the RMO CSMS be eliminated
based on this assumption? Explain. Why are such
use cases as Log on to the system and Back up the
database required only under imperfect conditions?
5. Visit some Web sites of car manufacturers, such as
Honda, BMW, Toyota, and Acura. Many of these
sites have a use case that is typically named Build and
price a car. As a potential customer, you can select a
car model, select features and options, and get the car’s
suggested price and list of specifications. Write a brief
use case description for this use case (see Figure 3-10).
6. Again looking at a Web site for one of the car
manufacturers, consider yourself a potential buyer
and then identify all the use cases included on the
site that correspond to your goals.
7. Set up a meeting with a librarian. During your
meeting, ask the librarian to describe the situations
that come up in the library to which the book
checkout system needs to respond. List these exter-
nal events. Now ask about points in time, or dead-
lines, that require the system to produce a
statement, notice, report, or other output. List these
temporal events. Does it seem natural for the
librarian to describe the system in this way? List
each event and then name the resulting use case.
8. Again considering the library, ask some students
what their goals are in using the library system.
Also ask some library employees about their goals
in using the system. Name these goals as use cases
(verb-noun) and discuss whether student users have
different goals than employee users.
9. Visit a restaurant or the college food service to talk to a
server (or talk with a friend who is a food server). Ask
about the external events and temporal events, as you
did in exercise 7. What are the events and resulting use
cases for order processing at a restaurant?
10. Review the procedures for course registration at
your university and then talk with the staff in
advising, in registration, and in your major depart-
ment. Think about the sequence that goes on over
an entire semester. What are the events that stu-
dents trigger? What are the events that your own
86 PART 2 ■ Systems Analysis Activities
department triggers? What are the temporal events
that result in information going to students? What
are the temporal events that result in information
going to instructors or departments? List all the
events and the resulting use cases that should be
included in the system.
11. Refer to the RMO CSMS Order Fulfillment sub-
system shown in Figure 3-11. Draw a use case dia-
gram that shows all actors and all use cases. Use a
drawing tool such as Microsoft Visio if it is
available.
12. Again for the Order Fulfillment subsystem, draw a use
case diagram showing just the use cases for the ship-
ping department in preparation for a meeting with
them about the system requirements. Use a drawing
tool such as Microsoft Visio if it is available.
13. Refer to the RMO CSMS Marketing subsystem
shown in Figure 3-11. Draw a use case diagram that
shows all actors and all use cases. Use a drawing
tool such as Microsoft Visio if it is available.
14. Refer to the RMO CSMS Reporting subsystem
shown in Figure 3-11. These reports were identified
by asking users about temporal events, meaning
points in time that require the system to produce
information of value. In most actual systems today,
an actor is assigned responsibility for producing the
reports or other outputs when they are due. Recall
that the actor is part of the system—the manual,
nonautomated part. Thus, this is one way the
“system” can be responsible for producing an out-
put at a point in time. In the future, more outputs
will be produced automatically. Draw a use case
diagram that shows the use cases and actors, as
shown in Figure 3-11. Use a drawing tool such as
Microsoft Visio if it is available.
Case Study
The State Patrol Ticket-Processing System
The purpose of the State Patrol ticket-processing system
is to record moving violations, keep records of the fines
paid by drivers when they plead guilty or are found guilty
of moving violations, and notify the court that a warrant
for arrest should be issued when such fines are not paid
in a timely manner. A separate State Patrol system
records accidents and the verification of financial respon-
sibility (insurance). A third system uses ticket and acci-
dent records to produce driving record reports for
insurance companies. Finally, a fourth system issues,
renews, or suspends driver’s licenses. These four sys-
tems are obviously integrated in that they share access
to the same database; otherwise, they are operated sep-
arately by different departments of the State Patrol.
When an officer gives a ticket to a driver, a copy of the
ticket is turned in and entered into the system. A new ticket
record is created, and relationships to the correct driver, offi-
cer, and court are established in the database. If the driver
pleads guilty, he or she mails in the fine in a preprinted
envelope with the ticket number on it. In some cases, the
driver claims innocence and wants a court date. When the
envelope is returned without a check and the trial request
box has an “X” in it, the system does the following: notes
the plea on the ticket record; looks up driver, ticket, and
officer information; and sends a ticket details report to the
appropriate court. A trial date questionnaire form is also pro-
duced at the same time and is mailed to the driver. The
instructions on the questionnaire tell the driver to fill in con-
venient dates and mail the questionnaire directly to the
court. Upon receiving this information, the court schedules
a trial date and notifies the driver of the date and time.
When the trial is completed, the court sends the ver-
dict to the ticketing system. The verdict and trial date are
recorded for the ticket. If the verdict is innocent, the sys-
tem that produces driving record reports for insurance
companies will ignore the ticket. If the verdict is guilty,
the court gives the driver another envelope with the ticket
number on it for mailing in the fine.
If the driver fails to pay the fine within the required
period, the ticket-processing system produces a warrant
request notice and sends it to the court. This happens if
the driver does not return the original envelope within
two weeks or does not return the court-supplied envelope
within two weeks of the trial date. What happens then is in
the hands of the court. Sometimes, the court requests that
the driver’s license be suspended, and the system that
processes drivers’ licenses handles the suspension.
1. To what events must the ticket-processing system
respond? List each event, the type of event, and the
resulting use case.
2. Write a brief use case description for each use case.
3. The portion of the database used with the ticket-
processing system involves driver data, ticket data,
officer data, and court data. Driver data, officer data,
and court data are read by the system, and the ticket-
processing system creates and updates ticket data. In
an integrated system like the ticket-processing sys-
tem, some domain classes are created by and
updated by other systems, as described in this case.
Create a table with systems down the rows and the
four types of data (domain classes) across the col-
umns. Indicate C, R, U, or D for each domain class and
each system.
CHAPTER 3 ■ Use Cases 87
RUNNING CASE STUDIES
Community Board of Realtors
One of the functions of the Board of Realtors intro-
duced in Chapter 2 is to provide a Multiple Listing
Service (MLS) system that supplies information that
local real estate agents use to help them sell houses to
their customers. During the month, agents list houses
for sale (listings) by contracting with homeowners. The
agent works for a real estate office, which sends infor-
mation on the listing to the MLS. Therefore, any agent
in the community can get information on the listing.
Information on a listing includes the address, year
built, square feet, number of bedrooms, number of bath-
rooms, owner name, owner phone number, asking
price, and status code. At any time during the month,
an agent might directly request information on listings
that match customer requirements, so the agent contacts
the MLS with the request. Information is provided on
the house, on the agent who listed the house, and on
the real estate office for which the agent works. For
example, an agent might want to call the listing agent
to ask additional questions or call the homeowner
directly to make an appointment to show the house.
Once each week, the MLS produces a listing book that
contains information on all listings. These books are
sent to some real estate agents. Some real estate agents
want the books (which are easier to flip through), so
they are provided even though the information is often
out of date. Sometimes, agents and owners decide to
change information about a listing, such as reducing
the price, correcting previous information on the
house, or indicating that the house is sold. The real
estate office sends in these change requests to the MLS
when the agent asks the office to do so.
1. To what events must the MLS system respond? List
each event, the type of event, and the resulting use
case. Be sure to consider all the use cases that would
be needed to maintain the data in the MLS system,
thinking in terms of the CRUD technique.
2. Draw a use case diagram based on the actors and
use cases you identified in question 1.
3. Given the information available in the system,
consider yourself a potential customer looking for
real estate. List as many specific use cases you
would like to see based on your specific goals.
4. Draw a use case diagram for all the use cases for
the potential customer you identified in question 3.
The Spring Breaks ‘R’ Us Travel Service
Spring Breaks ‘R’ Us (SBRU), introduced in Chapter 2,
includes many use cases that make up the functional
requirements. Consider the following description of the
Booking subsystem. A few weeks before Thanksgiving
break, it is time to open the system to new bookings.
Students usually want to browse through the resorts and
do some planning. After that, when a student or group of
students wants to book a trip, the system allows it.
Sometimes, a student needs to be added or dropped from
the group or a group changes size and needs a different
type of room. One month before the actual trip, it is time
for the system to send out final payment requirement
notices. Students cancel the booking or they pay their
final bills. Students often want to look up their booking
status and check on resort details. When they arrive at
the resort, they need to check in; and when they leave,
they need to check out.
1. Using the event decomposition technique for each
event you identify in the description here, name
the event, state the type of event, and name the
resulting use case. Draw a use case diagram for
these use cases.
2. Consider the new Social Networking subsystem
that SBRU is researching. Think in terms of the
user goal technique to identify as many use cases
as you can think of that you would like to have in
the system. SBRU is guessing you might want to
join, send messages, and so forth, but there must
be many interesting and useful things the system
could do before, during, and after the trip. Draw
a use case diagram for these use cases.
(continued on page 89)
88 PART 2 ■ Systems Analysis Activities
On the Spot Courier Services
Recall the On the Spot courier service introduced in
Chapter 2. The details of the package pickup and
delivery process are described here.
When Bill got an order, at first, only on his phone,
he recorded when he received the call and when the
shipment would be ready for pickup. Sometimes, custo-
mers wanted immediate pickup; sometimes, they were
calling to schedule a later time in the day for pickup.
Once he arrived at the pickup location, Bill collected
the packages. It was not uncommon for the customer to
have several packages for delivery. In addition to the
name and address of the delivery location, he also
recorded the time of pickup. He noted the desired
delivery time, the location of the delivery, and the weight
of the package to determine the courier cost. When he
picked up the package, he printed out a label with his
portable printer that he kept in the delivery van.
At first, Bill required customers to pay at the time
of pickup, but he soon discovered that there were some
regular customers who preferred to receive a monthly
bill for all their shipments. He wanted to be able to
accommodate those customers. Bills were due and pay-
able upon receipt.
To help keep track of all the packages, Bill decided
that he needed to scan each package as it was sorted in
the warehouse. This would enable him to keep good
control of his packages and avoid loss or delays.
The delivery of a package was fairly simple.
Upon delivery, he would record information about
when the delivery was made and who received it.
Because some of the packages were valuable, it was
necessary in those instances to have someone sign for
the package.
1. From this description as well as the information
from Chapter 2, identify all the actors that will be
using the system.
2. Using the actors that you identified in question 1,
develop a list of use cases based on the user goal
technique. Draw a use case diagram for these use
cases.
3. Using the event decomposition technique for each
event you identify in the description here, name
the event, state the type of event, and name the
resulting use case. Draw a use case diagram for
these use cases.
Sandia Medical Devices
Recall the Sandia Medical Devices Real-Time Glucose
Monitoring (RTGM) system introduced in Chapter 2.
As the project began, interviews with patients and
physicians about potential RTGM capabilities and
interaction modes identified several areas of concern
that will need to be incorporated into the system
requirements and design. The relevant patient concerns
include:
■ Viewing and interpreting data and trends: Patients
want to be able to view more than their current
glucose level. They would like the ability to see
past glucose levels over various time periods, with
a specific focus on time periods during which their
glucose was within and outside of acceptable
ranges. A graphical view of the data is preferred,
although some patients also want to be able to see
actual numbers.
■ Additional data: Some patients want to be able to
enter text notes or voice messages to supplement
glucose level data. For example, patients who see a
high glucose alert might record voice messages
describing how they feel or what they had recently
eaten. Some patients thought that sharing such
information with their health-care providers might
be valuable, but others only wanted such infor-
mation for themselves.
Physicians expressed these concerns:
■ They do not want to be the “first line of
response” to all alerts. They prefer that nurses or
physician assistants be charged with that role
and that they be notified only when frontline
personnel determine that an emergency situation
exists.
■ They want to be able to monitor and view past
patient data and trends in much the same way as
described for patients.
■ They want all their actions to be logged and for
patient-specific responses to be stored as part of
the patient’s electronic medical record.
(continued from page 88)
(continued on page 90)
CHAPTER 3 ■ Use Cases 89
Perform the following tasks by using the information
here as well as the system description in Chapter 2:
1. Identify all the actors that will use RTGM.
2. Using the actors that you identified in question 1,
develop a list of use cases based on the user
goal technique. Draw a use case diagram for these
use cases.
3. Using the event decomposition technique for each
event you identified in the description, name the
event, state the type of event, and name the
resulting use case. Draw a use case diagram for
these use cases.
Further Resources
Classic and more recent texts include:
Craig Larman, Applying UML and Patterns (3rd ed.).
Prentice-Hall, 2005.
Grady Booch, Ivar Jacobson, and James Rumbaugh,
The Unified Modeling Language User Guide.
Addison-Wesley, 1999.
Ed Yourdon, Modern Structured Analysis. Prentice
Hall, 1989.
Stephen McMenamin and John Palmer, Essential
Systems Analysis. Prentice Hall, 1984.
(continued from page 89)
90 PART 2 ■ Systems Analysis Activities
4
Domain Modeling
Chapter Outline
■ “Things” in the Problem Domain
■ The Entity-Relationship Diagram
■ The Domain Model Class Diagram
Learning Objectives
After reading this chapter, you should be able to:
■ Explain how the concept of “things” in the problem domain also defines
requirements
■ Identify and analyze data entities and domain classes needed in the system
■ Read, interpret, and create an entity-relationship diagram
■ Read, interpret, and create a domain model class diagram
■ Understand the domain model class diagram for the RMO Consolidated Sales
and Marketing System
91
OPENING CASE
Waiters on Call Meal-Delivery System (Part 2)
Recall that Waiters on Call has been working with Sam
Wells on the requirements for its meal-delivery system.
Sue and Tom Bickford want a new system that will auto-
mate and improve their specialty business of providing
customer-ordered, home-delivered meals prepared by a
variety of local restaurants. Sam did a great job of identifying
the use cases required for the delivery service, which
impressed the Bickfords. And while working on the use
cases, he continued to note all the business terms and
concepts that the Bickfords used as they described their
operations. He followed up with questions about the types
of things they work with each day, which they answered.
“Based on what you’ve told me,” Sam said, “I assume
you will need the system to store information about the
following types of things, which we call data entities or
domain classes: restaurants, menu items, customers, and
orders. I also think you’re going to need to store information
about the following types of things: drivers, addresses,
routes, and order payments.”
The Bickfords readily agreed and added that it was
important to know what route a restaurant was on and
how far it might be to the customer’s address. They
wanted drivers to be assigned to a route based on the
distances from place to place.
“Yes, we need to decide how things need to be asso-
ciated in the system,” Sam agreed. “Can you tell me if
drivers pick up orders from several restaurants when they
go out? Can you tell me how many items are usually
included in one order? Do you note pickup times and
delivery times? Do you need to plan the route so that hot
dishes are delivered first?”
The Bickfords were further reassured that they had
picked an analyst who was aware of the needs of their
business.
Overview
Chapter 3 focused on identifying use cases to define the functional requirements
for an information system. In this chapter, we focus on another key concept that
defines requirements: things in the problem domain of system users. You first
learned about these as data entities or domain classes when we discussed use
cases. You might have learned about these when studying database manage-
ment, as they define the sources for the tables used in a relational database man-
agement system. Nearly all approaches to system development include
identifying and modeling data entities or domain classes as an important task in
the analysis activity Define functional requirements.
“Things” in the Problem Domain
Domain classes or data entities are what end users deal with when they do their
work—for example, products, sales, shippers, shipments, and customers. These
are often referred to as “things” in the context of a system’s problem domain.
The problem domain is the specific area of the user’s business that is included
within the scope of the new system. The new system involves working with and
remembering these “things.” For example, some information systems need to
store information about customers and products, so it is important for the
analyst to identify lots of information about those two things. Often, things are
related to the people who interact with the system or to other stakeholders. For
example, a customer is a person who places an order, but the system needs
to store information about that customer, so a customer is also a thing in the
problem domain. However, things are sometimes distinct from people. For
example, the system may need to store information about products, shipments,
and warehouses, but these are not persons.
There are many techniques for identifying the important things in the prob-
lem domain. Two of them are introduced in this chapter: the brainstorming
technique and the noun technique.
problem domain the specific area
(or domain) of the user’s business need
(or problem) that is within the scope of
the new system
92 PART 2 ■ Systems Analysis Activities
The Brainstorming Technique
As with use cases, an analyst should ask the users to discuss the types of things
they work with routinely. The analyst can ask about several types of things to
help identify them. Many things are tangible and therefore more easily identi-
fied, but others are intangible. Different types of things are important to differ-
ent users, so it is important to involve all types of users to help identify
problem domain things. The brainstorming technique is useful for working
with users to identify things in the problem domain.
Figure 4-1 shows some types of things to consider. Tangible things are
often the most obvious, such as an airplane, a book, or a vehicle. In the
Ridgeline Mountain Outfitters case, a product in the warehouse and a vehicle
in the fleet are tangible things of importance. Another common type of thing
in an information system is a role played by a person, such as an employee, a
customer, a doctor, or a patient. The role of customer is obviously a very
important one in the Ridgeline Mountain Outfitters case. Many things in the
problem domain can fit into more than one type. For example, a vehicle is
a device and a tangible thing. Either way, the important point is to identify
potential things in the problem domain.
Other types of things can include organizational units, such as a division,
department, or workgroup. Similarly, a site or location, such as a warehouse, a
store, or a branch office, might be an important thing in a system. Finally, infor-
mation about an incident or an interaction can be a thing—information about an
order, a service call, a contract, or an airplane flight. A sale, a shipment, and a
return are all important incidents in the RMO case. Sometimes, these incidents
are thought of as associations between things. For example, a sale is an associa-
tion between a customer and an item of inventory. Initially, the analyst might
simply list all these as things and then make adjustments as required by different
approaches to analysis and design.
The analyst identifies these types of things by thinking about each use case,
talking to users, and asking questions. For example, for each use case,
what types of things are affected that the system needs to know about and store
information about? The types of things shown in Figure 4-1 can be used to
systematically brainstorm about what types of things might be involved in each
use case. When a customer wants to buy from the Web site, the system needs to
store information about the customer, the items ordered, the details about the
sale itself—such as the date and payment terms—and the location of the items
brainstorming technique a technique
to identify problem domain objects in which
developers work with users in an open group
setting
FIGURE 4-1 Types of things to use for the brainstorming technique
sensor
timer
controller
assembly line
production machine
sorter
printer
inventory bin
Devices
warehouse
branch office
factory
retail store
desktop
Sites/
locations
flight
service call
logon
logoff
contract
purchase
order
payment
Incidents,
events, or
interactions
airplane
book
vehicle
document
worksheet
Tangible
things
employee
customer
doctor
patient
end user
system
administrator
Roles
played
Things
division
department
section
task force
workgroup
Organizational
units
CHAPTER 4 ■ Domain Modeling 93
to be shipped. For that one use case, the analyst can define tangible things
(items ordered), roles played (customer), incidents or events (the sale), sites/
locations (warehouse), and organizational units (shipping).
Here are the steps to follow when using the brainstorming technique:
1. Identify a user and a set of use cases.
2. Brainstorm with the user to identify things involved when carrying out the
use case—that is, things about which information should be captured by the
system.
3. Use the types of things (categories) to systematically ask questions about
potential things, such as the following: Are there any tangible things you
store information about? Are there any locations involved? Are there roles
played by people that you need to remember?
4. Continue to work with all types of users and stakeholders to expand the
brainstorming list.
5. Merge the results, eliminate any duplicates, and compile an initial list.
The Noun Technique
Another useful procedure for identifying things in the problem domain is called
the noun technique. Recall that a noun is a person, place, or thing. Therefore,
identifying nouns might help you identify what needs to be stored by the system.
Begin by listing all the nouns that users mention when talking about the system.
Nouns used to describe events, use cases, and the actors are potential things.
Next, add to the list any additional nouns that appear in information about
the existing system or that come up in discussions with stakeholders about the
problem domain of the system. The list of nouns will become quite long, so the
list will need to be refined. How the noun technique differs from the brain-
storming technique is that the analyst lists all nouns without thinking too much
about them and without talking much to users. Only later will the list be refined
based on consultation with stakeholders and users.
Here are the steps to follow when using the noun technique:
1. Using the use cases, actors, and other information about the system—
including inputs and outputs—identify all nouns. For the RMO CSMS,
the nouns might include the following: customer, product item, sale,
confirmation, transaction, shipping, bank, change request, summary report,
management, transaction report, accounting, back order, back order
notification, return, return confirmation, fulfillment reports, prospective
customer, marketing, customer account, promotional materials, charge
adjustment, sale details, merchandising, and customer activity reports.
2. Using other information from existing systems, current procedures, and
current reports or forms, add items or categories of information needed.
For the RMO CSMS, these might include more detailed information, such
as price, size, color, style, season, inventory quantity, payment method, and
shipping address. Some of these items might be additional things, and some
might be more specific pieces of information (called attributes) about things
you have already identified. Refine the list and then record assumptions or
issues to explore.
3. As this list of nouns builds, you will need to refine it. Ask these questions
about each noun to help you decide whether you should include it:
■ Is it a unique thing the system needs to know about?
■ Is it inside the scope of the system I am working on?
■ Does the system need to remember more than one of these items?
Ask these questions about each noun to decide whether you should
exclude it:
■ Is it really a synonym for some other thing I have identified?
noun technique a technique to identify
problem domain objects by finding and classi-
fying the nouns in a dialog or description
94 PART 2 ■ Systems Analysis Activities
■ Is it really just an output of the system produced from other information
I have identified?
■ Is it really just an input that results in recording some other information
I have identified?
Ask these questions about each noun to decide whether you should
research it:
■ Is it likely to be a specific piece of information (attribute) about some
other thing I have identified?
■ Is it something I might need if assumptions change?
4. Create a master list of all nouns identified and then note whether each one
should be included, excluded, or researched further.
5. Review the list with users, stakeholders, and team members and then refine
the list of things in the problem domain.
Figure 4-2 lists some of the nouns from the RMO CSMS, with notes about
each one. As with the brainstorming technique, the initial list developed from
this table is just a start. Much more work is needed to refine the list and define
more information about each item in the list.
Attributes of Things
The noun technique involves listing all the nouns that come up in discussions
or documents about the requirements. As discussed previously, many of
these nouns are actually attributes. Most information systems store and use
specific pieces of information about each thing, as shown for some nouns in
Figure 4-2. The specific pieces of information are called attributes. For exam-
ple, a customer has a name, a phone number, a credit limit, and so on. Each of
these details is an attribute. The analyst needs to identify the attributes of each
thing that the system needs to store. One attribute may be used to identify a
attributes descriptive pieces of informa-
tion about things or objects
Identified noun Notes on including noun as a thing to store
Accounting We know who they are. No need to store it.
Back order A special type of order? Or a value of order status? Research.
Back-order information An output that can be produced from other information.
Bank Only one of them. No need to store.
Catalog Yes, need to recall them, for different seasons and years. Include.
Catalog activity reports An output that can be produced from other information. Not stored.
Catalog details Same as catalog? Or the same as product items in the
catalog? Research.
Change request An input resulting in remembering changes to an order.
Charge adjustment An input resulting in a transaction.
Color One piece of information about a product item.
Confirmation An output produced from other information. Not stored.
Credit card information Part of an order? Or part of customer information? Research.
Customer Yes, a key thing with lots of details required. Include.
Customer account Possibly required if an RMO payment plan is included. Research.
Fulfillment reports An output produced from information about shipments. Not stored.
Inventory quantity One piece of information about a product item. Research.
Management We know who they are. No need to store.
Marketing We know who they are. No need to store.
Merchandising We know who they are. No need to store.
FIGURE 4-2
Partial list of “things” based on nouns
for RMO
CHAPTER 4 ■ Domain Modeling 95
specific thing, such as a Social Security number for an employee or an order
number for a purchase. The attribute that uniquely identifies the thing is called
an identifier or key. Sometimes, the identifier is already established (a Social
Security number, vehicle ID number, or product ID number). Sometimes, the
system needs to assign a specific identifier (an invoice number or transaction
number).
A system may need to remember many similar attributes. For example, a
customer has several names: a first name, a middle name, a last name, and
possibly a nickname. A compound attribute is an attribute that contains a
collection of related attributes, so an analyst may choose one compound
attribute to represent all these names, perhaps naming it Customer full name.
A customer might also have several phone numbers: home phone number, office
phone number, fax phone number, and cell phone number. The analyst might
start out by describing the most important attributes but later add to the list.
Attribute lists can get quite long. Some examples of attributes of a customer
and the values of attributes for specific customers are shown in Figure 4-3.
Associations Among Things
After recording and refining the list of things and determining potential
attributes, the analyst needs to research and record additional information.
Many important relationships among things are important to the system. An
association is a naturally occurring relationship between specific things, such
as an order is placed by a customer and an employee works in a department
(see Figure 4-4). Is placed by and works in are two associations that naturally
occur between specific things. Information systems need to store information
about employees and about departments, but equally important is storing
information about the specific associations; for example, John works in the
FIGURE 4-3 Attributes and values
All customers have these attributes: Each customer has a value for each attribute:
Customer ID
First name
Last name
Home phone
Work phone
101
John
Smith
555-9182
555-3425
102
Mary
Jones
423-1298
423-3419
103
Bill
Casper
874-1297
874-8546
Mr Smith
“is
placed
by”
“works in”
“contains” “contains”
401 jeans size
34 long
red shirt size
16/32
Accounting DeptOrder # 1043
FIGURE 4-4
Associations naturally occur among
things
identifier or key an attribute the value of
which uniquely identifies an individual thing or
object
compound attribute an attribute that
consists of multiple pieces of information but is
best treated in the aggregate
association a term, in UML, that
describes a naturally occurring relationship
between specific things, sometimes called a
relationship
96 PART 2 ■ Systems Analysis Activities
accounting department and Mary works in the marketing department. Similarly,
it is quite important to store the fact that Order 1043 for a shirt was placed by
John Smith. In database management, the term relationship is often used in
place of association, which is the term used when modeling in UML. We will
use association in this book because we emphasize UML diagrams and terms.
Associations between things apply in two directions. For example, a
customer places an order describes the association in one direction. Similarly,
an order is placed by a customer describes the association in the other direction.
It is important to understand the association in both directions because some-
times it might seem more important for the system to record the association in
one direction than in the other. For example, Ridgeline Mountain Outfitters
definitely needs to know what items a customer ordered so the shipment can be
prepared. However, it might not be initially apparent that the company needs to
know about the customers who have ordered a particular item. What if the
company needs to notify all customers who ordered a defective or recalled prod-
uct? Knowing this information would be very important, but the operational
users might not immediately recognize that fact.
It is also important to understand the nature of each association in terms of
the number of links for each thing. For example, a customer might place many
different orders, but an order is placed by only one customer. In database
management, the number of links that occur is referred to as the cardinality
of the association. Cardinality can be one-to-one or one-to-many. The term
multiplicity is used to refer to the number of links in UML and should be used
when discussing UML models. Multiplicity is established for each direction of
the association. Figure 4-5 lists examples of cardinality/multiplicity associated
with an order.
It is important to describe not just the multiplicity but also the range of
possible values of the multiplicity (the minimum and maximum multiplicity).
For example, a particular customer might not ever place an order. In this case,
there are zero associations. Alternatively, the customer might place one order,
meaning one association exists. Finally, the customer might place two, three, or
even more orders. The relationship for a customer placing an order can have a
range of zero, one, or more, usually indicated as zero or more. The zero is the
minimum multiplicity, and more is the maximum multiplicity. These terms are
referred to as multiplicity constraints.
In some cases, at least one association is required (a mandatory as opposed
to optional association). For example, the system might not record any informa-
tion about a customer until the customer places an order. Therefore, the
multiplicity would read customer places one or more orders.
A one-to-one association can also be refined to include minimum and
maximum multiplicity. For example, an order is placed by one customer; it
is impossible to have an order if there is no customer. Therefore, one is the min-
imum multiplicity, making the association mandatory. Because there cannot be
more than one customer for each order, one is also the maximum multiplicity.
Mr. Jones has placed no order yet,
but there might be many placed
over time.
A particular order is placed by Mr.
Smith. There can’t be an order
without stating who the customer is.
An order contains at least one item,
but it could contain many items.
multiplicity/cardinality
is zero or more—
optional relationship
multiplicity/cardinality
is one and only one—
mandatory relationship
multiplicity/cardinality
is one or more—
mandatory relationship
FIGURE 4-5
Multiplicity/cardinality of associations
relationship a term that describes a
naturally occurring association between specific
things, sometimes called an association
cardinality a measure of the number of
links between one object and another object in
a relationship
multiplicity a measure, in UML, of the
number of links between one object and
another object in an association
multiplicity constraints the actual
numeric count of the constraints on objects
allowed in an association
CHAPTER 4 ■ Domain Modeling 97
Sometimes, such an association is read as an order must be placed by one and
only one customer.
The associations described here are between two different types of things—
for example, a customer and an order. These are called binary associations.
Sometimes, an association is between two things of the same type—for example,
the association is married to, which is between two people. This type of associa-
tion is called a unary association (and sometimes called a recursive associa-
tion). Another example of a unary association is an organizational hierarchy in
which one organizational unit reports to another organizational unit—the pack-
ing department reports to shipping, which reports to distribution, which reports
to marketing.
An association can also be among three different types of things, when it is
called a ternary association, or among any number of different types of
things, when it is called an n-ary association. For example, one particular
order might be associated with a specific customer plus a specific sales represen-
tative, requiring a ternary association.
Storing information about the associations is just as important as storing
information about the specific things. It is important to have information like
the name and address of each customer, but it is equally important (perhaps
more so) to know what items each customer has ordered.
The Entity-Relationship Diagram
More traditional approaches to system development place a great deal of
emphasis on data storage requirements for a new system and use the term
data entities for the things about which the system needs to store information.
Data storage requirements include the data entities, their attributes, and the
relationships (called “associations” in UML) among the data entities. A
model commonly used by traditional analysts and database analysts is called
the entity-relationship diagram (ERD). The ERD is not a UML diagram, but
it is very commonly used and is quite similar to the UML domain model class
diagram that is discussed later in this chapter.
Examples of ERD Notation
On the entity-relationship diagram, rectangles represent data entities, and the
lines connecting the rectangles show the relationships among data entities.
Figure 4-6 shows an example of a simplified entity-relationship diagram with
two data entities: Customer and Order. Each Customer can place many Orders,
and each Order is placed by one Customer. The cardinality is one-to-many in
binary associations associations
between exactly two distinct types of things
unary association an association
between two instances of the same type
of thing
ternary association an association
between exactly three distinct types of things
n-ary association an association
between n distinct types of things
data entities the term used in an ER
diagram to describe sets of things or individual
things
entity-relationship diagram (ERD) a
diagram consisting of data entities (i.e., sets of
things) and their relationships
an Order must be placed
by exactly one Customer
a Customer can place
zero or more Orders
Customer Order
FIGURE 4-6
A simple entity-relationship diagram
98 PART 2 ■ Systems Analysis Activities
one direction and one-to-one in the other direction. The crow’s-feet symbol on
the line next to the Order data entity indicates many orders. But other symbols
on the relationship line also represent the minimum and maximum cardinality
constraints. See Figure 4-7 for an explanation of ERD relationship symbols.
The model in Figure 4-6 actually says that a Customer places a minimum of
zero Orders and a maximum of many Orders. Reading in the other direction,
the model says an Order is placed by at least one and only one Customer. This
notation can express precise details about the system. The constraints reflect the
business policies that management has defined, and the analyst must discover
what these policies are. The analyst does not determine that two customers can-
not share one order; management does.
Figure 4-8 shows the model expanded to include the order items (one or
more specific items included on the order). Each order contains a minimum of
one and a maximum of many items (there could not be an order if it did not
contain at least one item). For example, an order might include a shirt, a pair
of shoes, and a belt, and each of these items is associated with the order. This
example also shows some of the attributes of each data entity: A customer has
a customer number, a name, a billing address, and several phone numbers.
Each order has an order ID, order date, and so on. Each order item has an item
ID, quantity, and price. The attributes of the data entity are listed below the
name, with the key identifier listed first, usually followed by “PK” to indicate
primary key.
Figure 4-9 shows how the actual data in some transactions might look.
John is a customer who has placed two orders. The first order, placed on
February 4, was for two shirts and one belt. The second order, placed on
March 29, was for one pair of boots and two pairs of sandals. Mary is a cus-
tomer who has not yet placed an order. Recall that a customer might place zero
or more orders. Therefore, Mary is not associated with any orders. Finally, Sara
placed an order on March 30 for three pairs of sandals. The diagram shown in
Figure 4-9 is sometimes referred to as a semantic net. A semantic net shows
specific objects that belong to a class or data entity and the links among them.
Exactly one (mandatory)
Zero or more (optional)
One or more (mandatory)
Zero or one (optional)
FIGURE 4-7
Cardinality symbols of ERD
relationships
Customer
cust number–PK
name
bill address
home phone
office phone
order ID–PK
order date
amount
Order OrderItem
item ID–PK
quantity
price
FIGURE 4-8
An expanded ERD with attributes
shown
semantic net a graphical representation
of an individual data entity and its relationship
with other individual data entities
CHAPTER 4 ■ Domain Modeling 99
A semantic net is useful for thinking through and verifying the entities and
relationships in an ERD and the classes and associations in a class diagram
(discussed next).
Another example is shown in Figure 4-10. This ERD is for a bank that has
many branches. Each branch has one or more accounts. Each account is owned
by one customer and results in one or more transactions. There are a few other
issues to consider in the bank example. First, there is no data entity named
Bank. That is because the ERD shows data storage requirements for the bank.
There is only one bank. Therefore, there is no need to include Bank in the
model. This is a general rule that applies to ERDs. If the system were for state
bank regulators, then Bank would be an important data entity because there
are lots of banks under the state regulators’ jurisdiction.
John
Mary
Sara
no orders for
Mary yet!
Order: 3 March 30
Order: 1 Feb 4
Order: 2 March 29
First shirt
Second shirt
Belt
Boots
First sandals
Second sandals
Third sandals
First sandals
Second sandals
FIGURE 4-9
Semantic net of customers, orders,
and order items consistent with the
expanded ERD
branch ID –PK
manager name
location
main phone
account ID –PK
account type
date opened
balance
cust number –PK
name
bill address
home phone
office phone
Account BranchCustomer
trans ID –PK
trans date
trans type
trans amount
Transaction
FIGURE 4-10
An ERD for a bank with many branches
100 PART 2 ■ Systems Analysis Activities
Look again at the cardinality. Note that a customer must have at least one
account. The rationale for this is that the bank would not add a customer unless
he or she were adding an account. Note also that the branch can have zero
accounts. A branch might be added long before it opens its doors, so it is possi-
ble that it is does not have any accounts. Additionally, there might be some
branches that do not have accounts, such as a kiosk at a university or airport.
Note that an account must have at least one transaction. The rationale is that
opening a new account requires an initial deposit, which is a transaction. It is
important to recognize that questions about the cardinality and minimum and
maximum cardinality constraints need to be discussed and reviewed with
stakeholders.
The Domain Model Class Diagram
Many current approaches to system development use the term class rather than
data entity and use concepts and notations based on UML to model the things
in the problem domain. These concepts come from the object-oriented approach
to systems. A class is a category or classification used to describe a collection of
objects. Each object belongs to a class. Therefore, students Mary, Joe, and
Maria belong to the class Student. Classes that describe things in the problem
domain are called domain classes. Domain classes have attributes and associa-
tions. Multiplicity (called cardinality in an ERD) applies among classes. Initially,
when defining requirements, the approach to modeling using an ERD or UML is
very similar.
The UML class diagram is used to show classes of objects for a system.
One type of UML class diagram that shows the things in the users’ problem
domain is called the domain model class diagram. Another type of UML
class diagram is called the design class diagram, and it is used when designing
software classes. You will learn about the design class diagram in Chapter 10.
On a class diagram, rectangles represent classes, and the lines connecting
the rectangles show the associations among classes. Figure 4-11 shows such a
symbol for a single domain class: Customer. The domain class symbol is a rect-
angle with two sections. The top section contains the name of the class, and the
bottom section lists the attributes of the class. Later, you will learn that the
design class symbol includes a third section at the bottom for listing methods of
the class; methods do not apply to problem domain classes.
Class names and attribute names use camelback notation, in which the
words run together without a space or underscore. Class names begin with a
capital letter; attribute names begin with a lowercase letter (see Figure 4-11).
Class diagrams are drawn by showing classes and associations among classes.
The examples used previously for the entity-relationship diagram are redrawn
by using UML domain class diagram notation in the following section so you
can compare them. Additionally, more complex issues about classes and associa-
tions are illustrated in domain model class diagrams.
The name of the class
Attributes: all objects in
the class have a value for
each of these
Customer
custNumber
name
billAddress
homePhone
officePhone
FIGURE 4-11
The UML domain class symbol with
name and attributes
class a category or classification of a set of
objects or things
domain classes classes that describe
objects from the problem domain
class diagram a diagram consisting of
classes (i.e., sets of objects) and associations
among the classes
domain model class diagram a class
diagram that only includes classes from the
problem domain
camelback notation or camelcase
notation when words are concatenated to
form a single word and the first letter of each
embedded word is capitalized
CHAPTER 4 ■ Domain Modeling 101
Domain Model Class Diagram Notation
Figure 4-12 shows a simplified domain model class diagram with three classes:
Customer, Order, and OrderItem (just like the example of an ERD shown in
Figure 4-9). Here, each class symbol includes two sections. In diagram notation,
we see that each Customer can place many Orders (a minimum of zero and a
maximum of many) and that each Order is placed by one Customer. The asso-
ciations places and consists of can be included on the diagram for clarity, as
shown in Figure 4-12, but this detail is optional. The multiplicity is one-
to-many in one direction and one-to-one in the other direction. The multiplicity
notation, shown as an asterisk on the line next to the Order class, indicates
many orders. The other association shows that an Order consists of one or
more OrderItems, and each OrderItem is associated with one Order.
See Figure 4-13 for a summary of multiplicity notation.
Figure 4-14 shows another example of a domain model class diagram, this
one for the bank with multiple branches that was discussed earlier and shown
as an ERD. In this example, the UML notation for indicating an attribute that
is an identifier or key is {key}.
Figure 4-15 shows an example of a domain model class diagram with a
many-to-many association. At a university, courses are offered as course sec-
tions, and a student enrolls in many course sections. Each course section con-
tains many students. Therefore, the association between CourseSection and
Student is many-to-many. There are situations in which many-to-many associa-
tions are appropriate, and they can be modeled as shown.
However, on closer analysis, analysts often discover that many-to-many
associations involve additional data that are important and must be stored. For
example, in Figure 4-15, where is the grade that each student receives for the
course stored? This is important data, and although the model indicates which
course section a student took, it does not have a place for the grade. The solu-
tion is to add a domain class to represent the association between student and
course section; this is called an association class. The association class is
given the missing attribute. Figure 4-16 shows the expanded class diagram,
orderID
orderDate
amount
Order
itemID
quantity
price
OrderItem
custNumber
name
billAddress
homePhone
officePhone
Customer
0..*1 1..*1
places consists of
FIGURE 4-12
A simple domain model class diagram
Zero or more
(optional)
One or more
(mandatory)
One and only one
(mandatory)
One and only one
alternate
(mandatory)
Zero or more
alternate
(optional)
Zero or one
(optional)
1
0..*0..1
1..1 1..*
*
FIGURE 4-13
UML notation for multiplicity of
associations
association class an association that is
also treated as a class; often required in order
to capture attributes for the association
102 PART 2 ■ Systems Analysis Activities
account ID {key}
accountType
dateOpened
balance
Account
transID {key}
transDate
transType
transAmount
Transaction
branchID {key}
managerName
branchLocation
mainPhone
Branch
custNumber {key}
fullName
billAddress
homePhone
officePhone
Customer
1..*1
1
1..*
10..*
FIGURE 4-14
A domain model class diagram for
a bank
sectionNumber
startTime
roomNumber
CourseSection
studentID
name
major
Student
courseNumber
title
creditHours
Course
0..*
1
0..*
0..*
FIGURE 4-15
A university course enrollment domain
model class diagram with a many-
to-many association
sectionNumber
startTime
roomNumber
CourseSection
studentID
name
major
Student
courseNumber
title
creditHours
Course
grade
CourseEnrollment
0..*
1
0..*
0..*
FIGURE 4-16
A refined university course enrollment
domain model class diagram with an
association class
CHAPTER 4 ■ Domain Modeling 103
with an association class named CourseEnrollment, which has an attribute for
the student’s grade. A dashed line connects the association class with the associ-
ation line between the CourseSection and Student classes.
Reading the association in Figure 4-16 from left to right, one course section
has many course enrollments—each with its own grade—and each course enroll-
ment applies to one specific student. Reading from right to left, one student has
many course enrollments—each with its own grade—and each course enroll-
ment applies to one specific course section. A database implemented by using
this model will be able to produce grade lists showing all students and their
grades in each course section as well as grade transcripts showing all grades
earned by each student.
More Complex Issues about Classes of Objects
Previously, we discussed associations between domain classes. In UML, an asso-
ciation is one of many types of relationships, so we need to be more precise
when discussing UML diagrams than when discussing ERDs. For example, the
use case diagram introduced in Chapter 3 shows the �includes� relationship
between use cases. With class diagrams, there are three types of relationships
among classes of objects: association relationships (which we have already dis-
cussed), generalization/specialization relationships, and whole/part relationships.
This section discusses generalization/specialization relationships and whole-part
relationships and shows how they are represented in UML class diagrams.
Generalization/Specialization Relationships
Generalization/specialization relationships are based on the idea that people
classify things in terms of similarities and differences. Generalizations are judg-
ments that group similar types of things. For example, there are several types of
motor vehicles: cars, trucks, and tractors. All motor vehicles share certain gen-
eral characteristics, so a motor vehicle is a more general class. Specializations
are judgments that group different types of things. For example, special types of
cars include sports cars, sedans, and sport utility vehicles. These types of cars
are similar in some ways yet different in other ways. Therefore, a sports car is a
special type of car.
A generalization/specialization relationship is used to structure or rank these
things from the more general to the more special. As discussed previously, classi-
fication refers to defining classes of things. Each class of things in the hierarchy
might have a more general class above it, called a superclass. At the same
time, a class might have a more specialized class below it, called a subclass.
In Figure 4-17, the class Car has three subclasses and one superclass
(MotorVehicle). UML class diagram notation uses a triangle that points to the
superclass to show a generalization/specialization hierarchy.
We mentioned that people structure their understanding by using
generalization/specialization relationships. In other words, people learn by refin-
ing the classifications they make about some field of knowledge. A knowledge-
able banker can talk at length about special types of loans and deposit
accounts. A knowledgeable merchandiser like John Blankens at Ridgeline
Mountain Outfitters can talk at length about special types of outdoor activities
and clothes. Therefore, when asking users about their work, the analyst is
trying to understand the knowledge the user has about the work, which the
analyst can represent by constructing generalization/specialization relationships.
At some level, the motivation for the new CSMS project at RMO started with
John’s recognition that Ridgeline Mountain Outfitters might handle many spe-
cial types of sales with a new system (online sales, telephone sales, and in-store
sales). These special types of sales are shown in Figure 4-18.
Inheritance allows subclasses to share characteristics of their superclass.
Returning to Figure 4-17, a car is everything any other motor vehicle is
generalization/specialization
relationship a type of hierarchical
relationship in which subordinate classes are
subsets of objects of the superior classes; an
inheritance hierarchy
superclass the superior or more general
class in a generalization/specialization
relationship
subclass the subordinate or more special-
ized class in a generalization/specialization
relationship
inheritance the concept that specializa-
tion classes inherit the attributes of the
generalization class
104 PART 2 ■ Systems Analysis Activities
but also something special. A sports car is everything any other car is but also
something special. In this way, the subclass “inherits” characteristics. In the
object-oriented approach, inheritance is a key concept that is possible because
of generalization/specialization hierarchies. Sometimes, these are referred to as
inheritance relationships.
In Figure 4-18, attributes are included for each class. Each member of the Sale
class has a saleDateTime attribute and a priorityCode attribute. Each InStoreSale
has a storeID, clerkID, and registerID, but an OnlineSale and a TelephoneSale have
other attributes. OnlineSale, InStoreSale, and TelephoneSale inherit the attributes
from Sale, plus they have some special attributes of their own. An OnlineSale actu-
ally has eight attributes (six from Sale and two additional). An InStoreSale has nine
attributes, and a TelephoneSale has eight attributes.
FIGURE 4-17 Generalization/specialization relationships for motor vehicles
TractorTruck
MotorVehicle
SportUtilitySedanSportsCar
Car
Trucks, cars, and tractors
are special types of motor
vehicles
Sports cars, sedans, and
sport utilities are special
types of cars
TelephoneSale
clerkID
lengthOfCall
OnlineSale
timeOnSite
chatUse
InStoreSale
storeID
registerID
clerkID
Sale
saleDateTime
priorityCode
S&H
tax
totalAmt
mountainBucks
FIGURE 4-18
Generalization/specialization relation-
ships (inheritance) for sales
CHAPTER 4 ■ Domain Modeling 105
Note that in Figure 4-18 the class name Sale is in italics; that is because it is
an abstract class. An abstract class is a class that exists so subclasses can
inherit from it. There is never an actual object simply called a Sale. Each sale
must be one of the three subclasses. A concrete class is a class that does have
actual objects. Sometimes, a superclass is abstract; sometimes, it is concrete
depending on the intention of the analyst.
Figure 4-19 shows an extension of the previous example of a bank with multi-
ple branches to indicate that there are two types of accounts: a SavingsAccount and
a CheckingAccount. The abstract class Account is in italics, indicating that it is an
abstract class. Rather than including an attribute for account type, the subclasses
represent different types of accounts. Each subclass has its own special attributes
that do not apply to the other subclasses. A SavingsAccount has four attributes,
and a CheckingAccount has five attributes. Note that each subclass also inherits an
association with a Customer, optionally a Branch, and one or more Transactions.
Whole-Part Relationships
Another way that people structure information about things is by defining them
in terms of their parts. For example, learning about a computer system might
involve recognizing that the computer is actually a collection of parts: processor,
main memory, keyboard, disk storage, and monitor. A keyboard is not a special
type of computer; it is part of a computer, but it is also something separate.
Whole-part relationships are used to show an association between one class
and other classes that are parts of that class.
There are two types of whole-part relationships: aggregation and composi-
tion. Aggregation refers to a type of whole-part relationship between the
abstract class a class that describes a
category or set of objects but that never
includes individual objects or instances
concrete class a class that allows indi-
vidual objects or instances to exist
accountID {key}
dateOpened
balance
Account
interestRate
SavingsAccount
checkStyle
minimumBalance
CheckingAccount
transID {key}
transDate
transType
transAmount
Transaction
branchID {key}
managerName
branchLocation
mainPhone
Branch
custNumber {key}
fullName
billAddress
homePhone
officePhone
Customer
1..*1
1..*
1
10..*
FIGURE 4-19
An expanded domain model class dia-
gram for the bank, with subclasses for
types of accounts
whole-part relationship a relationship
between classes in which one class is a part or
a component portion of another class
aggregation a type of whole-part rela-
tionship in which the component parts also
exist as individual objects apart from the
aggregate
106 PART 2 ■ Systems Analysis Activities
aggregate (whole) and its components (parts), where the parts can exist sepa-
rately. Figure 4-20 demonstrates the concept of aggregation in a computer sys-
tem, with the UML diamond symbol representing aggregation. Composition
refers to whole-part relationships that are even stronger, where the parts, once
associated, can no longer exist separately. The UML diamond symbol is filled
in to represent composition.
Whole-part relationships—aggregation and composition—mainly allow the
analyst to express subtle distinctions about associations among classes. As with
any association relationship, multiplicity can apply, such as when a computer
has one or more disk storage devices.
The UML class diagram examples we have seen so far are domain model
class diagrams. The design class diagram is a refinement of the class diagram
and is used to represent software classes in the new system. You will learn
about the process of converting the domain model class diagram to a design
class diagram in Chapter 10.
The Ridgeline Mountain Outfitters Domain Model Class Diagram
The RMO CSMS involves many domain classes and many complex association
and generalization/specialization relationships. A domain model class diagram for
an information system evolves as the project proceeds; and unlike the use case
diagrams, where many diagrams are created, there is eventually only one domain
model class diagram. Also, unlike the use case diagram, the domain model class
diagram is not produced just for presentations. The process of developing and
FIGURE 4-20 Whole-part (aggregation) relationships between a computer and its parts
Monitor
DiskStorage
Keyboard
MainMemory
Processor
Computer
Processor, Main
Memory, Keyboard, Disk
Storage, and Monitor are
parts of a computer
composition a type of whole-part rela-
tionship in which the component parts cannot
exist as individual objects apart from the total
composition
CHAPTER 4 ■ Domain Modeling 107
refining the domain model class diagram is how the analyst explores and learns
about the problem domain. Therefore, the information depicted in the domain
model class diagram is very detailed and rich in specific meaning.
The Ridgeline Mountain Outfitters domain model class diagram is a varia-
tion of the customer, order, and order item example shown in Figure 4-12.
Most of the domain classes are from the list of nouns developed in Figure 4-2.
Because the model is fairly complex, an analyst might start by focusing on one
subsystem at a time to reduce the complexity. Eventually, all subsystems can be
combined into one domain model.
The RMO Sales Subsystem
Figure 4-21 shows a domain model class diagram for the RMO CSMS Sales
subsystem. The Sales subsystem mainly involves the customer, sale, sales items,
products, promotions, and accessories. That is a good starting point, but there
are additional domain classes. Additionally, recall that the association relation-
ships are just as important as the classes, so these must be identified. There are
also special types of sales and a shopping cart.
In Figure 4-21, each customer can be associated with one or more sales.
Note that there are three special types of sales shown in the inheritance
relationships (in-store sale, online sale, and telephone sale), as discussed in
the last section. Therefore, the scope of the Sales subsystem includes in-store,
online, and telephone sales processes. A customer can also be associated
with an online shopping cart (OnLineCart) for any online sale. There are
two special types of carts: the active cart and the on-reserve cart. The
minimum multiplicity between customer and cart is zero, meaning there might
not be a shopping cart involved—for example, in an in-store or telephone
sale. There can be a maximum of two carts for a customer at any one
time: an active cart and an on-reserve cart. The on-reserve cart can be remem-
bered from session to session. Each sale and each cart is associated with one
customer, so the subclasses inherit the association, just as they inherit the
attributes of Sale.
Note that an individual sale is associated with one or more sales items. In
the online cart, it is associated with one or more cart items. With an online
sale, the sale is created from the cart when the customer checks out. Sale
items are created from each cart item. Finally, a sales transaction is created and
associated with the sale.
A sale can have one or more sale items, but what is each item? An associa-
tion between each sale item and an inventory item answers the question. Each
sale item is for a specific inventory item, meaning a specific size and color of
the item, such as a shirt or coat. An inventory item has an attribute for the
quantity on hand of that size and color. Because there are many colors and
sizes (each with its own quantity), each inventory item is associated with a
product item that describes the item generally (gender, description, supplier,
manufacturer, and picture). Each product item is associated with many inven-
tory items, and each inventory item is associated with many sale items.
A product item can be part of many promotions, and a promotion can
include many product items, making a many-to-many association. An associa-
tion class is added to store information about the price of each item in each
promotion. Each product item might have many accessories, and an accessory
might apply to many product items. Here, there is no defined association class
for the many-to-many association. Note that this association might also be
modeled as a unary (recursive) association. Finally, each product item can have
many customer comments, which are reviewed during a sale.
The RMO Customer Account Subsystem
The Customer Account subsystem domain model class diagram is shown in
Figure 4-22. Note that there are some classes repeated here that are also on the
108 PART 2 ■ Systems Analysis Activities
Sales subsystem domain model class diagram. For example, Customer is impor-
tant to both subsystems. Note that Sale and SaleTrans are also included here. In
order to make account adjustments and report on all payments and returns for
a customer, all sales and sales transactions need to be referenced. Repeating
domain classes in several subsystems does not mean there is redundancy.
FIGURE 4-21 RMO Sales subsystem domain model class diagram
elapsedTime
ActiveCart
holdForDays
OnReserveCart
storeID
registerID
clerkID
InStoreSale
timeOnSite
chatUse
OnlineSale
clerkID
lengthOfCall
TelephoneSale
quantity
soldPrice
shipStatus
backOrderStatus
SaleItem
saleDateTime
priorityCode
S&H
tax
totalAmt
mountainBucks
Sale
date
transactionType
amount
paymentMethod
SaleTrans
season
year
description
startDate
endDate
Promotion
date
rating
comment
ProductComment
size
color
options
quantityOnHand
averageCost
reorderQuantity
InventoryItem
name
mobilePhone
homePhone
emailAddress
status
Customer
gender
description
supplier
manufacturer
picture
ProductItem
startDateTime
noOfItems
valueOfItems
status
OnLineCart
1
1
0..2
1..*
1..*
1..* 1
1..*
1
1 0..*
1
0..*
0..*
1
0..*
0..*
0..* 1..*
0..*
1
0..*
1
1
PromoOffering
regularPrice
promoPrice
category
description
AccessoryPackage
quantity
currentPrice
CartItem
CHAPTER 4 ■ Domain Modeling 109
In complex domain models, it is easier to do the modeling and analysis in sepa-
rate diagrams before merging them all together. Sometimes, the project team
divides the work by subsystem, so each would work on a separate diagram,
being sure to coordinate with each other.
The Customer Account subsystem includes messages, partner credits, and
friend links. The FriendLink class is an association class, but unlike other exam-
ples, it is attached to a unary association between customers. Each customer can
be linked to many other customers, shown by the association line at the top of
the Customer class. For each link, the status and dateLinkedUp is stored. The
Message class is handled differently. Each customer can send many messages, each
to many other customers. Similarly, each customer can receive many messages.
The Complete RMO Domain Model Class Diagram
The analysts at RMO may continue to model each subsystem separately. The
exercises at the end of this chapter ask you to create those other subsystem
diagrams. The final domain model class diagram for the RMO CSMS is shown
in Figure 4-23. Classes not shown before include Shipper, Shipment, ReturnItem,
and Suggestion.
FIGURE 4-22 RMO Customer Account subsystem domain model class diagram
number
street
city
state
zipcode
Address
saleDateTime
priorityCode
S&H
tax
totalAmt
mountainBucks
Sale
amtRMOCredits
amtPartnerCredits
CustPartnerCredit
name
address
contactPerson
telephone
agreementDescription
PromoPartner
date
transactionType
amount
paymentMethod
SaleTrans
customer1
customer2
status
dateLinkedUp
FriendLink
name
mobilePhone
homePhone
emailAddress
status
Customer
date
messageText
Message
typeOfAccount
creditCardNo
Account
1 1..*
0..*
1..*
1
0..*
0..*0..*
1..*
0..*
To
1
0..*
From
1
1..*
0..1
1..*1..*
0..1
110 PART 2 ■ Systems Analysis Activities
FIGURE 4-23 Complete RMO CSMS domain model class diagram
elapsedTime
ActiveCart
holdForDays
OnReserveCart
storeID
registerID
clerkID
InStoreSale
timeOnSite
chatUse
OnlineSale
clerkID
lengthOfCall
TelephoneSale
category
description
AccessoryPackage
quantity
soldPrice
shipStatus
backOrderStatus
SaleItem
trackingNo
dateTimeSent
dateTimeArrive
cost
Shipment
name
address
contactName
telephone
Shipper
quantity
price
reason
condition
ReturnItem
saleDateTime
priorityCode
S&H
tax
totalAmt
mountainBucks
Sale
date
transactionType
amount
paymentMethod
SaleTrans
season
year
description
startDate
endDate
Promotion
date
rating
comment
ProductComment
size
color
options
quantityOnHand
averageCost
reorderQuantity
InventoryItem
name
mobilePhone
homePhone
emailAddress
status
Customer
number
street
city
state
zipcode
Address
regularPrice
promoPrice
PromoOffering
gender
description
supplier
manufacturer
picture
ProductItem
quantity
currentPrice
CartItem
date
messageText
Message
typeOfAccount
creditCardNo
Account
date
suggestionText
Suggestion
amtRMOCredits
amtPartnerCredits
CustPartnerCredit
startDateTime
noOfItems
valueOfItems
status
OnLineCart
customer1
customer2
status
dateLinkedUp
FriendLink
1
0..1
1
1
0..*
0..*
0..*
1
1..*
1
0..*
1..*
0..*
To From
1..*
1..*
0..1
0..2
1..*
1..*
1..* 1
1..*
1
1 0..*
1
0..*
0..*
1
0..*
0..*
0..* 1..*
0..*
1
0..*
0..1
1..*
1
1
1 0..*
0..* 1
0..*0..*
name
address
contactPerson
telephone
agreementDescription
PromoPartner
CHAPTER 4 ■ Domain Modeling 111
Chapter Summary
This is the second of three chapters that present techni-
ques for modeling a system’s functional requirements,
highlighting the tasks that are completed during the
analysis activity Define requirements. Use cases and
things in the user’s work environment are key concepts
common to all approaches to system development. This
chapter discusses data entities and domain classes as
two terms for things in the work environment. Two
techniques are demonstrated for identifying things in
the problem domain: the brainstorming technique and
the noun technique. The entity-relationship diagram
(ERD) is used by traditional analysts and by database
analysts to model things in the problem domain. An
ERD shows data entities, attributes, and relationships.
The UML class diagram is used for the same purpose
by analysts using UML, referred to as the domain
model class diagram. The domain model class diagram
models domain classes, attributes, and associations.
Multiplicity refers to the number of association links
between classes. UML and the domain model class
diagram can be extended to include three types of rela-
tionships: association relationships, generalization/
specialization relationships (inheritance), and whole-
part relationships. Additional concepts of importance
in domain model class diagrams are superclasses, sub-
classes, abstract classes, and concrete classes. Domain
classes are not software classes; therefore, they do not
have methods. Design class diagrams show software
classes that do have methods. Design classes are intro-
duced in Chapter 10.
Key Terms
abstract class 106
aggregation 106
association 96
association class 102
attributes 95
binary associations 98
brainstorming technique 93
camelback notation 101
cardinality 97
class 101
class diagram 101
composition 107
compound attribute 96
concrete class 106
data entities 98
domain classes 101
domain model class diagram 101
entity-relationship diagram (ERD) 98
generalization/specialization
relationships 104
identifier 96
Inheritance 104
key 96
multiplicity 97
multiplicity constraints 97
n-ary association 98
noun technique 94
problem domain 92
relationship 97
semantic net 99
subclass 104
superclass 104
ternary association 98
unary association 98
whole-part relationships 106
Review Questions
1. What are the two key concepts—one from
Chapter 3 and one from this chapter—that define
functional requirements?
2. What is the problem domain?
3. What is a “thing” called in models used by
traditional analysts and database analysts?
4. What is a “thing” called in newer approaches that
use UML?
5. What are two techniques for identifying things in
the problem domain?
6. What are some examples of tangible things in the
problem domain of a restaurant?
112 PART 2 ■ Systems Analysis Activities
7. What are some sites or locations in the problem
domain of a restaurant?
8. What are some roles played by people in the
problem domain of a restaurant?
9. What are the main steps of the brainstorming
technique?
10. Explain why identifying nouns helps identify things
in the problem domain?
11. What are the main steps of the noun technique?
12. What is an attribute, an identifier or key, and a
compound attribute?
13. What is an association, and what system develop-
ment standard defines it?
14. How would you describe or name the association
between a ship and a captain?
15. What is the term used for association by traditional
analysts and database analysts?
16. What is multiplicity, and what is the other term
used by traditional analysts and database analysts?
17. What is the minimum multiplicity for the associa-
tion that reads a customer places zero or more
orders?
18. What is the maximum multiplicity for the associa-
tion that reads an order is placed by exactly one
customer?
19. What are some examples of multiplicity
constraints?
20. What are the three types of associations, and which
is the most commonly used?
21. What are the three key parts of an entity-relationship
diagram (ERD)?
22. Sketch a simple ERD that shows a team has zero or
more players and each player is on one and only
one team.
23. Sketch a semantic net that shows two teams and
five players based on your ERD.
24. What is a class, a domain class, and the key parts of
a class diagram?
25. What does a domain model class diagram show
about system requirements, and how is it different
from an ERD?
26. List appropriate UML class names by using the
camelback notation for the following classes: grad-
uate student, undergraduate major, course instruc-
tor, and final exam feedback.
27. List appropriate UML attribute names for the
following attributes: student name, course
grade, major name, and final exam quantity
score.
28. Draw a simple domain model class diagram for the
example in question 22 where a team has zero or
more players and each player is on one and only
one team.
29. What is an association class? Extend the domain
model class diagram for teams and players about to
show a record of game statistics for each player in
each game.
30. In UML, what are three types of relationships found
on a class diagram?
31. What is a generalization/specialization
relationship, and what object-oriented terms
does it illustrate?
32. Compare/contrast superclass and subclass.
Compare/contrast abstract class and concrete
class.
33. What is a whole-part relationship, and why does it
show multiplicity?
34. Compare/contrast aggregation and composition for
a whole-part relationship.
Problems and Exercises
1. Draw an entity-relationship diagram, including
minimum and maximum cardinality, for the
following: The system stores information about two
things: cars and owners. A car has attributes for
make, model, and year. The owner has attributes
for name and address. Assume that a car must be
owned by one owner and an owner can own many
cars, but an owner might not own any cars (perhaps
she just sold them all, but you still want a record of
her in the system).
2. Draw a class diagram for the cars and owners
described in exercise 1, but include subclasses for
sports car, sedan, and minivan, with appropriate
attributes.
3. Consider the domain model class diagram shown in
Figure 4-16—the refined diagram showing course
enrollment with an association class. Does this model
allow a student to enroll in more than one course
section at a time? Does the model allow a course
section to contain more than one student? Does the
model allow a student to enroll in several sections of
the same course and get a grade for each enrollment?
Does the model store information about all grades
earned by all students in all sections?
CHAPTER 4 ■ Domain Modeling 113
4. Again consider the domain model class diagram
shown in Figure 4-16. Add the following to the
diagram and list any assumptions you had to make:
A faculty member usually teaches many course
sections, but some semesters, a faculty member may
not teach any. Each course section must have at
least one faculty member teaching it, but sometimes,
faculty teams teach course sections. Furthermore, to
make sure that all course sections are similar, one
faculty member is assigned as course coordinator to
oversee the course, and each faculty member can be
the coordinator of many courses.
5. If the domain model class diagram you drew in
exercise 4 showed a many-to-many association
between faculty member and course section, a fur-
ther look at the association might reveal the need to
store some additional information. What might this
information include? (Hint: Does the instructor
have specific office hours for each course section?
Do you give an instructor some sort of evaluation
for each course section?) Expand the domain model
class diagram to allow the system to store this
additional information.
6. Consider a system that needs to store information
about computers in a computer lab at a university,
such as the features and location of each computer.
What are the domain classes that might be included
in a model? What are some of the associations
among these classes? What are some of the
attributes of each class? Draw a domain model class
diagram for this system.
7. Consider the domain model class diagram for the
RMO CSMS Sales subsystem shown in Figure 4-21.
If an InStoreSale is created, how many attributes
does it have? If an OnlineSale is created, how many
attributes does it have? If an existing customer
places a telephone order for one item, how many
new objects are created overall for this transaction?
Explain.
8. Again consider the domain model class diagram
shown in Figure 4-21. How many attributes does an
active cart object have? Can an on-reserve cart
contain cart items? Explain.
9. A product item for RMO is not the same as an
inventory item. A product item is something like a
men’s leather hunting jacket supplied by Leather ‘R’
Us. An inventory item is a specific size and color of
the jacket—like a size medium brown leather
hunting jacket. If RMO adds a new jacket to its
catalog and six sizes and three colors are available
in inventory, how many objects need to be added
overall? Explain.
10. Consider the domain model class diagram shown in
Figure 4-24, which includes classes for college,
department, and faculty members.
a. What kind of UML relationships are shown in
the model?
b. How many attributes does a “faculty member”
have? Which (if any) have been inherited from
another class?
departmentName
departmentHead
officeLocation
officePhone
Department
firstName
lastName
currentRank
specialty
officePhone
FacultyMember
collegeName
collegeDean
collegeLocation
College
0..*
1
1..*
1..*
FIGURE 4-24
Domain model class diagram for a
university
114 PART 2 ■ Systems Analysis Activities
c. If you add information about one college, one
department, and four faculty members, how
many objects do you add to the system?
d. Can a faculty member work in more than one
department at the same time? Explain.
e. Can a faculty member work in two departments
at the same time, where one department is in the
college of business and the other department is in
the college of arts and sciences? Explain.
11. Review information about your own university.
Create generalization/specialization hierarchies by
using the domain model class diagram notation for
(1) types of faculty, (2) types of students, (3) types
of courses, (4) types of financial aid, and (5) types
of housing. Include attributes for the superclass and
the subclasses in each case.
12. Consider the classes involved when modeling
a car and all its parts. Draw a domain model
class diagram that shows the whole-part
relationships involved, including multiplicity.
Which type of whole-part relationships are
involved?
13. Refer to the complete RMO CSMS domain model
class diagram shown in Figure 4-23. Based on that
model and on the discussion of subsystems in
Chapter 3, draw a domain model class diagram for
the CSMS Marketing subsystem.
14. Again based on the complete RMO CSMS domain
model class diagram shown in Figure 4-23, draw a
domain model class diagram for the CSMS Order
Fulfillment subsystem.
Case Study
Metropolitan Car Service Bureau
Metropolitan Car Service Bureau needs a system that
keeps car service records. The company’s analyst has
provided information about the problem domain in the
form of notes. Your job is to use those notes to draw
the domain model class diagram. The analyst’s notes are
as follows:
■ The Owner class has attributes name and address.
■ The Vehicle class is an abstract class that has attri-
butes VIN, model, and model year.
■ There are two types of vehicles, cars and trucks:
■ Car has additional attributes for the number of
doors and luxury level.
■ Truck has an additional attribute for cargo capacity.
■ The Manufacturer class has attributes name and
location.
■ The Dealer class has attributes name and address.
A service record is an association class between
each vehicle and a dealer, with attributes service date
and current mileage. A warranty service record is a spe-
cial type of service record with an additional attribute:
eligibility verification. Each service record is associated
with a predefined service type, with attributes type ID,
description, and labor cost. Each service type is associ-
ated with zero or more parts, with attributes part ID,
description, and unit cost. Parts are used with one or
more service types.
An owner can own many vehicles, and a vehicle
can be owned by many owners. An owner and a vehicle
are entered into the system only when an owned
vehicle is first serviced by a dealer. Vehicles are serviced
many times at various dealers, which service many
vehicles.
1. Draw a UML domain model class diagram for the
system as described here. Be as specific and accu-
rate as possible, given the information provided. If
needed information is not given, make realistic
assumptions.
2. Answer True or False to the following statements,
which are based on the domain model. You may want
to draw a semantic net to help you think through the
questions.
a. This domain model is for a single car dealer service
department.
b. This domain model is for a single car manufacturer.
c. A vehicle can have service records with more than
one dealer.
d. A dealer can service vehicles from more than one
manufacturer.
e. Current mileage is recorded for service records and
warranty service records.
f. An owner can have each of his or her cars serviced
by a different dealer.
g. A warranty service for a car can include many parts.
h. A vehicle can be made by more than one
manufacturer.
CHAPTER 4 ■ Domain Modeling 115
RUNNING CASE STUDIES
Community Board of Realtors
In Chapter 3, you identified use cases for the Board of
Realtors Multiple Listing Service (MLS) system, which
supplies information that local real estate agents use to
help them sell houses to their customers. During the
month, agents list houses for sale (listings) by contract-
ing with homeowners. Each agent works for a real
estate office, which sends information on listings to
the multiple listing service. Therefore, any agent in
the community can get information on the listing.
Much of the information is available to potential cus-
tomers on the Internet.
Information on a listing includes the address, year
built, square feet, number of bedrooms, number of
bathrooms, owner name, owner phone number, asking
price, and status code. It is also important to have
information on the listing agent, such as name, office
phone, cell phone, and e-mail address. Agents work
through a real estate office, so it is important to
know the office name, office manager name, office
phone, and street address.
1. Based on the information here, draw a domain
model class diagram for the MLS system. Be sure
to consider what information needs to be
included versus information that is not in the
problem domain. For example, is detailed infor-
mation about the owner, such as his employer or
his credit history, required in the MLS system? Is
that information required regarding a potential
buyer?
2. Draw a second domain model class diagram that
adds the following specifications. First, there are
two types of listings: a listing for sale and a listing
for lease. Additionally, a listing might include no
structures, such as vacant land, or it might include
more than one structure, such as a main house and
a guest house, each with separate values for square
footage, number of bedrooms, and number of
bathrooms.
3. Draw a third domain model class diagram that
assumes a listing might have multiple owners.
Additionally, a listing might be shared by two or
more agents, and the percentage of the commis-
sion that each agent gets from the sale can be dif-
ferent for each agent.
The Spring Breaks ‘R’ Us Travel Service
In Chapter 3, you identified use cases for the Social
Networking subsystem SBRU is researching. Let us
assume you were thinking about a number of potential
domain classes that might be involved. For example,
there would need to be information about a traveler
attending a resort for a particular week. The traveler
would be assigned to a room along with roommates
but might also be connected to other friends. There
might be different interests or hobbies a traveler can
associate with in the hopes of connecting to others. The
resort has many locations where a traveler might be
hanging out at any given time, and a traveler can note
whether the location is “liked.” People might schedule a
party at a location and invite specific friends.
1. For the Social Networking subsystem as described
here, list the domain classes and their attributes
that should be included in the Social Networking
subsystem. Be creative and add those you think
should be included to make the system useful and
appealing.
2. Based on the domain classes you identified, draw a
domain model class diagram showing domain clas-
ses with attributes and associations with multiplicity.
On the Spot Courier Services
On the Spot courier services grew and changed over
the years. At first, Bill received requests for package
pickups on his mobile phone, recorded that informa-
tion in a log, and would then drive around to retrieve
all the packages later in the day. However, he soon
discovered that with another driver, it was difficult to
coordinate pickups between the two of them from his
van. It was not long before he reorganized his business
and turned the warehouse employee into a driver. Then,
he stayed in the warehouse himself, and his two
employees made all the pickups and deliveries. This
worked well because he could control and coordinate
(continued on page 117)
116 PART 2 ■ Systems Analysis Activities
the pickups and deliveries better. It was also easier for
him to receive pickup requests working at a desk rather
than trying to do it while driving a delivery van.
As he thought about how his business was grow-
ing and the services he provided to his customers, Bill
began to itemize the kinds of information he would
need to maintain.
Of course, he needed to maintain information
about his customers. Some of his customers were busi-
nesses; some were individuals. He needed to have basic
address and contact information for every customer.
Also, for his corporate customers, he needed to identify
a primary contact person. It was mostly his corporate
customers who wanted to receive monthly statements
listing all their shipments during the month and the
total cost. Bill needed to distinguish which customers
paid cash and which wanted monthly statements. In
fact, for those that paid monthly, he needed to keep a
running account of such things as when they were last
billed, when they paid, and any outstanding balances.
Finally, when payments were received, either for indi-
vidual shipments or from monthly invoices, he needed
to record information about the payment: type of pay-
ment, date, and amount. Although this was not a
sophisticated billing and payment system, Bill thought
it would suffice for his needs.
Next, he started thinking about his packages and
shipments. At the time that a request for a pickup
came in, he needed to keep track of it as some type
of delivery request or delivery order. At that point in
time, Bill mostly needed to know who the customer
was, where the pickup location was, and what date
and time the package(s) would be ready for pickup.
He also recorded the date and time that he received
the order. A delivery order was considered “open”
until the delivery van arrived at the pickup location
and the packages were all retrieved. At that point, the
delivery order was satisfied.
Once the packages were retrieved, each package
needed to be uniquely identified. Bill needed to know
when it was picked up and which delivery person
picked it up. Other important information was the
“deliver to” entity name and the address. He also
needed to identify the type of delivery. Some packages
were high priority, requiring same-day delivery. Others
were overnight. Of course, the weight and cost were
recorded so the customer could either pay or have it
added to the monthly invoice.
In the courier and delivery business, one of the
most important information requirements is the date
and time stamp. For each package, it is important to
know when it was picked up, when it arrived at the
warehouse, when it went back out on the delivery
run, and when it was delivered. When possible, it is
also important to have names associated with each of
these events.
1. Using the noun technique, read through this case
and identify all the nouns that may be important
for this system. You may also find it helpful to
read back through the case descriptions in the
previous chapters.
2. Once you have identified all the nouns, identify
which are classes and which are attributes of these
primary classes. Begin constructing a class dia-
gram based on the classes and attributes you have
identified.
3. Now that you have identified the classes, deter-
mine what the relationships should be among the
classes. Add multiplicity constraints, being espe-
cially cognizant of zero-to-many versus one-
to-many differences.
4. Finalize the class diagram, including all your clas-
ses, attributes, primary keys, relationships, and
multiplicity constraints.
Sandia Medical Devices
Initial discussions about the functional requirements
resulted in an initial domain model class diagram
for Sandia Medical Devices’ Real-Time Glucose
Monitoring (RTGM) system (see Figure 4-25). After
consultations with system stakeholders, the following
potential changes to the diagram are being
considered:
■ Include additional medical personnel (nurses and
physicians’ assistants, at a minimum).
■ Include alerts sent by the system to medical per-
sonnel and messages sent by medical personnel to
the patient.
1. Modify the diagram to incorporate the changes
under consideration. You may need to use associ-
ation classes and generalization/specialization
(inheritance).
2. Is a set of abstract and concrete classes needed to
represent variations among cell phones? Why or
why not?
(continued from page 116)
(continued on page 118)
CHAPTER 4 ■ Domain Modeling 117
Further Resources
Classic and more recent texts include the
following:
Peter Rob and Carlos Coronel, Database Systems:
Design, Implementation, and Management,
(7th ed.). Course Technology, 2007.
Craig Larman, Applying UML and Patterns
(3rd ed.). Prentice Hall, 2005.
Grady Booch, Ivar Jacobson, and James Rumbaugh,
The Unified Modeling Language User Guide.
Addison-Wesley, 1999.
id
lastName
firstName
id
medicalRecordNumber
lastName
dateOfBirth
gender
race
height
weight
Patient
dateTime
level
GlucoseObservation
id
phoneNumber
operatingSystem
osVersion
applicationVersion
CellPhone
Physician
serialNumber
manufacturer
dateOfManufacture
firmwareVersion
MonitoringDevice
1..1
1..1
0..*
0..*
0..*
0..*
1..1
1..1
FIGURE 4-25
Initial domain model class dia-
gram for Sandia RTGM system
(continued from page 117)
118 PART 2 ■ Systems Analysis Activities
5
Extending the Requirements
Models
Chapter Outline
■ Use Case Descriptions
■ Activity Diagrams for Use Cases
■ The System Sequence Diagram—Identifying Inputs and Outputs
■ The State Machine Diagram—Identifying Object Behavior
■ Integrating Requirements Models
Learning Objectives
After reading this chapter, you should be able to:
■ Write fully developed use case descriptions
■ Develop activity diagrams to model flow of activities
■ Develop system sequence diagrams
■ Develop state machine diagrams to model object behavior
■ Explain how use case descriptions and UML diagrams work together to define
functional requirements
119
OPENING CASE
Electronics Unlimited: Integrating the Supply Chain
Electronics Unlimited is a warehousing distributor that buys
electronic equipment from various suppliers and sells it
to retailers throughout the United States and Canada. It
has operations and warehouses in Los Angeles, Houston,
Baltimore, Atlanta, New York, Denver, and Minneapolis. Its
customers range from large nationwide retailers, such as
Target, to medium-sized independent electronics stores.
Many of the larger retailers are moving toward inte-
grated supply chains. Information systems used to be
focused on processing internal data; however, today,
these retail chains want suppliers to become part of a
totally integrated supply chain system. In other words,
the systems need to communicate between companies
to make the supply chain more efficient.
To maintain its position as a leading wholesale dis-
tributor, Electronics Unlimited has to convert its system
to link with its suppliers (the manufacturers of the
electronic equipment) and its customers (the retailers).
It is developing a completely new system that uses
object-oriented techniques to provide these links.
Object-oriented techniques facilitate system-to-system
interfaces by using predefined components and objects
to accelerate the development process. Fortunately,
many of the system development staff members have
experience with object-oriented development and are
eager to apply the techniques and models to the system
development project.
William Jones is explaining object-oriented develop-
ment to the group of systems analysts who are being
trained in this approach.
“We’re developing most of our new systems by using
object-oriented principles,” he tells them. “The complexity
of the new system, along with its interactivity, makes the
object-oriented approach a natural way to develop require-
ments. It takes a little different thought process than some
of you may be used to, but the object-oriented models
track very closely with the new object-oriented program-
ming languages and frameworks.”
William is just getting warmed up.
“This way of thinking about a system in terms of
objects is very interesting,” he adds. “It is also consistent
with the object-oriented programming techniques you
learned in your programming classes. You probably first
learned to think about objects when you developed screens
for the user interface. All the controls on the screen, such
as buttons, text boxes, and drop-down boxes, are objects.
Each has its own set of trigger events that activate its pro-
gram functions.”
“How does this apply to our situation?” one of the
analysts asks.
“You just extend that thought process,” William
explains. ”You think of such things as purchase orders
and employees as objects too. We can call them the prob-
lem domain or business objects to differentiate them from
screen objects, such as windows and buttons. During anal-
ysis, we have to find out all the trigger events and meth-
ods associated with each business object.”
“And how do we do that?” another analyst asks.
“You continue with your fact-finding activities and build a
better understanding of each use case,” William says. “The
way the business objects interact with each other in the use
case determines how you identify the initiating activity. We
refer to those activities as the messages between objects.
The tricky part is that you need to think in terms of objects
instead of just processes. Sometimes, it helps me to pretend
I am an object. I will say, ‘I am a purchase order object. What
functions and services are other objects going to ask me to
do?’ After you get the hang of it, it works very well, and it is
enlightening to see how the system requirements unfold as
you develop the diagrams.”
Overview
The main objective of defining requirements in system development is under-
standing users’ needs, how the business processes are carried out, and how the
system will be used to support those business processes. As we indicated in
Chapter 2, system developers use a set of models to discover and understand
the requirements for a new system. This activity is a key part of systems analysis
in the system development process. The first step in the process for developing
this understanding requires the fact-finding skills you learned in Chapter 2.
Fact-finding activities are also called discovery activities, and obviously, discov-
ery must precede understanding.
The models introduced in Chapters 3 and 4 focus on two primary aspects
of functional requirements: the use cases and the things involved in users’ work.
Use cases are identified by using the user goal technique and the event decompo-
sition technique. The UML use case diagram was introduced to show use cases
120 PART 2 ■ Systems Analysis Activities
and actors. An information system also needs to record and store information
about things involved in the business processes. In a manual system, the infor-
mation is recorded on paper and stored in a filing cabinet. In an automated sys-
tem, the information is stored in electronic files or a database. The information
storage requirements of a system are documented either with entity-relationship
diagrams (ERDs) or with UML domain model class diagrams.
In this chapter, you learn additional techniques and models that will allow
you to extend the requirements models to show additional information about
the use cases and domain classes for the system. Fully developed use case
descriptions, UML activity diagrams, and UML system sequence diagrams
(SSDs) are introduced to show more information about each use case. Then,
UML state machine diagrams are introduced; these help you show more infor-
mation about domain classes. Remember, when defining requirements for a sys-
tem, you will also be doing design and implementation work, as illustrated in
the Trade Show application developed in Chapter 1. The next chapter begins
covering system design activities.
Use Case Descriptions
A list of use cases and use case diagrams provides an overview of all the use
cases for a system. Detailed information about each use case is described with a
use case description. Brief use case descriptions were introduced in Chapter 3.
A use case description lists and describes the processing details for a use case.
Implied in all use cases is a person who uses the system. In UML, that person is
called an actor, as shown on use case diagrams. An actor is always outside
the automation boundary of the system but may be part of the manual portion
of the system. By defining actors that way—as those who interact with the
system—we can more precisely define the exact interactions to which the
automated system must respond. This tighter focus helps define the specific
requirements of the automated system itself—to refine them as we move from
the event table to the use case details.
Another way to think of an actor is as a role. For example, in the RMO
case, the use case Create customer account might involve a customer service rep
talking to the customer on the phone. Or the customer might be the actor if the
customer adds or updates information directly online.
To create a comprehensive, robust system that truly meets users’ needs, we
must understand the detailed steps of each use case. Internally, a use case
includes a whole sequence of steps to complete a business process. Frequently,
several variations of the business steps exist within a single use case. The use
case Create customer account will have a separate flow of activities depending
on which actor invokes the use case. The processes for a customer service repre-
sentative updating information over the phone might be quite different from the
processes for a customer updating the information him or herself. Each flow
of activities is a valid sequence for the Create customer account use case. These
different flows of activities are called scenarios or sometimes use case
instances. Thus, a scenario is a unique set of internal activities within a use case
and represents a unique path through the use case.
Brief Use Case Descriptions
Depending on an analyst’s needs, use case descriptions tend to be written at
two separate levels of detail: brief description and fully developed description.
Some brief use case descriptions were shown in Chapter 3 (see Figure 5-1).
A brief description can be used for very simple use cases, especially when the
system to be developed is a small, well-understood application. A simple use
case would normally have a single scenario and very few—if any—exception
conditions. An example would be Add product comment or Send message.
use case description a textual model
that lists and describes the processing details
for a use case
scenarios or use case instances
unique sets of internal activities within
use cases
CHAPTER 5 ■ Extending the Requirements Models 121
A use case such as Fill shopping cart is complex enough that a fully developed
description is also written.
Fully Developed Use Case Descriptions
The fully developed description is the most formal method for documenting a
use case. One of the major difficulties for software developers is that they often
struggle to obtain a deep understanding of the users’ needs. But if you create a
fully developed use case description, you increase the probability that you thor-
oughly understand the business processes and the ways the system must support
them. Figure 5-2 is an example of a fully developed use case description of the
use case Create customer account.
Figure 5-2 also serves as a standard template for documenting a fully devel-
oped description for other use cases and scenarios. The first and second com-
partments are used to identify the use cases and the scenarios within the use
cases (if needed) that are being documented. In larger or more formal projects,
a unique identifier can also be added for the use case, with an extension identi-
fying the particular scenario. Sometimes, the name of the system developer who
produced the form is added.
The third compartment identifies the event that triggers the use case. The
fourth compartment is a brief description of the use case or scenario. Analysts
may just duplicate the brief description they constructed earlier here. The fifth
compartment identifies the actor or actors. The sixth compartment identifies
other use cases and the way they are related to this use case. These cross-
references to other use cases help document all aspects of the users’ requirements.
The seventh compartment identifies stakeholders who are interested parties
other than specific actors. They might be users who don’t actually invoke the
use case but who have an interest in results produced from the use case. For
example, in Figure 5-2, the accounting department is interested in accurately
capturing billing and credit card information. Although no one in the marketing
department actually creates new customer accounts, they do perform statistical
analysis of the new customers and create marketing promotions. Thus, market-
ers have an interest in the data that are captured and stored from the Create
customer account use case. The sales department is interested in having an
easy-to-use and attractive user interface to assure sales aren’t lost because of
poor user experience. Considering all the stakeholders is important for system
developers to ensure that they have understood all requirements.
The eighth and ninth compartments—preconditions and postconditions—
provide critical information about the state of the system before and after the
use case executes. Preconditions identify what the state of the system must be
for the use case to begin, including what objects must already exist, what infor-
mation must be available, and even the condition of the actor prior to beginning
the use case.
Postconditions identify what must be true upon completion of the use
case. Most importantly, they indicate what new objects are created or updated
by the use case and how objects need to be associated. The postconditions are
Use case
Create customer account
Look up customer
Process account adjustment
Brief use case description
User/actor enters new customer account data, and the system
assigns account number, creates a customer record, and
creates an account record.
User/actor enters customer account number, and the system
retrieves and displays customer and account data.
User/actor enters order number, and the system retrieves
customer and order data; actor enters adjustment amount, and
the system creates a transaction record for the adjustment.
FIGURE 5-1
Use cases and brief use
case descriptions
precondition a condition that must be
true before a use case begins
postcondition what must be true upon
the successful completion of a use case
122 PART 2 ■ Systems Analysis Activities
important for two reasons. First, they form the basis for stating the expected
results for test cases that will be used for testing the use case after it is imple-
mented. For example, in the Create customer account use case, it is important
to test that a customer record, address record, and account record were success-
fully added to the database. Second, the objects in postconditions indicate which
objects involved in the use case are important for design. You will see in
Chapters 10 and 11 that the design of a use case includes identifying and assign-
ing responsibilities to objects that collaborate to complete the use case. In this
situation, a customer, one or more addresses, and an account object collaborate
to create a new customer account.
The tenth compartment in the template describes the detailed flow of activi-
ties of the use case. In this instance, we have shown a two-column version, iden-
tifying the steps performed by the actor and the responses required by the
system. The item numbers help identify the sequence of the steps. Alternative
activities and exception conditions are described in the eleventh compartment.
FIGURE 5-2 Fully developed use case description for Create customer account
Use case name: Create customer account.
Scenario: Create online customer account.
Triggering event: New customer wants to set up account online.
Brief description: Online customer creates customer account by entering basic information
and then following up with one or more addresses and a credit or debit card.
1. Customer indicates desire to
create customer account and
enters basic customer information.
2. Customer enters one or more
addresses.
3. Customer enters credit/debit card
information.
1.1 System creates a new customer.
1.2 System prompts for customer
addresses.
2.1 System creates addresses.
2.2 System prompts for credit/debit
card.
3.1 System creates account.
3.2 System verifies authorization
for credit/debit card.
3.3 System associates customer,
address, and account.
3.4 System returns valid customer
account details.
Flow of activities: Actor System
Actors: Customer.
Related use cases: Might be invoked by the Check out shopping cart use case.
Stakeholders: Accounting, Marketing, Sales.
Preconditions: Customer account subsystem must be available.
Credit/debit authorization services must be available.
Postconditions: Customer must be created and saved.
One or more Addresses must be created and saved.
Credit/debit card information must be validated.
Account must be created and saved.
Address and Account must be associated with Customer.
Exception
conditions:
1.1 Basic customer data are incomplete.
2.1 The address isn’t valid.
3.2 Credit/debit information isn’t valid.
CHAPTER 5 ■ Extending the Requirements Models 123
The numbering of exception conditions also helps tie the exceptions to specific
steps in the flow of activities.
Figure 5-3 shows the use case description for the use case Ship items. The
scenario for this description assumes they are shipping a new sale rather than
backordered items from a previous sale. Notice that the use case description
minimizes the description of manual work that is done in conjunction with
shipping items. Some analysts put that detail in, but others don’t because the
emphasis is on the interaction with the computer application. In this use case,
the preconditions show what existing objects must already exist before the use
case can execute. They can’t ship items that aren’t part of an existing sale for
a customer. The postconditions again indicate what to look for when stating
the expected results for a test case and show the objects that will need to collab-
orate in the design.
FIGURE 5-3 Fully developed use case description for Ship items
Actors: Shipping clerk.
Preconditions: Customer and address must exist.
Sale must exist.
Sale items must exist.
1. Shipping requests sale and sale
item information.
2. Shipping assigns shipper.
3. For each available item, shipping
records item is shipped.
4. For each unavailable item,
shipping records back order.
5. Shipping requests shipping label
supplying package size and
weight.
1.1 System looks up sale and
returns customer, address, sale,
and sales item information.
2.1 System creates shipment and
associates it with the shipper.
3.1 System updates sale item as
shipped and associates it with
shipment.
4.1 System updates sale item as
on back order.
5.1 System produces shipping label
for shipment.
5.2 System records shipment cost.
Related use cases None.
Stakeholders: Sales, Marketing, Shipping, warehouse manager.
Triggering event: Shipping is notified of a new sale to be shipped.
Brief description: Shipping retrieves sale details, finds each item and records it is shipped,
records which items are not available, and sends shipment.
Scenario: Ship items for a new sale.
Use case name: Ship items.
Flow of activities: Actor System
Postconditions: Shipment is created and associated with shipper.
Shipped sale items are updated as shipped and associated with the shipment.
Unshipped items are marked as on back order.
Shipping label is verified and produced.
Exception
conditions:
2.1 Shipper is not available to that location, so select another.
3.1 If order item is damaged, get new item and updated item quantity.
3.1 If item bar code isn’t scanning, shipping must enter bar code manually.
5.1 If printing label isn’t printing correctly, the label must be addressed
manually.
124 PART 2 ■ Systems Analysis Activities
Activity Diagrams for Use Cases
Another way to document a use case is with an activity diagram. In Chapter 2,
you learned about activity diagrams as a form of workflow diagram. You
learned that an activity diagram is an easily understood diagram to document
the workflows of the business processes. Activity diagrams are a standard UML
diagram, and they are also an effective technique to document the flow of activ-
ities for each use case.
Figure 5-4 is an activity diagram that documents the flow of activities for
the Create customer account use case. Sometimes, an activity diagram can take
the place of the flow of activities section of a use case description, and some-
times, it is created to supplement the use case description. There are two swim-
lanes: one for the customer and one for the system. The customer has three
activities, and the system has five activities.
Activity diagrams are helpful when the flow of activities for a use case is
complex. The use case Fill shopping cart is complex in that three other use
cases might be invoked while adding items to the shopping cart. For example,
the actor might search for a product and then look at product reviews before
adding the item to the cart. Once an item is added, the actor might search
for and view available accessories and then add one or more to the cart.
Customer System
Request account
Enter addresses
Enter credit info
Create customer
Create addresses
Create account
Verify credit info
Return account
details
FIGURE 5-4
Activity diagram for Create customer
account showing alternate way to
model the flow of activities
CHAPTER 5 ■ Extending the Requirements Models 125
The activity diagram shown in Figure 5-5 shows the Fill shopping cart use case
flow of activities. The yellow ovals show the other use cases that are invoked
while filling the shopping cart. The activities of the use case go in between the
other use cases. The Fill shopping cart use case includes select options and quan-
tities, add to cart, select accessory options and quantity, and add to cart.
However, the intent of the richer user experience becomes evident when the
activity diagram shows the use case in context.
The System Sequence Diagram—Identifying
Inputs and Outputs
In the object-oriented approach, the flow of information is achieved through
sending messages either to and from actors or back and forth between internal
objects. A system sequence diagram (SSD) is used to describe this flow of
information into and out of the automated system. Thus, an SSD documents
the inputs and the outputs and identifies the interaction between actors and the
system. An SSD is a type of interaction diagram.
Customer System
Search for product
Search and view
accessories
Look at product
reviews
Select options
and quantity
Add to cart
Add to cart
Select accessory
options and quantity
FIGURE 5-5
Activity diagram for Fill shopping cart
showing richer user experience
system sequence diagram (SSD) a
diagram showing the sequence of messages
between an external actor and the system
during a use case or scenario
interaction diagram either a
communication diagram or a sequence diagram
that shows the interactions between objects
126 PART 2 ■ Systems Analysis Activities
SSD Notation
Figure 5-6 shows a generic SSD. As with a use case diagram, the stick figure
represents an actor—a person (or role) that interacts with the system. In a use
case diagram, the actor “uses” the system, but the emphasis in an SSD is on
how the actor “interacts” with the system by entering input data and receiving
output data. The box labeled :System is an object that represents the entire
automated system. In SSDs and all other interaction diagrams, analysts use
object notation instead of class notation. In object notation, a box refers to an
individual object, not the class of all similar objects. The notation is simply a
rectangle with the name of the object underlined. The colon before the under-
lined class name is a frequently used but optional part of the object notation.
In an interaction diagram, the messages are sent and received by individual
objects, not by a class. In an SSD, the only object included is one representing
the entire system.
Underneath the actor and :System are vertical dashed lines called lifelines.
A lifeline, or object lifeline, is simply the extension of that object—either
actor or object—during the use case. The arrows between the lifelines represent
the messages that are sent by the actor. Each arrow has an origin and a destina-
tion. The origin of the message is the actor or object that sends it, as indicated
by the lifeline at the arrow’s tail. Similarly, the destination actor or object of a
message is indicated by the lifeline that is touched by the arrowhead. The pur-
pose of lifelines is to indicate the sequence of the messages sent and received by
the actor and object. The sequence of messages is read from top to bottom in
the diagram.
A message is labeled to describe its purpose and any input data being sent.
The message name should follow the verb-noun syntax to make the purpose
clear. The syntax of the message label has several options; the simplest forms are
shown in Figure 5-6. Remember that the arrows are used to represent a message
and input data. But what is meant by the term message here? In a sequence
diagram, a message is an action that is invoked on the destination object, much like
a command. Notice in Figure 5-6 that the input message is called inquireOnItem.
inquireOnItem (catalogID, prodID, size)
item information
:System
The object lifeline; shows
the“sequence” of messages,
top to bottom
Optional note to explain
something in a diagram
A returned value
The actor
interacting with
the system
An object
(underlined)
representing the
automated system
An input message
item information:
description, price, quantity
Clerk
FIGURE 5-6
Sample system sequence diagram
(SSD)
lifeline or object lifeline the vertical
line under an object on a sequence diagram to
show the passage of time for the object
CHAPTER 5 ■ Extending the Requirements Models 127
The clerk is sending a request (a message) to the system to find an item. The input
data that is sent with the message is contained within the parentheses, and in this
case, it is data to identify the particular item. The syntax is simply the name of the
message followed by the input parameters in parentheses. This form of syntax is
attached to a solid arrow.
The returned value has a slightly different format and meaning. Notice that
the arrow is a dashed arrow. A dashed arrow indicates a response or an answer,
and as shown in the figure, it immediately follows the initiating message. The
format of the label is also different. Because it is a response, only the data that
is sent on the response is noted. There is no message requesting a service—only
the data being returned. In this case, a valid response might be a list of all the
information returned—for example, the description, price, and quantity of an
item. However, an abbreviated version is also satisfactory. In this case, the
information returned is named item information. Additional documentation is
required to show the details. In Figure 5-6, this additional information is shown
as a note. A note can be added to any UML diagram to add explanations. The
details of item information could also be documented in supporting narratives
or even simply referenced by the attributes in the Customer class.
Frequently, the same message is sent multiple times. For example, when an
actor enters items on an order, the message to add an item to an order may be
sent multiple times. Figure 5-7(a) illustrates the notation to show this repeating
operation. The message and its return are located inside a larger rectangle called
addItem (itemID, quantity)
Repeat everything
in the rectangle
description, price, extendedPrice
* [another item] description, price, extendedPrice
:= addItem (itemID, quantity)
(a) Detailed notation
(b) Alternate notation
Clerk
Clerk
Test condition for
repeatability
:System
:System
Loop for all items
FIGURE 5-7
Repeating message in (a) detailed
loop frame notation and (b) alternate
notation
128 PART 2 ■ Systems Analysis Activities
a loop frame. In a smaller rectangle at the top of the frame is the descriptive
text to control the behavior of the messages within the larger rectangle. The
condition loop for all items indicates that the messages in the box repeat many
times or are associated with many instances.
Figure 5-7(b) shows an alternate notation. Here, the square brackets and text
inside them are called a true/false condition for the messages. The asterisk (*)
preceding the true/false condition indicates that the message repeats as long as the
true/false condition evaluates to true. Analysts use this abbreviated notation for
several reasons. First, a message and the returned data can be shown in one step.
Note that the return data is identified as a return value on the left side of an assign-
ment operator—the := sign. This alternative simply shows a value that is returned.
Second, the true/false condition is placed on the message itself. Note that in this
example, the true/false condition is used for the control of the loop. True/false condi-
tions are also used to evaluate any type of test that determines whether a message is
sent. For example, consider the true/false condition [credit card payment]. If it is true
that the thing being tested is a credit card payment, the message is sent to the system
to verify a credit card number. Finally, an asterisk is placed on the message itself to
indicate the message repeats. Thus, for simple repeating messages, the alternate nota-
tion is shorter. However, if several messages are included within the repeat or there
are multiple messages—each with its own true/false condition—the loop frame is
more explicit and precise.
Here is the complete notation for a message:
[true/false condition] return-value := message-name (parameter-list)
Any part of the message can be omitted. In brief, the notation components
do the following:
■ An asterisk (*) indicates repeating or looping of the message.
■ Brackets [ ] indicate a true/false condition. This is a test for that message
only. If it evaluates to true, the message is sent. If it evaluates to false, the
message isn’t sent.
■ Message-name is the description of the requested service. It is omitted on
dashed-line return messages, which only show the return data parameters.
■ Parameter-list (with parentheses on initiating messages and without
parentheses on return messages) shows the data that are passed with the
message.
■ Return-value on the same line as the message (requires :=) is used to
describe data being returned from the destination object to the source object
in response to the message.
Sequence diagrams use two additional frames to depict processing logic, as
shown in Figure 5-8. The opt frame in Figure 5-8(a) is used when a message
or a series of messages is optional or based on some true/false condition. The
alt frame is used with if-then-else logic, as shown in Figure 5-8(b). The alt
frame in this figure indicates that if an item is taxable, then add sales tax; oth-
erwise, add a tax exemption code for a sales tax exemption.
Developing a System Sequence Diagram (SSD)
An SSD is usually used in conjunction with the use case descriptions to help docu-
ment the details of a single use case or scenario within a use case. To develop an
SSD, it is useful to have a detailed description of the use case—either in the fully
developed form or as an activity diagram. These two models identify the flow of
activities within a use case, but they don’t explicitly identify the inputs and out-
puts. An SSD will provide this explicit identification of inputs and outputs. One
advantage of using activity diagrams is that it is easy to identify when an input
or output occurs. Inputs and outputs occur whenever an arrow in an activity dia-
gram goes from an external actor to the computer system.
loop frame notation on a sequence
diagram showing repeating messages
true/false condition part of a message
between objects that is evaluated prior to
transmission to determine whether the
message can be sent
opt frame notation on a sequence diagram
showing optional messages
alt frame notation on a sequence diagram
showing if-then-else logic
CHAPTER 5 ■ Extending the Requirements Models 129
Recall the activity diagram for Create customer account shown in Figure 5-4.
There are two swimlanes: the customer and the computer system. In this instance,
the system boundary coincides with the vertical line between the customer swim-
lane and the computer system swimlane.
The development of an SSD based on an activity diagram falls into four steps:
1. Identify the input messages—In Figure 5-4, there are three locations with
a workflow arrow crossing the boundary line between the customer and
the system. At each location that the workflow crosses the automation
boundary, input data is required; therefore, a message is needed.
2. Describe the message from the external actor to the system by using the
message notation described earlier—In most cases, you will need a message
addAccessory (anAccessory)
accessary details
(a) Opt frame notation
Opt
Customer
[accessory selected]
addSalesTax (locationCode)
tax exemption details
(b) Alt frame notation
Alt
Sales clerk
sales tax details
addTaxExemptionCode (eCode)
[taxable item]
[else]
:System
:System
FIGURE 5-8
Sequence diagram notation for (a) opt
frame and (b) alt frame
130 PART 2 ■ Systems Analysis Activities
name that describes the service requested from the system and the input
parameters being passed. Figure 5-9—the SSD for the Create customer
account use case—illustrates the three messages based on the activity
diagram. Notice that the names of the messages reflect the services that the
actor is requesting of the system: createNewCustomer, enterAddress, and
enterCreditCard. Other names could also have been used. For example,
instead of enterAddress, the name could be createAddress. What is impor-
tant is that the message name describes the service requested from the sys-
tem and be in verb-noun form.
The other information required is the parameter list for each message.
Determining exactly which data items must be passed in is more difficult.
In fact, developers frequently find that determining the data parameters
requires several iterations before a correct, complete list is obtained. The
important principle for identifying data parameters is to base it on the class
diagram. In other words, the appropriate attributes from the classes are
listed as parameters. Looking at the attributes, along with an understanding
of what the system needs to do, will help you find the right attributes.
With the first message just mentioned—createNewCustomer—the parameters
should include basic information about the customer, such as name, phone,
and e-mail address. Note that when the system creates the customer, it
assigns a new customerId and returns it with the other customer information.
In the second message—enterAddress—parameters are needed to identify
the full address. Usually, that would include street address, city, state, and
ZIP code. The SSD simplifies the message to show address as the parameter.
The third message—based on the activity diagram—enters the credit card
information. The parameter—cc-info—represents the account number,
expiration date, and security code.
3. Identify and add any special conditions on the input messages, including
iteration and true/false conditions—In this instance, the enterAddress
message is repeated for each address needed for the customer. The asterisk
symbol in front of the message is shown.
Customer
createNewCustomer (name, phones, emails)
cust ID, name, phones, emails
*address details := enterAddress (address)
enterCreditCard (cc-info)
credit card info details
:System
FIGURE 5-9
SSD for the Create customer account
use case
CHAPTER 5 ■ Extending the Requirements Models 131
4. Identify and add the output return messages—Remember that there are
two options for showing return information: as a return value on the
message itself or as a separate return message with a dashed arrow. The
activity diagram can provide some clues about return messages, but there
is no standard rule that when a transition arrow in the workflow goes
from the system to an external actor an output always occurs. In Figure
5-4, there are three arrows from the computer system swimlane to the
customer swimlane. In Figure 5-9, these are shown as return data on the
dashed line. Note that they are each named with a noun that indicates what
is being returned. Sometimes, no output data is returned.
Remember that the objective is discovery and understanding, so you should
be working closely with users to define exactly how the workflow proceeds and
exactly what information needs to be passed in and provided as output. This is
an iterative process, and you will probably need to refine these diagrams several
times before they accurately reflect the needs of the users.
Let us develop an SSD for the Ship items use case that is shown as a fully
developed use case description in Figure 5-3. Note that the actor has five numbered
steps in the flow of activities, so there will be five input messages in the SSD shown
in Figure 5-10: getNextSale, setShipper, recordShippedItem, recordBackorder,
and getShippingLabel. No parameter is needed for getNextSale because the system
will return the information for the next sale to be shipped. The shipper is selected
by the actor—probably from a list on the form or page—so the parameter is
shipperID. Two messages are repeated in loops: recordShippedItem and
recordBackorder. On this SSD, the loop frame notation is used. Finally, the
getShippingLabel message requires two parameters: the size of the package and the
weight. The system uses that information, along with the shipper and address, to
produce the shipping label and record the cost.
These first sections of this chapter have explained the models that are used
in object-oriented development to specify the processing aspects of the new sys-
tem. The use case descriptions, as provided by written narratives or activity dia-
grams, give the details of the internal steps within each use case. Precondition
and postcondition statements help define the context for the use case—that is,
what must exist before and after processing. Finally, the SSD describes the
inputs and outputs that occur within a use case. Together, these models provide
a comprehensive description of the system-processing requirements and give the
foundation for system design.
Now that the use cases have been explained, let us find out how to capture
important object status information.
The State Machine Diagram—Identifying
Object Behavior
Sometimes, it is important for a computer system to maintain information
about the status of problem domain objects. For example, a customer might
want to know whether a particular sale has been shipped or a manager might
want to know if a customer sale has been paid for. Thus, the system needs to
be able to track the status of customer sales. When defining requirements,
analysts need to identify and document which domain objects require status
checking and which business rules determine valid status conditions. Referring
back to RMO, an example of a business rule is that a customer sale shouldn’t
be shipped until it has been paid for.
The status condition for a real-world object is often referred to as the state
of the object. Defined precisely, a state of an object is a condition that occurs
during its life when it satisfies some criterion, performs some action, or waits
state a condition during an object’s life
when it satisfies some criterion, performs some
action, or waits for an event
132 PART 2 ■ Systems Analysis Activities
for an event. For real-world objects, we equate the state of an object with its
status condition.
The naming convention for status conditions helps identify valid states. A
state might have a name of a simple condition, such as On or In repair. Other
states are more active, with names consisting of gerunds or verb phrases, such
as Being shipped or Working. For example, a specific Sale object comes into
existence when a customer buys something. Right after it is created, the object
might be in a state called Adding new sale items, then a state called Waiting for
items to be shipped, and finally, when all items have been shipped, a state called
Completed. If you find yourself trying to use a noun to name a state, you prob-
ably have an incorrect idea about states or object classes. The name of a state
shouldn’t be an object (or noun); it should be something that describes the
object (or noun).
States are described as semipermanent conditions because external events
can interrupt a state and cause the object to go to a new state. An object
:System
Shipping clerk
customer, address, sale, and sale item info
getNextSale ()
setShipper (shipperID)
shipping label data
getShippingLabel (package size, weight)
Loop
shipping confirmation
recordShippedItem (saleItem)
[shipped item]
Loop
backorder confirmation
recordBackorder (saleItem)
[backorder item]
FIGURE 5-10
SSD for the Ship items use case
CHAPTER 5 ■ Extending the Requirements Models 133
remains in a state until some event causes it to move, or transition, to another
state. A transition, then, is the movement of an object from one state to
another state. Transitioning is the mechanism that causes an object to leave a
state and change to a new state. States are semipermanent because transitions
interrupt them and cause them to end. Generally, transitions are short in
duration—compared with states—and they can’t be interrupted. The combination
of states and transitions between states provides the mechanisms that analysts use
to capture business rules. In our previous RMO example, we would say that a
customer sale must be in a Paid for state before it can transition to a Shipped
state. This information is captured and documented in a UML diagram called a
state machine diagram.
A state machine diagram can be developed for any problem domain classes
that have complex behavior or status conditions that need to be tracked.
However, not all classes will require a state machine diagram. If an object in
the problem domain class doesn’t have status conditions that must control the
processing for that object, a state machine diagram probably isn’t necessary.
For example, in the RMO class diagram, a class such as Sale may need a state
machine diagram. However, a class such as SaleTransaction probably does not.
A sale transaction is created when the payment is made and then just sits there;
it doesn’t need to track other conditions.
A state machine diagram is composed of ovals representing the states of an
object and arrows representing the transitions. Figure 5-11 illustrates a simple
state machine diagram for a printer. Because it is a little easier to learn about
state machine diagrams by using tangible items, we start with a few examples of
computer hardware. After the basics are explained, we will illustrate modeling of
software objects in the problem domain. The starting point of a state machine
diagram is a black dot, which is called a pseudostate. The first shape after the
black dot is the first state of the printer. In this case, the printer begins in the Off
state. A state is represented by a rectangle with rounded corners (almost like an
oval but more squared), with the name of the state placed inside.
As shown in Figure 5-11, the arrow leaving the Off state is called a transi-
tion. The firing of the transition causes the object to leave the Off state and
make a transition to the On state. After a transition begins, it runs to completion
by taking the object to the new state, called the destination state. A transition
begins with an arrow from an origin state—the state prior to the transition—to
a destination state, and it is labeled with a string to describe the components of
the transition.
The transition label consists of the following syntax with three components:
transition-name (parameters, …) [guard-condition] / action-expression
Off On
onButtonPushed [Safety cover closed] / run self-test
State indicates a state
of being of the object.
Beginning pseudostate
denotes start of state
machine diagram.
offButtonPushed
Transition moves the object from the
origin state to the destination state.
Transition-name has trigger name,
guard, and action-expression.
FIGURE 5-11
Simple state machine diagram
for a printer
transition the movement of an object from
one state to another state
state machine diagram a diagram
showing the life of an object in states and
transitions
pseudostate the starting point of a state
machine diagram, indicated by a black dot
destination state for a particular
transition, the state to which an object moves
after the completion of a transition
origin state for a particular transition, the
original state of an object from which the
transition occurs
134 PART 2 ■ Systems Analysis Activities
In Figure 5-11, the transition-name is onButtonPushed. The transition is like
a trigger that fires or an event that occurs. The name should reflect the action of
a triggering event. In Figure 5-11, no parameters are being sent to the printer.
The guard-condition is [Safety cover closed]. For the transition to fire, the
guard must be true. The forward slash divides the firing mechanism from the
actions or processes. Action-expressions indicate some process that must
occur before the transition is completed and the object arrives in the destination
state. In this case, the printer will run a self-test before it goes into the On state.
The transition-name is the name of a message event that triggers the transi-
tion and causes the object to leave the origin state. Notice that the format is
very similar to a message in an SSD. In fact, you will find that the message
event names and transition-names use almost the same syntax. One other rela-
tionship exists between the messages and the transitions: Transitions are caused
by messages coming to the object. The parameter portion of the message name
comes directly from the message parameters.
The guard-condition is a qualifier or test on the transition, and it is simply
a true/false condition that must be satisfied before the transition can fire. For a
transition to fire, first the trigger must occur and then the guard must evaluate
to true. Sometimes, a transition has only a guard-condition and no triggering
event. In that case, the trigger is constantly firing, and whenever the guard
becomes true, the transition occurs.
Recall from the discussion of sequence diagrams that messages have a simi-
lar test, which is called a true/false condition. This true/false condition is a test
on the sending side of the message, and before a message can be sent, the true/
false condition must be true. In contrast, the guard-condition is on the receiving
side of the message. The message may be received, but the transition fires only if
the guard-condition is also true. This combination of tests, messages, and transi-
tions provides tremendous flexibility in defining complex behavior.
The action-expression is a procedural expression that executes when the
transition fires. In other words, it describes the action to be performed. Any of the
three components—transition-name, guard-condition, or action-expression—may
be empty. If either the transition-name or the guard-condition is empty, it automati-
cally evaluates to true. Either of them may also be complex, with AND and OR
connectives.
Composite States and Concurrency
Before teaching you how to develop a state machine diagram, we need to intro-
duce one other type of state: a composite state. In the real world, it is very com-
mon for an object to be in multiple states at the same time. For example, when
the printer in Figure 5-11 is in the on state, it might also be doing other things.
Sometimes, it is printing; sometimes, it is just sitting idle; and when it is first
turned on, it goes through some self-checking steps. All these conditions occur
while the printer is on, and they can be considered simultaneous states. The con-
dition of being in more than one state at a time is called concurrency, or
concurrent states. One way to show this is with a synchronization bar and
concurrent paths, as in activity diagrams. Thus, we could split a transition with
a synchronization bar so one path goes to the On state and the other path goes
to the Idle, Printing, and Selfcheck states. A path is a sequential set of con-
nected states and transitions.
Another way to show concurrent states is to have states nested inside other,
higher-level states. These higher-level states are called composite states.
A composite state represents a higher level of abstraction and can contain nested
states and transition paths. Figure 5-12, which is an extension of Figure 5-11,
illustrates this idea with respect to a printer. The printer is not only in the
On state, it is concurrently in either the Idle or Working state. The rounded
rectangle for the On state is divided into two compartments. The top compartment
action-expression a description of the
activities performed as part of a transition
guard-condition a true/false test to see
whether a transition can fire
concurrency or concurrent state the
condition of being in more than one state
at a time
path a sequential set of connected states
and transitions
composite state a state containing other
states and transitions (that is, a path)
CHAPTER 5 ■ Extending the Requirements Models 135
contains the name, and the lower compartment contains the nested states and
transition paths.
When the printer enters the On state, it automatically begins at the nested
black dot and moves to the Idle state. Thus, the printer is in the On and Idle
states. When the print message is received, the printer makes the transition to
the Working state but also remains in the On state. Some new notation is also
introduced for the Working state. In this instance, the lower compartment con-
tains the action-expressions—that is, the activities that occur while the printer is
in the Working state.
We can extend this idea of composite states and concurrency one step
further by allowing multiple paths within a composite state. Perhaps an object
has entire sets of states and transitions—multiple paths—that are active concur-
rently. To document concurrent multiple paths for a single object, we draw a
composite state with the lower portion divided into multiple compartments—
one for each concurrent path of behavior. For example, imagine a printer that
has an input bin to hold the paper. This printer also alternates between two
states in its work cycle: Idle and Working. We may want to describe two
separate paths: one representing the state of the input paper tray and the other
the state of the printing mechanism. The first path will have the states
Empty, Full, and Low. The second path will have the states Idle and Working.
These two paths are independent; the movement between states in one compart-
ment is completely independent of the movement between states in the other
compartment.
As before, there are two ways to document this concurrent behavior.
First, we could use a synchronization bar with one path becoming three
paths. Second, we could use a composite state. Figure 5-13 extends the
printer example from Figure 5-12. In this example, there are two concurrent
paths within the composite state. The upper concurrent path represents the
paper tray part of the printer. The two paths are completely independent,
and the printer moves through the states and transitions in each path inde-
pendently. When the Off button is pushed, the printer leaves the On state.
Obviously, when the printer leaves the On state, it also leaves all the paths
in the nested states. It doesn’t matter whether the printer is in a state or in
the middle of a transition. When the Off button is pushed, all activity is
stopped, and the printer exits the On state. Now that you know the basic
notation of state machine diagrams, we will explain how to develop a state
machine diagram.
Idle Working
Load and print sheets
On
print(document)
[finished]
FIGURE 5-12
Sample composite states for the
printer object
136 PART 2 ■ Systems Analysis Activities
Rules for Developing State Machine Diagrams
State machine diagram development follows a set of rules. The rules help you
develop state machine diagrams for classes in the problem domain. Usually, the
primary challenge in building a state machine diagram is to identify the right
states for the object. It might be helpful to pretend that you are the object itself.
It is easy to pretend to be a customer but a little more difficult to say “I am an
order” or “I am a shipment. How do I come into existence? What states am I
in?” However, if you can begin to think this way, it will help you develop state
machine diagrams.
The other major area of difficulty for new analysts is to identify and handle
composite states with nested threads. Usually, the primary cause of this diffi-
culty is a lack of experience in thinking about concurrent behavior. The best
solution is to remember that developing state machine diagrams is an iterative
behavior—more so than developing any other type of diagram. Analysts seldom
get a state machine diagram right the first time. They always draw it and then
refine it again and again. Also, remember that when you are defining require-
ments, you are only getting a general idea of the behavior of an object. During
design, as you build detailed sequence diagrams, you will have an opportunity
to refine and correct important state machine diagrams.
Finally, don’t forget to ask about an exception condition—especially when
you see the words verify or check. Usually, there will be two transitions out of
states that verify something: one for acceptance and one for rejection.
Here is a list of steps that will help you get started in developing state
machine diagrams:
1. Review the class diagram and select the classes that might require state
machine diagrams—Remember to include only those classes that have mul-
tiple status conditions that are important for the system to track. Then,
begin with the classes that appear to have the simplest state machine dia-
grams, such as the SaleItem class for RMO, which is discussed later.
2. For each selected class in the group, make a list of all the status conditions
you can identify—At this point, simply brainstorm. If you are working on a
team, have a brainstorming session with the whole team. Remember that
these states must reflect the states for the real-world objects that will be
represented in software. Sometimes, it is helpful to think of the physical
object, identify states of the physical object, and then translate those that
are appropriate into corresponding system states or status conditions. It is
Empty
On
fill ()
trayEmpty ()
Full Low
WorkingIdle
fill ()
lowMsg ()
print(document)
Load and print sheets
Off
onButtonPushed ()
offButtonPushed ()
[finished]
FIGURE 5-13
Concurrent paths for a printer in the
On state
CHAPTER 5 ■ Extending the Requirements Models 137
also helpful to think of the life of the object. How does it come into exis-
tence in the system? When and how is it deleted from the system? Does it
have active states? Does it have inactive states? Does it have states in which
it is waiting? Think of activities done to the object or by the object. Often,
the object will be in a particular state as these actions are occurring.
3. Begin building state machine diagram fragments by identifying the transi-
tions that cause an object to leave the identified state—For example, if a
sale is in a state of Ready to be shipped, a transition such as beginShipping
will cause the sale to leave that state.
4. Sequence these state-transition combinations in the correct order—Then,
aggregate these combinations into larger fragments. As the fragments are
being aggregated into larger paths, it is natural to begin to look for a natu-
ral life cycle for the object. Continue to build longer paths in the state
machine diagram by combining the fragments.
5. Review the paths and look for independent, concurrent paths—When an
item can be in two states concurrently, there are two possibilities. The two
states may be on independent paths, as in the printer example of Working
and Full. This occurs when the states and paths are independent, and one
can change without affecting the other. Alternately, one state may be a
composite state, so the two states should be nested. One way to identify a
candidate for a composite state is to determine whether it is concurrent with
several other states and whether these other states depend on the original
state. For example, the On state has several other states and paths that can
occur while the printer is in the On state, and those states depend on the
printer being in the On state.
6. Look for additional transitions—Often, during a first iteration, several of
the possible combinations of state-transition-state are missed. One method
to identify them is to take every paired combination of states and ask
whether there is a valid transition between the states. Test for transitions in
both directions.
7. Expand each transition with the appropriate message event, guard-
condition, and action-expression—Include with each state appropriate
action-expressions. Much of this work may have been done as the state
machine diagram fragments were being built.
8. Review and test each state machine diagram—Review each of your state
machine diagrams by doing the following:
a. Make sure your states are really states of the object in the class. Ensure
that the names of states truly describe the object’s states rather than the
object itself.
b. Follow the life cycle of an object from its coming into existence to its being
deleted from the system. Be sure that all possible combinations are covered
and that the paths on the state machine diagram are accurate.
c. Be sure your diagram covers all exception conditions as well as the
normal expected flow of behavior.
d. Look again for concurrent behavior (multiple paths) and the possibility
of nested paths (composite states).
Developing RMO State Machine Diagrams
Let us practice these steps by developing two state machine diagrams for RMO.
The first step is to review the domain class diagram and then select the classes
that may have status conditions that need to be tracked. In this case, we select
the Sale and SaleItem classes. We assume that customers will want to know the
status of their sales and the status of individual items on the sale. Other classes
that are candidates for state machine diagrams are: InventoryItem, to track in-
stock or out-of-stock items; Shipment, to track arrivals; and possibly Customer,
to track active and inactive customers.
138 PART 2 ■ Systems Analysis Activities
Developing the SaleItem State Machine Diagram
The first step in developing the SaleItem state machine diagram is to identify the
possible status conditions that might be of interest. Some necessary status condi-
tions are Ready to be shipped, On back order, and Shipped. An interesting
question comes to mind at this point: Can a sale item be partially shipped? In
other words, if the customer bought 10 of a single item but there are only five
in inventory, should RMO ship those five and put the other five on back order?
You should see the ramifications of this decision. The system and the database
would need to be designed to track and monitor detailed information to support
this capability. The domain class diagram for RMO indicates that a SaleItem
can be associated with either zero (not yet shipped) shipments or one (totally
shipped) shipment. Based on the current specification, the definition doesn’t
allow partial shipments of SaleItems.
This is just another example of the benefit of building models. Had we not
been developing the state machine diagram model, this question might never
have been asked. The development of detailed models and diagrams is one of
the most important activities that a system developer can perform. It forces ana-
lysts to ask fundamental questions. Sometimes, new system developers think
that model development is a waste of time, especially for small systems.
However, truly understanding the users’ needs before writing the program
always saves time in the long run.
The second step is to identify exit transitions for each of the status condi-
tions. Figure 5-14 is a table showing the states that have been defined and the
exit transitions for each of those states. One additional state has been added to
the list—Newly added—which covers the condition that occurs when an item
has been added to the sale but the sale isn’t complete or paid for, so the item
isn’t ready for shipping.
The third step is to combine the state-transition pairs into fragments and to
build a state machine diagram with the states in the correct sequence. Figure 5-15
illustrates the partially completed state machine diagram. The flow from beginning
to end for the SaleItem object is quite obvious. However, at least one transition
seems to be missing. There should be some path to allow entry into the On back
order state so we recognize that this first-cut state machine diagram needs some
refinement. We will fix that in a moment.
On back order
itemArrived ()
Ready to shipNewly added
finishedAdding ()
Shipped
shipItem ()
FIGURE 5-15
Partial state machine diagram for
SaleItem object
State Transition causing exit from state
Newly added finishedAdding
On back order itemArrived
Ready to ship shipItem
Shipped No exit transition defined
FIGURE 5-14
States and exit transitions for
SaleItem object
CHAPTER 5 ■ Extending the Requirements Models 139
The fourth step is to look for concurrent paths. In this case, it doesn’t
appear that a SaleItem object can be in any two of the identified states at the
same time. Of course, because we chose to begin with a simple state machine
diagram, that was expected.
The fifth step is to look for additional transitions. This step is where we
flesh out other necessary transitions. The first addition is to have a transition
from Newly added to On back order. To continue, examine every pair of states
to see whether there are other possible combinations. In particular, look for
backward transitions. For example, can a SaleItem go from Ready to ship to
On back order? This would happen if the shipping clerk found that there
weren’t enough items in the warehouse, even though the system indicated that
there should have been. Other backward loops, such as from Shipped to Ready
to ship or from On back order to Newly added, don’t make sense and aren’t
included.
The sixth step is to complete all the transitions with correct names, guard-
conditions, and action-expressions. Two new transition-names are added. The
first is the transition from the beginning black dot to the Newly added state.
That transition causes the creation—or, in system terms, the instantiation—of a
new SaleItem object. It is given the same name as the message into the system
that adds it: addItem(). The final transition is the one that causes the order item
to be removed from the system. This transition goes from the Shipped state to a
final circled black dot, which is a final pseudostate. On the assumption that it is
archived to a backup tape when it is deleted from the active system, that transi-
tion is named archive().
Action-expressions are added to the transitions to indicate any special
action that is initiated by the object or on the object. In this case, only one
action is required. When an item that was Ready to ship moves to On back
order, the system should initiate a new purchase order to the supplier to buy
more items. Thus, on the markBackOrdered() transition, an action-expression is
noted to place a purchase order. Figure 5-16 illustrates the final state machine
diagram for SaleItem.
The seventh step—reviewing and testing the state machine diagram—is the
quality-review step. It is always tempting to omit this step; however, a good
project manager ensures that the systems analysts have time in the schedule to
do a quick quality check of their models. A walkthrough (as described in
Chapter 2) at this point in the project is very appropriate.
Developing the Sale State Machine Diagram
A Sale object is a little more complex than the SaleItem objects. In this example,
you will see some features of state machine diagrams that support more com-
plex objects.
FIGURE 5-16 Final state machine diagram for SaleItem object
On back order
itemArrived ()
finishedAdding () shipItem ()
Ready to ship
addItem ()
markBackOrdered ()
markBackOrdered ()
/ place purchase order
archive ()
Newly added Shipped
140 PART 2 ■ Systems Analysis Activities
Figure 5-17 shows the defined states and exit transitions that, on first itera-
tion, appear to be required. Reading from top to bottom, the states describe the
life cycle of a sale—for example, the status conditions. First, a Sale comes into
existence and is ready to have items added to it—the Open for item adds state.
The users in RMO indicated that they wanted a Sale to remain in this state for
24 hours in case the customer wants to add more items. After all the items are
added, the Sale is Ready for shipping. Second, it goes to shipping and is in the
In shipping state. At this point, it isn’t clear how In shipping and Waiting for
back orders relate to each other. That relationship will have to be sorted out as
the state machine diagram is being built. Finally, the Sale is Shipped, and after
the payment clears, it is Closed.
In the third step, fragments are built and combined to yield the first-cut
state machine diagram (see Figure 5-18). The state machine diagram built from
the fragments appears to be correct—for the most part. However, we note some
problems with the Waiting for back orders state.
After some analysis, we decide that In shipping and Waiting for back orders
are concurrent states. And another state is needed, called Being shipped, for
when the shipping clerk is actively shipping items. One way to show the life of a
Sale is to put it in the In shipping state when shipping begins. It also enters the
Being shipped state at that point. The Sale can cycle between Being shipped and
Waiting for back orders. The exit out of the composite state only occurs from
the Being shipped state, which is inside the In shipping state. Obviously, upon
leaving the inside state, the order also leaves the composite In shipping state.
As we go through the fourth, fifth, and sixth steps, we note that new transi-
tions must be added. The creation transition from the initial pseudostate is
required. Also, transitions must be included to show when items are being
added and when they are being shipped. Usually, we put these looping activities
on transitions that leave a state and return to the same state. In this case, the
transition is called addItem(). Note how it leaves the Open for item adds state
Waiting for
back orders
backOrdersArrive ()
paymentCleared ()
Closed
completeSale ()
archive ()
Ready for
shipping
Open for item
adds
beginShipping ()
In shipping
Shipped
shippingComplete ()
FIGURE 5-18
First-cut state machine diagram
for Order
State Exit transition
Open for item adds completeSale
In shipping shippingComplete
Ready for shipping beginShipping
Waiting for back orders backOrdersArrive
Shipped paymentCleared
Closed archive
FIGURE 5-17
States and exit transitions for Sale
CHAPTER 5 ■ Extending the Requirements Models 141
and returns to the same state. Figure 5-19 takes the state machine diagram to
this level of completion.
The benefit of developing a state machine diagram for a problem domain
object is that it helps you capture and clarify business rules. From the state
machine diagram, we can see that shipping can’t commence while the sale is in
the Open for item adds state, new items can’t be added to the sale after it has
been placed in the Ready for shipping state, and the sale isn’t considered
shipped until all items are shipped. If the sale has the status of In shipping, we
know that it is either actively being worked on or waiting for back orders.
As always, the benefits of careful model building help us gain a true under-
standing of the system requirements. Let us now look at the big picture and see
how the different models fit together.
Integrating Requirements Models
The diagrams described in this chapter allow analysts to completely specify the
system functional requirements. If you were developing a system using a water-
fall systems development life cycle, you would develop the complete set of dia-
grams to represent all system requirements before continuing with design.
However, because you are using an iterative approach, you would only con-
struct the diagrams that are necessary for a given iteration. A complete use case
diagram would be important to get an idea of the total scope of the new system.
But the supporting details included in use case descriptions, activity diagrams,
and system sequence diagrams need only be done for use cases in the specific
iteration.
The domain model class diagram is a special case. Much like the entire use
case diagram, the domain model class diagram should be as complete as possi-
ble for the entire system, as shown for RMO in Chapter 4. The number of
Open for item adds
shippingCurrent () [backorders exist]
completeSale ()
archive ()
Ready for
shipping
beginShipping ()
startSale ()
addItem ()
In shipping
Being shipped
backOrdersArrive ()
Shipped
Waiting for
back orders
Closed
shippingComplete ()
paymentCleared ()
FIGURE 5-19
Second-cut state machine diagram for
Order
142 PART 2 ■ Systems Analysis Activities
problem domain classes for the system provides an additional indicator of the
total scope of the system. Refinement and actual implementation of many clas-
ses will wait for later iterations, but the domain model should be fairly com-
plete. The domain model is necessary to identify all the domain classes that are
required in the new system. The domain model is also used to design the
database.
Throughout this chapter, you have seen how the construction of a diagram
depends on information provided by another diagram. You have also seen that the
development of a new diagram often helps refine and correct a previous diagram.
You should also have noted that the development of detailed diagrams is critical to
gaining a thorough understanding of the user requirements. Figure 5-20 illustrates
the primary relationships among the requirements models for object-oriented devel-
opment. The use case diagram and other diagrams on the left are used to capture
the processes of the new system. The class diagram and its dependent diagrams
capture information about the classes for the new system. The solid arrows repre-
sent major dependencies, and the dashed arrows show minor dependencies. The
dependencies generally flow from top to bottom, but some arrows have two heads
to illustrate that influence goes in both directions.
Note that the use case diagram and the domain model class diagram are the
primary models from which others draw information. You should develop those
two diagrams as completely as possible. The detailed descriptions—either in nar-
rative format or in activity diagrams—provide important internal documenta-
tion of the use cases and must completely support the use case diagram. Such
internal descriptions as preconditions and postconditions use information from
the class diagram. These detailed descriptions are also important for develop-
ment of system sequence diagrams. Thus, the detailed descriptions, activity dia-
grams, and system sequence diagrams must all be consistent with regard to the
steps of a particular use case. As you progress in developing the system and
especially as you begin doing detailed system design, you will find that under-
standing the relationships among these models is an important element in the
quality of your models.
Chapter Summary
The object-oriented approach to information systems
development has a complete set of diagrams and textual
models that together document the user’s needs and
define the system requirements. These requirements are
specified by using domain model class diagrams and
state machine diagrams to model the problem domain
and use case diagrams, use case descriptions or activity
diagrams, and system sequence diagrams (SSDs) to
model the use cases.
The internal activities of a use case are first described
by an internal flow of activities. It is possible to have sev-
eral different internal flows, which represent different sce-
narios of the same use case. Thus, a use case may have
several scenarios. These details are documented either in
use case descriptions or with activity diagrams.
Another diagram that provides details of the use
case’s processing requirements is an SSD. An SSD docu-
ments the inputs and outputs of the system. The scope of
Use case
descriptions
System sequence
diagrams (SSDs)
State machine
diagrams
Activity
diagrams
Use case
diagrams
Domain model
class diagram
FIGURE 5-20
Relationships among object-oriented
requirements models
CHAPTER 5 ■ Extending the Requirements Models 143
each SSD is usually a use case or a scenario within a use
case. The components of an SSD are the actor—the same
actor identified in the use case—and the system. The
system is treated as a black box in that the internal
processing isn’t addressed. Messages, which represent
the inputs, are sent from the actor to the system.
Output messages are returned from the system to the
actor. The sequence of messages is indicated from top
to bottom.
The domain model class diagram continues to be
refined when defining requirements. The behavior of
domain objects represented in the class diagram is an
aspect of the requirements that is also studied and mod-
eled. The state machine diagram is used to model object
states and state transitions that occur in a use case.
All the models discussed in this chapter are interrelated,
and information in one model explains information
in others.
Key Terms
action-expressions 135
alt frame 129
composite states 135
concurrency, or concurrent states 135
destination state 134
guard-condition 135
interaction diagram 126
lifeline, or object lifeline 127
loop frame 129
opt frame 129
origin state 134
path 135
postconditions 122
preconditions 122
pseudostate 134
scenarios or use case instances 121
state 132
state machine diagram 134
system sequence diagram (SSD) 126
transition 134
true/false condition 129
use case description 121
Review Questions
1. What are the models that describe use cases in more
detail?
2. What two UML diagrams are used to model
domain classes?
3. Which part of a use case description can also be
modeled by using an activity diagram?
4. Explain the difference between a use case and a
scenario. Give a specific example of a use case with
a few possible scenarios.
5. List the parts or compartments of a fully developed
use case description.
6. Compare/contrast precondition and postcondition.
7. Compare/contrast postcondition and exception
condition.
8. Compare/contrast business process and flow of
activities for a use case. Explain how an activity
diagram can be used to model both.
9. What is the purpose of an SSD? What symbols are
used in an SSD?
10. What are the steps required to develop an SSD?
11. Write a complete SSD message from the actor to the
system, with the actor asking the system to begin
the process for updating information about a
specific product.
12. What is the name of the sequence diagram symbol
used to represent the extension of an object
throughout the duration of a use case?
13. What are the two ways to show a returned value on
a sequence diagram?
14. What are two ways to show repetition on a
sequence diagram?
15. What are the three types of frames used on a
sequence diagram?
16. What is the symbol for a true/false condition on a
sequence diagram?
17. What are the parameters of a message?
18. List the primary steps for developing a SSD.
19. What is an object state?
20. What is a state transition?
21. When considering requirements, states and state
transitions are important for understanding which
other diagram?
22. What UML diagram is used to show the states and
transitions for an object?
144 PART 2 ■ Systems Analysis Activities
23. List the elements that make up a transition descrip-
tion. Which elements are optional?
24. What is a composite state? What is it used for?
25. What is meant by the term path?
26. What is the purpose of a guard-condition?
27. Identify the models explained in this chapter and
their relationship to one another.
Problems and Exercises
1. After reading the following narrative, do the
following:
i. Develop an activity diagram for each scenario.
ii. Complete a fully developed use case descrip-
tion for each scenario.
Quality Building Supply has two kinds of custo-
mers: contractors and the general public. Sales to
each are slightly different.
A contractor buys materials by taking them to
the checkout desk for contractors. The clerk enters
the contractor’s name into the system. The system
displays the contractor’s information, including
current credit standing. The clerk then opens up a
new ticket (sale) for the contractor. Next, the clerk
scans in each item to be purchased. The system
finds the price of the item and adds the item to the
ticket. At the end of the purchase, the clerk indi-
cates the end of the sale. The system compares the
total amount against the contractor’s current credit
limit and, if it is acceptable, finalizes the sale. The
system creates an electronic ticket for the items,
and the contractor’s credit limit is reduced by the
amount of the sale. Some contractors like to keep a
record of their purchases, so they request that
ticket details be printed. Others aren’t interested in
a printout.
A sale to the general public is simply entered
into the cash register, and a paper ticket is printed
as the items are identified. Payment can be by cash,
check, or credit card. The clerk must enter the type
of payment to ensure that the cash register balances
at the end of the shift. For credit card payments,
the system prints a credit card voucher that the
customer must sign.
2. Based on the following narrative, develop either an
activity diagram or a fully developed description for
the use case Add a new vehicle to an existing policy
in a car insurance system.
A customer calls a clerk at the insurance com-
pany and gives his policy number. The clerk enters
this information, and the system displays the basic
insurance policy. The clerk then checks the infor-
mation to make sure the premiums are current and
the policy is in force.
The customer gives the make, model, year, and
vehicle identification number (VIN) of the car to be
added. The clerk enters this information, and the
system ensures that the given data is valid. Next,
the customer selects the types of coverage desired
and the amount of each. The clerk enters the
information, and the system records it and vali-
dates the requested amount against the policy lim-
its. After all the coverages have been entered, the
system ensures the total coverage against all other
ranges, including other cars on the policy. Finally,
the customer must identify all the drivers and the
percentage of time they drive the car. If a new
driver is to be added, then another use case—Add
new driver—is invoked.
At the end of the process, the system updates
the policy, calculates a new premium amount, and
prints the updated policy statement to be mailed to
the policy owner.
3. Given the following list of classes and associations
for the previous car insurance system, list the pre-
conditions and postconditions for the use case Add
a new vehicle to an existing policy.
Classes in the system:
■ Policy
■ InsuredPerson
■ InsuredVehicle
■ Coverage
■ StandardCoverage (lists standard insurance
coverages with prices by rating category)
■ StandardVehicle (lists all types of vehicles ever
made)
Relationships in the system:
■ Policy has InsuredPersons (one-to-many)
■ Policy has InsuredVehicles (one-to-many)
■ Vehicle has Coverages (one-to-many)
■ Coverage is a type of StandardCoverage
■ Vehicle is a StandardVehicle
CHAPTER 5 ■ Extending the Requirements Models 145
4. Develop an SSD based on the narrative and your
activity diagram for problem 1.
5. Develop an SSD based on the narrative or your
activity diagram for problem 2.
6. Review the cellular telephone state machine diagram
shown in Figure 5-21 and then answer the following
questions. (Note that this telephone has characteris-
tics not found in ordinary telephones. Base your
answers only on the state machine diagram.)
i. What happens to turn on the telephone?
ii. What states does the telephone go into when it
is turned on?
iii. What are the three ways the telephone can be
turned off?
iv. Can the telephone turn off in the middle of the
Active (Talking) state?
v. How can the telephone get to the Active
(Talking) state?
vi. Can the telephone be plugged in while some-
one is talking?
vii. Can the telephone change battery states while
someone is talking? Explain which movement
is allowed and which isn’t allowed.
viii. What states are concurrent with what other
states? Make a two-column table showing the
concurrent states.
7. Based on the following description of a shipment
made by Union Parcel Shipments, identify all the
states and exit transitions and then develop a state
machine diagram.
A shipment is first recognized after it has been
picked up from a customer. Once in the system, it
is considered active and in transit. Every time it
goes through a checkpoint, such as arrival at an
intermediate destination, it is scanned and a record
is created indicating the time and place of the
checkpoint scan. The status changes when it is
placed on the delivery truck. It is still active, but
now it is also considered to have a status of
delivery pending. After it is delivered, the status
changes again.
FIGURE 5-21 Cellular telephone state machine diagram
switchOn ()
pluggedIn () [1/2 hour]
switchOff ()
plugIn () unplug ()
answer ()
hangUp ()
Off
Quiet
Plugged in
Dialing Connecting
Active
(Talking)Ringing
Charged Low warning Uncharged
146 PART 2 ■ Systems Analysis Activities
From time to time, a shipment has a destina-
tion that is outside the area served by Union. In
those cases, Union has working relationships with
other courier services. After a package is handed
off to another courier, it is noted as being handed
over. In those instances, a tracking number for the
new courier is recorded (if it is provided). Union
also asks the new courier to provide a status
change notice after the package has been
delivered.
Unfortunately, from time to time, a package
gets lost. In that case, it remains in an active state
for two weeks but is also marked as misplaced. If
after two weeks the package hasn’t been found, it
is considered lost. At that point, the customer can
initiate lost-package procedures to recover any
damages.
8. Locate a company in your area that develops
software. Consulting companies or companies with a
large staff of information systems professionals tend
to be more rigorous in their approach to systems
development. Set up an interview. Determine the
development approaches that the company uses.
Many companies still use traditional structured
techniques combined with some object-oriented
development. In other companies, some projects are
structured, whereas other projects are object oriented.
Find out what kinds of modeling the company does
for requirements specification. Compare your
findings with the techniques taught in this chapter.
Case Study
TheEyesHaveIt.com Book Exchange
TheEyesHaveIt.com Book Exchange is a type of
e-business exchange that does business entirely on the
Internet. The company acts as a clearinghouse for buyers
and sellers of used books.
To offer books for sale, a person must register with
TheEyesHaveIt.com. The person must provide a current
physical address and telephone number as well as a cur-
rent e-mail address. The system then maintains an open
account for this person. Access to the system as a seller
is through a secure, authenticated portal.
A seller can list books on the system through a special
Internet form. The form asks for all the pertinent informa-
tion about the book: its category, its general condition, and
the asking price. A seller may list as many books as
desired. The system maintains an index of all books in
the system so buyers can use the search engine to search
for books. The search engine allows searches by title,
author, category, and keyword.
People who want to buy books come to the site and
search for the books they want. When they decide to buy,
they must open an account with a credit card to pay for the
books. The system maintains all this information on secure
servers.
When a purchase is made, TheEyesHaveIt.com
sends an e-mail notice to the seller of the book that
was chosen as well as payment information. It also
marks the book as sold. The system maintains an open
order until it receives notice that the book has been
shipped. After the seller receives notice that a listed book
has been sold, the seller must notify the buyer via e-mail
within 48 hours that the purchase is noted. Shipment of
the order must be made within 24 hours after the
seller sends the notification e-mail. The seller sends a
notification to the buyer and TheEyesHaveIt.com when
the shipment is made.
After receiving the notice of shipment,
TheEyesHaveIt.com maintains the order in a shipped
status. At the end of each month, a check is mailed to
each seller for the book orders that have remained in a
shipped status for 30 days. The 30-day waiting period
exists to allow the buyer to notify TheEyesHaveIt.com if
the shipment doesn’t arrive for some reason or if the
book isn’t in the same condition as advertised.
If they want, buyers can enter a service code for the
seller. The service code is an indication of how well the
seller is servicing book purchases. Some sellers are very
active and use TheEyesHaveIt.com as a major outlet for
selling books. Thus, a service code is an important indica-
tor to potential buyers.
For this case, develop these diagrams:
1. A domain model class diagram
2. A list of uses cases and a use case diagram
3. A fully developed description for two use cases: Add a
seller and Record a book order
4. An SSD for each of the two use cases in question 3
CHAPTER 5 ■ Extending the Requirements Models 147
RUNNING CASE STUDIES
Community Board of Realtors
The Multiple Listing Service system has a number of
use cases, which you identified in Chapter 3, and three
key domain classes, which you identified in Chapter 4:
RealEstateOffice, Agent, and Listing.
1. For the use case Add agent to real estate office,
write a fully developed use case description and
draw an SSD. Review the case materials in previ-
ous chapters and recall that the system will need to
know which real estate office the agent works for
before prompting for agent information.
2. For the use case Create new listing, write a fully
developed use case description and draw an SSD.
Recall that the system needs to know which agent
made the listing before the system prompts for
listing information.
3. Draw a state machine diagram showing the states
and transitions for a Listing object.
The Spring Breaks ‘R’ Us Travel Service
The Spring Breaks ‘R’ Us Travel Service system has many
use cases and domain classes, which you identified in
Chapters 3 and4.Reviewthedomainmodelclassdiagram
to get a feel for the complexity of some of the use cases.
1. For the use case Book a reservation, write a fully
developed use case description and draw an SSD.
Review the classes that are associated with a res-
ervation in the domain model to understand the
flow of activities and repetition involved.
2. For the use case Add new resort, write a fully
developed use case description and draw an SSD.
Review the classes that are associated with a resort
in the domain model to understand the flow of
activities and repetition involved.
3. Draw an activity diagram to show the flow of
activities for the use case Add a new resort.
4. Draw a state machine diagram showing the state
and transitions for a Reservation object.
On the Spot Courier Services
As On the Spot Courier Services continues to grow,
Bill discovers that he can provide much better services
to his customers if he utilizes some of the technology
that is currently available. For example, it will allow
him to maintain frequent communication with his
delivery trucks, which could save transportation and
labor costs by making the pickup and delivery opera-
tions more efficient. This would allow him to serve his
customers better. Of course, a more sophisticated sys-
tem will be needed, but Bill’s development consultant
has assured him that a straightforward and not-
too-complex solution can be developed.
Here is how Bill wants his business to operate.
Each truck will have a morning and afternoon delivery
and pickup run. Each driver will have a portable digi-
tal device with a touch screen. The driver will be able
to view his or her scheduled pickups and deliveries for
that run. (Note: This process will require a new use
case—something the Agile development methodology
predicted would happen.) However, because the trucks
will maintain frequent contact with the home office via
telephony Internet access, the pickup/delivery schedule
can be updated in real time—even during a run. Rather
than maintain constant contact, Bill decides that it will
be sufficient if the digital device synchronizes with the
home office whenever a pickup or delivery is made. At
those points in time, the route schedule can be updated
with appropriate information.
Previously, customers were able to either call On
the Spot and request a package pickup or visit the
company’s Web site to schedule a pickup. Once custo-
mers logged in, they could go to a Web page that
allowed them to enter information about each pack-
age, including “deliver to” addresses, size and weight
category information, and type of service requested.
On the Spot provided “three hour,” “same day,” and
“overnight” services. To facilitate customer self-
service, On the Spot didn’t require exact weights and
sizes, but there were predefined size and weight cate-
gories from which the customer could choose.
Once the customer entered the information for all
the packages, the system would calculate the cost and
then print mailing labels and receipts. Depending on
the type of service requested and the proximity of a
delivery truck, the system would schedule an immedi-
ate pickup or one for later that day. It would display
this information so the customer would immediately
know when to expect the pickup.
(continued on page 149)
148 PART 2 ■ Systems Analysis Activities
Picking up packages was a fairly straightforward
process. But there was some variation in what would hap-
pen depending on what information was in the system
and whether the packages were already labeled. Upon
arriving at the scheduled pickup location, the driver
would have the system display any package information
available for this customer. If the system already had
information on the packages, the driver would simply
verify that the correct information was already in the sys-
tem for the packages. The driver could also make such
changes as correcting the address, deleting packages, or
adding new packages. If this were a cash customer, the
driver would collect any money and enter that into the
system. Using a portable printer from the van, the driver
could print a receipt for the customer as necessary. If
there were new packages that weren’t in the system, the
driver would enter the required information and also
print mailing labels with his portable printer.
One other service that customers required was to be
able to track the delivery status of their packages. The
system needed to track the status of a package from the
first time it “knew” about the package until it was
delivered. Such statuses as “ready for pickup,” “picked
up,” “arrived at warehouse,” “out for delivery,” and
“delivered” were important. Usually, a package would
follow through all the statuses, but due to the sophisti-
cation of the scheduling and delivery algorithm, a pack-
age would sometimes be picked up and delivered on the
same delivery run. Bill also decided to add a status of
“cancelled” for those packages that were scheduled to
be picked up but ended up not being sent.
1. Based on this description, develop the following
for the use case Request a package pickup and for
the Web customer scenario:
i. A fully developed use case description
ii. An activity diagram
iii. An SSD
Based on the same description, develop the follow-
ing for the use case Pickup a package:
i. A fully developed use case description
ii. An activity diagram
iii. System sequence diagram
2. Develop a state machine diagram describing all the
possible status conditions for a Package object.
Sandia Medical Systems Real-Time Glucose Monitoring
Figure 5-22 shows a set of use cases for the patient
and physician actors. Answer the following questions
and/or complete the following exercises:
1. Which use cases include which other use cases?
Modify the diagram to incorporate included
relationships.
(continued from page 148)
FIGURE 5-22 RTGM system use cases
View/respond to
alert
View history
Annotate history
Send message to
physician
View/hear
message from
physician
View/respond to
alert
Send message to
patient
View/hear
message from
patient
Set alert
conditions
Patient Physician
(continued on page 150)
CHAPTER 5 ■ Extending the Requirements Models 149
2. Consider the use cases View/respond to alert and
View history. Both actors share the latter, but each
has a different version of the former. Why do the
actors have different versions of the View/respond
to alert use case? Would the diagram be incorrect
if each actor had his own version of the View
history use case? Why or why not?
3. Develop an SSD for the View history use case.
Assume that the system will automatically display
the most recent glucose level, which is updated at
five-minute intervals by default. Assume further that
the user can ask the system to view glucose levels
during a user-specified time period and that the levels
can be displayed in tabular form or as a graph.
Further Resources
Grady Booch, James Rumbaugh, and Ivar
Jacobson, The Unified Modeling Language User
Guide. Addison-Wesley, 1999.
E. Reed Doke, J. W. Satzinger, and S. R. Williams,
Object-Oriented Application Development Using
Java. Course Technology, 2002.
Hans-Erik Eriksson, Magnus Penker, Brian Lyons, and
David Fado,UML2Toolkit.JohnWiley&Sons,2004.
Martin Fowler, UML Distilled: A Brief Guide to
the Standard Object Modeling Language (3rd
edition). Addison-Wesley, 2004.
Philippe Kruchten, The Rational Unified Process:
An Introduction (3rd edition). Addison-Wesley,
2005.
Craig Larman, Applying UML and Patterns: An
Introduction to Object-Oriented Analysis and
Design and the Unified Process (3rd edition).
Prentice Hall, 2005.
Object Management Group, UML 2.0 Superstructure
Specification, 2004.
(continued from page 149)
150 PART 2 ■ Systems Analysis Activities
PART 3
Essentials of Systems Design
Chapter 6
Essentials of Design and the
Design Activities
Chapter 7
Designing the User and
System Interfaces
151
This page intentionally left blank
6
Essentials of Design and
the Design Activities
Chapter Outline
■ The Elements of Design
■ Inputs and Outputs for Systems Design
■ Design Activities
■ Design the Environment
Learning Objectives
After reading this chapter, you should be able to:
■ Describe the difference between systems analysis and systems design
■ Explain each major design activity
■ Describe the major hardware and network environment options
■ Describe the various hosting services available
153
OPENING CASE
Technology Decisions at Wysotronics, Inc.
As James Schultz walked down the hall toward a
meeting with his staff, he thought about his new job.
For a year now, Schultz had been the vice president and
chief information officer for a medium-sized supplier of
electronic components to several large electronics firms,
including Samsung and Acer. James’s company,
Wysotronics, Inc., had been in business for many years
but had recently been having some problems with its
internal computer systems. James was hired to fix the
problems.
Soon after starting his new job, James discovered that
quite a few of the systems were functioning properly but
that the infrastructure was a hodgepodge of disjointed
computers and networks. On the corporate side, there
were accounting systems and human resource systems,
both of which were desktop client/server systems hosted
on a local network computer that resided in the accounting
department.
Engineering had its own database and network com-
puters, which hosted several sophisticated engineering
systems with intensive computing requirements. The
engineers’ local desktop systems were the most recent,
up-to-date equipment and software. The server was also
high capacity, with a large data repository to house all the
engineering documents and images.
Marketing and Sales also had their own systems
hosted on their own network server, which was also
connected to the Internet. The sales staff worked closely
with the manufacturing and assembly plants to ensure that
deliveries were on time, and they were frequently on the
road visiting Wysotronics’s clients. It was their job to
ensure that clients were satisfied with schedules,
deliveries, and quality, and they wanted to be able to
access the sales and production databases while they
were on the road. Unfortunately, the servers they used
weren’t very stable and continually had problems.
Perhaps the biggest problem was the supply chain
management system. Wysotronics had a large
manufacturing plant, an assembly plant, and several
suppliers that needed access to the inventory and supply
chain system. The current infrastructure didn’t have
enough capabilities to provide timely information to
these facilities and suppliers.
The meeting today was one of many to plan and
configure the total infrastructure of corporate systems. As
he walked into the room, James was greeted by William
Hendricks, who would be making a presentation summa-
rizing past decisions and future directions.
“Hi, Bill,” James said. “Will you have some new
recommendations for us today? Are there any surprises
from your research?”
“No surprises,” Bill said. “But you will be pleased to
know that our research has validated the decisions you
have made recently. We are providing better service to
the company than ever before, and we are doing it
at less cost than we ever have before. I do have a
few recommendations about how to fine-tune our infra-
structure to provide even better service, though.”
It was obvious that Bill was pretty enthused about the
results of his research.
“Before we start, can you give me a brief idea about
where the cost savings are coming from?” James asked.
“Sure,” Bill said. “As you know, we decided to create
a virtual private network using the Internet for all our
supply chain and production needs. We moved all the
computers to support this system into a colocation facility.
We still own the servers, but we have signed a service
agreement with the hosting company to manage all the
operating system and connection and network mainte-
nance. This has allowed us to focus our efforts on the
software itself and not to have to use valuable personnel
worrying about the environment or connectivity. And we
have not had to invest in additional buildings for a larger
data center. Plus, the level of service is incredible. We
have had almost 100 percent uptime since the switchover.
The people in our plants really are pleased that they can
check inventory levels and shipment dates from all their
suppliers at any time.”
“Wow. That is great news,” James said. “And what
are you going to recommend for our marketing and sales
system?”
“Well, as you know, that is a Web-based system,” Bill
replied. “It doesn’t have the security requirements that our
production systems do, but it needs to be widely available.
Our research has shown that we can deploy that system
through a hosting company that provides ‘cloud’ comput-
ing. We have the option of going with our colocation
provider or using another company we have used in the
past. I think this other company is going to give us some
good price concessions and will still be able to provide
excellent service.”
“That sounds great!” James said. “I’m interested in
hearing about the details. I assume you have also laid out
a migration plan to move the systems over?”
“Yes, I have done my homework on this one,” Bill
said. “I think you will be pleased with the results.”
154 PART 3 ■ Essentials of Systems Design
Overview
Previous chapters described the activities and decisions associated with discover-
ing and understanding the major elements of the user’s requirements—in other
words, the analysis activities. This chapter focuses on the solution system.
During analysis, the focus is on understanding what the system should do
(i.e., the requirements), whereas during design, the focus is on the solution
(i.e., specifying how the system will be built and what the structural components
of the new system will be).
A question new developers often ask is “When are these tasks carried out in
a real project?” Unfortunately, there is no single answer. Many projects begin
with some of the design decisions having already been made, particularly with
regard to the deployment environment when companies already have a strong
technology infrastructure in place. For other projects, the new system may be
the result of a new thrust for the organization and thus the decisions are wide
open. However, it is normal for the project team to start thinking about these
issues very early in the project and to begin making preliminary decisions as
requirements are being defined. The topics discussed in this and the following
chapters are solution-oriented design topics; however, you shouldn’t try to
come up with a solution until you understand the problem.
This is the first of several chapters that discuss design. Here, we briefly
describe all the design activities and discuss the first activity (designing the envi-
ronment) in more detail. Later chapters explore other design activities and
explain in detail the various models and techniques used for systems design.
The Elements of Design
In Chapter 1, we defined systems design as those activities that enable the
project team to describe in detail the system that solves the need. Obviously,
there are many aspects of a system that need to be designed. The design of any
complex artifact requires detailed design documents. For example, think of all
the components that must be designed to build an ocean liner or a commercial
aircraft. For a commercial aircraft, design ranges from the preliminary shape
and size of the aircraft to the major subsystems, such as the mechanical system,
the hydraulic system, and the electronic system, on down to the minutest details:
the shape of the airfoil, the size and shape of seats, the placement of cockpit
display and control devices, and even the external metering devices. Nothing is
left to chance. Designing commercial airplanes today is only possible because of
many years of experience and an extensive knowledge base regarding how to
build airplanes.
The software applications being designed and constructed today are equally
complex and are also only possible because so much infrastructure is already in
place and there is a massive knowledge base and a set of development tools.
Even with all the tools available, designing and constructing software applica-
tions is a difficult and complex process.
In this section, we first explore some of the different aspects and levels of
design. Next, we take a high-level view of a computer application system to see
what things must be included in a design. Later in this section, we identify the
types of documents and products that are produced by the design process.
Finally, we review what information and documents are available as inputs to
design.
What Is Systems Design?
Systems design is really a bridge process. The objective of systems analysis is to
thoroughly understand the organization’s informational needs or requirements
and to document those requirements in a set of specifications. The objective of
CHAPTER 6 ■ Essentials of Design and the Design Activities 155
software construction is to build a system that satisfies those requirements.
Systems design, then, is the bridge that takes us from requirements to solution.
The objective of systems design is to define, organize, and structure the compo-
nents of the final solution system that will serve as the blueprint for construc-
tion. Another way to think about systems design is that whereas analysis
tells us what the solution needs to do, design describes how the system will be
configured and constructed.
Major Components and Levels of Design
Today, information systems are deployed on a range of devices—from individ-
ual computers and small mobile digital devices to localized networks of compu-
ters to large distributed and Internet-connected computers. We discuss several
of these equipment and network configurations in a later section.
The design requirements vary dramatically depending on the targeted
environment. Some applications never connect to the Internet, some connect
periodically to retrieve specific information, and some need to have a continu-
ous connection in order to execute. For example, you may own a laptop
computer with several applications that execute only on your laptop. These
might include a spreadsheet program, a word processing program, a tax prepa-
ration program, or a program that plays music. Of course, given the connected-
ness of today’s world, even these small programs may have components that
from time to time check for updates. However, these kinds of programs don’t
need to be connected to the Internet or to a network in order to carry out their
fundamental purposes.
You may also own a mobile digital device or a smartphone with applica-
tions that run in a stand-alone (i.e., not Internet-connected) manner. Maybe
you downloaded an application from the Internet, but once downloaded, it
executes on its own. The design of these types of programs is usually only
moderately complex.
On the other end of the range are applications that run in some type of
distributed network environment. The environment can be either a localized
private network, such as would be found in medium-sized corporations, or a
distributed global network. Almost all large corporations have these types of
internal systems that can be used only by employees. For example, a large
global corporation may have a human resources system that is accessible by
human resources personnel at many company offices throughout the world.
Another ubiquitous type of information system today is Web-based systems
deployed on a server (or multiple servers) and accessed entirely through Web
pages. Some of these types of systems are small and relatively simple, whereas
others are extremely complex, requiring complex database access and sophisti-
cated connectivity and interfaces with multiple external systems. An example of
a simple system would be a personal blog hosted on a small server. A more
complex system would be a comprehensive catalog and customer sales system,
much like the new RMO CSMS.
Figure 6-1 is a network diagram that illustrates one common configura-
tion for today’s information systems. A network diagram is a model that shows
how the application is deployed across networks and computers. The system
depicted in Figure 6-1 is a network-based system that is also accessible through
the Internet. We illustrate this type of comprehensive system to identify the
various system components that must be designed and built.
For the entire system, the analysts first identify the overall application
deployment environment. This requires defining the hardware and software
environments. The hardware environment shown in Figure 6-1 includes the
computers, the networks, the firewalls, and so forth. The software environment
includes such things as what operating systems, what database management
system, and what kind of network protocol will be used.
network diagram a model that shows
how the application is deployed across
networks and computers
156 PART 3 ■ Essentials of Systems Design
In most situations, the infrastructure for the application information system
already exists and the new system must conform to the existing configuration.
For example, most companies have an existing infrastructure of computers, net-
works, and communication devices. Therefore, some parts of the system design
may be unnecessary because the new application will be integrated into the
existing environment. However, even when there is an existing infrastructure,
the new application will at times need to extend it to meet new requirements.
To perform design, analysts first partition the entire system into its major
components because an information system is too complex to design all at
once. The icons in Figure 6-1 refer to pieces of hardware, and inside the pieces
of hardware are their software components. The large cloud on the right side of
the figure represents the entire system, and the various icons within it show the
parts of the system that must work together to make the system functional.
Information systems professionals must make sure to develop a total solution
for the users. They haven’t done their job if they haven’t provided an integrated,
complete solution. In other words, design must include the overall infrastructure
as well as the various components.
The infrastructure illustrated in Figure 6-1 is a common one in today’s com-
puting environments. The servers contain the software applications and the
databases. Often, there are local desktop computers that access the application
on a local network—either wired or wireless. The local network is isolated from
FIGURE 6-1 System components requiring systems design
Wireless
device
Wi-Fi-enabled
device
Internal desktop
Application
server
Database
server
Foreign
system
Internal desktop
Environment design specifies the
network and hardware linking the
system together (this chapter).
Database design
specifies the structure
of the database
(Chapter 12).
User-interface design
defines the screens,
reports, and controls for
the inputs and outputs
(Chapter 7).
Internet
System-interface design
describes the
communications to other
systems (Chapter 7).
Security and controls
design represented by the
firewall (Chapter 12).
Mobile telephone
device
Application design describes
the computer programs
(Chapters 10 and 11).
CHAPTER 6 ■ Essentials of Design and the Design Activities 157
the Internet by a firewall computer. The application is made available to
the Internet and to the rest of the world via the firewall computer. The firewall
computer is often connected directly to the Internet and provides access for com-
puters and mobile digital devices through Internet Wi-Fi connections. Outside the
firewall, connections to telephonic devices can also provide access to the applica-
tion for mobile telephone devices. Not all applications require this expanded
access to the Internet, but more and more companies allow their employees to
work at remote locations where they need Internet access to internal applications.
In Figure 6-1, the callout boxes identify the various components requiring
design. As mentioned in the previous paragraphs, the network and infrastruc-
ture need to be designed or extended at times. The application software that
exists on the server needs to be designed, as does the accompanying database.
The user interface must also be designed, whether it is desktop screens or Web
pages. Some systems have automated interfaces to external systems, and those
interfaces must be designed. For example, an internal purchasing system may
interface directly with vendors and suppliers so they can submit purchase orders
electronically. The following chapters will explain the details of designing these
various components of an information system.
In addition to defining the components requiring design, an important idea
underlying systems design has to do with the different levels of design. During
analysis, we first identified the scope of the problem and described it with a sys-
tems vision document. Once we had a clear overview of the problems and
issues, we drilled down to understand the detailed requirements. In other
words, during analysis, we went from general, high-level information to more
detailed and specific information. During design, we take a similar approach.
At first, we try to design the overall infrastructure, then the major functions of
each of the components, and finally the specific details within each component.
As you begin working in industry, you will find that various names are
given to the design at the highest level, including architectural design, general
design, and conceptual design. We use the term architectural design. During
architectural design, you determine the overall structure and form of the solu-
tion before trying to design the details. Designing the details is usually called
detail design. It isn’t important at this point to distinguish which activities are
architectural design and which are detail design, nor is it important to identify
which models or documents belong to architectural design or to detail design.
What is important is to recognize that design should proceed in a top-down
fashion.
Let us review the implications of this approach for each of the design com-
ponents identified in Figure 6-1.
For the application software component, the first step is to identify the vari-
ous subsystems and their relationships to each other. The application also has to
be configured to be consistent with the network, the database, and the user-
interface components. Part of that early design of the application is the automa-
tion system boundary. The system boundary identifies which functions are
included within the automated system and which are manual procedures.
For the database component, the first step is to identify the type of database
to be used and the database management system. Some details of the tables, the
data fields, and indexes might have already been identified, but the final design
decisions will depend on the architecture as well as the details of the
application.
For the user-interface component, the first step is to identify the general
form and structure of the user dialog based on the major inputs and outputs.
The project team also describes the relationship of the user-interface elements to
the application software and the hardware equipment. In today’s world, this
can become rather complex because many different types of devices may need
to connect to the system. Figure 6-1 illustrates internal computers (wired and
wireless), Internet-connected computing devices, and smartphones that connect
architectural design broad design of
the overall system structure; also called general
design or conceptual design
detail design low-level design that
includes the design of the specific program
details
158 PART 3 ■ Essentials of Systems Design
via telephonic protocols. The user interface has to be flexible enough to antici-
pate all the various types of connections that will be used. After the overall con-
nection and communication protocols have been decided on, detailed screen
layouts and report formats can be developed.
Inputs and Outputs for Systems Design
During the analysis activities described in previous chapters, we build docu-
ments and models. For object-oriented analysis, we use the event table and
developed other models, such as class diagrams, use case diagrams, use case
descriptions, activity diagrams, system sequence diagrams, and state machine
diagrams. In the optional online chapter, we present the traditional analysis
models, such as the event table, data flow diagrams, and entity-relationship
diagrams. Regardless of the approach, the input to the design activities consists
of those documents and models that are built during earlier activities.
In iterative projects, which we have covered in previous chapters and will
explain in more detail in Chapter 8, analysis and design activities are often
done concurrently. However, the first focus of any iteration has to be identifying
and specifying the requirements (i.e., analysis); determining the solutions
(i.e., design) comes later.
During analysis, analysts also build models to represent the real world and
to understand the desired business processes and the information used in those
processes. Basically, analysis involves decomposition—breaking a complex
problem with complicated information requirements into smaller, more under-
standable components. Analysts then organize, structure, and document the
problem domain knowledge by building requirements models. Analysis and
modeling require substantial user involvement to explain the requirements and
to verify that the models are accurate.
Design is also a model-building activity. Analysts convert the information
gathered during analysis—the requirements models—into models that represent
the solution system. Design is much more oriented toward technical issues and
therefore requires less user involvement and more involvement by other systems
professionals. Figure 6-2 illustrates this flow from analysis to design, highlight-
ing the distinct objectives of analysis and design.
Design involves describing, organizing, and structuring the system solution.
The output of the design activities is a set of diagrams and documents that
achieves this objective. These diagrams model and document various aspects of
the solution system.
The formality of a project also affects design. Formal projects usually require
well-developed design documents, which are often reviewed in formal meetings.
Developers on informal projects often create their designs with notepads and
pencils and then throw away the design once the program is coded. This kind of
informal design (used in many Agile projects) is merely a means to an end, which
is the actual program code. However, even though outsiders don’t see the design
documents, the design process must still be followed. A programmer who
jumps into code without carefully thinking it through—this if often referred to as
cowboy coding—ends up with errors, patches, and poorly structured systems.
Figure 6-3 identifies the major models used for analysis and design. These
lend themselves to object-oriented development, although they also share many
characteristics with traditional development, as explained in online Chapter A.
Notice that several analysis models have corresponding design models; for
example, class diagram has a design class diagram. As mentioned earlier, devel-
opment often flows smoothly from analysis into design, and this approach is
further facilitated when the models are quite similar. Take the class diagram for
example; here, the analysis model identifies the classes, attributes, and relation-
ships, and the design class diagram adds more information, such as type
CHAPTER 6 ■ Essentials of Design and the Design Activities 159
information for the attributes, keys, indexes, and the class methods or functions.
It builds and expands on what the analysis-oriented class diagram offers.
You should be familiar with the analysis models shown in Figure 6-3. In the
following chapters, you will learn how to create the design models shown on the
bottom half of the figure. Two of them—package diagrams and nodes and
locations diagrams—are primarily architectural design models. They document
the overall structure of the final system. The design class diagram describes the
classes in a way that is helpful for database design and application design.
The sequence diagrams are an extension of the system sequence diagrams and
document the flow of control and execution among the classes. The database
schema is of course required to document the database for the application. For
most current applications, a relational database approach is used. The user-
interface models provide the layout for the computer screens and for the online
or printed reports. Communication diagrams are similar to sequence diagrams in
that they document the interactions between the classes in the program code.
System security and control models aren’t formal models; they are documents
and notations that identify the important control features of the new application.
In the previous chapters, you learned about analysis activities and
you developed skills in using the techniques and tools necessary to create the
analysis models shown in the top half of Figure 6-3. In the life of a real project,
once the systems analysts have begun to understand the user’s business require-
ments and document those requirements by using the analysis models, they
begin their design activities and extend the analysis models into the design
models. Next, we discuss those design activities.
Design Activities
Figure 6-4 identifies the activities associated with the following core process
that was discussed in Chapter 1: Design the system components that solve the
problem or satisfy the need. Each design activity corresponds to the design of
Analysis activities
Objectives:
To understand
1. Business events and processes
2. System activities and processing
requirements
3. Information storage requirements
Design activities
Objective:
To define, organize, and structure the
components of the final solution system
that will serve as the blueprint for
construction
Analysis models
and documents
FIGURE 6-2
Analysis objectives and design
objectives
160 PART 3 ■ Essentials of Systems Design
Class
diagrams
System
sequence
diagrams
State
machine
diagrams
Use case
diagrams
Use case
descriptions
Activity
diagrams
Package
diagrams
Design
class
diagrams
Database
schema
Nodes and
locations
diagram
Sequence
diagrams
User-interface
screens and
reports
System
security
and controls
Communication
diagrams
Analysis
Design
FIGURE 6-3
Analysis and design models
FIGURE 6-4 Design activities
Design activities
Design the environment.
Design application architecture and software.
Design user interfaces.
Design system interfaces.
Design the database.
Design system controls and security.
Core
processes
1 2 3 4 5 6
Identify problem and obtain
approval.
Plan and monitor the project.
Discover and understand details.
Design system components.
Build, test, and integrate system
components.
Complete system tests and deploy
solution.
Iterations
CHAPTER 6 ■ Essentials of Design and the Design Activities 161
one of the components identified in Figure 6-1. This section will provide a short
introduction to each of these design activities. In-depth explanation and instruc-
tion on the specific concepts and skills are given later in the text. Designing the
environment is discussed as the last section in this chapter, and the other topics
are covered in subsequent chapters.
Systems design is a model-building endeavor, just as systems analysis was.
As design decisions are made, especially at the detail level, they are derived
from and documented by the building of models. As indicated earlier, the
models may be quite informal, but they are the essence of design. For example,
in database design, we identify which tables will be required and what fields
will be in which table before we begin to build the tables with SQL statements.
In software design, we decide which classes are the core classes and which are
utility classes and what responsibilities (methods) each class will have.
User-interface design often requires storyboards or other visual models to make
efficient workflow decisions. All these systems design tasks are model-building
tasks.
Systems design involves specifying in detail how a system will work when
using a particular technology. Some of the design details will have been devel-
oped during systems analysis, but much more detail is often required. In addi-
tion, each component of the final solution is heavily influenced by the design of
all the other components. Thus, systems design activities are usually done in
parallel. For example, the database design is used heavily in software design
and even affects user-interface design. Likewise, the application architecture
drives many of the decisions for how the network must be configured. When an
iterative approach to the SDLC is used, major design decisions are made in the
first or second iteration; however, many designed components are revisited
during later iterations. To better understand these design activities, you can
summarize each one with a question. In fact, systems developers often ask
themselves these questions to help them stay focused on the objective of each
design activity. Figure 6-5 presents these questions.
Each of the activities develops a specific portion of the final set of design
documents. Just as a set of building blueprints has several different documents,
a systems design package consists of several sets of documents that specify the
entire system. In addition, just as the blueprints must all be consistent and
integrated to describe the same physical building, the various systems design
documents must be consistent and integrated to provide a comprehensive set of
specifications for the complete system. For example, if an analyst is working on
the user interface without consulting the database designer, the analyst could
build an interface with the wrong fields or wrong field types and lengths.
Design activity
Design the environment
Design application
architecture and software
Design system interfaces
Key question
Have we specified in detail the environment and all the various
options in which the software will execute?
Have we specified in detail all the elements of the software and
how each use case is executed?
Design user interfaces Have we specified in detail how users will interact with the
system to carry out all their tasks (use cases)?
Design the database Have we specified in detail all the information storage
requirements, including all the schema elements?
Design system controls and
security
Have we specified in detail all the elements to ensure the
system and the data are secure and protected?
Have we specified in detail how the system will communicate
with all other systems inside and outside the organization?
FIGURE 6-5
Design activities and key questions
162 PART 3 ■ Essentials of Systems Design
Internal consistency is a mandatory element of effective system modeling and
design. In what follows, we briefly discuss these design activities to better under-
stand what is involved. In later chapters, you will develop the skills necessary
for each of these activities.
Design the Environment
The environment is all the technology required to support the software applica-
tion that is being developed. For example, in the development of RMO’s
CSMS, we have focused on the functional and nonfunctional requirements so
far. However, the system will need to exist on a set of computer servers,
desktop computers, mobile computers, and perhaps additional computing
devices. Each of these computing devices will have an operating system, commu-
nication capabilities, diverse input and output capabilities, and so forth.
Additional software—often referred to as middleware—may be needed to facili-
tate the integration of these diverse computing devices into a comprehensive
solution. All these supporting systems—hardware and software—are considered
part of the technology architecture, which we discussed in Chapter 2. For the
new CSMS to be developed and deployed successfully, the complete environ-
ment must be precisely defined. Hence, the first step in the development of a
new system is to define this environment.
Every software application must execute in some technology environment.
This environment includes the computers and other hardware required for
the deployment of the application as well as such things as server computers,
desktop computers, mobile computers, firewalls, routers and cabling, fiber
optics, and wireless access points. Some applications are simple stand-alone
applications that execute on a single computer, laptop, or mobile computing
device. Other applications are entirely server based and utilize an application
server, a database server, and perhaps some content delivery network, with
the users accessing all the application’s functions on their computers through
a local browser. Other applications are complex distributed applications in
which the application itself and the data execute on various computers
concurrently. Still other applications may be deployed to remote computing
devices, such as smartphones or remote monitoring devices. Today’s comput-
ing environment has become a world of connected technologies, many of
which operate on different protocols and aren’t entirely compatible. A big
part of designing the environment is identifying and defining all the types of
computing devices that will be required. That includes identifying all the
locations and communication protocols necessary to integrate computing
hardware.
The technology environment includes more than just the hardware. Another
important component consists of the operating systems, communication proto-
cols and systems, and other supporting software (i.e., middleware). For example,
the deployment of a Web-based system will involve server operating systems as
well as the operating systems on the users’ computers. The server may also
have other systems, such as the Web server, a database management system, a
programming-language server, an image and graphics processor, or other spe-
cialty software. The design of the supporting software environment is even
more complicated when the software systems cannot communicate directly with
each other. These incompatibilities must be resolved.
Design the Application Architecture and Software
In designing the application architecture, we include decisions about the struc-
ture and configuration of the new system as well as the design of the computer
software itself. One of the first steps in this design process is partitioning the
software into subsystems. Decisions are also made about the database infra-
structure and about the multilayer design in which the user interface is
CHAPTER 6 ■ Essentials of Design and the Design Activities 163
separated from the business logic and database processing. The technology
architecture will drive many of these design decisions. For example, which sub-
systems need to reside on which pieces of equipment? Subsystems may be placed
on different server computers based on importance, response time requirements,
or privacy and security issues.
Other kinds of processing requirements influence the technology architec-
ture and the application architecture. For example, should users be able to
access the new system only at work on their desktops or should they also be
able to work from home via an Internet connection? Is it necessary to
allow remote wireless devices to connect to the system? What kind of
transactions (use cases) and what volume of transactions must the new system
be able to handle? These kinds of application decisions will drive the application
architecture, the environment, and other hardware requirements. Designing the
application architecture is usually a top-down process, with the overall structure
defined first and then the detailed design of the various components.
The other part of application design is designing the application software at
a detailed level. Detailed design is primarily a model-building activity. Creating
models not only enables the design process, but it also provides the documenta-
tion necessary for writing code. These models include activity diagrams,
sequence diagrams, design class diagrams, and other physical models. For
the traditional approach, such models as data flow diagrams are developed.
For example, for object-oriented design, one of the primary models is the
design class diagram, which identifies the classes, their attributes, and their
methods. Figure 6-6 is a partial design class diagram for RMO’s CSMS.
+processNewSale ( )
+makePayment ( )
<
SaleHandler
-accountNo:string {key}
-name:string
-billingAddress:string
-shippingAddress:string
-dayPhone:string
-nightPhone:string
-emailAddress:string
-status:string
Customer
+updateName ( )
+updateAddress ( )
+requestHistory ( )
-saleID:int {key}
-saleDateTime:date
-priorityCode:string
-S&H:currency
-tax:currency
-totalAmt:currency
Sale
+addItem ( )
+updateInformation ( )
+requestShipment ( )
+updateStatus ( )
+recievePayment ( )
-saleItemId:int {key}
-productItem:string
-quantity:int
-soldPrice:currency
-shipStatus:string
-backOrderStatus:string
SaleItem
+updateinformation ( )
+cancelItem ( )
+requestBackorder ( )
-productItem:string
-inventoryItem:int
-size:string
-color:string
-options:string
-quantityOnHand:int
-averageCost:currency
-reorderQuantity:int
-dateLastOrder:date
-dateLastShipment:date
InventoryItem
+updateQOH ( )
+updateInformation ( )
FIGURE 6-6
Partial design class diagram for RMO’s
CSMS
164 PART 3 ■ Essentials of Systems Design
Chapters 10 and 11 will explain the details of how to design the application
architecture and software.
Design the User Interfaces
Analysts should remember that to the user of a system, the user interface is
the system. It is more than just the screens. It is everything the user comes into
contact with while using the system—conceptually, perceptually, and physically.
Thus, the user interface isn’t just an add-on to the system.
New technology has led to many new requirements for the user interface.
For example, will users only use computers with large screens or will they
also use PDAs and other remote devices with small graphical areas? Will
other devices be used for entering information, such as text, verbal commands,
pictures, and graphics? These elements and requirements of the user interface
need to be considered throughout the development process.
On desktops, laptops, and tablet computers, the interface is a graphical
user interface with windows, dialog boxes, and mouse interactions.
Increasingly, even these now include sound, video, and voice commands. On
mobile devices, such things as touch screens, screen keyboards, voice commands
and responses, and movement and positioning inputs and outputs are a stan-
dard part of the user interface. As information systems become increasingly
interactive and accessible, the user interface is becoming a larger and more
important part of the total system.
Designing the user interface can be thought of as an analysis and a design
activity. It has elements of analysis in that the developers must understand the
user’s needs and how the user carries out his or her job. Not only must the user
interface carry the right information, but it must also be ergonomically efficient
and esthetically attractive. User-interface design is also a design activity in
that it requires creativity and conformity to rigorous technology requirements.
Many types of models and tools are used to perform user-interface design,
including mock-ups, storyboards, graphical layouts, and prototyping with
screen-modeling tools. One of the primary difficulties of designing the user inter-
face in today’s connected world is that the disparity between desktop screens
and smartphone displays often necessitates multiple user interfaces for the
same application. Chapter 7 describes many of the tools and techniques used to
effectively carry out the user-interface design.
Design the System Interfaces
Few, if any, systems exist in a vacuum in today’s connected computing environ-
ment. A new information system will affect and utilize many other information
systems. Sometimes, one system provides information that is later used by
another system, and sometimes, systems exchange information continuously as
they run. The component that enables systems to share information is the
system interface, and each system interface needs to be designed in detail.
The form of these interfaces will vary dramatically. In some cases, a file is
sent from one system to another. In other cases, real-time data exchange is
necessary, and live transactions are transferred between systems. In other
cases, one system requires a service from another system, and a function call
is performed via an application program interface. The format of the inter-
change can also vary, from binary format to encrypted formats to text-based
formats.
From the beginning of a systems design, analysts must ensure that all the
systems work together well. In some cases, the new system needs to interface
with a system outside the organization—for example, at a supplier’s site or
a customer’s home. Increasingly, organizations are linking systems together
across organizational boundaries. For example, at RMO, the new Supply Chain
Management System will have information flows from RMO to its key suppliers.
CHAPTER 6 ■ Essentials of Design and the Design Activities 165
The new CSMS will also require linkups with the Supply Chain Management
system as well as real-time links to banks and other credit verification organiza-
tions. One standardized method for defining text-based system interfaces is to
use eXtensible Markup Language (XML). Much like HTML, XML uses tags to
define the structure of the record. Figure 6-7 presents an example of an XML
record.
Some system interfaces link internal organizational systems, so the analyst
may have information available about other systems. Internally at RMO, the
Supply Chain Management system will have real-time communication with the
Trade Show System that was described in Chapter 1. The Sales subsystem must
have access to the supply chain warehouse database in order to know which
items are in stock and which aren’t available.
System interfaces can become quite complex, particularly with so many
types of technology available today. System-interface design is discussed in
more detail in Chapter 7.
Design the Database
An integral part of every computer information system is the information itself,
with its underlying database. The data model (the domain model) is created
early during systems analysis and is then used to create the implementation
model of the database. Usually, the first decision is determining the database
structure. Sometimes, the database is a collection of traditional computer files.
More often, it is a relational database consisting of dozens or even hundreds of
tables. Sometimes, files and relational databases are used in the same system.
Another decision that needs to be made is whether the database is centralized
or distributed. The internal properties of the database must also be designed,
including such things as tables, attributes, and links. Figure 6-8 is an example
of an RMO database table definition for inventory items in MYSQL.
Analysts must consider many important technical issues when designing the
database. Many of the technical (as opposed to functional) requirements defined
during systems analysis concern database performance needs (such as response
times). Much of the design work might involve performance tuning to make
sure the system actually works fast enough. Security and encryption issues,
which are important aspects of information integrity, must be addressed and
designed into the solution. Given today’s widespread connectivity, a database
may need to be replicated or partitioned at various locations around the world.
It is also not uncommon to have multiple databases, with distinct database
FIGURE 6-7
Sample system-to-system interface
using XML
166 PART 3 ■ Essentials of Systems Design
management systems. These databases may be distributed across multiple data-
base servers and may even be located at completely different sites. These highly
technical issues often require specialized skills from experts at database design,
security, performance, and physical configuration. A final key aspect of
database design is making sure the new databases are properly integrated with
existing databases. Chapter 12 describes database design in detail.
Design the Security and System Controls
The final design activity is ensuring that the system has adequate safeguards to
protect organizational assets—the safeguards referred to as system controls. This
activity isn’t listed last because it is the least important. On the contrary, espe-
cially in today’s culture, where outsiders can cause severe damage to a system
and its data, designing system controls is a crucial activity. The design of security
and system controls should be included in all other design activities: user inter-
face, system interface, application architecture, database, and network design.
User-interface controls limit access to the system to authorized users.
System-interface controls ensure that other systems cause no harm to this
system. Application controls ensure that transactions are recorded precisely and
that other work done by the system is done correctly. Database controls ensure
that data is protected from unauthorized access and from accidental loss due to
software or hardware failure. Finally—and of increasing importance—network
controls ensure that communication through networks is protected. All these
controls need to be designed into the system based on the existing technology.
Specialists are often brought in to work on controls, and all system controls
need to be thoroughly tested. Control issues are addressed in several chapters
but most explicitly in Chapter 12.
Design the Environment
The first activity in the list of design activities is designing the environment. This
activity is also listed first because it permeates all the other design decisions. For
example, a stand-alone, single-desktop system will require very different design
decisions for the software, the user interface, the system interfaces, and the
database than a complex interconnected and distributed system. Even though
all the detailed design decisions concerning the environment might not be com-
pleted at the beginning of the project, the major decisions are addressed.
There is an incredible variation in the software systems being deployed
today as well as an explosion in the types of devices and configurations
that have software applications. Consequently, there is no easy way to organize
and discuss the issues that are relevant to designing the environment. In this
section, we address issues related to three major industry trends in software
FIGURE 6-8 Sample database table definition in MYSQL
CHAPTER 6 ■ Essentials of Design and the Design Activities 167
deployment: software systems deployed entirely within an organization,
software systems built for purely external use (in our case, deployed on the
World Wide Web via the Internet), and software systems deployed remotely in
a distributed fashion (for internal and external use).
Design for Internal Deployment
There are two types of internally deployed software systems: stand-alone sys-
tems and internal network systems. Even though the internal environments for
these two types of systems have some common features, each type of system
has unique requirements that must be considered during design.
Stand-Alone Software Systems
Any software system that executes on a single computing device without con-
necting externally via an Internet or network connection is a stand-alone system.
Companies still develop stand-alone systems, but most of them are developed by
individuals and then sold or delivered to companies or other individuals. For
example, the Microsoft Office Suite and the Apple iWork Suite, which allow
word documents, spreadsheets, and presentations to be created, execute primar-
ily on single computers. Likewise, many people use such stand-alone software
as QuickBooks or H&R Block At Home—programs that are acquired either as
packages of CDs or downloaded as executable install files. Another type of
stand-alone system are the games that many people download and play on their
laptops or desktops.
Design issues for stand-alone systems are usually straightforward. These sys-
tems usually read and write data into files without database access. The biggest
issue with stand-alone systems is that they often need to be deployed on various
pieces of equipment. For example, a tax program may need versions that run on
PCs under Windows, PCs under Unix, and Apple computers using the Mac
operating system. Other stand-alone programs may need to run in these three
configurations as well as be able to run on mobile devices, including tablet com-
puters and smartphones. Each of these environments requires slightly different
versions of the interface with the operating system and the functions of the user
interface. Usually, different versions of the application will be designed and built
so the one best suited for a particular device is deployed.
Internal Network-Based Systems
An internal network-based system is one that is for the exclusive use of the
organization that builds it or buys it. It isn’t meant to be used by anyone except
company employees who are located within the organization’s physical facilities.
Figure 6-9 is a network diagram that illustrates a possible hardware configura-
tion for this type of system. Often, such a hardware environment is referred to
as a local area network (LAN)—a computer network in which the cabling and
hardware are confined to a single location, such as a building.
This configuration depicts a simple client-server architecture for an inter-
nal network system. What distinguishes a client-server architecture from a
single-computer architecture is that the individual computers in a client-server
architecture must be connected to a server. The computers that users do their
work on are called the client computers, whereas the main computer is called
the server computer. The latter “serves” functions and data, which the client
computers receive. There are two kinds of systems that can be deployed in a
client-server architecture:
■ Desktop application systems
■ Browser-based application systems
The simplest version of a desktop system is a computer program that
executes on a client computer. That situation may not even require a server
computer. However, many desktop systems access a server computer to retrieve
local area network (LAN) a computer
network in which the cabling and hardware are
confined to a single location
client-server architecture a computer
network configuration with user’s computers
and central computers that provide common
services
client computers the computers at
which the users work to perform their
computational tasks
server computer the central computer
that provides services (such as database
access) to the client computers over a network
168 PART 3 ■ Essentials of Systems Design
and update data from a database. Even more sophisticated desktop systems may
consist of computer programs that communicate together between the client and
the server computers. The advantage of this type of system is that the presenta-
tion (i.e., the user interface) and the functionality can be customized to the
exact requirements of the users. Examples of these types of systems include
graphical or engineering systems in which the processing and presentation
requirements are very strict and very intensive.
The other type of internal network system is one that is browser based. In
a browser-based system, the presentation of screens and reports to the user’s
computers (i.e., the clients) is handled by an Internet browser, such as Internet
Explorer, Firefox, Chrome, or Safari. In this configuration, most of the proces-
sing and heavy calculation is done by the server and then passed to the client
computers as Hypertext Markup Language (HTML) pages. This puts a heavier
load on the server computer because it not only has to serve data to all the
clients, but it also has to do the processing for all the clients. Therefore, high-
speed computers are usually purchased to provide the necessary computing
power. Another disadvantage is that the presentation of the user-interface
screens and reports must conform to the capabilities provided by the browsers.
Often, this isn’t a major problem, but at times, it can be limiting. An advantage
of using a browser-based design is that the system can easily be extended
outside the local LAN and deployed via the Internet. These kind of systems use
the same transmission protocol as the Internet: Transmission Control
Protocol/Internet Protocol (TCP/IP).
Three-Layer Client-Server Architecture
One effective method of software design is to separate the user-interface routines
from the business logic routines and separate the business logic routines from
the database access routines. This method of designing the application software
is called three-layer architecture. Three-layer architecture is used for all types
of systems, including desktop applications and browser-based applications. A
three-layer architecture divides the application software into three layers:
■ The user interface or view layer, which accepts user input and formats and
displays processing results
Wireless laptop client
Printer
Application
server
Apple client
Database
server
Desktop client
FIGURE 6-9
Network diagram for an internal
network system
Hypertext Markup Language
(HTML) the predominant language for
constructing Web pages and which consists
of tags and rules about how to display pages
Transmission Control Protocol/
Internet Protocol (TCP/IP) the
foundation protocol of the Internet; used to
provide reliable delivery of messages between
networked computers
three-layer architecture a client/
server architecture that divides an application
into view layer, business logic layer, and data
layer
view layer the part of the three-layer
architecture that contains the user interface
CHAPTER 6 ■ Essentials of Design and the Design Activities 169
■ The business logic or domain layer, which implements the rules and
procedures of business processing
■ The data layer, which manages stored data, usually in one or more
databases
Figure 6-10 illustrates in the abstract how these three layers work together
to respond to a user request for processing or information. This has proven
to be an effective approach to building software. It is effective because the
programmers can more easily focus their attention on solving one issue at a
time. It is also easier to upgrade and enhance different portions of the system.
For example, the user interface can be changed with only minimal impacts on
the business logic routines.
One of the advantages of a client-server architecture is that it easily
supports—in fact, encourages—software to be developed by using an applica-
tion program three-layer architecture. Figure 6-11 illustrates an internally
deployed system with a three-layer architecture, and it shows how the three
layers might be configured across three separate computing platforms.
The view layer resides on all the client computers as well as on a portion of
the application server computer. The HTML is rendered and displayed by the
browser on the client computers. The view layer classes that format the HTML
are on the application server. The data layer consists of the database server and
any application programs on the application server that are necessary to access
FIGURE 6-10 Abstract three-layer architecture
View layer Domain layer Data layer
User requestUser request
Data access
response
Data access
response
Data access
request
Data access
request
Unformatted
response
Unformatted
response
Information
request
Information
request
Formatted
response
Formatted
response
FIGURE 6-11 Internal deployment with three-layer architecture
Database server
View layer
Application serverDomain layer
Data layer
Software on application server
Domain layer logic—implement business rules
Data layer logic—formulate queries
View layer logic—format screens/reports
business logic layer or domain
layer the part of a three-layer architecture
that contains the programs that implement the
business rules and processes
data layer the part of a three-layer archi-
tecture that interacts with the data
170 PART 3 ■ Essentials of Systems Design
the data. The business logic layer resides on the application server computer and
includes all the logic to process the business rules.
A major benefit of using three-layer architecture is its inherent flexibility.
Interactions among the layers are always requests or responses, which make the
layers relatively independent of one another. It doesn’t matter where other
layers are implemented or on what type of computer or operating system they
execute. The only interlayer dependencies are a common language for requests
and responses and a reliable network with sufficient communication capacity.
Multiple layers can execute on the same computer or each layer can oper-
ate on a separate computer. Complex layers can be split across two or more
computers. System capacity can be increased by splitting layer functions
across computers or by load sharing across redundant computers. In the
event of a malfunction, redundancy improves system reliability if the server
load can be shifted from one computer to another. In sum, three-layer archi-
tecture provides the flexibility needed by modern organizations to deploy and
redeploy information-processing resources in response to rapidly changing
conditions. We will discuss the software aspects of three-layer design in
Chapters 10 and 11.
Design for External Deployment
The largest and most rapidly growing arena for new software applications is the
deployment of systems that are purely for external use on the Internet. The tre-
mendous increase in broadband connectivity capability and Web-enabled
devices has generated incredible opportunities for the creation of purely online
businesses. Today, almost all “brick and mortar” businesses have extended
their business models to include online purchase of goods and services.
Tremendous growth has also occurred in home-based and other small businesses
that only do business via the Internet. The software applications that support
these business activities are, in most cases, built purely for external use. In other
words, there is no need for in-house employees to use these systems. They are to
be used by customers who aren’t part of the hosting organization. Important
issues related to the environment for externally deployed systems include:
■ Configuration for Internet deployment
■ Hosting alternatives for Internet deployment
■ Diversity of client devices with Internet deployment
Configuration for Internet Deployment
Figure 6-12 illustrates a simple Internet deployment configuration. Notice that
it is quite similar to the three-layer architecture in the last section. In fact,
almost all Internet-deployed applications use a three-layer architecture. The
back end (i.e., the application server and the database server) provides the
same functionality as an internally deployed client-server system. The view
layer architecture has some similarities but also has more complex require-
ments due to the varied and insecure nature of the Internet. The view layer
consists of the HTML pages that are rendered by a browser. It also includes
those programs or classes that reside on the server and that format the
dynamic HTML.
Internet and Web technologies present an attractive alternative for imple-
menting information systems used by external customers and organization
employees. For example, consider the data entry and data access needs of an
RMO buyer who purchases items from the company’s suppliers. Buyers are typ-
ically on the road for several months a year—often for weeks at a time. A trav-
eling buyer therefore needs some means of remotely interacting with RMO’s
Supply Chain Management (SCM) system to record purchasing agreements and
query inventory status.
CHAPTER 6 ■ Essentials of Design and the Design Activities 171
Implementing an application via the Web has a number of advantages over
traditional client/server applications, including:
■ Accessibility—Given that Web browsers and Internet connections are nearly
ubiquitous, Web-based applications are accessible to a large number of
potential users (including customers, suppliers, and off-site employees).
■ Low-cost communication—The high-capacity networks that form the
Internet backbone were initially funded primarily by governments. Traffic
on the backbone networks travels free of extra charges to the end user.
Connections to the Internet can be purchased from a variety of private
Internet service providers at relatively low costs.
■ Widely implemented standards—Web standards are well known, and many
computing professionals are already trained in their use.
Of course, there are problematic aspects of application delivery via the
Internet and Web technologies, including:
■ Security—Web servers are a well-defined target for security breaches
because Web standards are open and widely known. Wide-scale intercon-
nection of networks and the use of Internet and Web standards make ser-
vers accessible to a global pool of hackers. This is probably the most serious
issue that must be addressed with external deployment of applications.
Protection must be provided for the home systems, including the data, and
for the data as they are transmitted over the Internet.
■ Throughput—When high loads occur, throughput and response time can
suffer significantly. The configuration must support not only daily average
users but also a peak-load number of users. This is unpredictable and can
vary widely.
■ Changing standards—Web standards change rapidly. Client software is
updated every few months. Developers of widely used applications are faced
with a dilemma: Use the latest standards to increase functionality or use
older standards to ensure greater compatibility with older user software.
For RMO, the primary disadvantages of implementing the customer order
application or even an RMO buyer-accessing home system via the Internet are
security and throughput. If a buyer can access the system via the Web, so can
anyone else. Access to sensitive parts of the system can be restricted by a num-
ber of means, including user accounts and passwords. But the risk of a security
Database
server
Application
serverFirewall
Internet
FIGURE 6-12
Internet deployment of software
applications
172 PART 3 ■ Essentials of Systems Design
breach will always be present. Protection of data while in transit is important
because “sniffer” software may discover user IDs, passwords, and sensitive data
during transmission.
Protection of data while in transit is accomplished through Hypertext
Transfer Protocol Secure (HTTPS), which is a combination of Hypertext
Transfer Protocol (HTTP) and Transport Layer Security (TLS) protocol. Web
pages that are served through the HTTPS protocol are transmitted in encrypted
format, which can be made quite secure. You will learn more about secure
transmissions in Chapter 12.
Performance is affected by several factors. First, of course, is the capacity of the
server computer and the amount of traffic that it must support. Figure 6-13 illus-
trates a simple configuration, with only a Web server, which hosts the software
application, and a database server. However, as volumes increase, increased capac-
ity is provided by utilizing larger, more powerful servers and by adding more
servers. Conceptually, the configuration is the same as the Internet deployment
configuration shown in Figure 6-12: a Web application server and a database
server. However, each of two servers becomes many servers that have equipment
on the input side to distribute page requests and database requests across these
servers. Figure 6-13 illustrates a typical data center configuration that uses multiple
application servers and multiple database servers. This configuration adds another
layer of complexity to the design of the computing environment.
Many companies that support very high volumes also build server farms,
which consist of multiple data centers positioned around the country or even
around the world. Each data center houses many individual servers that are
linked together with load-balancing hardware. This adds even more complexity
as requests for access to the application are routed to the correct data center,
Hypertext Transfer Protocol Secure
(HTTPS) an encrypted form of information
transfer on the Internet that combines HTTP
and TLS
Transport Layer Security (TLS) an
advanced version of Secure Sockets Layer (SSL)
protocol used to transmit information over the
Internet securely
Database servers
Application servers
Firewall
Load-balancing computer
Internet
FIGURE 6-13
Multiple server configuration
CHAPTER 6 ■ Essentials of Design and the Design Activities 173
which is frequently the nearest data center but not always so. Sophisticated
synchronization algorithms and software are required to keep data current in
the various data centers.
Throughput can also be increased by using a content delivery network
(CDN). This is an additional set of computers that can be used to deliver static
content, such as images or videos. For example, when an RMO customer
requests a page from the catalog, the application software determines all the
information that is to be returned on the page. The page is dynamically created
based on request by using data from the database. However, many of the
images that may need to be returned are static images that seldom change. In
other words, they aren’t dynamically changing. Rather than take up bandwidth
going into and out of the data center firewall and load balancer, RMO could
use a CDN server to deliver all the images and videos that it uses. Figure 6-14
is an example of such a configuration, with multiple servers and a separate
location for content delivery.
Finally, performance is limited by the RMO user’s Internet connection point
and the available Internet capacity between that connection and the application
server. Unreliable or overloaded local Internet connections can render the
application unusable. RMO has no control over the user’s connections.
Hosting Alternatives for Internet Deployment
Software applications that are developed for purely external use open up many
hosting alternatives. Hosting refers to running and maintaining a computer
system on someone’s behalf where the application software and the database
reside. There are several critical issues that must be considered in the
content delivery network (CDN)
a set of server computers, separate from the
hosting computers, used to deliver such static
content as images or videos
Database servers
Application servers
Firewall
Content delivery network servers
Load-balancing computer
Internet
FIGURE 6-14
Multiple server configuration with
content delivery network
hosting the process of providing physical
servers at a secure location and selling those
services to other businesses that wish to deploy
Web sites
174 PART 3 ■ Essentials of Systems Design
deployment of any system for external use, especially for systems utilized by cus-
tomers or other outside parties. They include:
■ Reliability—The hardware environment must be completely reliable because
customers and other outside parties usually have a very low tolerance for
systems that aren’t available. This often requires mirroring computers, hard
drives, and database records. Backup and recovery must be well established.
■ Security—The systems—hardware and software—must be secure. The
current legal regulations for financial and health care data require a very
high level of security. Penalties are severe.
■ Physical facilities—To ensure reliability and security, special rooms or even
special buildings are often required. In addition, Internet connectivity
frequently requires multiple access routes to the Internet backbone.
Electrical power must be secure, which often means having backup
generators on-site. And air conditioning units must be adequate, with
backup facilities, to ensure a constant physical environment.
■ Staff—To ensure reliability and security, a well-qualified technical staff
needs to be on-site 24/7.
■ Growth—External systems often grow dramatically as a business expands,
increasing the number of servers needed to respond to the traffic. When
the number of application servers and database servers increases, there is
the need for more sophisticated load balancing. Growth can also leave the
physical facilities outstripped, necessitating multiple data centers.
Because of these issues, many companies are outsourcing their hardware
environments. In recent years, there has been a large expansion of the services
offered to companies to host their applications. A few of the more popular alter-
natives are now discussed.
Colocation In a colocation arrangement, one company provides a secure data
center where other companies (i.e., clients) house their server computers. One
feature that comes with the data center includes a securely locked and protected
site that meets all regulatory requirements for financial and health care records.
The site also often has multiple high-capacity connections to the Internet back-
bone. And it is often integrated into multiple power grids and has its own emer-
gency power generators. A client can rent rack space to house its own computer
servers or it may lease computers from the host provider. Managing the server—
its operating system, Internet software, database management software, data
backup, and so forth—is done remotely. After the initial setup, the client
seldom, if ever, goes to the site. The advantage of this kind of service is that it
doesn’t incur the costs of a physical, secure, complex data center.
Managed Services A client may want to purchase additional services, such as
installing and managing the operating system, the Internet servers, database
servers, and load balancing software. The client maintains its own software but
doesn’t have to hire staff to manage the operating environment. These services are
usually called managed services, and almost all hosting companies will provide
them. Usually, the client company either owns or leases a specific number of com-
puters for its servers. The advantage of this service is that the client company
doesn’t have to hire special technical staff to manage the server system software.
Virtual Servers In this arrangement, the client company leases a virtual server
that is configured as a real server, with a certain amount of CPU capacity,
internal memory, hard drive memory, and bandwidth to the Internet. How the
computer hardware is configured is unknown to the client, which just buys
(usually on a monthly or annual lease) a specific server configuration. The
client company can purchase virtual servers with or without managed services.
The provider company uses special system software to configure a virtual
colocation a hosting service with a secure
location but in which the computers are usually
owned by the client businesses
virtual server a method to partition the
services of a physical Web server so it appears
as multiple, independent Internet servers
CHAPTER 6 ■ Essentials of Design and the Design Activities 175
world for that client company. Companies use this type of service for applica-
tions with very low volume that don’t require the computing power of a
whole computer. Prices for these types of services range from only a few
dollars a month to one or two thousand dollars a month depending on the
size and power of the virtual server. The advantage of this service (in addition
to those just listed) is that the client company can start small and add more
capacity as needed. Typically, the client purchases a virtual server and
increases capacity in a stepwise fashion, adding either a larger virtual server
or additional virtual servers as needed.
Cloud Computing There are two philosophies behind cloud computing. First, a
client should be able to buy computing capacity much like one purchases such a
utility as water or electricity. In other words, the client only purchases as much
as is needed and used. Second, the client shouldn’t have to be concerned with
such environmental issues as how or where this computing capacity is provided,
just as an individual doesn’t have to worry about how electricity is generated.
With cloud computing, the client company purchases computing capacity (with
related memory, hard drive storage, and bandwidth) in very small increments
for very short time periods. The client company specifies a required environ-
ment, such as a Unix operating system with an Apache Web server, but doesn’t
have any contact with the operating environment. In other words, the client’s
application software runs “in the cloud.” When growth occurs, the cloud auto-
matically provides more capacity. Supposedly, this arrangement saves the client
company money because it doesn’t have to buy capacity that it doesn’t need. At
present, this is the ultimate in the separation of application software and the
operating environment.
One major selling point with all the hosting companies is the reliability of
their equipment and Internet access. Most contracts for these kinds of services
include a Service Level Agreement (SLA), which guarantees a specific level
of system availability. The volume and activity on a Web site (i.e., a particular
software application) makes availability extremely important. For example, how
much revenue would Amazon lose if its system weren’t available for even a
minute during a peak time of day? It isn’t unusual to see SLAs that guarantee
availability 99.9 percent of the time, with penalties for nonperformance. Some
providers even guarantee 100 percent availability. Providers are able to make
this guarantee because they have multiple server farms with several layers of
redundancy and backup built in.
Figure 6-15 lists hosting options and their various capabilities.
FIGURE 6-15 Attributes of hosting options
Scalability
Maintenance
Backup and recovery
Yes No Possible No
Client adds more
computers
Client adds more
computers
Client buys larger or more
virtual servers
Client adds small increments
of computing power
Client provides
Client provides Host provides
Host provides Host provides Host provides
Available Available
Client manages computer
configuration
Client owns computer Yes Perhaps No No
Hosting service provides
building and infrastructure
Yes Yes Yes Yes
Service options Colocation Managed services Virtual servers Cloud computing
HOSTING OPTIONS
cloud computing an extension of virtual
servers in which the resources available include
computing, storage, and Internet access and
appear to have unlimited availability
Service Level Agreement (SLA) part
of the contract between a business and a
hosting company that guarantees a specific
level of system availability
176 PART 3 ■ Essentials of Systems Design
Diversity of Client Devices with Internet Deployment
Another critical issue with applications deployed for external use is the
extremely wide range of client devices. The problem is that the various devices
have different screen sizes, screen display characteristics, Internet browsers, and
operating environments. This issue is ameliorated somewhat by the fact that the
devices used to view Web pages usually provide some type of browser applica-
tion as part of their standard software. However, browsers on different devices
differ in their capabilities. Designing and implementing the user interface for
these browsers is always a challenge.
Client devices fall into three categories by size: full-sized computers, mid-
sized tablet computers, and small mobile computing devices.
The full-sized devices include desktop and laptop computers. These nor-
mally have full-sized 15-inch or 17-inch screens, although it isn’t uncommon to
see monitors with 24-inch or 28-inch screens. In addition, these full-sizes devices
offer levels of resolution that allow them to display a high level of detail.
The mid-sized tablet devices have more standard display sizes. Most have a
screen size of approximately 10 inches, although a few have a screen size of
12 inches. Most tablets can be viewed in either landscape or portrait mode,
which the Web designer may need to take into consideration. The resolution is
usually lower and less detail can be viewed on these smaller screens.
The number of mobile computing devices has grown enormously in recent
times. Not only are these devices viewable in landscape or portrait mode, but
there is also a much wider variation of screen size and resolution. Designing the
user interface is a big challenge if users are to receive the best possible viewing
experience. The small screen size puts a big limitation on the amount of detail
that can be presented, but this can be offset somewhat by the devices’ zooming
capabilities.
It isn’t uncommon to build two or three separate view layers so a software
application can be viewed on all three types of devices. In fact, most new
Internet software applications do have at least two separate view layers to
accommodate the disparity in these devices. In some cases, the difference
between the view layers is nothing more than the way the HTML is formatted.
In other cases, entirely different screens are presented by the various types of
devices.
Design for Remote, Distributed Environment
A remote, distributed environment has characteristics of the internal environ-
ment and the external, Web-based environment. As with internal configuration,
the software applications for a remote, distributed environment are often inter-
nal systems used by employees of a business. As with the external, Web-based
deployment, the employees aren’t constrained to a single location; in fact, they
can range throughout the world. Historically, many companies have built their
own WANs to service these employees. However, the expense of building and
maintaining these individual communication networks has become prohibitive
for most companies. Today, almost all these systems are built by using the
Internet and are called Virtual Private Networks (VPNs). A VPN is a network
built on top of a public network such as the Internet, which offers security and
controlled access for a private group.
Remote Deployment via Virtual Private Network
Earlier, we described an RMO buyer who is on the road and needs access to
a home office system. If the buyer just needs access to a few pages, a secure
TCP/IP connection with HTTPS is sufficient. However, if the buyer needs access
to other secure systems within the home office, a VPN might be a better solu-
tion. With a VPN, the buyer can access the home office servers as though he or
she were working within the home office building.
Virtual Private Networks (VPNs) a
closed network with security and closed access
built on top of a public network, such as the
Internet
CHAPTER 6 ■ Essentials of Design and the Design Activities 177
Figure 6-16 illustrates a VPN over the Internet using TCP/IP. As indicated
in the figure, there is a secure “pipe” between the remote computers and the
home office server. This indicates the presence of a VPN using Internet proto-
cols but with more security and control. In order to implement this type of
VPN, special software is used to establish a secure connection and to encrypt
all data transmissions. Only computers with the exact software and keys can
access the VPN network.
A variation of this configuration can occur when two remote computers
need to communicate directly with each other. They can use the home office
server to facilitate the connection between them, but after they are connected,
they can establish a peer-to-peer connection that continues the communica-
tion without any other assistance. A peer-to-peer connection is one that goes
directly between the remote computers and doesn’t require access to the home
computer. That configuration can be represented by a pipe directly between
the remote computers. The advantage of this configuration is that the speed of
the connection can handle high-volume transfers or immediate responses, which
is beneficial for, say, online chatting.
An alternative way for a buyer to implement remote access is to construct
an application that uses a Web-browser interface. The application executes on a
Web server, communicates with a Web browser using HTML, and is accessible
from any computer with an Internet connection. Buyers can use a Web browser
on their laptop computers and connect to the application via a local Internet
service provider. They can also access the application from any other computer
with Internet access (e.g., a computer in a vendor’s office, a hotel business suite,
or a copy center, such as FedEx Kinko’s).
An important aspect of all VPNs is that the communication links are always
encrypted to maintain security. Because the objective of a VPN is to allow
private communications between persons in the same organization, the commu-
nication is encrypted. VPN servers and software not only use the secure HTTP
protocol (HTTPS://), they include additional authorization, more secure encryp-
tion, and a higher level of transport monitoring.
Diversity of Client Devices
In the previous section, we discussed the difficulties of deploying software on a
wide range of devices. Software applications deployed remotely have even more
complex rendering requirements. Often, specialized equipment is needed to
Database
server
Application
server
VPN-enabled devices
VPN gateway/server
Tunnel (logical connection)
Internet
FIGURE 6-16
Virtual Private Network using TCP/IP
peer-to-peer connection when
independent computers communicate and share
resources without the need of a centralized
server computer
178 PART 3 ■ Essentials of Systems Design
deploy an application to remote employees—for example, when a courier
service transmits customer signatures back to the home office upon a package’s
delivery. Other types of monitoring devices have data capture and data commu-
nication requirements unique to a particular software application.
RMO Corporate Technology Architecture
RMO’s main offices consist of the corporate headquarters as well as a large
retail store, a manufacturing plant, and a large distribution warehouse in Park
City, Utah. Park City is where the company got its start and where it opened its
first retail store. Salt Lake City is, in many ways, the hub for RMO’s daily
operations. The primary data center is located in a separate building in Park
City. There are two distribution centers: one in Portland, Oregon, and the other
in Albuquerque, New Mexico. Additional manufacturing is done in Seattle,
Washington. The map shown in Figure 6-17 indicates where the 10 retail stores
are located.
Along with the major data center in Park City, RMO has internal LANs in
every office, warehouse, manufacturing plant, and retail store. In addition, the
distribution centers and manufacturing plants are all on a VPN that connects
these facilities to the central data center and to the corporate offices in Park
City. All the retail outlets are connected to the central site, with a separate
VPN that connects with the retail applications. Within each building, LANs are
Retail stores
Distribution warehouse centers
Manufacturing plants
Montana
Billings
Boise
Idaho
Wyoming
Denver
Colorado
Albuquerque
Salt
Lake City
Nevada
California
Reno
Sacramento
Oregon
Portland
Washington
Seattle
New Mexico
Arizona
Utah
Park City
FIGURE 6-17
Map showing RMO’s warehouses,
manufacturing plants, and retail stores
CHAPTER 6 ■ Essentials of Design and the Design Activities 179
configured to provide common connectivity. Figure 6-18 provides a network
diagram describing the current technology configuration.
Part of the new CSMS project will consist of assessing the feasibility of
hosting the new system with a large-capacity provider. Although none of the
alternatives have been eliminated, early analysis indicates that utilizing virtual
servers with managed services is the most favorable option. Hosting companies in
Utah and in California appeared to be the most attractive options. Further
analysis needs to be done, and project time is scheduled for more thorough inves-
tigation and site visits to the two or three most promising hosting companies.
Chapter Summary
Systems design is the process of organizing and structur-
ing the components of a system to allow the construction
(i.e., programming) of the new system. The design of a
new system consists of those activities that relate specifi-
cally to the design of the various new system components.
The components include the deployment environment,
the application architecture and software, the user inter-
faces, the system interfaces, the database, and the system
controls associated with system security.
The inputs to the design activities consist of the models
that were built during analysis. The outputs of the design
consist of a set of diagrams, or models, that describe the
architecture of the new system and the detailed logic within
various programming components.
Designing the application architecture can be subdi-
vided into architectural and detail design. Detail design
often refers to the design of the software programs.
Architectural design adapts the application to the
FIGURE 6-18 RMO’s current technology architecture
VPN gateway
to LAN
RMO customers
on PCs and MACs
Retail client
workstations with
Windows 7 and
MacOS
Distribution and
manufacturing
client workstations
with Windows 7
and MacOS
VPN gateway
to LAN
VPN gateway
for retail stores
Firewall
for customer
applications
VPN gateway
for warehouses and
manufacturing
High-capacity database
server cluster with Unix and
Oracle database
Application servers running
Windows server and IIS
Internet
High-speed LAN at
Park City data center
External credit
approval services
180 PART 3 ■ Essentials of Systems Design
deployment environment, including hardware, software,
and networks. Modern application software is usually
deployed in a distributed multicomputer environment and
is organized according to client/server architecture—
usually in a three-layer architecture.
In today’s widely connected computing environ-
ment, the design of the software application must
consider client computer characteristics and server
environments. Client computing environment options
range from simple desktop systems to tablet computers
to very small mobile devices. On the server side of
the design, there are many options—from in-house
equipment to colocation or cloud computing. The
specific requirements of the potential client equipment
and the server computers impact the final design and
the operation of the new system.
Key Terms
architectural design 158
business logic layer 170
client computer 168
client-server architecture 168
cloud computing 176
colocation 175
content delivery network (CDN) 174
data layer 170
detail design 158
domain layer 170
hosting 174
Hypertext Markup Language (HTML) 169
Hypertext Transfer Protocol Secure (HTTPS) 173
local area network (LAN) 168
network diagram 156
peer-to-peer connection 178
server computer 168
Service Level Agreement (SLA) 176
three-layer architecture 169
Transmission Control Protocol/
Internet Protocol (TCP/IP) 169
Transport Layer Security (TLS) 173
view layer 169
Virtual Private Networks (VPNs) 177
virtual server 175
Review Questions
1. What is the primary objective of systems design?
2. What is the difference between systems analysis and
systems design?
3. List the major elements that must be designed for a
new software application.
4. List the models that are used for systems analysis.
5. List the models that are used for systems design.
6. What is the difference between user-interface design
and system-interface design?
7. On a project that uses iterations to develop the
system, in which iteration does systems design
begin? Explain why.
8. What is the difference between architectural design
and detail design?
9. Designing the security and controls impacts the
design of which other elements?
10. Describe what is required for database design.
11. What is a LAN? When would it be used in
deploying a new system?
12. What is three-layer design?
13. Describe the contents of each layer in three-layer
design.
14. List the different types of client devices in a client/
server architecture.
15. What is the difference between HTTPS and HTTP?
16. In the use of software over the Internet, what are
the two main security issues that must be
considered?
17. Describe the primary factors that affect throughput
for Internet systems.
18. List five issues that are important when considering
an external hosting company.
19. What is the difference between cloud computing
and virtual servers?
20. Why do companies use colocation facilities?
21. Describe the issues to be considered when designing
for multiple clients.
22. What is a VPN? Why would a company use a VPN?
CHAPTER 6 ■ Essentials of Design and the Design Activities 181
Problems and Exercises
1. A financial corporation has desktop applications
running in several different offices that are all
supported by a centralized application bank of two
computers. In addition, there is a centralized
database, which requires three servers. Draw a
network diagram representing this requirement.
2. A sales organization has an Internet-based customer
support system that needs to support every type of
client device. The server configuration should be a
normal layered application server and database
server. Draw a network diagram representing this
requirement.
3. A medium-sized engineering firm has three separate
engineering offices. In each office, a local LAN
supports all the engineers in that office. Due to the
requirement for collaboration among the offices, all
the computers should be able to view and update
the data from any of the three offices. In other
words, the data storage server within each LAN
should be accessible to all computers, no matter
where they are located. Draw a network diagram
that will support this configuration.
4. A small start-up company has a Web-based
customer sales system that is written by using PHP
and JavaScript. The company is deciding whether to
host the system on its own servers, contract with a
hosting company for a virtual server, or go to
Amazon’s cloud. Volumes are expected to be low at
the beginning, and it is hard to predict a growth
pattern, although there is potential for rapid
growth. Decide which alternative the company
should choose. Defend your decision by giving
advantages and disadvantages of each solution
based on the characteristics of the start-up
company.
5. Describe the differences between HTTPS and a
VPN. What kinds of computing and networking
situations are better suited to HTTPS? What kind of
computing and networking situations are better
suited to VPN?
6. Find four separate hosting providers and compare
their offerings, including prices. Put your answer in
a table showing the results of your research.
7. Compare screen size, resolution, and other impor-
tant display characteristics of five popular Internet-
enabled smartphones. Which would you rate as the
best? Defend your answer.
8. Research the issues related to supporting a very
large database that must be distributed across
multiple servers. Write a list of the issues that
need to be addressed and the alternative solutions
for a distributed and partitioned database where
(a) all servers are colocated in the same data center
and (b) the servers are located in separate data
centers.
Case Study
County Sheriff Mobile System for Communications
(CSMSC)
Law enforcement agencies thrive on information. They
need it to respond to emergencies and to anticipate what
they will encounter when they arrive on the scene. In
previous eras, it was sufficient to receive information
through the police dispatch radio. Today, much more than
voice-based information is required. Officers often need to
check vehicle registrations, personal identities, outstanding
warrants, mug shots, maps, and the locations of other
officers.
One major difficulty with meeting this need for more
information is figuring out how to transmit the data to
remote and mobile locations. Local police agencies are
sometimes able to restrict their transmission needs to
within the city limits. However, county sheriffs and state
troopers often have to travel to remote locations that
aren’t within a metropolitan area’s boundaries.
Let us say a local county sheriff’s department has
received a grant to upgrade its existing communication
system and the system must satisfy certain requirements.
First, there must be complete coverage throughout the
county. This county includes metropolitan areas as well
as desert and mountains that are often outside normal
radio or wide-area Wi-Fi coverage. About 95 percent of
the county is within cell phone coverage, and 5 percent is
in uncovered mountainous areas.
Officers normally have access to customized laptops
in their vehicles. However, some officers are required to
patrol ATV trails and campgrounds. Those officers will still
need to be connected with a portable computing device.
Hence, another requirement is being able to use smaller
portable devices.
Your assignment: Recommend a communication and
network solution for the county sheriff’s department. It can
be any combination of Internet, VPN, Wi-Fi, telephone, and
satellite communication. The applications can be custom
182 PART 3 ■ Essentials of Systems Design
built, with device-specific or HTML-based user interfaces.
Although HTML tends to be more versatile, it has draw-
backs regarding security; display can also be an issue on
devices that don’t have browser support.
As always, the budget is tight, so your solution should
be as economical as possible. Develop a network diagram
that depicts your proposed solution. Also, explain your
solution and justify your design.
RUNNING CASE STUDIES
Community Board of Realtors
The Community Board of Realtors Multiple Listing
Service (MLS) will be a Web-based application with
extensions to allow wireless smartphone interaction
between the agents and their customers. Review the
functional and nonfunctional requirements you have
developed for previous chapters. Then, for each of
the six design activities discussed in this chapter, list
some specific tasks to design the environment, applica-
tion architecture and software, user interfaces, system
interfaces, database, and system controls and security.
You may want to refer back to the Tradeshow System
discussed in Chapter 1 for some design specifics.
The Spring Breaks ‘R’ Us Travel Service
Let us say that the SBRU information system includes
four subsystems: Resort relations, Student booking,
Accounting and finance, and Social networking. The
first three are purely Web applications, so access to
those will be through an Internet connection to a
Web server at the SBRU home office. The Social
networking subsystem has built-in chat capabilities. It
relies on Internet access for the students, as students
compare notes before they book their travel reserva-
tions and as they chat while traveling. To function
properly, the system obviously requires a wireless
network at each resort during the trip. SBRU isn’t
responsible for installing or maintaining the resort
wireless network; they only plan to provide some
design specifications and guidelines to each resort.
The resort will be responsible for connecting to the
Internet and for providing a secure wireless environ-
ment for the students.
1. Design the environment for the SBRU information
system by drawing a network diagram. Include
what might be necessary to support online
chatting capabilities.
2. Considering that everything is designed to operate
through the Internet with browsers or smart-
phones, how simple does this architecture appear
to be? Can you see why Web and smartphone
applications are so appealing?
3. What aspect of design becomes extremely impor-
tant to protect the integrity of the system?
On the Spot Courier Services
In previous chapters, we have described the technolog-
ical capabilities that Bill Wiley wants for servicing his
customers. One of the problems that Bill has is that his
company is very small, so he cannot afford to develop
any special-purpose equipment or even sophisticated
software.
Given this limitation, Bill’s request for advanced
technological capabilities is coming at an opportune
time. Equipment manufacturers are developing equip-
ment with advanced telecommunications capabilities.
And freelance software developers are producing
software applications—many of which provide the
capabilities that Bill needs.
The one caveat is that since this will be a live
production system, it needs to be reliable, stable,
error-free, dependable, and maintainable
Let us review some of the required capabilities of the
new system,which has been described in previous chapters:
Customers
■ Customers can request package pickup online via
the Internet.
(continued on page 184)
CHAPTER 6 ■ Essentials of Design and the Design Activities 183
■ Customers can check the status of packages online
via the Internet.
■ Customers can print mailing labels at their offices.
Drivers
■ Drivers can view their schedules via a portable
digital device while on their routes.
■ Drivers can update the status of packages while on
their routes.
■ Drivers can allow customers to “sign” for
packages that are delivered.
■ The system “knows” where the driver is on his
route and can send updates in real time.
■ Drivers can accept payments and record them on
the system.
Bill Wiley (management)
■ Bill can record package pickups from the
warehouse.
■ Bill can schedule delivery/pickup runs.
■ Bill can do accounting, billing, etc.
■ Bill can access the company network from his
home.
Given these requirements, do the following:
1. Make a list of the equipment that Bill should
purchase to support his new system. Include
all equipment that will be needed for the home
office, the drivers, and at Bill’s residence.
Identify and describe actual equipment that
can be purchased today. Estimate the cost of
the equipment.
2. Describe any special software that may be
needed. The software engineer is developing
the application software (package scheduling
and processing, accounting, etc.), but no
special software is required for connecting
the devices or communications between
them.
3. Develop a network diagram showing how all
the equipment will be connected. Identify
Internet connections, VPNs, and telephony
links as appropriate.
Sandia Medical Devices
As described in previous chapters, the Real-Time
Glucose Monitoring (RTGM) system will include
processing components on servers and on mobile
devices, such as smartphones, with data exchange via
3G and 4G phone networks. Users will include such
patient and health care personnel as physicians, nurses,
and physician assistants. In the United States, the
Health Insurance Portability and Accountability Act
of 1996 (HIPAA) mandates certain responsibilities
regarding the privacy and security of electronic
protected health information (ePHI). The law applies
to what are collectively called covered entities—that is,
health plans, health care clearinghouses, and any
health care providers who transmit health information
in electronic form. More information can be obtained
from the U.S. Department of Health & Human
Services Web site (www.hhs.gov).
In general, covered entities should:
■ Ensure the confidentiality, integrity, and avail-
ability of all ePHI they create, receive, maintain, or
transmit.
■ Identify and protect against reasonably anticipated
threats to the security or integrity of the
information.
■ Protect against reasonably anticipated, impermis-
sible uses or disclosures of the information.
■ Ensure compliance by their workforces.
Specifically, covered entities should implement
policies, procedures, and technologies that:
■ Specify the proper use of and access to worksta-
tions and electronic media.
■ Regard the transfer, removal, disposal, and reuse
of electronic media to ensure appropriate protec-
tion of ePHI.
■ Allow only authorized persons to access ePHI.
■ Record and examine access and other activity in
information systems that contain or use ePHI.
■ Ensure ePHI isn’t improperly altered or destroyed.
■ Guard against unauthorized access to ePHI that is
being transmitted over an electronic network.
Answer these questions in light of HIPPA
requirements:
1. Does HIPAA apply to the RTGM system?
Why or why not?
2. How should the system ensure data security
during transmission between a patient’s
mobile device(s) and servers?
(continued on page 185)
(continued from page 183)
184 PART 3 ■ Essentials of Systems Design
www.hhs.gov
3. Consider the data storage issues related to a
patient’s mobile device and the possible
ramifications if the device is lost or stolen.
What measures should be taken to protect the
data against unauthorized access?
4. Consider the issues related to health care
professionals accessing server data by using
workstations and mobile devices within a
health care facility. How will the system meet
its duty to record and examine access to ePHI?
If a health care professional uses a mobile
device outside a health care facility, what
protections must be applied to the device
and/or any data stored within it or transmitted
to it?
5. Consider the issues related to wired and
wireless data transmission between servers
and workstations within a health care
facility. What security duties, if any, apply to
transmissions containing ePHI? Does your
answer change if the servers are hosted by a
third-party provider?
Further Resources
Frederick P. Brooks, The Design of Design: Essays
from a Computer Scientist, Addison-Wesley,
2010.
Priscilla Oppenheimer, Top-Down Network Design
(3rd ed.), Cisco, 2010.
Doug Kaye, Strategies for Web Hosting and
Managed Services, Wiley, 2001.
(continued from page 184)
CHAPTER 6 ■ Essentials of Design and the Design Activities 185
This page intentionally left blank
7
Designing the User and
System Interfaces
Chapter Outline
■ User and System Interfaces
■ Understanding the User Interface
■ User-Interface Design Concepts
■ The Transition from Analysis to User-Interface Design
■ User-Interface Design
■ Identifying System Interfaces
■ Designing System Inputs
■ Designing System Outputs
Learning Objectives
After reading this chapter, you should be able to:
■ Describe the difference between user interfaces and system interfaces
■ Describe the historical development of the field of human-computer interaction (HCI)
■ Discuss how visibility and affordance affect usability
■ Describe user-interface guidelines that apply to all types of user-interface types
and additional guidelines specific to Web pages and mobile applications
■ Create storyboards to show the sequence of forms used in a dialog
■ Discuss examples of system interfaces found in information systems
■ Define system inputs and outputs based on the requirements of the application
program
■ Design printed and on-screen reports appropriate for recipients
187
OPENING CASE
Interface Design at Aviation Electronics
Bob Crain was admiring the user interface for the
manufacturing support system that was recently installed
at Aviation Electronics (AE). Bob is the plant manager for
AE’s Midwest manufacturing facility, which produces avia-
tion devices used in commercial aircraft. These aviation
devices provide guidance and control functions for flight
crews, and they provide the latest safety and security fea-
tures that pilots need when flying commercial aircraft.
The manufacturing support system is used for all
facets of the manufacturing process, including product
planning, purchasing, parts inventory, quality control, fin-
ished goods inventory, and distribution. Bob was exten-
sively involved in the development of the system for
several years, including the initial planning and develop-
ment. The system reflected almost everything he knew
about manufacturing. The information systems team that
developed the system relied extensively on Bob’s exper-
tise. That was the easy part for Bob.
What particularly pleased Bob was the final user inter-
face. He had insisted that the development team consider
the entire user experience from the very beginning. He
didn’t want just another cookie-cutter transaction processing
system. He wanted a system that acted as a partner in the
manufacturing process—much the way that AE’s guidance
and control system interfaces acted as a pilot’s partner.
The first manager assigned to the project placed a low
priority on user-interface design. When Bob asked why user-
interface design wasn’t a key focus of early iterations, the
manager replied, “We’ll add the user interface later, after
we work out the accounting controls.” When Bob insisted
that the project manager be replaced, the information sys-
tems department sent Sara Robinson to lead the project.
Sara had a completely different attitude; she started
out by asking about events that affect the manufacturing
process and about cases in which users needed support
from the system. Although she had a team of analysts
working on the accounting transaction details from the
beginning, she always focused on how the user would
interact with the system. Bob and Sara conducted meet-
ings to involve users in discussions about how they might
use the system, even asking users to act out the roles of
the user and the system in carrying on a conversation.
At other meetings, Sara presented sketches of screens
and asked users to draw on them to indicate the information
they wanted to see and options they wanted to be able to
select. These sessions produced many ideas. For example, it
appeared that many users didn’t sit at their desks all day;
they needed larger and more graphic displays they could
see from across the room. Many users needed to refer to
several displays, and they needed to be able to read them
simultaneously. Several functions were best performed by
using graphical simulations of the manufacturing process.
Users made sketches showing how the manufacturing pro-
cess actually worked, and the team used these sketches to
define much of the interface. Sara and her team kept coming
back every month or so with more examples to show, asking
for more suggestions.
When the system was finally completed and installed,
most users already knew how to use it because they had
been so involved in its design. Bob knew everything the
system could do, but he had his own uses for it. He sat
at his desk and clicked the Review Ongoing Processes
button on the screen, and the manufacturing support sys-
tem gave him his morning briefing.
Overview
Information systems interact with people and with other systems. Because few
systems operate autonomously or in isolation, designing the interfaces (inputs
and outputs) between a system and its users and environment is an important
system development task. Poorly designed interfaces with people can result in
a system that operates less than optimally or doesn’t fulfill its purpose. For
example, a human resources system that has a poorly designed user interface
may reduce organizational efficiency and be a source of data entry errors. A
customer-facing system with a poorly designed user interface might motivate
customers to take their business elsewhere. As with user-oriented interfaces,
poorly designed interfaces to other automated systems can be a source of errors
or inefficiency. Thus, the design of a system’s interfaces is an important part of
a system development project.
Inputs and outputs of the system are an early concern of any system
development project. The project plan lists key inputs and outputs that the
analyst identified when defining the scope of the system. During the analysis
phase, analysts will have discussed inputs and outputs early and often with
188 PART 3 ■ Essentials of Systems Design
system stakeholders to identify users and actors that affect the system and
that depend on the information it produces. Requirements models produced
during analysis also emphasize inputs and outputs. For example, use case
descriptions define inputs and outputs that occur during a use case. The
inputs and outputs are further defined as messages and returns in system
sequence diagrams (SSDs).
User and System Interfaces
A key step in systems design is to classify the inputs and outputs for each event
as either a system interface or a user interface. System interfaces are inputs
and outputs that require minimal human intervention. They might be inputs
captured automatically by such special input devices as scanners, electronic mes-
sages to or from another system, or transactions captured by another system.
Many outputs are considered system interfaces if they primarily send messages
or information to other systems (e.g., a pickup notification to a shipping com-
pany) or if they produce reports, statements, or documents for external agents
or actors without much human intervention (e.g., end-of-month credit card
statements e-mailed to cardholders).
User interfaces are inputs and outputs that more directly involve a system
user. User interfaces can be for internal or external users. Their design varies
widely depending on such factors as interface purpose, user characteristics, and
characteristics of a specific interface device. For example, although all user inter-
faces should be designed for maximal ease of use, other considerations, such as
operational efficiency, may be important for internal users who can be trained to
use a specific interface optimized for a specific hardware device (e.g., a keyboard,
a mouse, and a large high-resolution display). In contrast, a quite different user
interface might be designed for a customer-facing system that assumes a cell
phone as the input/output device.
In most system development projects, analysts separate the design of system
interfaces from the design of user interfaces because the each requires its own
expertise and technology. But as with the design of any system component, con-
siderable coordination is required.
Understanding the User Interface
Many people think the user interface is developed and added to the system near
the end of the development process, but the user interface is much more impor-
tant than that. It is everything that the end user comes in contact with while
using the system—physically, perceptually, and conceptually (see Figure 7-1).
From a user perspective, the user interface is the entire system. The pro-
grams, scripts, databases, and hardware behind the interface are irrelevant.
Design techniques that embody this view of user interfaces are collectively called
user-centered design, which emphasizes three important principles:
■ Focus early on the users and their work.
■ Evaluate designs to ensure usability.
■ Use iterative development.
The early focus on users and their work is consistent with the approach to
systems analysis in this text. User-oriented analysis and design tasks are per-
formed as early as possible and are often given higher priority than other tasks.
For example, such user-oriented analysis tasks as stakeholder identification and
interviews occur early in the project. User interfaces are designed in early itera-
tions, and user-related design decisions drive other design decisions and tasks.
The early focus on users and their work goes beyond issues of task ordering
and priority. It embodies an all-encompassing attempt to understand users and
answer such questions as: What do they know? How do they learn? How do
system interfaces inputs or outputs that
require minimal human intervention
user interfaces system interfaces that
directly involve a system user
user-centered design design
techniques that embody the view that the
user interface is the entire system
CHAPTER 7 ■ Designing the User and System Interfaces 189
they prefer to work? What motivates them? The extent of user-oriented focus
does vary with the type of system being developed. For example, if the system
is a shrink-wrapped desktop application marketed directly to end users, the
focus on users and their preferences is intense.
The second principle of user-centered design is to evaluate designs to ensure
usability. Usability refers to the degree to which a system is easy to learn and
use. Ensuring usability isn’t easy; there are many different types of users with
different preferences and skills. Features that are easy for one person to use
might be difficult for another. If the system has a variety of end users, how can
the designer be sure that the interface will work well for all of them? For exam-
ple, if it is too flexible, some end users might feel lost. On the other hand, if the
interface is too rigid, some users will be frustrated.
Ease of learning and ease of use are often in conflict. For example, menu-
based applications with multiple forms, many dialog boxes, and extensive
prompts and instructions are easy to learn; indeed, they are self-explanatory.
And easy-to-learn interfaces are appropriate for systems that end users use infre-
quently. But if internal users use the system all day, it is important to make the
interface fast and flexible, with shortcuts, hot keys, voice commands, and
information-intensive screens. This second interface might be harder to learn,
but it will be easier to use after it is learned. Internal users (with the support of
their managers) are willing to invest more time learning the system in order to
become efficient users.
Developers employ many techniques to evaluate interface designs to ensure
usability. User-centered design requires testing all aspects of the user interface.
Some usability testing techniques collect objective data that can be statistically
analyzed to compare designs. Some techniques collect subjective data about
user perceptions and attitudes. To assess user attitudes, developers conduct for-
mal surveys, focus group meetings, design walk-throughs, paper-and-pencil
evaluations, expert evaluations, formal laboratory experiments, and informal
observation.
The third principle of user-centered design is iterative development—that is,
doing some analysis, then some design, then some implementation, and then
repeating the processes. After each iteration, the project team evaluates the work
on the system to date. Iterative development keeps the focus on the user by
FIGURE 7-1
User-centered design
usability degree to which a system is easy
to learn and use
190 PART 3 ■ Essentials of Systems Design
continually returning to the user requirements during each iteration and by evalu-
ating the system after each iteration. As with the principle of early focus on users
and their work, this principle is reflected throughout this textbook in its approach
to system development in general and analysis and design tasks in particular.
Metaphors for Human-Computer Interaction
Widespread use of visually oriented user interfaces debuted in the mass market
with the Apple Macintosh in the 1980s and became widespread with various
versions of Microsoft Windows in the 1990s. To make computers easier to use
and learn, designers of early visually oriented interfaces adopted metaphors,
which are analogies between features of the user interface and aspects of physi-
cal reality that users are familiar with. Metaphors are still widely applied to
user-interface design, as described in Table 7-1.
Figure 7-2 is a screen capture of a computer running Windows that illus-
trates the direct manipulation, desktop, and document metaphors. The
entire display is visually similar to the surface of a physical desktop. Icons and
pictures for commonly used tools are located on the left and right sides. The
icons can be directly manipulated with a mouse or another pointing device.
The windows in the center frame are documents that are visually similar to
paper pages laid on the surface of a desk, with a sticky note attached to one
of the pages.
The direct manipulation, desktop, and document metaphors emphasize dis-
played objects with which the user interacts. The dialog metaphor emphasizes
the communication that occurs between a user and a computer, conceptualized
as a conversation. In a conversation or dialog between two people, each person
listens and responds to questions and comments from the other person, with the
information being exchanged in a sequence. The dialog metaphor is another way
of thinking about human-computer interaction because the computer “listens to”
and “responds” to user questions or comments, and the user “listens to” and
“responds” to the computer’s questions and comments. Figure 7-3 illustrates a
conceptual dialog between user and computer.
TABLE 7-1 Commonly used metaphors for user-interface design
Metaphor Description Example
Direct
manipulation
Manipulating objects on a display that look
like physical objects (pictures) or that repre-
sent them (icons)
The user drags a folder icon to an image of a
recycle bin or trash can to delete a collection of
files.
Desktop Organizing visual display into distinct regions,
with a large empty workspace in the middle
and a collection of tool icons around the
perimeter
At computer startup, a Windows user sees a
desktop, with icons for a clock, calendar,
notepad, inbox and sticky notes (the computer
interface version of a physical Post-It note).
Document Visually representing the data in files as paper
pages or forms. These pages can be linked
together by references (hyperlinks)
The user fills in a form field for a product he or
she owns, and the manufacturer’s Web site
finds and displays the product’s manual as an
Adobe Acrobat file, which contains a hyper-
linked table of contents and embedded links to
related documents.
Dialog The user and computer accomplishing a task
by engaging in a conversation or dialog by
using text, voice, or tools, such as labeled
buttons
The user clicks a button labeled “troubleshoot”
because the printer isn’t working. The com-
puter prints questions on the display, and the
user responds by typing answers or selecting
responses from a printed list.
metaphors analogies between features of
the user interface and aspects of physical
reality that users are familiar with
direct manipulation metaphor
metaphor in which objects on a display are
manipulated to look like physical objects
(pictures) or graphic symbols that represent
them (icons)
desktop metaphor metaphor in which
the visual display is organized into distinct
regions, with a large empty workspace in the
middle and a collection of tool icons around the
perimeter
document metaphor metaphor in
which data is visually represented as paper
pages or forms
dialog metaphor metaphor in which
user and computer accomplish a task by
engaging in a conversation or dialog via text,
voice, or tools such as labeled buttons
CHAPTER 7 ■ Designing the User and System Interfaces 191
The dialog metaphor can be implemented in various ways in user interfaces.
A direct approach uses speech generation and recognition over a voice commu-
nication channel, as commonly encountered when calling the customer support
number of a large company. A computerized voice asks a series of questions, lis-
tens for the answer to each question, and responds to the answers. Another
implementation of the dialog metaphor uses questions or instructions displayed
by a user through text and responses as well as counter-questions displayed by
the computer through text. To minimize the need for user typing, responses to
computer questions might be limited to a specific set of possibilities displayed to
the user in the form of a list from which the user selects the most appropriate
response with a mouse click or by touching a display surface.
Regardless of the specific form of implementation, specifying dialogs between
user and computer is one of the more powerful tools used by user-interface
designers. Although written and spoken languages vary across the globe, conversa-
tion and dialog are fundamental and universal human skills. Modeling the
FIGURE 7-3
The dialog metaphor for user-computer
interaction
FIGURE 7-2 The direct manipulation, desktop, and document metaphors on a typical computer display
192 PART 3 ■ Essentials of Systems Design
interaction between user and computer as a dialog enables the user to incorporate
language and related skills that have been honed from an early age.
User-Interface Design Concepts
Many IT researchers and practitioners have published articles, books, and Web
sites that offer guidance in user-interface design. Although some guidelines have
changed as user-interface technology has changed, many guidelines are univer-
sal, having been around for many decades and technology generations. We
review some of these universal guidelines in this section and then move on to
user-interface development, with specific guidelines for specific interface types,
later in this chapter.
Affordance and Visibility
Donald Norman is a leading researcher in human-computer interaction (HCI),
a field of study concerned with the efficiency and effectiveness of user interfaces
to computer systems, human-oriented input and output technology, and psycho-
logical aspects of user interfaces. Norman proposes two key principles to ensure
good interaction between a person and a machine: affordance and visibility. Both
principles apply to user-interface controls, which are elements of a user interface
that a user manipulates to perform tasks. Examples of controls include menus,
buttons, pull-down lists, sliders, and text entry boxes.
Affordance means that the appearance of a specific control suggests its
function—that is, the purpose for which the control is used. For example, a con-
trol that looks like a steering wheel suggests that it is used for turning.
Affordance can also be achieved by a user-interface control that the user is
familiar with in another context. For example, the media player control icons
shown in Figure 7-4 were first widely used on audiotape and videotape players
in the 1970s and have continued to be used in such devices as DVD and portable
music players. They are widely incorporated into computer interfaces because so
many users are familiar with them.
Visibility means that a control is visible so users know it is available; it also
means that the control provides immediate feedback to indicate that it is respond-
ing. For example, the mute button shown in Figure 7-4(a) changes its appearance
when the user moves the mouse pointer over it, as shown in Figure 7-4(b). When
the user presses the button, it changes its appearance, as shown in Figure 7-4(c).
Visibility and affordance are relatively easy to achieve when the design tar-
get is a commonly used platform, such as an iPad, a cell phone running the
Android operating system, or a PC running Windows. Such platforms have
well-defined user-interface design guidelines and a library of user-interface fea-
tures and functions that can be reused by application software. When a designer
incorporates user-interface objects and styles from these libraries, he or she is
tapping into users’ experience with similar user interfaces from other applica-
tions on those platforms.
Web user-interface design is less standardized because Web browsers are
intentionally platform-neutral. Designers can choose from a wide variety of user-
(a)
(b)
(c)
FIGURE 7-4 a-c
Visibility and affordance in media player
controls
human-computer interaction (HCI)
field of study concerned with the efficiency and
effectiveness of user interfaces vis-à-vis com-
puter systems, human-oriented input and output
technology, and psychological aspects of user
interfaces
affordance when the appearance of a
specific control suggests its function
visibility when a control is visible so that
users know it is available, the control providing
immediate feedback to indicate that it is
responding to the user
CHAPTER 7 ■ Designing the User and System Interfaces 193
interface libraries, each with its own user-interface objects and styles. Attention to
visibility and affordance is especially important in Web interface design because
there are no real standards that provide a preexisting framework of user familiarity.
Consistency
User interfaces should be designed for consistency in function and appearance.
The way that information is arranged on forms, the names and arrangement of
menu items, the size and shape of icons, and the sequence followed to carry out
tasks should be consistent throughout the system. Why? People are creatures of
habit. After we learn one way of doing things, it is difficult to change. When
we operate a computer application, many of our actions become automatic; we
don’t think about what we are doing.
Figure 7-5 shows the display of Microsoft Word, which illustrates many
aspects of consistency among applications that run under Windows and across the
various components of the Microsoft Office suite. Icons that appear in the upper-
left and upper-right corners of the window frame are standardized across many
Windows applications; thus, users know where to look for them and what their
functions are at a glance. Similarly, the scrollbar on the right and the zoom in/out
slider and resize handles in the lower-right corner are standard across many
Windows applications. The top menus and toolbars are similar across Word,
PowerPoint, Publisher, and other programs within Microsoft Office. An experi-
enced user of one program learns others more quickly due to these similarities.
Shortcuts
User interfaces and dialogs designed for novices are often an annoyance and
impediment to experienced users’ productivity. Users who work with an applica-
tion repeatedly or for long time periods want shortcuts for frequently used func-
tions, which minimize the number of keystrokes, mouse clicks, and menu
selections required to complete tasks. Examples include voice commands as well
as shortcut keys, such as Windows keyboard sequences Ctrl+C for copy and
Ctrl+V for paste. Application designers should use standard shortcuts when
available or build their own.
FIGURE 7-5 Microsoft Word interface features used in various Windows applications
194 PART 3 ■ Essentials of Systems Design
Feedback
Every action a user takes should result in some type of feedback from the com-
puter so the user knows the action was recognized. Feedback can take many
forms in a user interface, including:
■ Audible feedback, such as clicking sounds when keys are pressed and beeps
when on-screen buttons are pressed
■ Visible feedback, such as the icon changes shown in Figures 7-4(b) and 7-4(c),
or the progress meter shown during the download of a large file
Feedback provides the user with a sense of confirmation and the feeling that
a system is responsive and functioning correctly. Lack of feedback leaves the
user wondering whether a command or input was recognized or whether the
system is malfunctioning. When subsequent processing is delayed by more than
a second or two, users may repeatedly press controls or reenter information,
resulting in processing errors and user frustration.
Dialogs That Yield Closure
Each dialog should be organized with a clear sequence—a beginning, middle,
and end. Any well-defined task has a beginning, middle, and end, so users’
tasks on the computer should also feel this way. The user can get lost if it is
not clear when a task starts and ends. In addition, users often focus intently on
tasks, so when it is confirmed that a task is complete, the user can clear his or
her mind and get ready to focus on the next task.
If the system requirements are defined initially as events to which the system
responds, each event leads to the processing of one specific, well-defined activ-
ity. Each use case can be defined as one or more dialogs, each with a flow of
steps and well-defined interactions. Event decomposition sets the stage for dia-
logs with closure.
Error Handling
User errors are a waste of the time to commit and to correct them. A good user-
interface design anticipates common errors and helps the user to avoid them.
One way to do this is to limit available options, presenting the user with only
valid options for a specific point in a dialog. Adequate feedback, as discussed
previously, also helps reduce errors.
When errors do occur, the user interface needs mechanisms to detect then.
Validation techniques discussed later in this chapter are useful for catching
errors, but the system must also help the user correct the error. When the sys-
tem does find an error, the error message should state specifically what is
wrong and explain how to correct it. Consider this error message that occurs
after a user has typed in a full screen of information about a new customer:
The customer information entered is not valid. Try again.
This message doesn’t explain what is wrong or what to do next.
Furthermore, after this message appears, what if the system cleared the data-entry
form and redisplayed it? The user would have to reenter everything previously
typed but still have no idea what is wrong. The error message didn’t explain it,
and now that the typed data has been cleared, the user cannot tell what might
have been wrong. A better error message would read more like this:
The date of birth entered is not valid. Check to be sure only numeric
characters in appropriate ranges are entered in the Date of Birth field.
The system also should streamline corrective actions. For example, if the
user enters an invalid customer ID, the system should tell the user that this has
occurred and then place the insertion point in the customer ID text box, with
the previously typed number displayed and ready to edit. That way, the user
CHAPTER 7 ■ Designing the User and System Interfaces 195
can see the mistake and edit it rather than having to retype the entire ID. The
system might also suggest valid values based on past experience or other infor-
mation that the user has already entered.
Easy Reversal of Actions
Users need to feel that they can explore options and take actions that can be
cancelled or reversed without difficulty. This is one way that users learn about
the system—that is, by experimenting. It is also a way to prevent errors; as users
recognize they have made a mistake, they cancel the action. In the game of check-
ers, a move isn’t final until the player takes his or her fingers off the game piece;
it should be the same when a user drags an object on the screen. In addition,
designers should be sure to include cancel buttons on all dialog boxes and allow
users to go back a step at any time. Finally, when the user deletes something
substantial—a file, a record, or a transaction—the system should ask the user to
confirm the action and, where possible, delay implementing the action.
A key issue in permitting action reversal is structuring dialogs and corre-
sponding system actions. Novice designers and programmers often assume that
user dialog structure and the sequence of corresponding system actions must
precisely correspond. For example, a complex transaction may require several
discrete steps, each of which accepts data from the user and some of which
modify data stored by the system. Although the user dialog should reflect this
structure, internal programming doesn’t always have to process data as it is
received. Instead, it might collect the data as the dialog proceeds and build an
internal “to do” list. When the user completes the final step in the dialog, the
system can then complete processing for the entire dialog at once. If the user
decides near the end of the dialog to cancel the entire sequence, there are no
internal changes to undo. Also, user-interface performance may be improved
because there are fewer potential processing delays between steps.
Reducing Short-Term Memory Load
People have many limitations, and short-term memory is one of the biggest.
Psychologists have demonstrated that people can remember only about seven
chunks of information at a time. User-interface designers should avoid requiring
the user to remember anything from one form to another or from one dialog box
to another during an interaction with the system. If the user has to stop and ask
“What was the filename? The customer ID? The product description?” then the
design is placing too much of a burden on the user’s memory. Memory limita-
tions also apply to steps in a complex process. The interface should help users
keep track of where they are in a complex process via visual cues and other aids.
The Transition from Analysis to
User-Interface Design
The foundation for user-interface design is laid when use cases are identified and
documented, as described in Chapter 3. Use cases that require direct user inter-
action (i.e., interactive use cases) are the starting point for a dialog, and the cor-
responding use case, activity, and system sequence diagrams are the initial
dialog documentation. Interactive use cases may require the user to input
choices and data into the system (such as when making an online order) or may
generate outputs in response to a user request (such as when tracking a ship-
ment). During design, dialogs for interactive use cases are further refined by
developing menus, forms, and other user-interface elements.
Dialog and user-interface design can proceed in either a top-down or
bottom-up fashion. In the top-down approach, menus (groups of related use
cases, dialogs, and user interfaces) are defined first, followed by a detailed
description of each interactive use case dialog and development of the related
196 PART 3 ■ Essentials of Systems Design
user-interface elements. In the bottom-up approach, interactive use cases are pri-
oritized, and related dialogs and user interfaces are developed one at a time.
Menus are added later in the project when related sets of fully implemented
user interfaces are completed. Neither approach is inherently better; either or
both can be a good match for a specific project.
Use Cases and the Menu Hierarchy
Menus are a way of grouping large numbers of related use cases or dialogs within
a user interface. In all but the smallest systems, menus are needed to present the
user with a tractable number of choices per screen, to group related functions
together so users can more easily locate them, and to properly sequence related
interfaces for a complex event decomposition. Figure 7-6 shows two different
menu styles. In Figure 7-6(a), the mouse pointer is positioned over the Shop item
of the upper menu in a Web page. Clicking Shop would display a second Web
page containing another menu. Figure 7-6(b) shows a more complex menu
design, with three menu levels displayed.
How does a designer decide which use cases and user interfaces to include
in which menus, which menus are required, and how many menu levels are
required? These decisions are primarily driven by the number of uses cases or
menu choices and the limits of human cognition. Menus usually contain five
to 10 choices in order to avoid overloading the user (see Figure 7-6(a)). With
careful design, more choices can be provided, especially for experienced users
(see Figure 7-6(b)). For a typical business system, dividing the total number of
interactive use cases by five provides an initial estimate of the number of
menus that include all interactive use cases and allows for additional menu
items, such as setting options or preferences. If the number of menus is greater
than 10, higher-level menus that contain links to other menus are required.
For example, in Figure 7-6(b), the upper menu options, such as File, Home,
and Review, each link to a second-level menu formatted as a toolbar. Some
choices within the toolbar are links to lower-level menus, such as the displayed
Show Markup menu.
FIGURE 7-6 Two different menu styles
(a)
(b)
CHAPTER 7 ■ Designing the User and System Interfaces 197
Use cases with common actors and event decomposition or that implement
CRUD actions for a specific domain class are good candidates to be grouped
into a single menu or related group of menus. For example, consider the RMO
CSMS use cases shown in Table 7-2. An initial grouping of these cases by actor
and subsystem is a good starting point for menu design.
Table 7-3 shows a grouping of the use cases in Table 7-2 into four menus.
Each menu collects uses cases from one subsystem for a customer or internal
sales representative. The number of menu choices ranges from four to seven,
which won’t overload any one menu and may enable multiple menu levels to
displayed at one time. A dialog design is created for each menu option. After
dialog design proceeds, the designer may redefine the menu options or structure.
In fact, designers often discover missing or incomplete use cases during user-
interface design, which results in a brief return to analysis activities to complete
the documentation.
Menus usually include options that are not activities or use cases from the event
list. Many options are related to the system controls, such as account maintenance
or database backup and recovery, which are discussed later in this chapter. Other
added items include help links as well as links to other menus or subsystems.
TABLE 7-2 RMO use cases grouped by actor and subsystem
Subsystem Use Case Users/Actors
Sales Search for item Customer, customer service representative,
store sales representative
Sales View product comments and ratings Customer, customer service representative,
store sales representative
Sales View accessory combinations Customer, customer service representative,
store sales representative
Sales Fill shopping cart Customer
Sales Empty shopping cart Customer
Sales Check out shopping cart Customer
Sales Fill reserve cart Customer
Sales Empty reserve cart Customer
Sales Convert reserve cart Customer
Sales Create phone sale Customer service representative
Sales Create store sale Store sales representative
Order fulfillment Ship items Shipping
Order fulfillment Manage shippers Shipping
Order fulfillment Create backorder Shipping
Order fulfillment Create item return Shipping, customer
Order fulfillment Look up order status Shipping, customer, management
Order fulfillment Track shipment Shipping, customer, marketing
Order fulfillment Rate and comment on product Customer
Order fulfillment Provide suggestion Customer
198 PART 3 ■ Essentials of Systems Design
Dialogs and Storyboards
After identifying all required dialogs, the designers must document the dialogs.
Many options exist; there are no de facto standards. One approach is to list the
key steps followed for the dialog with a written description of what the user and
computer do at each step. The format for writing these steps can follow the
activity diagram described in Chapter 2 or the use case description format in
Chapter 4 or it can be more free form.
Designers can also document dialog designs by writing out how the user
and system might interact if they were two people engaged in conversation.
Sometimes, the designer can go right from the dialog to sketching a series of
screens that make the design more visible. Consider the Check out shopping
cart use case for the RMO CSMS. A dialog between the system and user might
follow this pattern:
SYSTEM: What would you like to do?
USER: I’d like to check out.
SYSTEM: Okay. What is your e-mail address or account number?
USER: My e-mail address is nwells22@gmail.com.
SYSTEM: Fine. You are Nancy Wells at 1122 Silicon Avenue. Correct?
USER: Yes.
SYSTEM: All items in your cart are in stock and can be shipped today.
Because your order subtotal is over $100, you qualify for free
UPS ground shipping (3–5 days). Other shipping options
include next day ($35.00), two day ($20.00), and USPS parcel
post ($11.70, 5–7 days). How would you like your items to be
shipped?
TABLE 7-3 RMO CSMS use cases grouped into first-cut menus by similar function and user
Menu Description Menu Choices (Use Cases) Intended User(s)
Shopping cart functions
(primary or reserve)
■ Search for item
■ View product comments and ratings
■ View accessory combinations
■ Switch carts (primary to reserve or vice versa)
■ Fill shopping cart
■ Empty shopping cart
■ Check out shopping cart
Customer
Sale creation ■ Search for item
■ View product comments and ratings
■ View accessory combinations
■ Create sale
Customer service and store sales
representatives
Order shipment ■ Ship items
■ Manage shippers
■ Create backorder
■ Create item return
■ Look up order status
■ Track shipment
Customer service and store sales
representatives
Customer order control ■ Look up order status
■ Track shipment
■ Create item return
■ Rate and comment on product
■ Provide suggestion
Customer
CHAPTER 7 ■ Designing the User and System Interfaces 199
USER: Free UPS ground shipping.
SYSTEM: We have a shipping address on file for you (1122 Silicon
Avenue). Do you want your order shipped to that address?
USER: No.
SYSTEM: To what address would you like the order shipped?
USER: John Wells, 1612 Jefferson Street NE, Albuquerque, NM 87123.
SYSTEM: Okay, the total charge is $125.56 ($117.90 item subtotal plus
$7.66 sales tax). Shall I charge that amount to your credit card
on file (a Visa with an account number ending in 0899)?
USER: Yes.
SYSTEM: Your payment has been approved, and your order is being
prepared for shipment. A confirmation e-mail has been sent to
you, and another will be sent with a shipment tracking number
when the order is shipped later today. Can I help you with
anything else?
USER: No.
There are many possible implementations of this scenario. Before decid-
ing on a specific implementation, an analyst often uses a technique called
storyboarding—that is, showing a sequence of sketches of the display screen
during a dialog. The sketches don’t have to be very detailed to show the basic
design concept. Designers can implement a storyboard with a visual programming
tool, such as Visual Basic, but using simple sketches drawn with a graphics pack-
age can help keep the focus on the fundamental design ideas and avoid biasing the
design to the capabilities of one specific application development tool.
Figure 7-7 shows the storyboard for the dialog based on the Check out
shopping cart use case. The screen formats are primitive though sufficiently
detailed to show all the information presented to and entered by the user. The
storyboard can be reviewed by users and designers to identify missing or extra-
neous information and to discuss various options for final implementation,
which might be based on a Web page shown on a large display, a traditional
Windows dialog, or the user interface for a mobile device app.
User-Interface Design
As computing devices have proliferated, available devices and technologies for
user interfaces have grown more powerful and diverse. Displays range from
large-format, flat-panel monitors used with desktop computers to much smaller
displays on tablets and cell phones. Displays can be supplemented with such
simple sounds as clicks and beeps, music, or speech. User input can be captured
via speech, touch screen, keyboard and mouse, or digital imaging (scanning).
As the range of user-interface technologies has increased, so has the need to
create multiple user interfaces. For example, e-commerce applications typically
have one user interface for desktop and laptop computers with large displays,
another for cell phones with small displays, and sometimes a third for midsized
displays, such as an iPad’s. There may even be variations in the user interface
among similar devices. For example, a user interface intended for a cell phone
might be a generic version designed to run within the phone’s Web browser or
it might be a customized app with different versions for iPhones and Android-
based phones.
Despite user interfaces’ wide range of sizes and capabilities, some of their
features are used on nearly all computing devices. We begin with a discussion
of the common features and then delve into differences.
storyboarding sequence of sketches of
the display screen during a dialog
200 PART 3 ■ Essentials of Systems Design
Guidelines for Designing Windows and Forms
After identifying dialogs, menus, and forms with a storyboard or another tech-
nique, the system developer can construct the user interface by using one of the
many prototyping tools available. Major issues to consider at this stage of inter-
face design include interface layout and formatting, data keying and entry, and
navigation controls.
Interface Layout and Formatting
High-quality interfaces are well laid out, with the fields easily identified and
understood. One of the best methods to ensure that interfaces are well laid out
is to prototype various alternatives and let users test them. Users will let you
know which characteristics are helpful and which are distracting. As you design
your interfaces, you should think about these:
■ Consistency—All the forms within a system need to have the same look and
feel. Consistent use of function keys, shortcuts, control buttons, color, and
layout makes a system much more useful and professional looking. If
FIGURE 7-7
Storyboard for the Check out shopping
cart dialog
CHAPTER 7 ■ Designing the User and System Interfaces 201
designing for an OS-supported interface (for example, Windows, iPhone, or
Android), follow published guidelines to improve app and form consistency.
■ Labels and headings—Labels should also be easy to identify and read. A
clear, descriptive title at the top of the interface helps to minimize confusion
about a form’s use.
■ Distribution and order—Related fields are usually placed next to each other
and can be grouped within a box. Tab order (movement of the cursor or
input focus) should follow the users’ usual reading order (left to right and
top to bottom in the United States and Europe). Blank space should be used
so content is easy to distinguish and read.
■ Fonts and colors—Variations in font face and size can help users distinguish
different parts of the form, but only a handful of font and size variations should
be used for larger screens and as few as possible should be used for small
screens. Too much variation is visually distracting and can cause eyestrain.
Follow similar guidelines for colors. Avoid using too many colors and ensure
that they are complementary. Also, be careful about mixing blue with yellow or
mixing red with green, lest you make it difficult for color-blind users.
Figure 7-8 shows the home page displayed when a customer views the
RMO Web site. The form includes two menu bars near the top that group
related functions within the same part of the page. If the user points to the item
Shop for Clothing, a submenu is displayed immediately below it with a similar
color scheme and font. If the user points to the item Shop for Gear, Shop for
Clothing is displayed in black text against a white background, Shop for Gear
is displayed in white text with a blue background, and the latter’s submenu
items are displayed instead. Labels for the menu items are widely spaced and
use an easy-to-read font. Except for the logo and picture, the page uses a small
number of complementary colors. The title is positioned near the top of the pic-
ture and stands out well from the picture background and other page elements.
Data Entry
Several types of data-entry controls are widely used in user interfaces, including:
■ Text box—a rectangular box that accepts text typed on a keyboard or
recognized from speech input. Example: Product ID in Figure 7-9.
■ List box—a text box that contains a list of predefined data values.
Example: Size in Figure 7-9.
FIGURE 7-8
The RMO home page
text box a rectangular box that accepts
text typed on a keyboard or recognized from
speech input
list box a text box that contains a list of
predefined data values
202 PART 3 ■ Essentials of Systems Design
■ Combo box—a text box that contains a predefined list of acceptable
entries but permits the user to enter a new value when the list doesn’t con-
tain the desired value.
■ Radio buttons—a group of choices from which the user selects only one;
the system then automatically turns off all other buttons in the group.
Example: Shipping Method in screen #4 of Figure 7-7.
■ Check boxes—similar to radio buttons, but the user can select multiple
items within the group.
These data-entry controls were developed for the Apple Macintosh and later
adopted by Windows and other operating systems. Early Web-browser stan-
dards had limited support for data-entry controls, but current versions support
the controls described previously and many others. iPhone and Android inter-
faces support similar controls.
The form in Figure 7-9 could be used by an RMO employee to look up
information about a product or to modify information in the catalog. Notice
how the title and labels make the form easy to read. The natural flow of the
form is top to bottom, with related fields placed together. Navigation and close
buttons are easily found but aren’t in the way of data-entry activity. The form
uses standard Microsoft Windows controls, including text, list, and combo
boxes. Though not visible in the figure, the form includes features that optimize
it for frequent users, including standard Windows keyboard shortcuts, top-
to-bottom and left-to-right tab order, and autocompletion of some fields based
on database lookups and patches to partially entered text.
Navigation and Support Controls
Standard window interfaces provide several controls for navigation and window
manipulation. For Microsoft applications, these controls consist of the
Minimize, Maximize, and Close buttons in the upper-right corner, horizontal
and vertical scrollbars, and so forth (see Figure 7-5 for specific examples). To
maintain consistency across applications, it is a good idea to use built-in or stan-
dardized navigation controls whenever possible.
FIGURE 7-9
The RMO Product Detail form
illustrating typical Microsoft Windows
data-entry controls
combo box a text box that contains a
predefined list of acceptable entries but permits
the user to enter a new value when the list
doesn’t contain the desired value
radio buttons a group of choices from
which the user selects only one; the system
then automatically turns off all other buttons in
the group
check boxes similar to radio buttons, but
the user can select multiple items within the
group
CHAPTER 7 ■ Designing the User and System Interfaces 203
Additional Guidelines for Web Browser User Interfaces
Most user-interface designers first learn to develop Web-based interfaces that
operate within a Web browser, such as Internet Explorer, Mozilla, Chrome, or
Safari. As Web technologies and standards have matured, the differences in
capability between browser-based interfaces (e.g., see Figure 7-11) and those
that use operating system support libraries (e.g., see Figure 7-9) have all but
disappeared. In many respects, browser-based interfaces have become more
powerful. Nonetheless, there are some differences that should be considered
when designing Web pages and browser-based forms.
Consistency
Consistency is especially critical within Web sites because most sites contain a
large number of pages that serve many different purposes and audiences. For
example, a typical corporate Web site provides e-commerce functions (e.g., online
ordering), information to investors, directory and public contact information, and
such product information as specifications and manuals. In essence, a corporate
Web site is the gateway to a large collection of systems serving many different
users and tasks. Despite the wide variety of users and tasks, the site as a whole is
a single system that should support a single look and feel and should project a
consistent, appealing, and desirable image for the corporation as a whole.
Most corporations spend considerable resources developing and maintain-
ing their Web pages and ensuring consistency among them. Thus, user-
interface designers of specific parts of the Web site must operate within the
constraints of a corporate-wide design. Cascading style sheets (CSS) are a
Web page encoding standard, and they enable a Web site designer to specify
parts of a page that will always look the same and parts that will vary by task
or audience. They can also constrain choices within the “variable” parts of
a page, including placement and appearance of toolbars and menus, fonts,
colors, and background images.
Figures 7-10 and 7-11 show additional pages from the RMO Web site that
are displayed as the customer searches for items and completes an order. The
menus, the outline surrounding detailed content, and the color and font options
are all constrained by CSS. When the user selects menu items or clicks links or
controls, the pages that are displayed reuse these elements to ensure consistent
appearance and user interaction.
FIGURE 7-10
Product detail page from RMO’s
Web site
cascading style sheets (CSS) Web
page encoding standard that enables a Web
site designer to specify parts of a page that will
always look the same and parts that will vary
by task or audience
204 PART 3 ■ Essentials of Systems Design
Performance Considerations
Web sites in general and browser-based forms in particular are sensitive to
application design and to the quality of the network connections between the
user’s computing device and the servers that host the site. When a user clicks a
hyperlink or a control that acts like a hyperlink, the browser sends information
entered by the user (if any) to a Web server, along with a request for a new
page. That information traverses multiple networks, is received and processed
by a server, and then the response (a new page to be displayed) is sent back
over the network. The delay between clicking a hyperlink and the display of the
requested page depends on the amount of data to be transmitted, the display
and network connection speed of the user computing device, the capacity of the
networks that carry the messages, and the number of other users and applica-
tions that are competing for that network capacity.
A trade-off exists between the amount of information transmitted between
the user’s computing device and the server and the time it takes for the page to
refresh; the more information that is transmitted, the longer the delay. That
trade-off is especially important for communication over the Internet, although
it is also a significant issue within corporate networks when user desktops and
servers share high-speed connections.
There is also a trade-off between the amount of information and other
data contained within a Web page and a Web-based application’s perfor-
mance. Pages with extensive information content or with embedded program-
ming can avoid or postpone page refreshes. For example, a page containing a
blank order form may be quite small. But many page refreshes will be
required if the browser must interact with the server to validate every input
as the user enters it. If the page containing the form also contains embedded
validation programs, then many server interactions and page refreshes can
be avoided. However, the initial download of the page will take longer
because there is more content and the validation programs may be slow if
the user computing device isn’t very powerful (e.g., a relatively inexpensive
cell phone).
Designers of Web-based user interfaces must perform a careful balancing
act, providing embedded “intelligence” within a page to avoid refreshes but not
overloading page content so as to avoid long delays when the user moves from
page to page. Thorough testing is the best way to ensure that the right balance
FIGURE 7-11
Shopping cart page from RMO’s
Web site
CHAPTER 7 ■ Designing the User and System Interfaces 205
has been found. For example, in Figure 7-12, the RMO Web page includes the
list of menu items for each of the main menus (e.g., Shop for Clothing) and sub-
menus (e.g., Women’s Apparel). As the user points to menu items, submenu
content appears automatically without the need for a page refresh. Contrast this
to the menu style shown in Figure 7-6(a), where the user must click a menu item
and wait for a new page with the next level menu to be downloaded and dis-
played. The RMO page takes longer to download due to its embedded menu
content and related programming, but it avoids page refreshes and their associ-
ated delays when displaying submenus.
Pictures, Video, and Sound
Web-based interfaces are often preferred for their inherent ability to mix text,
images, and sound. Powerful and compelling interfaces can be constructed, and
they are especially important in customer-facing systems. However, heavy use
of sound and images exacerbates the previously discussed performance issues
and also creates issues of compatibility. The performance implications are most
significant for video and high-resolution still images, which consume large
amounts of network capacity. For example, the background image in Figure 7-8
would require several hundred kilobytes of downloaded data for high-quality
display on a laptop or desktop computer. A smaller image could be substituted
for the smaller screen of a cell phone.
Compatibility issues arise for sound and video because there are so many
ways in which they can be encoded. Most Web browsers rely on add-on compo-
nents (sometimes called plug-ins) to play sounds and music and to display video.
Unfortunately, all plug-ins don’t work with all browsers, particularly older
browser versions. Thus, Web site designers must carefully choose which formats
and plug-ins will be used. In many cases, designers must create different pages
for different plug-ins and write complex programs to query browsers for which
plug-ins are present so the proper page can be downloaded.
Users with Disabilities
Designers of all user interfaces must be sensitive to the special needs of persons
with disabilities. Because the Web is such a fundamental resource in the modern
world, standards have been developed to ensure maximal usability for those who
are visually impaired or have limited dexterity. Visually impaired users typically
interact with Web pages via text-to-speech software that examines the content of
FIGURE 7-12
RMO’s home page, with three menu
levels
206 PART 3 ■ Essentials of Systems Design
a web page and reads it aloud. Users with limited dexterity often used voice-
recognition software to navigate through elements in a page and perform tasks
normally done with a keyboard, mouse, or touch screen. Both types of software
are examples of a general software class called assistive technologies.
The World Wide Web Consortium (W3C) is an organization that sets
standards for many aspects of the Web, including compatibility with assistive
technologies. As of June 2010, it has published a working draft of the User Agent
Accessibility Guidelines (UAAG), version 2.0. Although the draft hasn’t received
final approval as of this writing, many organizations use its guidelines or those of
earlier standards to guide the development of their Web-based user interfaces.
Additional Guidelines for Handheld Devices
Designing Web and app-based user interfaces for handheld devices presents
additional design challenges, including:
■ Small screen size
■ Small keyboards and touch screens
■ Limited network capacity
■ App design guidelines and toolkits
As of 2012, the size of a typical mobile phone screen is approximately
3.5 �2.25 inches and approximately 480� 320 pixels. The small screen area
provides relatively limited space in which to display content. Thus, designers
must pare down the user-interface content to ensure readability and to avoid
cluttering the screen. Figure 7-13 shows a sample mobile RMO Web page.
Compared to the larger Web pages shown earlier, the mobile page eliminates
many elements, including all images except a scaled-down logo. The remaining
textual content is abbreviated, and special attention has been paid to contrast
and layout in order to ensure maximal readability.
Small keyboards and touch screens also provide limited capabilities for user
input. Mobile device user interfaces must avoid detailed textual input whenever
possible and must provide touch controls that are well spaced and easy to
locate. On many phones, speech-to-text capabilities provided by the phone’s
operating system can be used to streamline data entry and navigation, although
the state of this technology still makes errors relatively common. Thus, designers
must not rely too heavily on speech recognition and must ensure that errors are
easily detected and corrected.
As of 2012, most mobile phones include connectivity through cell phone
networks and Wi-Fi. Most current cell phone networks, described as third-
FIGURE 7-13
RMO Web page layout for a
mobile phone
assistive technologies software (such
as text-to-speech and voice-recognition utilities)
that adapts user interfaces to the special needs
of persons with disabilities
CHAPTER 7 ■ Designing the User and System Interfaces 207
generation (3G) networks, were originally designed for voice communication,
with data communication grafted on as an afterthought. The throughput for 3G
networks is usually no more than one-tenth the throughput of a Wi-Fi network.
In 2010, deployment of 4G networks began in the United States. 4G networks
increase data throughput to approximately that of Wi-Fi, although many users
compete for access to that bandwidth.
Because mobile phone data throughput is much more limited than for other
computing devices, the performance issues described earlier become much more
significant design constraints. Page sizes must be limited to achieve acceptable
download and page-refresh rates. High-resolution graphics are used only when
absolutely necessary, and bandwidth-consuming video is typically avoided
entirely. For RMO’s mobile Web site, background graphics are completely
avoided and high-resolution images are only used when a customer wants to
view product details.
Some organizations deploy custom-developed apps that users can install on
their mobile devices. Those apps run within a mobile operating system, such as
the iPhone OS, iPad OS, or Google Android OS. Each OS provides a toolkit for
user-interface developers and a set of development guidelines that ensure maxi-
mal compatibility among apps. Whenever possible, user-interface developers
should use these toolkits and guidelines.
Identifying System Interfaces
The user interface includes inputs and outputs that directly involve system
users. But there are many other system interfaces that process inputs, interact
with other systems in real time, and distribute outputs with minimal human
intervention. We define system interfaces broadly as any inputs or outputs
with minimal or no human intervention. Included in this term are displayed
and printed outputs for people, such as billing notices, reports, printed
forms, and electronic outputs to other automated systems. Inputs that are
automated or come from nonuser-interface devices are also included. For
example, inputs from automated scanners, bar-code readers, optical character
recognition devices, and other computer systems are included as part of a
system interface.
The full range of inputs and outputs in an information system is illustrated
in Figure 7-14 and described here:
■ Inputs from and outputs to other systems—These are direct interfaces with
other information systems, normally formatted as network messages.
Electronic data interchange (EDI) and many Web-based systems are inte-
grated with other systems through direct messaging. For example, in
RMO’s integrated supply chain management system and its customer sup-
port system, the arrival of inventory items from a supplier might trigger the
shipment of a back-ordered item to a customer.
■ Highly automated inputs and outputs—These are captured by devices
(such as scanners) or generated by persons who start a process that pro-
ceeds without further human intervention. For example, an item in a
warehouse might pass a bar-code scanner that records its location as it
moves by on a conveyor belt. Also, monthly statements can be printed
and mailed through highly automated systems that place the statements
within envelopes, apply postage, presort them by ZIP code, and batch
them for delivery to the post office.
■ Inputs and outputs to external databases—These can supply input to or
accept output from a system. EDI messages are more commonly used, but
direct interaction with another system’s database may be more efficient. For
example, RMO’s purchasing system could directly place product orders into
a supplier’s database.
208 PART 3 ■ Essentials of Systems Design
One of the main challenges of EDI is defining the format of the transac-
tions. For example, General Motors—one of the early users of EDI—has thou-
sands of suppliers and thousands of different transaction types, each in a
different format. To complicate the situation further, each of these suppliers
may be linked via EDI with tens or hundreds of customers, many of whom may
also use EDI. So, a single type of transaction may have a dozen or more defined
formats. It is easy to see why it is so costly to set up and maintain EDI systems.
Even so, EDI is much more efficient and effective than paper transactions, which
must be printed and reentered.
Modern EDI messages are generally formatted in Extensible Markup
Language (XML). XML is an extension of HTML that embeds self-defining
data structures within textual messages. So, a transaction that contains data fields
can be sent with XML codes to define the meaning of the data fields. Many
newer systems are using XML to provide a common system-to-system interface.
Figure 7-15 illustrates a simple XML transaction that can be used to transfer
customer information between systems. Data are surrounded by XML tags, such
as
that appears between them.
FIGURE 7-14 The full range of inputs and outputs in an information system
Extensible Markup Language
(XML) extension of HTML that embeds
self-defining data structures within textual
messages
XML tags character sequences (such as
beginning, end, and meaning of the text
that appears between them
CHAPTER 7 ■ Designing the User and System Interfaces 209
XML is called an extensible language because users can define any tags
they want to use. For XML-based EDI, both systems must recognize the
tags, but after a complete set of codes is established, transactions can include
many different formats and still be recognized and processed. Many indus-
tries and professional organizations have standards committees that define
tags used for EDI.
Designing System Inputs
When designing inputs for a system, the system developer must focus on three
areas:
■ Identifying the devices and mechanisms that will be used to enter input
■ Identifying all system inputs and developing a list with the data content of
each
■ Determining what kinds of controls are necessary for each system input
Automated Input Devices
The primary objective is to enter or update error-free data into the system. The
key term here is error-free. Several good practices can help reduce input errors:
■ Use electronic devices and automatic entry whenever possible.
■ Avoid human involvement as much as possible.
■ If the information is available in electronic form, use that instead of reenter-
ing the information.
■ Validate and correct information at the time and location it is entered.
Automating data entry and avoiding human involvement are essentially differ-
ent sides of the same coin, although using electronic devices doesn’t automatically
avoid human involvement. When system developers think carefully about minimiz-
ing human input and using electronic input media, they can design a system with
fewer electronic input forms and avoid one of the most pervasive sources of input
error: typing mistakes by users. Here are some of the more common devices used
to avoid human keystroking:
■ Magnetic card strip readers
■ Bar-code readers
FIGURE 7-15
Customer information formatted as
an XML message
210 PART 3 ■ Essentials of Systems Design
■ Optical character recognition readers and scanners
■ Radio-frequency identification tags
■ Touch screens and devices
■ Electronic pens and writing surfaces
■ Digitizers, such as digital cameras and digital audio devices
■ Speech-recognition software
The next principle of error reduction is to reuse the information already
captured in automated form whenever possible. For example, consider the
automated airline check-in process for customers without checked baggage.
The customer swipes a credit card or driver’s license, and the system
queries its own database or an external database to identify the customer
and retrieve the reservation information. The retrieved information is dis-
played to the customer for confirmation. Because the retrieved information
is almost always correct, the task of data entry is reduced to a card swipe
and the press of a button on a touch screen, eliminating manual data entry
and its associated error rate. If the displayed data is incorrect, the final
principle of error reduction is applied by having the customer directly enter
corrected data.
Defining the Details of System Inputs
The fundamental approach that analysts use to identify user and system inputs
is to search documents developed during analysis activities for information
flows that cross the system boundary. The analyst examines system sequence
diagrams to identify the incoming and outgoing messages for each activity
or use case, and the design class diagrams to identify and describe the data
content.
Figure 7-16 is a partial system sequence diagram for an object-oriented ver-
sion of a payroll system. Various use cases have been combined to consolidate
the major inputs on a single diagram. The messages that cross the system
boundary identify inputs—system inputs and user-interface inputs. Three inputs
cross the system boundary:
■ updateEmployee (empID, empInformation)
■ updateTaxRate (taxTableID, rateID, rateInformation)
■ inputTimeCard (empID, date, hours)
The first input is part of a user interface. The other two inputs are from
external systems and don’t require user involvement. The information from
the tax bureau can be sent as a set of real-time messages or in the form of
a downloaded input file. The time card information could come into the
system in various formats. Perhaps physical time cards are entered via an
electronic card reader. Or an input from a subsystem, such as an electronic
employee ID card reader, might send time card information at the end of
every workday. These last two input messages need to be precisely defined,
including their transmission methods, contents, and formats. The point to
note here is that a sequence diagram provides a detailed perspective of the
user and system inputs to support the use case and the corresponding busi-
ness event.
Designing System Outputs
The primary purpose of system outputs is to present information in the right
place at the right time to the right people. The tasks in this activity focus on
four areas:
■ Determining the type of each system output
■ Making a list of required system outputs based on application design
CHAPTER 7 ■ Designing the User and System Interfaces 211
■ Specifying any necessary controls to protect the information provided in the
output
■ Designing and prototyping the output layout
The purpose of the first two tasks is to evaluate the various alternatives and
design the most appropriate approach for each needed output. The list of
required system outputs is normally specified during the analysis activities as
part of modeling system requirements. During design, the task is to coordinate
the production of those outputs with the methods that are identified during the
application architecture design.
The third task ensures that the designer evaluates the value of the informa-
tion to the organization and protects it. Frequently, organizations implement
controls on the inputs and system access but forget that output reports often
have sensitive information.
As with system inputs, outputs are indicated by messages in sequence dia-
grams that cross the system boundary—originating from an internal system
object and flowing to an external actor. Output messages that are based on an
individual object (or record) are usually part of the methods of that object
class. To report on all objects within a class, a class-level method is used. A
class-level method is a method that works on the entire class of objects, not a
single object. For example, a customer confirmation of an order is an output
message that contains information for a single order object. However, to pro-
duce a summary report of all orders for the week, a class-level method looks at
all the orders in the Order class and sends output information for each one
with an order date within the week’s time period.
Manager
updateEmployee (empID, empInformation)
:System
*updateTaxRate (taxTableID, rateID, rateInformation)
Employee
TaxBureauSystem
*inputTimeCard (empID, date, hours)
*signOut (time)
*signIn (time)
TimeCardSystem
FIGURE 7-16
Partial system sequence diagram for
payroll system use cases
212 PART 3 ■ Essentials of Systems Design
Designing Reports, Statements, and Turnaround Documents
Modern information systems have made information much more widely
available, with a proliferation of all types of reports—paper and electronic.
One of the major challenges organizations face today is to organize the over-
whelming amount of information in order to support managerial decision-
making. One of the most difficult aspects of output design is to decide what
information to provide and how to present it to avoid a confusing mass of
complex data.
Report Types
There are four types of output reports commonly provided by an information
system:
■ Detailed reports—These contain specific information on business
transactions—for example, a list of all overdue accounts, with each line of
the report presenting information about a particular account. A credit
manager could use this report to research overdue accounts and determine
actions to collect past-due amounts.
■ Summary reports—These are often used to recap periodic activity. An
example of this is a daily or weekly summary of all sales transactions, with
a total dollar amount of sales. Managers often use this type of report to
track departmental or division performance.
■ Exception reports—These provide details or summary information about
transactions or operating results that fall outside of a predefined normal
range of values. When business is progressing normally, no report is
needed. For example, a manufacturing organization might produce a
report that lists parts that fail quality control tests more than 0.2 percent
of the time.
■ Executive reports—These are used by high-level managers to assess over-
all organizational health and performance. They thus contain summary
information from activities within the company. They might also show
comparative performance with industry-wide averages. Using these reports,
executives can assess the competitive strengths or weaknesses of their
companies.
Internal versus External Outputs
Printed outputs are classified as either internal outputs or external outputs.
Internal outputs are produced for use within the organization. The types of
reports just discussed fall under this category. External outputs include state-
ments, notices, and other documents that are produced for people outside the
organization. Because they are official business documents for an outside audi-
ence, they need to be produced with the highest-quality graphics and color.
Examples include monthly bank statements, late notices, order confirmation
and packing slips (such as those provided to Ridgeline Mountain Outfitters’ cus-
tomers), and legal documents (such as insurance policies). Some external outputs
are referred to as turnaround documents because they are sent to a customer
but include a tear-off portion that is returned for input later, such as a bill that
contains a payment stub to be returned with a check. All these printed outputs
must be designed with care, but organizations have many more options for
printed output. Today’s high-speed color laser printers enable all types of
reports and other outputs to be produced.
An example of a detailed report for an external output is shown in
Figure 7-17. When a customer places an order on the Web, the system will
be able to print the order information as a confirmation. Of course, a user
can always print the Web screen display by using the browser’s print capabil-
ity, but doing so is time consuming because it includes all the graphics and
detailed reports reports that contain
specific information on business transactions
summary reports reports that summa-
rize detail or recap periodic activity
exception reports reports that provide
details or summary information about transac-
tions or operating results that fall outside a
predefined normal range of values
executive reports reports used by high-
level managers to assess overall organizational
health and performance
internal outputs reports or other outputs
produced for use within the organization
external outputs reports or other out-
puts produced for use by people outside the
organization
turnaround documents external out-
puts that includes one or more parts intended to
be returned with new data or information
CHAPTER 7 ■ Designing the User and System Interfaces 213
index links on the page. It is much more user friendly to provide shoppers
with a “printer friendly” order confirmation in addition to a Web-based dis-
play, as shown in Figure 7-11.
Figure 7-18 is an example of an internal output based on inventory
records. The report includes detailed and summary sections, although the figure
doesn’t show the summary section. A control break is the data item that divides
the detailed section into groups. In this example, the control break is on the
product item number—called ID on the report. Whenever a new value of the ID
is encountered on the input records, the report begins a new control break sec-
tion. The detailed section lists the transactions of records from the database,
and the summary section provides totals and recaps of the information. The
report is sorted and presented by product. However, within each product is a
list of each inventory item showing the quantity currently on hand.
External outputs can consist of complex, multiple-page documents. A
well-known example is the set of reports and statements that you receive with
your car insurance statement. This statement is usually a multipage document
consisting of detailed automobile insurance information and rates, summary
pages, turnaround premium payment cards, and insurance cards for each auto-
mobile. Another example is a report of employment benefits, with multiple
pages of information customized to the individual employee. Sometimes, the
documents are printed in color, with special highlighting or logos. Figure 7-19
is one page of an example report for survivor protection from an employee
benefit booklet. The text is standard wording, and the numbers are customized
to the individual employee.
FIGURE 7-17 RMO shopping cart order report
05 / 15
Description
Customer Name: Fred Westing
Customer Number: 6747222
Product ID Color Price
Extended
PriceSizeQty
Payment Information:
Account Number
American Express MasterCard VISA Discover
Expiration Date
MO YR
Shipping Information:
Shipping Method: Normal 7–10 day
Shipping Company: UPS
Tracking Number: To be sent via email
Email Address: FredW253@aol.com
Shipping Address:
936 N Swivel Street
Hillville, Ohio 59222
Order Number: 4673064
Today’s Date: May 18, 2013
Billing Address:
936 N Swivel Street
Hillville, Ohio 59222
Ridgeline Mountain Outfitters—Shopping Cart Order
1 458238WL
1 347827OP
2 8759425SH
1 5858642OR
Jordan Men’s Jumpman Team J
Woolrich Men’s Backpacker Shirt
Nike D.R.I. – Fit Shirt
Puma Hiking Shorts
Oatmeal Plaid
Black
Tan
$119.99
$41.99
$30.00
$15.00
$119.99
$41.99
$60.00
$15.00
$236.98
Shipping
Subtotal
Tax
Total
$8.50
$11.25
$256.73
X X X X – X X X X – X X X X – 5 7 8 4
Thank you for your order. It is a pleasure to serve you.
Check back next week for new weekly specials!!
X
12
XL
M
L
White/ Light Blue
214 PART 3 ■ Essentials of Systems Design
Electronic Reports
Organizations use various types of electronic reports, each serving a different
purpose and each with its respective strengths and weaknesses. Electronic
reports provide great flexibility in the organization and presentation of informa-
tion. In some instances, screen output is formatted like a printed report but
displayed electronically. However, electronic reports can also present informa-
tion in many other formats. Some have detailed and summary sections, some
show data and graphics together, others contain boldface type and highlighting,
others can dynamically change their organization and summaries, and still
others contain hotlinks to related information. An important benefit of elec-
tronic reporting is that it is dynamic; it can change to meet the specific needs
of a user in a particular situation. In fact, many systems provide powerful
FIGURE 7-18 RMO inventory report
Ridgeline Mountain Outfitters — Products and Items
ID Season Category Supplier DiscontinuedUnit Price Special Price
Description Outdoor Nylon Jacket with Lining
RMO12587 Spr/Fall Mens C 8201 $39.00 $34.95 No
Size Color Style Units in Stock Reorder Level Units on Order
Small
Medium
Large
Xlarge
Blue
Green
Red
Yellow
Blue
Green
Red
Yellow
Blue
Green
Red
Yellow
Blue
Green
Red
Yellow
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
150
ID Season Category Supplier DiscontinuedUnit Price Special Price
Description Hiking Walkers with Patterned Tread Durable Uppers
RMO28497 All Footwe 7993 $49.95 $44.89 No
Size Color Style Units in Stock Reorder Level Units on Order
7
8
9
10
11
12
13
Brown
Tan
Brown
Tan
Brown
Tan
Brown
Tan
Brown
Tan
Brown
Tan
Brown
Tan
389
422
597
521
633
654
836
954
862
792
754
788
830
921
100
100
100
100
100
100
100
100
100
100
100
100
100
100
691
723
569
827
722
756
698
590
1289
1455
1329
1370
1498
1248
1266
1322
CHAPTER 7 ■ Designing the User and System Interfaces 215
ad hoc reporting capabilities so users can design their own reports on the fly.
For example, an electronic report can provide links to further information.
One technique, called drill down, allows the user to activate a “hot spot
hyperlink” on the report, which tells the system to display a lower-level report
that provides more detailed information. For example, Figure 7-20 contains a
monthly sales summary. The report provides sales totals grouped by product
category and season. However, if the user clicks the hotlink for any season, a
detailed report pops up with more detailed sales data.
Another variation of this hotlink capability lets the user correlate informa-
tion from one report to related information in another report. Most people are
familiar with hotlinks from using their Internet browsers. In an electronic
report, hotlinks can refer to other information that correlates or extends the
primary information. This same capability can be very useful in a business
report that, for example, links the annual statements of key companies in a
certain industry.
Another dynamic aspect of electronic reports is the capability to view the
data from different perspectives. For example, it might be beneficial to view sales
commission data by region, by sales manager, by product line, or by time period
FIGURE 7-19 A sample employee benefit report
drill down user-interface design technique
that enables a user to select summary infor-
mation and view supporting detail
216 PART 3 ■ Essentials of Systems Design
or to compare the current data with last season’s data. Instead of printing all
these reports, you can use an electronic format to generate the different views as
needed. Sometimes, long or complex reports include a table of contents, with
hotlinks to the various sections of the report. Some report-generating programs
provide an electronic reporting capability that includes all the functionality found
on Web pages, including frames, hotlinks, graphics, and even animation.
Graphical and Multimedia Presentation
The graphical presentation of data is one of the greatest benefits of the informa-
tion age. Tools that permit data to be presented in charts and graphs have made
information reporting much more user friendly for printed and electronic for-
mats. Information is being used more and more for strategic decision-making as
businesspeople examine their data for trends and changes. In addition, today’s
systems frequently maintain massive amounts of data—much more than people
can review. The only effective way to use much of this data is by summarizing
and presenting it in graphical form. Figure 7-21 presents a pie chart and a bar
graph—two common ways to present summary data.
Multimedia outputs have become available recently as multimedia tool
capabilities have increased. Today, it is possible to see a graphical (possibly ani-
mated) presentation of the information on a screen and have an audio descrip-
tion of the salient points. Combining visual and audio output is a powerful way
to present information. (Of course, video games are pushing the frontier of vir-
tual reality to include visual, audio, tactile, and olfactory outputs.)
FIGURE 7-20 RMO summary report with drill down to the detailed report
Monthly Sales Summary
Year 2013 Month January
Category Season Web Telephone Mail Total
Code Sales Sales Sales Sales
Footwear All $ 289,323 $ 1,347,878 $ 540,883 $ 2,178,084
Men’s Clothing Spring $ 1,768,454 $ 2,879,243 $ 437,874 $ 4,691,484
Summer 213,938 387,121 123,590 724,649
Fall 142,823 129,873 112,234 384,930
Winter 2,980,489 6,453,896 675,290 10,109,675
All 1,839,729 4,897,235 349,234 7,086,198
Totals $ 6,945,433 $14,747,368 $ 1,698,222 $ 23,391,023
Women’s Spring 387,432 $ 454,329 $ 123,849 965,610
Clothing Summer 89,322 187,987 34,879 312,188
Fall 78,398 99,873 56,890 235,161
Winter 782,982 899,490 278,389 1,960,861
All 778,394 678,987 328,122 1,785,503
Totals $ 2,116,528 $ 2,320,666 $ 822,129 $ 3,359,323
782,92,982 899,49090 278,389 1,960,8611
77778,394 678,98,987 328,12222 1,785,,50503
116,528 $ 2,3,3220,666 $ 8222 1,129 $ 3,353599,323
Monthly Sales Detail
Year 2013 Month January Category Men’s Clothing Season Winter
Product Product Web Telephone Mail Total
ID Description Sales Sales Sales Sales
RMO12987 Winter Parka $ 1,490,245 $ 3,226,948 $ 337,640 $ 5,054,833
RMO13788 Fur-Lined Gloves 149,022 322,695 33,765 505,482
RMO23788 Wool Sweater 596,097 1,290,775 135,058 2,021,930
RMO12980 Long Underwear 298,050 645,339 68,556 1,003,005
RMO32998 Fleece-Lined Jacket 447,075 1,258,079 100,271 1,805,425
Total $ 2,980,489 $ 6,743,836 $ 675,290 $ 10,394,615
CHAPTER 7 ■ Designing the User and System Interfaces 217
As the design of system outputs progresses, it is beneficial to evaluate the var-
ious presentation alternatives. Reporting packages can be integrated into the sys-
tem to provide a full range of reporting alternatives. Developers should carefully
analyze each output report to determine the objective of the output and to select
the form of the output that is most appropriate for the information and its use.
Chapter Summary
Inputs and outputs can be classified as system interfaces or
user interfaces. The user interface is everything the user
comes into contact with while using the system—physically,
perceptually, and conceptually. There are many different
ways to describe the user interface, including the desktop
metaphor, the document metaphor, and the dialog meta-
phor. Dialog design starts with identifying dialogs based
on activities or use cases. A storyboard showing sketches
of screens in sequence can be drawn to convey the design
for review with users, or prototypes can be created using a
tool such as Visual Basic. The object-oriented approach
provides UML models that can document dialog designs,
including sequence diagrams, activity diagrams, and class
diagrams.
Each screen and form used in a dialog needs to be
designed, and there are guidelines for the layout, selection
of input controls, navigation, and help. These guidelines
apply to windows forms and to browser forms used in
Web-based systems. Designing a dialog for a Web site is
similar to creating any other dialog, except users need
more information and more flexibility. Additional Web
design guidelines apply to designing for the computer
medium, designing the whole site, and designing for the
user. In addition, because a Web site reflects the com-
pany’s image to customers, graphic designers and market-
ing professionals should be involved.
When designing system inputs, the developer identi-
fies the input devices and identifies all system inputs and
lists the data content of each. To develop a list of the
inputs to the system, designers use sequence and design
class diagrams. The process to design the outputs from
the system consists of the same steps as for input design.
FIGURE 7-21 Sample pie chart and bar graph reports
Men’s Clothing Sales – January 2013
Web Sales
Telephone Sales
Store Sales
Men’s Clothing Sales by Season – January 2013
Web Sales
Telephone Sales
Store Sales
7,000,000
6,000,000
5,000,000
4,000,000
3,000,000
2,000,000
1,000,000
0
Spring Summer Fall Winter
218 PART 3 ■ Essentials of Systems Design
Key Terms
affordance 193
assistive technologies 207
cascading style sheets (CSS) 204
check boxes 203
combo box 203
desktop metaphor 191
detailed reports 213
dialog metaphor 191
direct manipulation metaphor 191
document metaphor 191
drill down 216
exception reports 213
executive reports 213
Extensible Markup Language (XML) 209
external outputs 213
human-computer interaction (HCI) 193
internal outputs 213
list box 202
metaphors 191
radio buttons 203
storyboarding 200
summary reports 213
system interfaces 189
text box 202
turnaround documents 213
usability 190
user interfaces 189
user-centered design 189
visibility 193
XML tags 209
Review Questions
1. Why is interface design often referred to as dialog
design?
2. What are the three aspects of the system that make
up the user interface for a user?
3. What are some examples of the physical, percep-
tual, and conceptual aspects of the user interface?
4. What are the three metaphors used to describe
human-computer interaction?
5. A desktop on the screen is an example of which of
the three metaphors used to describe human-
computer interaction?
6. What type of document allows the user to click a
link and jump to another part of the document?
7. List and briefly describe four guidelines for interface
layout and formatting that apply to all types of user
display and input devices. What additional guide-
lines apply to Web sites/pages and user interfaces
for mobile computing devices?
8. What is the technique that shows a sequence of
sketches of the display screen during a dialog?
9. What UML diagram can be used to show how the
interface objects are plugged in between the actor
and the problem domain classes during a dialog?
10. What are some of the input controls that can be
used to select an item from a list?
11. What two types of input controls are included in groups?
12. What popular analogy is used for direct customer
access with a Web site when customers shop online?
13. What does XML stand for? Explain how XML is
similar to HTML. Also discuss the differences
between XML and HTML.
14. How do you identify the data fields of a system
interface by using UML and the object-oriented
approach?
15. What are the different considerations for output
screen design and output report design?
16. What is meant by drill down? Give an example of
how you might use it in a report design.
17. What is the danger from information overload?
What solutions can you think of to avoid it?
Problems and Exercises
1. Think of all the software you have used. What are
some examples of ease of learning conflicting with
ease of use?
2. Visit some Web sites and then identify all the con-
trols used for navigation and input. Are they all
obvious? Discuss some differences in visibility and
affordance among the controls.
3. A common maxim for designing a man-machine
interface is that it is better to change the machine
than to try to change the human to accommodate
CHAPTER 7 ■ Designing the User and System Interfaces 219
the machine. Are there machines (or systems) that
you use in your daily life that have room for
improvement? Are the current generations of
Windows PC and Apple Mac as usable as they
might be? If not, what improvements can you sug-
gest? Is the World Wide Web as usable as it might
be? If not, what improvements can you suggest? Are
we just beginning to see some breakthroughs in
usability, or have most of the big improvements
already been made?
4. Download and install App Inventor from Google.
Use it to develop a prototype interface that imple-
ments the storyboard in Figure 7-7.
5. Evaluate the course registration system at your
university. List the basic steps of a user’s dialog
with the system. What are some of the problems
with the system from the perspective of ease of
learning and ease of use? In what ways is the system
inflexible? In what ways is needed information not
available? Is too much information provided that
distracts from the task at hand?
6. Evaluate the online catalog system at your univer-
sity library. Write a dialog that shows the interac-
tion between the user and the system. Rewrite the
dialog to improve it. Create a storyboard to show
how your design would look and feel.
7. Find a Web site with direct customer ordering. Browse
through some product descriptions and note the
design of the dialog and the Web pages. What do you
like and dislike about the design? Evaluate the Web
site based on visibility and affordance. Does the site
achieve an optimal balance between the number of
page refreshes and the delay between page refreshes?
Would your answer change if you were using a
different computing device, a different network, or
accessing the system at a different time of day?
Case Study
Video Rental Service
Develop a storyboard that encompasses the following
sample dialog. The system supports rental and download
of movies or television shows to a computer or digital
video recording and playback device. A dialog between
the system and user might follow this pattern:
SYSTEM: What would you like to do?
USER: I’d like to rent a movie.
SYSTEM: Okay. What is your e-mail address or
account number?
USER: My e-mail address is nwells22@gmail.com.
SYSTEM: Fine. You are Nancy Wells at 1122
Silicon Avenue. Correct?
USER: Yes.
SYSTEM: What movie do you want to rent?
USER: Titanic.
SYSTEM: I have two available movies named Titanic.
The first was released in 1953 and stars
Barbara Stanwyck and Clifton Webb. The
second was released in 1997 and stars
Leonardo DiCaprio and Kate Winslet. Which
do you want to rent?
USER: Both.
SYSTEM: Fine. That is Titanic (the 1953 release) with a
rental charge of $2.99 for seven days and
Titanic (the 1997 release) with a rental charge
of $5.99 for seven days. Would you like to
add more rentals?
USER: That’s all.
SYSTEM: Okay. The total charge is $8.98. Shall I
charge that amount to your credit card file
(a Visa with an account number ending in
0899)?
USER: Yes.
SYSTEM: Your movies are downloading to your
computer now. They will expire at midnight
seven days from now.
USER: Okay. Thanks.
220 PART 3 ■ Essentials of Systems Design
RUNNING CASE STUDIES
Community Board of Realtors
One of the key use cases for the multiple listing service
system is Create new listing, where the realtor enters
all the important information about a new listing he or
she has obtained. Realtors want to be able to create a
new listing as soon as possible so other realtors and
potential buyers will find the listing online. Some like
to enter the information while talking with the owner
or while inspecting the property. Realtors are rarely in
their offices these days, so being able to create a new
listing on a mobile device is a key feature of the multi-
ple listing service system.
Consider the information that must be entered
when creating a new listing, and list the dialog steps
that are necessary. Keep in mind that when designing
for a smartphone, less information can be entered in
each step compared to a full screen Web application.
Also keep in mind that typing iserror-prone and awk-
ward for many users, so think about opportunities to use
check boxes, radio buttons, and list boxes to aid selection.
Create a storyboard of this use case for a mobile device,
showing each step of the dialog that maximizes the use of
check boxes, radio buttons, and list boxes.
On the Spot Courier Services
Review the case description and your solution for the
Web scenario of the use case Request package pickup
from Chapter 5. Then, using a presentation tool, such as
Microsoft PowerPoint or Apple Keynote, create a story-
board of the Web pages necessary to support the use case.
The case description in Chapter 5 also identified
a new use case, which we can call View scheduled
pickups/deliveries. Based on current technology, write
a dialog showing how this might be supported with
a portable digital device. You may use any current
technology that you deem applicable, such as GPS
tracking, map and directions software, and real-time
updates of pickup locations. Consider the possibility
that the driver may want to get an overview of his or
her stops for the entire run, view the next few stops, or
just get directions to the next stop.
The Spring Breaks ‘R’ Us Travel Service
The Spring Breaks R Us social networking subsystem
requires an intuitive and engaging user-interface design
for mobile devices. But the social networking subsystem
can also play an important role in resort security. For
example, each resort could use traveler location, interests,
activities, and “likes”—all of which are available through
the application—to monitor the well-being of travelers
staying at the resort. Most spring break travelers are
young, and their parents are concerned about their
safety—particularly at isolated resorts in foreign coun-
tries. SBRU and the participating resorts could keep
track of where travelers are and who they are near, moni-
tor messages about activities and parties, and anticipate
crowded conditions or vulnerable travelers wandering
off-site. Alerts could notify security if conditions veer
away from normal or if messages indicate there are pro-
blems. For example, if the pool is overcrowded, some
action can be taken. If messages refer to places off-site
that are known to be dangerous, security can make an
extra patrol. Although many people find this use of
private information objectionable, others—particularly
parents—find it essential.
Imagine resort security with a large, wide-screen
monitor tracking traveler activities. Design a main screen
that includes multiple locations, paths and roads, traveler
location and status, messages traveling from traveler to
traveler, and other features that security should monitor.
Create a storyboard that shows an example of a pop-up
alertand a menu of options that security might select after
an alert. Should you also show security the staff mem-
bers’ locations and status? How about clicking security
staff members to send them a message? How about click-
ing a location to turn up the lights or to close a security
gate? Be creative as you think through the design possi-
bilities. You should include four or five screen layouts for
the storyboard.
(continued on page 222)
CHAPTER 7 ■ Designing the User and System Interfaces 221
Sandia Medical Systems Real-Time Glucose Monitoring
Developers have made these choices regarding format
and transmission methods between the cell phone app
and server-based software components:
■ Glucose-level readings within a normal range will
be sent to the server once per hour as XML mes-
sages via secure HTTP. Because glucose levels are
stored every five minutes by the cell phone app, a
normal message to the server will contain 12 glu-
cose levels and time stamps. If more than two
glucose levels in a row are outside the normal
range, the cell phone app will transmit them to the
server immediately.
■ Physicians and other medical personnel will initi-
ate direct contact with a patient via text message,
voice message, or real-time voice call.
■ Changes to alert conditions and updates to soft-
ware will be sent from the server to a patient’s cell
phone app as XML messages. The XML messages
will be sent immediately after the cell phone app
has transmitted glucose levels to the server.
No industry group has yet defined XML tags suit-
able for the RTGM application. Thus, designers must
develop appropriate tags for this application.
If you aren’t already familiar with XML, do at
least 30 minutes of background research on the Web.
Refer to the class diagram in the Chapter 4 RTGM
case to determine required data content. Then, design
XML tags and message formats suitable to transmit
time-stamped glucose levels from the cell phone app
to the server and to transmit updated alert conditions
from the server to the cell phone app.
If medical personnel choose to send a text message
to the patient, how will the server transmit that mes-
sage? To help answer that question, research Short
Message Service (SMS), Enhanced Messaging Service
(EMS), and SMS gateways.
Further Resources
Randolph G. Bias and Deborah J. Mayhew, Cost-
Justifying Usability: An Update for the Internet
Age (2nd ed). Morgan Kaufmann, 2005.
Paul C. Brown, Implementing SOA: Total
Architecture in Practice. Addison-Wesley, 2008.
Patrick Carey, New Perspectives on Creating Web
Pages with HTML, XHTML, and XML (3rd ed.).
Cengage Learning, 2010.
Donald Norman, The Design of Everyday Things.
Basic Books, 2002.
Janice Redish, Letting Go of the Words: Writing
Web Content that Works. Morgan Kaufmann,
2007.
Ben Shneiderman, Catherine Plaisant,
Maxine Cohen, and Steven Jacobs, Designing
the User Interface: Strategies for Effective
Human-Computer Interaction (5th ed.). Addison
Wesley, 2009.
Joel Sklar, Principles of Web Design (5th ed.).
Cengage Learning, 2012.
(continued from page 221)
222 PART 3 ■ Essentials of Systems Design
PART 4
Projects and Project Management
Chapter 8
Approaches to System
Development
Chapter 9
Project Planning and Project
Management
Optional Online Chapter C
Project Management
Techniques
223
This page intentionally left blank
8
Approaches to System
Development
Chapter Outline
■ The Systems Development Life Cycle
■ The Support Phase
■ Methodologies, Models, Tools, and Techniques
■ Two Approaches to Software Construction and Modeling
■ Agile Development
Learning Objectives
After reading this chapter, you should be able to:
■ Compare the underlying assumptions and uses of a predictive and an adaptive
system development life cycle (SDLC)
■ Describe the key activities and tasks of information system support
■ Explain what comprises a system development methodology—the SDLC as
well as models, tools, and techniques
■ Describe the two overall approaches used for software construction and
modeling: the structured approach and the object-oriented approach
■ Describe the key features of Agile development
225
OPENING CASE
Development Approaches at Ajax Corporation, Consolidated
Concepts, and Pinnacle Manufacturing
Kim, Mary, and Bob, graduating seniors, were discussing
their recent interview visits to companies that recruit com-
puter information system (CIS) majors on their campus. All
agreed that they had learned a lot by visiting the compan-
ies, but they also all felt somewhat overwhelmed.
“At first, I wasn’t sure I knew what they were talking
about,” Kim said. During her on-campus interview, she had
impressed Ajax Corporation with her knowledge of data
modeling. And when she visited the company’s home
office data center for her second interview, the inter-
viewers spent a lot of time describing the company’s sys-
tem development methodology.
“They said to forget everything I learned in school,”
Kim continued. “That got my attention.”
Ajax Corporation had purchased a complete develop-
ment methodology called IM One from a small consulting
firm. Most of its employees agreed that it worked fairly
well, having invested a lot of time and money learning
and adapting to it. Those who had worked for Ajax for a
long time thought IM One was unique, and they were
very proud of it.
“Then, they started telling me about their SDLC, itera-
tions, business events, data flow diagrams, and entity-
relationship diagrams—things like that,” Kim said. She had
recognized that many of the key concepts in the IM One
methodology were fairly standard models and techniques
from the structured approach to system development.
“I know what you mean,” said Mary, a very talented
programmer who knew just about every popular program-
ming language available. “Consolidated Concepts went on
and on about things like OMG, UML, UP, and people
named Booch, Rumbaugh, and Jacobson. It turns out
they use the object-oriented approach to develop their sys-
tems, and they like the fact that I know Java and C# and
.NET. There was no problem once I got past all the termi-
nology they used.”
Bob, who interviewed with Pinnacle Manufacturing,
had a different story to tell. “A few people said analysis
and design are no longer a big deal,” he said. “And I’m
thinking, ‘Knowing that would have saved me some time
in school.’”
Pinnacle has a small system development group sup-
porting its manufacturing and inventory control. “They said
they like to jump in and get to the code as soon as possi-
ble,” Bob said. “Little documentation and not much of a
project plan. They showed me some books on their
desks, and it looked like they had been doing a lot of read-
ing about analysis and design. I could see they were using
Agile development and Agile modeling techniques and
focusing on best practices required for their small projects.
It turns out they just organize their work differently by look-
ing at risk and writing user stories while building proto-
types. I recognized some sketches of class diagrams and
sequence diagrams on the boss’s whiteboard, so I felt
fairly comfortable.”
Kim, Mary, and Bob agreed that there was much to
learn in these work environments but also that there are
many different ways to describe the key concepts and
techniques they learned in school. They were all glad
they focused on the fundamentals in their CIS classes
and that they had been exposed to a variety of approaches
to system development.
Overview
As the experiences of Kim, Mary, and Bob demonstrate, there are many ways to
develop an information system, and doing so is very complex. Project managers
rely on a variety of aids to help them with every step of the process. So far in
this text, you have learned about analysis and design models and techniques,
and now you will learn more about the overall system development process.
You learned about the systems development life cycle (SDLC) in Chapter 1.
That particular SDLC included six core processes and multiple iterations. This
chapter discusses the SDLC in more detail, including some variations found in
industry. Additionally, an information system requires extensive support after
deployment, so the support phase of the SDLC is also discussed.
The entire process of developing an information system requires more than
just an SDLC. A system development methodology includes more specific
instructions for completing the activities of each core process by using specific
models, tools, and techniques. This chapter also reviews two main approaches
to defining the information system technology and software development used
for business systems: the traditional approach and the object-oriented approach.
226 PART 4 ■ Projects and Project Management
The traditional approach refers to structured software development, which
describes software as a hierarchy of programs and modules and uses structured
analysis, structured design, and structured programming. The object-oriented
approach refers to object-oriented software development, which describes soft-
ware as a set of interacting objects. It uses such models as object class diagrams,
sequence diagrams, state charts, and object-oriented programming (OOP).
Finally, Agile development is discussed as a philosophy that guides a develop-
ment project. It focuses on techniques and methods that encourage more user
involvement and allow for more flexible projects with changing requirements.
The Systems Development Life Cycle
Chapter 1 demonstrated how analysis and design models and techniques are used
to solve business problems by building an information system. For problem-
solving work to be productive, it needs to be organized and goal oriented.
Analysts achieve these results by organizing the work into projects. As defined in
Chapter 1, a project is a planned undertaking, with a beginning and end, that
produces a well-defined result or product. The term information system develop-
ment project refers to a planned undertaking that produces a new information
system. Some system development projects are very large, requiring thousands of
hours of work by many people and spanning several calendar years. In the RMO
case study introduced in Chapter 2, the system being developed is a moderately
sized computer-based information system requiring a moderately sized project.
Many system development projects are smaller, lasting a few months.
For a system development project to be successful, it must be planned and
organized. The plan must include a comprehensive set of activities that flow in the
proper sequence. Otherwise, activities are omitted or work may need to be done
multiple times. The end result, of course, is producing a high-quality information
system as measured by its reliability, robustness, efficiency, and fitness for purpose.
The systems development life cycle (SDLC), which was introduced in Chapter 1, is
a fundamental concept in the success of information system development projects.
The SDLC provides a way to think about the development of a new system
as a progressive process, much like a living entity. We can expand this concept
and view the information system as having a life itself; in fact, we often refer to
the life cycle of a system. During its life cycle, an information system is first con-
ceived, then it is designed, built, and deployed as part of a development project,
and, finally, it is put into production and used to support the business.
However, even during its productive use, a system is still a dynamic, living
entity that is updated, modified, and repaired through smaller projects.
Several projects may be required during the life of a system, first to develop
the original system and then to upgrade. In this chapter—and in the rest of this
textbook—we will focus on the initial development project, not on the support
projects. In other words, our primary concern is with getting the system devel-
oped and deployed.
In today’s diverse development environment, there are many approaches to
developing systems, and they are based on different approaches to the SDLC.
Although it is difficult to find a single, comprehensive classification system that
encompasses all the approaches, one useful way to categorize them is along a
continuum from predictive to adaptive (see Figure 8-1).
A predictive approach to the SDLC assumes that the development project
can be planned and organized and that the new information system can be
developed according to the plan. Predictive SDLCs are useful for building
systems that are well understood and defined. For example, a company may
want to convert its old networked client/server system to a newer Web-based
system that includes a smartphone app. In this type of project, the staff already
understands the requirements very well, and no new processes need to be
predictive approach to the SDLC
an approach that assumes the project can be
planned in advance and that the new information
system can be developed according to the plan
CHAPTER 8 ■ Approaches to System Development 227
added. Thus, the project can be carefully planned, and the system can be built
according to the specifications.
An adaptive approach to the SDLC is used when the system’s requirements
and/or the users’ needs aren’t well understood. In this situation, the project can’t
be planned completely. Some system requirements may need to be determined
after preliminary development work. Developers should still be able to build the
solution, but they need to be flexible and adapt the project as it progresses. Recall
that the Tradeshow system described in Chapter 1 used this approach.
In practice, any project could have—and most do have—predictive and
adaptive elements. That is why Figure 8-1 shows them as endpoints along a
continuum, not as mutually exclusive categories. The predictive approaches are
more traditional and were conceived during the 1970s through the 1990s.
Many of the newer, adaptive approaches have evolved with object-oriented
technology and Web development; they were created during the late-1990s and
into the 21st century. Let us look at the more predictive approaches and then
examine the newer adaptive approaches.
Traditional Predictive Approaches to the SDLC
The development of a new information system requires a number of different but
related sets of activities. In predictive approaches, there is a group of activities
that identifies the problem and secures approval to develop a new system; this is
called project initiation. A second group of activities, called project planning,
involves planning, organizing, and scheduling the project. These activities map
out the project’s overall structure. A third group—analysis—focuses on discover-
ing and understanding the details of the problem or need. The intent here is to
figure out exactly what the system must do to support the business processes. A
fourth group—design—focuses on configuring and structuring the new system
components. These activities use the requirements that were defined earlier to
develop the program structure and the algorithms for the new system. A fifth
group—implementation—includes programming and testing the system. A sixth
group—deployment—involves installing and putting the system into operation.
These six groups of activities—project initiation, project planning, analysis,
design, implementation, and deployment—are sometimes referred to as phases
of the system development project, and they provide the framework for man-
aging the project. Another phase, called the support phase, includes the activi-
ties needed to upgrade and maintain the system after it has been deployed.
The support phase is part of the overall SDLC, but it isn’t normally considered
part of the initial development project. Figure 8-2 illustrates the six phases of
a traditional predictive SDLC plus the support phase.
The most predictive SDLC approach (i.e., farthest to the left on the predictive/
adaptive scale) is called a waterfall model, with the phases of the project
flowing down, one after another. As shown in Figure 8-3, this model assumes
that the phases can be carried out and completed sequentially. First, a detailed
plan is developed, then the requirements are thoroughly specified, then the sys-
tem is designed down to the last algorithm, and then it is programmed, tested,
and installed. After a project drops over the waterfall into the next phase,
The choice of SDLC varies depending on the project
Predictive
SDLC
Adaptive
SDLC
Requirements well understood
and well defined.
Low technical risk.
Requirements and needs
uncertain.
High technical risk.
FIGURE 8-1
Predictive versus adaptive approaches
to the SDLC
adaptive approach to the SDLC an
approach that assumes the project must be
more flexible and adapt to changing needs as
the project progresses
phases related groups of development
activities, such as planning, analysis, design,
implementation, and support
waterfall model an SDLC approach that
assumes the phases can be completed
sequentially with no overlap
228 PART 4 ■ Projects and Project Management
there is no going back. In practice, the waterfall model assumes rigid planning
and final decision-making at each step of the development project. As you
may have guessed, the waterfall model doesn’t always work very well. Being
human, developers are rarely able to complete a phase without making mis-
takes or leaving out important components that had to be added later.
However, even though we don’t use the waterfall model in its purest form
anymore, it still provides a valuable foundation for understanding develop-
ment. No matter what system is being developed, we need to include initia-
tion, planning, analysis, design, implementation, and deployment activities.
A little farther to the right on the predictive/adaptive scale are modified water-
fall models. These are still predictive—that is, they still assume a fairly thorough
plan—but there is a recognition that the project’s phases must overlap, influencing
and depending on each other. Some analysis must be done before the designing
can start, but during the design, there is a need for more detail in the requirements
or perhaps it is discovered that a requirement cannot be met in the manner origi-
nally requested. Figure 8-4 illustrates how these activities can overlap.
Another reason phases overlap is for efficiency. While the team members are
analyzing needs, they may also be thinking about and designing various forms or
reports. To help them understand the needs of the users, they may want to design
some of the final system. But when they do early design, they will frequently throw
some components away and save others for later inclusion in the final system. In
addition, many components of a computer system are interdependent, which
requires analysts to do analysis and some design at the same time.
Newer Adaptive Approaches to the SDLC
In an adaptive approach, project activities—including plans and models—
are adjusted as the project progresses. There are many ways to depict an adap-
tive SDLC. All include iterations, which were discussed in Chapter 1. Rather
FIGURE 8-2 Traditional information system development phases
Project
planning Analysis Design Implementation
Project
initiation
SupportDeployment
FIGURE 8-3 Waterfall model of the SDLC
Project
initiation
Deployment
Implementation
Design
Analysis
Initiation and
planning
specifications frozen
Analysis
specifications
frozen
System built and
delivered exactly
as specified
Design
specifications
frozen
Project
planning
CHAPTER 8 ■ Approaches to System Development 229
than having the analysis, design, and implementation phases proceed sequentially
with some overlap, iterations can be used to create a series of mini-projects that
address smaller parts of the application. One of these smaller parts is analyzed,
designed, built, and tested during a single iteration; then, based on the results,
the next iteration proceeds to analyze, design, build, and test the next smaller
part. Using iterations, the project is able to adapt to any changes as it proceeds.
Also, parts of the system are available early on for user evaluation and feedback,
which helps ensure that the application will meet the needs of the users.
At the far right on the predictive/adaptive scale is the spiral model. It
contains many adaptive elements, and it is generally considered to be one of
the earliest conceptualizations of adapting the project based on the results of
each iteration. The life cycle is shown as a spiral, starting in the center and
working its way outward, over and over again, until the project is complete
(see Figure 8-5). This model looks very different from the static waterfall
FIGURE 8-4 Overlap of system development phases
Additional project planning and control tasks
Analysis
Design
Implementation
Additional analysis tasks
Deployment
Additional design
tasks
Support
=
Decision points and
completion of major
components of project
Project
initiation
Project
planning
Con
struc
t fourth prototype
Co
nst
ruct third prototype
Con
struct secondprototype
Con
struct first
prototype
Plan first
iteration
Plan next
iteration
Test
and
integrate
Analyze
and
design
FIGURE 8-5
Spiral life cycle model
spiral model an adaptive SDLC approach
that cycles over and over again through devel-
opment activities until completion
230 PART 4 ■ Projects and Project Management
model and sets the tone for the project to be managed differently. For another
representation of an adaptive SDLC, which shows several iterations, including
analysis, design, and implementation activities, see Figure 8-6.
Figure 8-6 illustrates multiple iterations of development activities. Those two
dimensions can also be represented as rows and columns of a table. The develop-
ment activities are placed as rows, and the iterations are defined as columns. You
first saw this concept in Figure 1-4, which is repeated here as Figure 8-7. The
Some analysis
Some design
Some
implementation
More analysis
More design
More
implementation
Even more
analysis
Even more
design
Even more
implementation
FIGURE 8-6
The iteration of system development
activities
Core
processes
1 2 3 4 5 6
Identify problem and obtain
approval
Plan and monitor project
Discover and understand details
Design system components
Build, test, and integrate system
components
Complete system tests and deploy
solution
Iterations
FIGURE 8-7
Adaptive SDLC with six core pro-
cesses and multiple iterations
CHAPTER 8 ■ Approaches to System Development 231
core processes defined in Chapter 1, which are repeated throughout the text, are
extensions of the development activities shown in Figure 8-6. The columns, of
course, are the multiple iterations of the project. In fact, as we compare the core
processes of this adaptive, iterative life cycle with the phases of the waterfall life
cycle from Figure 8-3, we see a very close correspondence between the two. The
primary difference between these two life cycles is that the waterfall approach
attempts to do all planning, all analysis, all design, and so forth, with a single
pass. Our iterative approach is adaptive because with each iteration’s analysis,
design, and implementation, modifications can be made to adapt to the changing
requirements of the project. The adaptive approach presented in this textbook is
a simplification of and variation on a more formal iterative approach called the
Unified Process (UP). You will learn more about the UP in Chapter 14.
A related concept to an iterative SDLC is called incremental development.
Incremental development is always based on an iterative life cycle. The basic idea
is that the system is built in small increments. An increment may be developed
within a single iteration or it may require two or three iterations. As each incre-
ment is completed, it is integrated with the whole. The system, in effect, is
“grown” in an organic fashion. The advantage of this approach is that portions
of the system get into the users’ hands much sooner so the business can begin
accruing benefits as early as possible.
Yet another related concept, which is also based on an iterative approach, is
the idea of a walking skeleton. A walking skeleton, as the name suggests, pro-
vides a complete front-to-back implementation of the new system but with only
the “bare bones” of functionality. The walking skeleton is developed in a few
iterations early in the project. Later iterations then flesh out the skeleton with
more functions and capabilities. It should be obvious that this approach also
gets working software into the hands of the users early in the project. Both
these approaches have the additional advantage of extensive user testing and
feedback to the project team as the project is progressing—another example of
how an iterative project is also adaptive.
The Support Phase
The predictive waterfall SDLC explicitly includes a support phase, but adaptive,
iterative SDLCs typically don’t. In fact, newer adaptive SDLCs consider support
to be an entirely separate project worthy of its own support methodology.
The objective of the support activities is to keep the system running pro-
ductively during the years following its initial deployment. They begin only after
the new system has been installed and put into production, and they last
throughout the productive life of the system. Most business systems are expected
to last for years. During the support phase, upgrades or enhancements may be
carried out to expand the system’s capabilities, and these will require their own
development projects. Three major activities occur during support:
■ Maintaining the system
■ Enhancing the system
■ Supporting the users
Every system, especially a new one, contains components that don’t function
correctly. Software development is complex and difficult, so it is never free of
error. Of course, the objective of a well-organized and carefully executed project is
to deliver a system that is robust and complete and that gives correct results.
However, because of the complexity of software and the impossibility of testing
every possible combination of processing requirements, there will always be errors.
In addition, business needs and user requirements change over time. Key tasks in
maintaining the system include fixing the errors (also known as fixing bugs) and
making minor adjustments to processing requirements. Usually, a system support
team is assigned responsibility for maintaining the system.
incremental development an SDLC
approach that completes portions of the system
in small increments across iterations, with each
increment being integrated into the whole as it
is completed
walking skeleton a development
approach in which the complete system struc-
ture is built but with bare-bones functionality
support activities the activities in the
support phase whose objective is to maintain
and enhance the system after it is installed and
in use
232 PART 4 ■ Projects and Project Management
Most newly hired programmer analysts begin their careers working on sys-
tem maintenance projects. Tasks typically include changing the information pro-
vided in a report, adding an attribute to a table in a database, or changing the
design of Windows or browser forms. These changes are requested and
approved before the work is assigned, so a change request approval process is
always part of the system support phase.
During the productive life of a system, it is also common to make major modi-
fications. At times, government regulations require new data to be maintained
or information to be provided. Also, changes in the business environment—new
market opportunities, new competition, or new system infrastructure—necessitate
major changes to the system. To implement these major modifications, the
company must approve and initiate an upgrade development project. An upgrade
project often results in a new version of the system. During your career, you may
participate in several upgrade projects.
The other major activity during the support phase is providing assistance to
the system users. A help desk, consisting of knowledgeable technicians, is a
popular method for answering users’ questions quickly and helping increase
their productivity. Training new users and maintaining current documentation
are important elements of this activity. As a new systems analyst, you may
conduct training sessions or staff the help desk to gain experience with user
problems and needs. Many newly hired information systems professionals start
their careers working at a help desk for part of their work week.
Methodologies, Models, Tools, and Techniques
Aside from an SDLC, systems developers have a variety of aids at their disposal
to help them complete activities and tasks. Among them are methodologies,
models, tools, and techniques. The following sections discuss each of these aids.
Methodologies
A system development methodology provides guidelines for every facet of
the systems development life cycle. For example, within a methodology, certain
models, such as diagrams, are used to describe and specify the requirements.
Related to these models are the techniques for how the project team will do its
work. An example of a technique is the guidelines for conducting a user inter-
view that you learned about in Chapter 2. Finally, each project team will use a
set of tools—usually computer-based tools—to build models, record informa-
tion, and write the code. These tools are considered part of the overall method-
ology used for a given project. Figure 8-8 illustrates that the techniques,
Methodology
Techniques Models
Tools
FIGURE 8-8
Components of a methodology
help desk the availability of support staff
to assist users with technical or processing
problems of the information system
system development methodology
a set of comprehensive guidelines for the SDLC
that includes specific models, tools, and
techniques
CHAPTER 8 ■ Approaches to System Development 233
models, and tools support one another to provide a comprehensive, integrated
methodology. Some methodologies are developed by systems professionals
within the company based on their experience. Others are purchased from con-
sulting firms or vendors.
Some methodologies (whether built in-house or purchased) contain massive
written documentation that defines everything the developers may need to pro-
duce at any point in the project, including how the documentation itself should
look and what reports to management should contain. Other methodologies are
much more informal, such as a single document that contains general descrip-
tions of what needs to be done. Sometimes, the methodology a company adopts
isn’t only informal, it is ad hoc and almost undefined, but such freedom of
choice is becoming rare. Management in most IT departments prefers to adopt
a flexible methodology so it can be adapted to different types of projects and
systems. The methodology used by the organization determines how predictive
or adaptive the approach to a system development project should be.
Models
Anytime people need to record or communicate information, it is useful to
create a model. As discussed in Chapter 2, a model is a representation of an
important aspect of the real world. Sometimes, the term abstraction is used
because we abstract (separate out) an aspect that is of particular importance to
us. For example, consider an airplane model. To talk about the aerodynamics
of the airplane, it is useful to have a model that shows the plane’s overall shape
in three dimensions. Sometimes, a drawing of the cross-sectional details of the
plane’s wing is what is needed. In other cases, a mathematical formulation of
the plane’s aerodynamic characteristics might be necessary to understand how
it will behave.
Some models are physically similar to the real product. Some are graphical
representations of important details. And some are abstract mathematical nota-
tions. Each emphasizes a particular type of information. In airplane design, engi-
neers use lots of different models. Learning to be an aerospace engineer involves
learning how to create and use all the various models. That is true for an infor-
mation system developer too, although the models for information systems
aren’t as standardized or precise as aerospace models. System developers are
making progress, but the field is very young, and many senior analysts were
self-taught. More importantly, an information system is much less tangible than
an airplane; you can’t really see, hold, or touch it. Therefore, the models of the
information system can seem much less tangible too.
The models used in system development include representations of inputs,
outputs, processes, data, objects, object interactions, locations, networks, and
devices, among other things. Most of the models are graphical models, which
are drawn representations that employ agreed-upon symbols and conventions.
These are often called diagrams and charts, and the UML diagrams you have
encountered so far in this book are examples. Much of this text describes how
to read and create a variety of models that represent an information system.
Another important kind of model is a project-planning model, such as
a Gantt chart or net present value (NPV), both of which are discussed in
Chapter 9. These models represent the system development project itself,
highlighting its tasks and other considerations. Yet another model related to
project management is a chart showing all the people assigned to the project.
Figure 8-9 lists some models used in system development.
Tools
In the context of system development, a tool is software support that helps cre-
ate models or other components required in the project. Tools might be simple
drawing programs for creating diagrams. They might also include an application
tool a software application that assists
developers in creating models or other
components required for a project
234 PART 4 ■ Projects and Project Management
that stores information about the project, such as data definitions, use case
descriptions, and other artifacts. A project management software tool, such as
Microsoft Project, is another example of a tool used to create models. The proj-
ect management tool creates a model of the project tasks and task dependencies.
Tools have been specifically designed to help system developers.
Programmers should be familiar with integrated development environments
(IDEs), which include many tools to help with programming tasks—for exam-
ple, smart editors, context-sensitive help, and debugging tools. Some tools can
generate program code for the developer. Some tools reverse-engineer old pro-
grams, generating a model from the code so the developer can determine what
the program does if its documentation is missing (or was never done). Visual
modeling tools are available to systems analysts to help them create and ver-
ify important system models. These tools are used to draw such diagrams as
class diagrams or activity diagrams. Other visual modeling tools help design
the database or even generate program code. Figure 8-10 lists the types of
tools used in system development.
Techniques
You learned several techniques for gathering information in Chapter 2. You
learned several techniques for defining functional requirements in Chapters 3, 4,
and 5. You learned some user-interface design techniques in Chapter 7. In system
development, a technique is a collection of guidelines that helps an analyst
complete an activity or task. It often includes step-by-step instructions for creating
a model, or it might include more general advice on collecting information from
system users. Examples include data-modeling techniques, software-testing techni-
ques, user-interviewing techniques, and relational database design techniques.
Sometimes, a technique applies to an entire life cycle phase and helps you
create several models and other documents. The modern structured analysis
technique (discussed later) is an example of this. Figure 8-11 lists some techni-
ques commonly used in system development.
Some models of system components
Flowchart
Data flow diagram (DFD)
Entity-relationship diagram (ERD)
Structure chart
Use case diagram
Class diagram
Sequence diagram
Some models used to manage the development process
Gantt chart
Organizational hierarchy chart
Financial analysis models – NPV, payback period
FIGURE 8-9
Some models used in system
development
Project management application
Drawing/graphics application
Word processor/text editor
Visual modeling tool
Integrated development environment (IDE)
Database management application
Reverse-engineering tool
Code generator tool
FIGURE 8-10
Types of tools used in system
development
integrated development
environments (IDEs) a set of tools that
work together to provide a comprehensive
development and programming environment for
software developers
visual modeling tools tools that help
analysts create and verify graphical models and
may also generate program code
technique guidelines to specify a method
for how to carry out a development activity
or task
CHAPTER 8 ■ Approaches to System Development 235
How do methodologies, models, tools, and techniques fit together? A
methodology includes a collection of techniques that are used to complete activ-
ities within each phase of the systems development life cycle. The activities
include the completion of a variety of models as well as other documents and
deliverables. Like any other professionals, system developers use software tools
to help them complete their activities.
Two Approaches to Software Construction
and Modeling
System development is done in many ways, and this diversity can confuse new
system developers. Sometimes, it seems as if every company uses its own meth-
odology. In fact, even the various development groups within the same company
may use their own methodologies, with each person coming up with his or her
own way of developing systems.
Still, there are many common concepts. In virtually all development groups,
some variation of the systems development life cycle is used, with phases for
project initiation, project planning, analysis, design, implementation, deployment,
and support. In addition, virtually every development group uses models, tools,
and techniques that make up an overall system development methodology.
All system developers should be familiar with two very general approaches
to software construction and modeling because these form the basis of virtually
all methodologies: the structured approach and the object-oriented approach.
This section reviews the major characteristics of both approaches and provides
a bit of history.
The Structured Approach
Earlier in this chapter, we discussed a traditional, predictive approach to the
SDLC. Those concepts focused on the phases and activities of the development
project itself. This section focuses on the models, including analysis and design
models, as well as the programming constructs that are used to develop the soft-
ware itself. This software construction approach is called structured system
development. Sometimes, these two ideas—the predictive approach to the SDLC
and the structured approach to software construction—can cause confusion
because they are both referred to as the traditional approach. We will be more
precise in the terminology in this book, but you should be aware that the indus-
try in general isn’t as precise.
Structured System Development
Structured analysis, structured design, and structured programming are the three
techniques that make up the structured approach. Sometimes, these techniques
Strategic planning techniques
Project management techniques
User interviewing techniques
Data-modeling techniques
Relational database design techniques
Structured programming technique
Software-testing techniques
Process modeling techniques
Domain modeling techniques
Use case modeling techniques
Object-oriented programming techniques
Architectural design techniques
User-interface design techniques
FIGURE 8-11
Some techniques used in system
development
structured approach system develop-
ment using structured analysis, structured
design, and structured programming techniques
236 PART 4 ■ Projects and Project Management
are collectively referred to as the structured analysis and design technique
(SADT). Developed in the 1960s, the structured programming technique was
the first attempt to provide guidelines to improve the quality of computer pro-
grams. You certainly learned the basic principles of structured programming in
your first programming course. The structured design technique was developed
in the 1970s to make it possible to combine separate programs into more com-
plex information systems. The structured analysis technique evolved in the
early-1980s to help clarify requirements for a computer system before develo-
pers designed the programs.
Structured Programming High-quality programs not only produce the correct
outputs each time the program runs, they also make it easy for other program-
mers to read and modify the program later. And programs need to be modified
all the time. Structured programming produces a program that has one
beginning and one ending, with each step in the program execution consisting
of one of three programming constructs:
■ A sequence of program statements
■ A decision point at which one set or another set of statements executes
■ A repetition of a set of statements
Figure 8-12 shows these three structured programming constructs.
A concept related to structured programming is top-down programming.
Top-down programming divides more complex programs into a hierarchy of
program modules (see Figure 8-13). One module at the top of the hierarchy con-
trols program execution by “calling” lower-level modules as required. Sometimes,
the modules are part of the same program. For example, in COBOL, one main
paragraph calls another paragraph by using the Perform keyword. In Visual
Basic, a statement in an event procedure can call a general procedure. The
programmer writes each program module (paragraph or procedure) by using the
FIGURE 8-12 Three structured programming constructs
Stop
Sequence Decision Repetition
No
Yes yes
No
Stand up
Walk to the
window
Wear sunscreen
Look outside
Take an umbrella
Turn right Is it raining?
Take a step
Are you
at your
destination?
structured programming a program-
ming approach where each module has one
start point and one end point and uses
sequence, decision, and repetition constructs
only
top-down programming the concept
of dividing a complex program into a hierarchy
of program modules
CHAPTER 8 ■ Approaches to System Development 237
rules of structured programming (one beginning and one end as well as sequence,
decision, and repetition constructs).
Sometimes, separate programs are produced that work together as one
“system.” Each of these programs follows top-down programming and struc-
tured programming rules, but the programs themselves are organized into a
hierarchy, as with top-down programming. One program calls other programs.
When the hierarchy involves multiple programs, such an arrangement is some-
times called modular programming.
Structured Design As information systems became increasingly complex during
the 1970s, each system involved many different functions. Each function per-
formed by the system might be made up of dozens of separate programs. The
structured design technique was developed to provide some guidelines for
deciding what the set of programs should be, what each program should accom-
plish, and how the programs should be organized into a hierarchy. The modules
and the arrangement of modules are shown graphically by using a model called
a structure chart (see Figure 8-14).
There are two main principles of structured design: Program modules
should be (1) loosely coupled and (2) highly cohesive. Loosely coupled means
that each module is as independent of the other modules as possible, which
allows each module to be designed and later modified without interfering with
the performance of the other modules. Highly cohesive means that each module
accomplishes one clear task. That way, it is easier to understand what each
module does and ensure that if changes to the module are required that none
will accidentally affect other modules.
The structured design technique defines different degrees of coupling and
cohesion and provides a way of evaluating the quality of the design before the
programs are actually written. As with structured programming, quality is
defined in terms of how easily the design can be understood and modified when
the need arises.
Structured design assumes the designer knows what the system needs to do:
what the main system functions are, what the required data are, and what the
needed outputs are. Designing the system is obviously much more than designing
the organization of the program modules. Therefore, it is important to realize
FIGURE 8-13 Top-down, or modular, programming
Module 1
begin
do 1
do 2
do 3
return control to Boss
Module 1
begin
do 1
do 2
do 3
return control to Boss
Module 2
begin
do x
do y
do z
return control to Boss
Module 2
begin
do x
do y
do z
return control to Boss
Module 3
begin
if x then y
else z
do abc
return control to Boss
Module 3
begin
if x then y
else z
do abc
return control to Boss
Boss or control module
start
call module 1
call module 2
call module 3
stop
Boss or control module
start
call module 1
call module 2
call module 3
stop
structured design the design process of
organizing a program into a set of modules and
organizing those modules into a hierarchical
structure
structure chart a graphical diagram
showing the hierarchical organization of
modules
238 PART 4 ■ Projects and Project Management
that the structured design technique helps the designer complete only part of the
entire design life cycle phase.
By the 1980s, file and database design techniques were used along with
structured design. Newer versions of structured design assumed that database
management systems are used in the system, and program modules were
designed to interact with the database. In addition, because nontechnical people
were becoming involved with information systems, user-interface design techni-
ques were developed. For example, menus in an interactive system determine
which program in the hierarchy gets called. Therefore, a key aspect of user-
interface design is done in conjunction with structured design.
Structured Analysis Because the structured design technique requires the
designer to know what the system should do, techniques for defining system
requirements were developed. System requirements define in great detail what
the system must do but without committing to a specific technology. By defer-
ring decisions about technology, the developers can focus their efforts on what
is needed, not on how to do it. If these requirements aren’t fully and clearly
worked out in advance, the designers cannot possibly know what to design.
The structured analysis technique helps the developer define what the sys-
tem needs to do (the processing requirements), what data the system needs to
store and use (data requirements), what inputs and outputs are needed, and
how the functions work together to accomplish tasks. The key graphical model
of the system requirements that are used with structured analysis is called the
data flow diagram (DFD); it shows inputs, processes, storage, and outputs as
well as the way these function together (see Figure 8-15).
The most recent variation of structured analysis defines systems processing
requirements by identifying all the events that will cause the system to react in
some way. For example, in an order-entry system, if a customer orders an
Calculate amounts
Get employee
pay rates
Payroll system
Calculate pay
amounts
Output payrollEnter time cards
Rates
Employee
pay/tax rates
Payroll
amounts
Payroll
information
Validated
time card
Payroll
amounts
Validated
time card
information
FIGURE 8-14
A structure chart created by using the
structured design technique
structured analysis a technique to
determine what processing is required and to
organize those requirements by using structured
analysis models
data flow diagram (DFD) a structured
analysis model showing inputs, processes,
storage, and outputs of a system
CHAPTER 8 ■ Approaches to System Development 239
item, the system must process a new order (a major system activity). Each
event leads to a different system activity. The analyst takes each of these activ-
ities and creates a data flow diagram showing the processing details, including
inputs and outputs.
A model of the needed data is also created based on the types of things the
system needs to store information (data entities) about. For example, to process
a new order, the system needs to know about the customer, the items wanted,
and the details about the order. You learned in Chapter 4 that this model is
called an entity-relationship diagram (ERD). The data entities from the entity-
relationship diagram correspond to the data storage shown on data flow dia-
grams. Figure 8-16 shows an example of an entity-relationship diagram.
Figure 8-17 illustrates the sequence followed when developing a system using
structured analysis, structured design, and structured programming.
FIGURE 8-15 A data flow diagram (DFD) created by using the structured analysis technique
Offered course Enroll
student
2
Schedule
course
1
Course enrollment
Student
Produce
class list
3
Student
Schedule
Enrollment
request
Class list
Offered courseAcademic
department
Faculty
member
Customer
cust number–PK
name
bill address
home phone
office phone
order ID–PK
order date
amount
Order Order Item
item ID–PK
quantity
price
FIGURE 8-16
An entity-relationship diagram (ERD)
created by using the structured analy-
sis technique
240 PART 4 ■ Projects and Project Management
The Object-Oriented Approach
An entirely different approach to information systems—the object-oriented
approach—views an information system as a collection of interacting objects
that work together to accomplish tasks (see Figure 8-18). Conceptually, there
are no processes or programs; there are no data entities or files. The system
consists of objects. An object is a thing in the computer system that is capa-
ble of responding to messages. This radically different view of a computer system
requires a different approach to systems analysis, systems design, and
programming.
The object-oriented approach began with the development of the Simula
programming language in Norway in the 1960s. Simula was used to create com-
puter simulations involving such “objects” as ships, buoys, and tides in fjords. It
is very difficult to write procedural programs that simulate ship movement, but
a new way of programming simplified the problem. In the 1970s, the Smalltalk
language was developed to solve the problem of creating graphical user inter-
faces (GUIs) that involved such “objects” as pull-down menus, buttons, check
boxes, and dialog boxes. More recent object-oriented languages include C++,
Java, and C#. These languages focus on writing definitions of the types of
objects needed in a system; as a result, all parts of a system can be thought of
as objects, not just the graphical user interface.
Given that the object-oriented approach views information systems as
collections of interacting objects, object-oriented analysis (OOA) defines the
objects that do the work and determines what user interactions (called use
cases) are required to complete the tasks. Object-oriented design (OOD)
defines all the additional types of objects that are necessary to communicate
with people and devices in the system, it shows how the objects interact to
complete tasks, and it refines the definition of each type of object so it can
be implemented with a specific language or environment. Object-oriented
programming (OOP) is the writing of statements in a programming language
to define what each type of object does.
FIGURE 8-17 How structured analysis leads to structured design and structured programming
Structured analysisStructured analysis
Events
Data flow diagrams
Entity-relationship diagram
Events
Data flow diagrams
Entity-relationship diagram
Structured designStructured design
Structure charts
(one for each event)
that define program modules
based on the data flow diagrams
Structure charts
(one for each event)
that define program modules
based on the data flow diagrams
Structured programmingStructured programming
Program each module using
structured programming
constructs
Program each module using
structured programming
constructs
object-oriented approach system
development based on the view that a system
is a set of interacting objects that work
together
object a thing in an information system that
responds to messages by executing functions or
methods
object-oriented analysis (OOA) the
process of identifying and defining the use
cases and the sets of objects (classes) in the
new system
object-oriented design (OOD)
defining all of the types of objects necessary to
communicate with people and devices in the
system, showing how objects interact to
complete tasks, and refining the definition of
each type of object so it can be implemented
with a specific language or environment
object-oriented programming
(OOP) programming using object-oriented
languages that support object classes, inheri-
tance, reuse, and encapsulation
CHAPTER 8 ■ Approaches to System Development 241
An object is a type of thing. It could be a customer or an employee or it
could be a button or a menu. Identifying types of objects means classifying
things. Some things, such as customers, exist outside and inside the system.
There is the real customer, who is outside the system, and the computer repre-
sentation of the customer, which is inside the system. A classification or “class”
represents a collection of similar objects; therefore, object-oriented development
uses a UML class diagram (introduced in Chapter 4) to show all the classes of
objects that are in the system (see Figure 8-19). For every class, there may be
more specialized subclasses. For example, a savings account and a checking
account are two special types of accounts (two subclasses of the class Account).
Similarly, a pull-down menu and a pop-up menu are two special types
of menus. Subclasses exhibit or “inherit” the characteristics of the class
above them.
A UML sequence diagram shows how objects interact or collaborate while
carrying out a task. Figure 8-20 shows a use case realization sequence diagram
that includes an actor as a stick figure and five other objects that work together
by sending messages to complete a use case named Cancel order.
The object-oriented approach yields several key benefits, among them natu-
ralness and reusability. The approach is natural—or intuitive—for people because
we tend to think about the world in terms of tangible objects. It is less natural to
think about complex procedures found in procedural programming languages.
Also, because the object-oriented approach involves classes of objects and many
systems in the organization use the same objects, these classes can be used over
and over again whenever they are needed. For example, almost all systems use
menus, dialog boxes, windows, and buttons, but many systems within the same
company also use customer, product, and invoice classes. These can also be
reused. There is less need to “reinvent the wheel” to create an object.
“Create an order for
Susan Franks for an
executive desk and a
very comfortable chair.”
“Executive desk
#19874, add
yourself to this
order.”
“OK, here are the
details of new
order 134…. .”
“Very comfortable
chair # 76532, add
yourself to this
order.”
“Customer Susan
Franks, add yourself
as the customer for
this order.”
“OK, will do.”
A product object:
executive desk
serial number 19874
A new order object
order number 134
dated 4/23/10
A customer object: Susan
Franks,
customer number 386,
Seattle, WA
“OK, will do.”
A product object: very
comfortable chair
serial number 76532
“OK, will do.”
FIGURE 8-18
The object-oriented approach to
information systems (read clockwise
starting with the user)
242 PART 4 ■ Projects and Project Management
Many systems being developed today combine traditional and object-
oriented technology. Some integrated development environments (IDEs) also use
traditional and object-oriented technology in the same tool. For example, OOP
can be used for the user interface and procedural programming can be used for
the rest. Many Web applications are built by using structured programming
and modular design. For example, PHP supports both technologies. Many sys-
tem projects are exclusively traditional in analysis and design, and others are
FIGURE 8-20 A UML sequence diagram showing object interactions for a use case
:OrderItem:Order :InventoryItem :OrderTransaction«controller»
:OrderHandler
cancelOrder(orderID)
cancelOrder( )
cancelItem( )
updateQty (qty)
cancelPayment ( )
Clerk
Loop for all items
name
address
phone
Customer
accountNumber
balance
dateOpened
Account
makeDeposit( )
makeWithdrawal( )
0..*1
interestRate
SavingsAccount
checkStyle
minimumBalance
CheckingAccount
calculateInterest( )
FIGURE 8-19
A class diagram created during object-
oriented design
CHAPTER 8 ■ Approaches to System Development 243
exclusively object-oriented, even within the same information systems depart-
ment. Everyone should know the basic concepts of each, but your coursework
may emphasize one approach over the other. See Online Chapter B for more
about structured analysis and structured design.
Agile Development
The highly volatile marketplace has forced businesses to respond rapidly to new
opportunities. Sometimes, these opportunities appear in the middle of imple-
menting another business initiative. To survive, businesses must be agile—that
is, able to change directions rapidly, even in the middle of a project. Agile
development is a philosophy and set of guidelines for developing information
systems in an unknown, rapidly changing environment, and it can be used with
any system development methodology. Usually, Agile development complements
adaptive approaches to the SDLC and methodologies that support it. But the
emphasis is on taking an adaptive approach and making it agile in all develop-
ment activities and tasks. Related to Agile development, Agile modeling is a phi-
losophy about how to build models, some of which are formal and detailed,
others sketchy and minimal. All the models you have learned how to create in
this text can be used with Agile modeling.
Agile Development Philosophy and Values
The “Manifesto for Agile Software Development” (see the “Further Resources”
section) identifies four basic values, which represent the core philosophy of
Agile development:
■ Value responding to change over following a plan
■ Value individuals and interactions over processes and tools
■ Value working software over comprehensive documentation
■ Value customer collaboration over contract negotiation
The people involved in system development—whether as team members,
users, or other stakeholders—all need to accept these priorities for a project to
be truly agile. Adopting an Agile approach isn’t always easy. Managers and
executive stakeholders frequently have trouble accepting this less rigid view-
point, wanting instead to impose more controls on development teams and
enforce detailed plans and schedules. However, the Agile philosophy takes the
opposite approach, providing more flexibility in project schedules and letting
the project teams plan and execute their work as the project progresses.
Some industry leaders in the Agile movement coined the term chaordic to
describe an Agile project. Chaordic comes from two words: chaos and order.
The first two values in the list do seem to be a recipe for chaos, but software
projects always have unpredictable elements—hence, a certain amount of
chaos. The Agile philosophy recognizes this unpredictability, handling it with
increased flexibility and by trusting the project team to develop solutions to
project problems. Depending too heavily on a plan and predefined processes
exacerbates problems when unpredictable requirements arise. Developers need
to accept a certain amount of chaos and mix that with other Agile modeling
and development techniques that help to provide order and structure to the
project. Chapter 9 will cover many of these Agile project management
techniques.
Another important aspect of Agile development is that customers must con-
tinually be involved with the project team. They don’t just sit down with the
project team for a few sessions to develop the specifications and then go their
separate ways. They become part of the technical team. Because working soft-
ware is being developed throughout the project, customers are continually
involved in defining requirements and testing components.
agile development a guiding philosophy
and set of guidelines for developing information
systems in an unknown, rapidly changing
environment
chaordic a term used to describe adaptive
projects that are chaotic and ordered
244 PART 4 ■ Projects and Project Management
Historically, particularly with predictive projects, many systems develop-
ment efforts attempted to be fixed price endeavors. This was true for both in-
house groups and external development teams. However, the approach with
Agile development is that systems development projects should be more of a col-
laborative effort. Hence, contracts take on an entirely different flavor. Fixed
prices and fixed deliverables don’t make sense. Contracts for Agile projects
include other kinds of options for the customer. The approach to the scheduling
of activities, the delivery of system components, and the early termination of the
project allow the client to maintain control, but it is done with different options
than with fixed bid contracts.
Models and modeling are critical to Agile development, so we look next at
Agile modeling. Many of the core values are illustrated in the principles and
practices of building models.
Agile Modeling Principles
Much of this text teaches techniques for creating models. Your first impression
might be that an agile approach means less modeling or maybe even no model-
ing. Agile modeling (AM) isn’t about doing less modeling but about doing the
right kind of modeling at the right level of detail for the right purposes. AM
doesn’t dictate which models to build or how formal to make those models.
Instead, it helps developers stay on track with their models by using them as a
means to an end rather than end deliverables. AM’s basic principles express the
attitude that developers should have as they develop software. Figure 8-21 sum-
marizes Agile modeling principles. We discuss those principles next.
Develop Software as Your Primary Goal
The primary goal of a software development project is to produce high-quality
software. The primary measurement of progress is working software, not inter-
mediate models of system requirements or specifications. Modeling is always a
means to an end, not the end itself. Any activity that doesn’t directly contribute
to the end goal of producing software should be questioned and avoided if it
cannot be justified.
Enable the Next Effort as Your Secondary Goal
Focusing only on working software can also be self-defeating, so developers
must consider two important objectives. First, requirements models might be
necessary to develop design models. So, don’t think that if the model cannot be
used to write code, it is unnecessary. Sometimes, several intermediate steps are
needed before the final code can be written. Second, although high-quality soft-
ware is the primary goal, long-term use of that code is also important. So, some
models might be necessary to support maintenance and enhancement of the sys-
tem. Yes, the code is the best documentation, but some architectural design
Agile Modeling principles
• Develop software as your primary goal.
• Enable the next effort as your secondary goal.
• Minimize your modeling activity—few and simple.
• Embrace change, and change incrementally.
• Model with a purpose.
• Build multiple models.
• Build high-quality models and get feedback rapidly.
• Focus on content rather than representation.
• Learn from each other with open communication.
• Know your models and how to use them.
• Adapt to specific project needs.
FIGURE 8-21
Agile modeling principles
agile modeling (AM) a guiding philos-
ophy in which only models that are necessary,
with a valid need and at the right level of detail,
are created
CHAPTER 8 ■ Approaches to System Development 245
decisions might not be easily identified from the code. Look carefully at
what other artifacts might be necessary to produce high-quality systems in the
long term.
Minimize Your Modeling Activity—Few and Simple
Create only the models that are necessary. Do just enough to get by. This princi-
ple isn’t a justification for sloppy work or inadequate analysis. The models you
create should be clear, correct, and complete. But don’t create unnecessary mod-
els. Also, keep each model as simple as possible. Normally, the simplest solution
is the best solution. Elaborate solutions tend to be difficult to understand and
maintain. However, simplicity isn’t a justification for being incomplete.
Embrace Change, and Change Incrementally
Because the underlying philosophy of Agile modeling is that developers must
be flexible and respond quickly to change, a good Agile developer willingly
accepts—even embraces—change. Change is seen as the norm, not the excep-
tion. Watch for change, and have procedures ready to integrate changes into
the models. The best way to accept change is to develop incrementally. Take
small steps and address problems in small bites. Change your model incremen-
tally and then validate it to make sure it is correct. Don’t try to accomplish
everything in one big release.
Model with a Purpose
We indicated earlier that the two reasons to build models are to understand
what you are building and to communicate important aspects of the solution
system. Make sure your modeling efforts support those reasons. Sometimes,
developers try to justify building models by claiming that (1) the development
methodology mandates the development of the model, (2) someone wants a
model, even though the person doesn’t know why it is important, or (3) a
model can replace a face-to-face discussion of issues. Identify a reason and
an audience for each model you develop. Then, develop the model in
sufficient detail to satisfy the reason and the audience. Incidentally, the audience
might be you.
Build Multiple Models
Along with other modeling methodologies, UML has several models to represent
different aspects of the problem at hand. To be successful—in understanding the
problem or communicating the solution—you need to model the critical aspects
of the problem domain or the required solution. Don’t develop all of them; be
sure to minimize your modeling, but develop enough models to make sure you
have addressed all the issues.
Build High-Quality Models and Get Feedback Rapidly
Nobody likes sloppy work. It is based on faulty thinking and introduces errors.
One way to avoid error in models is to get feedback rapidly while the work is
still fresh. Feedback comes from users as well as from technical team members.
Others will have helpful insights and different ways to view a problem and iden-
tify a solution.
Focus on Content Rather Than Representation
Sometimes, a project team has access to a sophisticated visual modeling tool.
These can be helpful, but at times, they are distracting because developers
spend time making the diagrams pretty. Be judicious in the use of tools. Some
models need to be well drawn for communication or contractual issues.
246 PART 4 ■ Projects and Project Management
Sometimes, it is more productive to build a model with a tool because it is
expected that it will be changed frequently, and using a tool is usually more
productive than redrawing by hand. In other cases, a hand-drawn diagram
might suffice. Sometimes, developers work out a model on a whiteboard in a
conference room and take a digital photo to keep a record of the details
worked out.
Learn from Each Other with Open Communication
All the adaptive approaches emphasize working in teams. Don’t be defensive
about your models. Other team members have good suggestions. You can never
truly master every aspect of a problem or its models.
Know Your Models and How to Use Them
Being an Agile modeler doesn’t mean that you aren’t skilled. If anything, you
must be more skilled to know the strengths and weaknesses of the models,
including how and when to use them. An expert modeler applies the previous
principles of simplicity, quality, and development of multiple models.
Adapt to Specific Project Needs
Every project is different because it exists in a unique environment, involves dif-
ferent users, stakeholders, and team members, and requires a different develop-
ment environment and deployment platform. Adapt your models and modeling
techniques to fit the needs of the business and the project. Sometimes, models
can be informal and simple. For other projects, more formal, complicated mod-
els might be required. An Agile modeler is able to adapt to each project.
Chapter Summary
System development projects are organized around a sys-
tems development life cycle (SDLC). Some SDLCs are
based on a more predictive approach to the project, and
other SDLCs are based on a more adaptive approach. The
predictive approach to the SDLC includes phases that are
completed sequentially or with some overlap. The tradi-
tional SDLC phases are project initialization, project plan-
ning, analysis, design, implementation, deployment, and
support. The adaptive approach to the SDLC is used
when the requirements or technology are less certain and
it is difficult to plan everything about the project in
advance. Adaptive SDLCs use multiple iterations that
allow the analysis, design, and implementation of smaller
parts of the application to be completed and evaluated.
The SDLC used in this text is an example of an adaptive
SDLC, and the six core processes correspond to the phases
of the traditional predictive SDLC.
All development projects use an SDLC to manage
the project, but there is more to system development
than the SDLC. Models, techniques, and tools make up
a system development methodology that provides guide-
lines for completing every activity in the SDLC. Most
methodologies are based on one of two approaches to
software construction and modeling: the traditional
approach or the object-oriented approach. The tradi-
tional approach uses such models and techniques as use
cases, data flow diagrams, entity-relationship diagrams,
structure charts, the structured analysis technique, the
structured design technique, and structured program-
ming techniques. The object-oriented approach views
software as a collection of interacting objects that col-
laborate to complete tasks. Such models and techniques
as use cases, class diagrams, sequence diagrams, package
diagrams, state machine diagrams, object-oriented anal-
ysis, object-oriented design, and object-oriented pro-
gramming are used.
Agile development, the leading trend in system
development, helps keep system development projects
responsive to change. It is a philosophy that values
change over following a plan, individuals over process
and tools, working software over documentation, and
customer collaboration over contract negotiation.
Agile modeling describes principles for keeping a proj-
ect agile.
CHAPTER 8 ■ Approaches to System Development 247
Key Terms
adaptive approach to the SDLC 228
Agile development 244
Agile modeling (AM) 245
chaordic 244
data flow diagram (DFD) 239
help desk 233
incremental development 232
integrated development
environments (IDEs) 235
object 241
object-oriented analysis (OOA) 241
object-oriented approach 241
Object-oriented design (OOD) 241
Object-oriented programming (OOP) 241
phases 228
predictive approach to the SDLC 227
spiral model 230
structure chart 238
structured analysis 239
structured approach 236
structured design 238
Structured programming 237
support activities 232
system development methodology 233
technique 235
tool 234
Top-down programming 237
Visual modeling tools 235
walking skeleton 232
waterfall model 228
Review Questions
1. What is a project?
2. What is the range of sizes of an information system
development project?
3. What is the system development life cycle (SDLC)?
4. What characteristics of a project call for a predictive
approach to the SDLC?
5. What characteristics of a project call for an adaptive
approach to the SDLC?
6. What are the seven phases of the traditional
predictive SDLC?
7. What are the objectives of the support phase?
8. Explain how the waterfall model of the SDLC
controls the changes that occur during a project.
9. Explain the advantages of having the phases of a
predictive SDLC overlap.
10. What organizing concept is included in all adaptive
SDLCs?
11. What is considered the first adaptive SDCL? Sketch it.
12. For an adaptive SDLC, explain what goes on during
each iteration.
13. The SDLC used in this text is based on what
adaptive SDLC?
14. What are the core processes in the SDLC used in
this book, and what traditional predictive SDLC
phase corresponds to each process?
15. What is the iterative approach that involves complet-
ing and deploying part of an application over a few
iterations and then completing and deploying another
part of that application after a few more iterations?
16. Why do adaptive SDLCs not explicitly include the
support phase?
17. What are the three activities of the support phase?
18. What is a popular support technique used to answer
users’ questions and help them increase
productivity?
19. What is a system development methodology?
20. What are some examples of models included in a
methodology?
21. What are some examples of techniques included in
a methodology?
22. What are some examples of tools included in a
methodology?
23. What are the two approaches to software con-
struction and modeling?
24. What are the basic characteristics of the traditional
approach?
25. What are the basic characteristics of the object-
oriented approach?
26. What are the three main structured techniques?
27. What are three diagrams created by the structured
approach?
28. What are the main object-oriented techniques?
29. What is Agile development?
30. What are the four “values” reflected in Agile
development?
31. What is Agile modeling (AM)?
32. What are the 11 Agile modeling principles?
248 PART 4 ■ Projects and Project Management
Problems and Exercises
1. Write a one-page paper that distinguishes among
the fundamental purposes of the analysis phase, the
design phase, and the implementation phase of the
traditional predictive SDLC.
2. Describe an information system project that might
have three subsystems. Discuss how three iterations
might be used for the project.
3. Why might it make sense to teach analysis and
design phases and activities sequentially, like a
waterfall, even though iterations are, in practice,
used in nearly all development projects?
4. List some of the models that architects create to
show different aspects of a house they are designing.
Explain why several models are needed.
5. What models might an automotive designer use to
show different aspects of a car?
6. Sketch and write a description of the layout of your
room at home. Are both the sketch and the written
description considered models of your room?
Which is more accurate? More detailed? Which
would be easier to follow by someone unfamiliar
with your room?
7. Describe a technique you use to help you complete
the activity “Get to class on time.” What are some
of the tools you use with this technique?
8. Describe a technique you use to make sure you get
assignments done on time. What are some of the
tools you use with this technique?
9. What are some other techniques you use to help you
complete activities in your life?
10. There are at least two approaches to the SDLC, two
approaches to software construction and modeling,
and a long list of techniques and models. Discuss
the following reasons for this diversity of
approaches: The field is young; the technology
changes quickly; different organizations have dif-
ferent needs; there are many types of systems;
developers have widely different backgrounds.
11. Go to the campus placement office to gather some
information on companies that recruit information
systems graduates. Try to find any information
about the companies’ approaches to developing
systems. Is their SDLC described? Do any mention
an IDE or a visual modeling tool? Visit the compa-
nies’ Web sites to look for more information.
12. Visit the Web sites of a few leading information
systems consulting firms. Try to find information
about their approaches to developing systems. Are
their SDLCs described? Do the sites mention any
tools, models, or techniques?
Case Study
A “College Education Completion” Methodology
Given that you are reading this book, you are probably a
college student working on a degree. Think about complet-
ing college as a project—a big project lasting many years
and costing more than you might want to admit. Some
students do a better job managing their college completion
projects than others. Many fail entirely (certainly not you),
and most complete college late and way over budget
(again, certainly not you).
As with any other project, to be successful, you need
to follow some sort of “college education completion”
methodology—that is, a comprehensive set of guidelines
for completing activities and tasks from the beginning of
planning for college through to the successful completion.
1. What are the phases that your college education
completion life cycle might have?
2. What are some of the activities included with each
phase?
3. What are some of the techniques you might use to
help complete those activities?
4. What models might you create? Differentiate the
models you create to get you through college from
those that help you plan and control the process of
completing college.
5. What are some of the tools you might use to help you
complete the models?
CHAPTER 8 ■ Approaches to System Development 249
RUNNING CASE STUDIES
Community Board of Realtors
The Board of Realtors Multiple Listing Service (MLS)
system isn’t very large in terms of use cases and
domain classes. In that respect, the functional
requirements are simple and well understood. MLS
needs a Web site with public access to the listings,
and it also needs to allow agents and brokers to log
in to the system to add and update listings. There is
very little back-end administrative data maintenance
required, except to add or update a real estate office
or agent.
1. Compared to the Tradeshow application described
in Chapter 1, how long might this project take,
and which approach to the SDLC would be most
appropriate?
2. If you use a predictive SDLC, how much time
might each phase of the project take? How
much overlap of phases might you plan for?
Be specific about how you would overlap
the phases.
3. If you use an adaptive SDLC, how many iterations
might you plan to include? What use cases would
you analyze, design, and implement in the first
iteration? What use cases would you work on in
the second iteration? In additional iterations?
Think in terms of getting the core functionality
implemented early and then building the support-
ing functionality.
4. Let us say this project focused on Web access to
the MLS. If you also plan to deploy a smartphone
application for use by the public and by the agents
and brokers, how might this affect your choice of
the approach to the SDLC? What are the implica-
tions for including the smartphone application in
the initial project versus having a separate project
for wireless later?
5. Consider using incremental development to
include the Web application and the wireless sup-
port. Describe what would be included in the first
and second deployments of the project. Take into
consideration that you might want to work on
some initial problem solving for requirements,
design, and implementation of the wireless support
at the same time you are working on the Web
application.
The Spring Breaks ‘R’ Us Travel Service
Recall from Chapter 2 that SBRU’s initial system
included four major subsystems: Resort relations,
Student booking, Accounting and finance, and Social
networking. The project calls for an adaptive
approach to the SDLC for several reasons. One, it is
relatively large in scope. Two, there is a diverse set of
users in several functional areas, internal and external
to the company and in several foreign countries.
Three, the project needs to use an assortment of
newer technologies that can communicate anytime and
anywhere.
1. The SBRU information system includes four major
subsystems: Resort relations, Student booking,
Accounting and finance, and Social networking.
Although you have only worked with the domain
model class diagram for the Social networking
subsystem, list as many of the domain classes
that would probably be involved in each of the
subsystems. Note which classes are used by more
than one subsystem.
2. Based on the overlapping classes, what domain
classes seem to be part of the core functionality for
SBRU? Draw a domain model class diagram that
shows these classes and their associations.
3. Let us say you plan to implement the basic use
cases that create and maintain the classes that are
part of the core functionally you just modeled.
Describe what domain classes you would focus on
in each iteration if you assumed that you would
need two iterations for the initial core functional-
ity and two additional iterations to complete each
of the subsystems.
4. How might you use incremental development to
get some core functionality or some subsystems
deployed and put into use before the project is
completed?
(continued on page 251)
250 PART 4 ■ Projects and Project Management
On The Spot Courier Services
In the On the Spot system, package pickup and delivery
are closely integrated with route schedules. However,
recall the RMO system, where there is a Sales sub-
system, an Order fulfillment subsystem, a Customer
account subsystem, and a Marketing subsystem. We
could conceive of the On the Spot system as also con-
sisting of four subsystems:
■ Customer account subsystem (like customer
account)
■ Pickup request subsystem (like sales)
■ Package delivery subsystem (like order fulfillment)
■ Routing and scheduling subsystem
Assuming that On the Spot’s system developer
approached this new system from this point of view
and that the developer also decided to use an adaptive,
iterative approach, answer these questions:
1. In what order would you develop the four sub-
systems? Support your answer.
2. Reviewing your work from Chapter 3, assign each
of your use cases to a particular subsystem. Does
this change your answer or does it strengthen your
original premise? Support your answer.
3. Reviewing your work from Chapter 4, assign each of
your classes to a subsystem. (Note: Some classes may
be in multiple subsystems. The primary subsystem is
the one that “creates” the objects in that class.) Does
this change your answer or does it strengthen your
original premise? Support your answer.
4. Considering the Agile modeling principles, discuss
each of the following:
a. In Chapter 3, you developed a list of use cases
and a use case diagram. If you follow the Agile
modeling philosophy, how much or how little
of this model do you think is necessary?
Support your answer.
b. In Chapter 4, you developed a class diagram. If
you follow the Agile modeling philosophy, how
much or how little of this model do you think is
necessary? Support your answer.
c. In Chapter 5, you developed some use case
descriptions, activity diagrams, and system
sequence diagrams. If you follow the Agile
modeling philosophy, how many or how few of
these models do you think are necessary?
Support your answer.
d. In Chapter 6, you developed a network dia-
gram and specified hardware requirements. If
you follow the Agile modeling philosophy, how
many or how few of these models do you think
are necessary? Support your answer.
Save your answers. These questions would be good
to review at the end of the semester—after you have
learned more about design and implementation.
Sandia Medical Systems Real-Time Glucose Monitoring
Review the original system description in previous
chapters and the use case diagram shown in Figure 8-22
to refamiliarize yourself with the proposed system.
Consider this additional information:
■ Sandia Medical Devices (SMD) and New Mexico
Health Systems (NMHS) are developing the system
jointly. Project staff will include analysts, designers,
and programmers from both organizations. Three
technical staff members from each organization
have been assigned initially, and the budget
includes sufficient funds to add other personnel for
short-term assignments as needed. In addition,
NMHS will assign a physician and a physician’s
assistant to the project one day per week.
■ It is anticipated that SMD personnel assigned to
the project will work primarily at NMHS facilities
in office space and with computer equipment
dedicated to developing the Real-Time Glucose
Monitoring (RTGM) system.
■ NMHS anticipates recruiting a handful of its own
diabetic employees to provide requirements and to
test the prototype RTGM software.
■ SMD and NMHS anticipate a six-month develop-
ment schedule for an initial version of the server
software and Android-based client-side software.
That will be followed by a three-month period for
evaluation and another three-month period for
development of improved software versions and
(continued from page 250)
(continued on page 252)
CHAPTER 8 ■ Approaches to System Development 251
support for a wider range of mobile phone oper-
ating systems.
Answer these questions:
1. Given the system goals, requirements, and scope as
they are currently understood, is the project
schedule reasonable? Why or why not?
2. How well understood are the system requirements
at the start of the project? What are the implica-
tions of your answer for using a predictive,
adaptive, or mixed SDLC? What are the implica-
tions of your answer for using Agile techniques?
3. Medical personnel at NMHS have very busy
schedules. NMHS’s decision to assign two medical
practitioners to the project for one day a week
represents a significant investment in salary and
lost revenue. How should project iterations be
structured to ensure rapid progress to completion,
high quality, and efficient use of medical practi-
tioner time?
Further Resources
Classic and more recent texts include:
Craig Larman, Agile and Iterative Development:
A Manager’s Guide. Addison-Wesley, 2004.
Scott W. Ambler, Agile Modeling: Effective
Practices for eXtreme Programming and the
Unified Process. Wiley Publishing, 2002.
D. E. Avison and G. Fitzgerald, Information
Systems Development: Methodologies,
Techniques, and Tools (3rd ed.). McGraw-Hill,
2003.
Tom DeMarco, Structured Analysis and System
Specification. Prentice Hall, 1978.
Ivar Jacobson, Grady Booch, and James
Rumbaugh, The Unified Software Development
Process. Addison-Wesley, 1999.
Steve McConnell, Rapid Development. Microsoft
Press, 1996.
Meilir Page-Jones, The Practical Guide to
Structured Systems Design (2nd ed.). Prentice
Hall, 1988.
John Satzinger, Robert Jackson, and Stephen
Burd, Object-Oriented Analysis and Design with
the Unified Process. Course Technology, 2005.
(continued from page 251)
FIGURE 8-22 Use cases for the patient and physician actors
View/respond to
alert
View history
Annotate history
Send message to
physician
View/hear
message from
physician
View/respond to
alert
Send message to
patient
View/hear
message from
patient
Set alert
conditions
Patient Physician
252 PART 4 ■ Projects and Project Management
9
Project Planning and Project
Management
Chapter Outline
■ Principles of Project Management
■ Activities of Core Process 1: Identify the Problem and Obtain Approval
■ Activities of Core Process 2: Plan and Monitor the Project
Learning Objectives
After reading this chapter, you should be able to:
■ Describe the factors that cause a software development project to succeed
or fail
■ Describe the responsibilities of a project manager
■ Describe the knowledge areas in the project management body of knowledge
(PMBOK)
■ Describe the Agile approach to the project management knowledge areas
■ Explain the activities required to get a project approved (Core Process 1)
■ Explain the activities required to plan and monitor a project (Core Process 2)
253
OPENING CASE
Blue Sky Mutual Funds: A New Development Approach
Jim Williams, vice president of finance for Blue Sky Mutual
Funds, spoke first. “There are some things I like about
this new approach, but other things worry me,” he
told Gary Johnson, the company’s director of information
technology.
“This idea of ‘growing’ the system through several
iterations makes a lot of sense to me. It is always hard
for my people to know exactly what they need a new
information system to do and what will work best
for the company. So, if they can get their hands on the
system early, they can begin acceptance testing and try
it out to see whether it addresses their needs in the best
way.
“Let me see if I understand the big picture, though.
Your development team and my investment advisors will
decide on a few core processes that the system needs to
support and then your team will design and build a system
to support those core processes. You will do that in a
mini-project that will last about six weeks. Then, you will
continue adding more functionality through several other
mini-projects until the system is complete and functioning
well. Is that right?”
Jim was becoming more enthusiastic about this new
approach to system development.
“Yes, that’s the basic idea,” Gary said. “Your users
need to understand that the first few versions of the
system won’t be complete and may not be completely
robust either. But these early versions will give them
something to work with and try out. We also need good
feedback from their acceptance testing so the system will
be thoroughly tested by the time we are through.”
“I realize that,” Jim said. “My people will like not
having to think from the very beginning about everything
they need the system to do. They’ll like being able to try
things out. As I said earlier, I like this approach. However,
the part I don’t like about this approach is that it will be
more difficult for you to give me a firm time schedule and
project cost. That worries me. In the past, those have
been two of the major tools we used to monitor a
project’s progress. Are you saying that now we won’t
have a schedule at all? And you want an open budget?”
Jim frowned.
“It’s not as bad as it first sounds,” Gary said. “This
approach is an ‘adaptive’ approach, by which I mean that
because the system is growing, the project is more open
ended. The project manager will still create a schedule
and estimate the project costs, but she won’t even try
to identify and lock in all the required functionality for
several of the iterations. Because the system’s scope is
going to continually be refined over the first few itera-
tions, there is the risk of ‘scope creep.’ That is one of
the biggest risks with adaptive approaches. You and I
should meet with the project manager fairly frequently
to ensure that the scope is controlled and the project
doesn’t get out of control.”
“Okay,” Jim said. “You have convinced me to try this
new approach. However, let’s treat this project as a pilot
and see how it works. If it’s successful, we will consider
using this iterative approach on our other projects.” Jim
and Gary agreed that a pilot was the best way to get
started. Gary then headed off to meet with the project
manager and get the project started.
Overview
Chapter 8 introduced you to the SDLC and the various alternatives for organiz-
ing software development activities. By now, you may be asking yourself such
questions as:
■ “How are all these activities coordinated?”
■ “How do I know which tasks to do first?”
■ “How is the work assigned to the different teams and team members?”
■ “How do I know which parts of the new system should be developed first?”
The purpose of project planning and project management is to bring
some order to all these (sometimes seemingly unrelated) tasks. As you will
learn in this chapter, the success of any given project highly depends on
the skills and abilities of those managing the project. You will also learn
that project management skills aren’t only for project managers—that all the
project team members contribute to the management of the project and thus
to its success.
254 PART 4 ■ Projects and Project Management
This chapter first discusses the need for project management and the princi-
ples associated with it. The rest of this chapter discusses the detailed activities
that are associated with the first two core processes of systems development,
both of which are primarily project management processes. The purpose of this
chapter is to teach you how to plan, organize, and direct a systems development
project.
Principles of Project Management
Many of you may have built a Web page with HTML or written a computer
program for yourself or a friend. In those cases, where it was just you working,
you weren’t too concerned about how to organize your work or how to manage
the project. However, as soon as two or more developers are working together,
the work must be partitioned and organized, with specific assignments for each
developer. This is true whether the project uses a predictive approach or an
adaptive approach. As discussed in the last chapter, the chosen methodology
lays out a complex set of activities and tasks that must be carefully managed.
Failing to organize usually causes wasted time and effort as well as confusion
and may even cause the project to fail.
Even though every project team designates one person as the project man-
ager, with primary responsibility for the way the team functions, all members
contribute to the team’s management. The project manager for the RMO CSMS
project is Barbara Halifax, but she has a senior systems analyst helping her
every step of the way. As the project proceeds, all team members are involved
in aspects of managing the project.
As discussed in earlier chapters, a project is a planned undertaking with
a beginning and an end, which produces a predetermined result and is
usually constrained by a schedule and resources. The development of informa-
tion systems fits this definition. In addition, it is usually a quite complex
project, with many people and tasks that have to be organized and coordi-
nated. Whatever its objective, each project is unique. Different products
are produced, different activities are required with varying schedules, and
different resources are used. This uniqueness makes information systems
projects difficult to control.
The Need for Project Management
Studies suggest that most IT projects are less than successful as measured by
three criteria: finishing on time, finishing within budget, and effectively meeting
the need as expressed by the original problem definition. Since 1994, the well-
known Standish Group has produced an annual CHAOS report, which provides
statistics on the outcome of IT development projects for the preceding year. The
Standish Group categorizes projects in three ways: (1) successful projects, which
are completed on time and within budget while meeting the users’ requirements
for functionality; (2) challenged projects, which have some combination of
being late, over budget, or reduced in scope; and (3) failed projects, which are
cancelled or result in the system never being used. The numbers vary somewhat
year by year, with more recent years showing a slight improvement. In 2009,
the results indicated that 32 percent were successful, 44 percent were challenged,
and 24 percent were failed projects (see Figure 9-1). Billions of dollars are spent
on projects that don’t meet their objectives.
The Standish Group’s report doesn’t just indicate the rate of IT project
failure or success; it also identifies the reasons for each. Here are some of the
reasons for failure:
■ Undefined project management practices
■ Poor IT management and poor IT procedures
CHAPTER 9 ■ Project Planning and Project Management 255
■ Inadequate executive support for the project
■ Inexperienced project managers
■ Unclear business needs and project objectives
■ Inadequate user involvement
It is notable that the primary reasons projects fail are a lack of executive
involvement and a lack of management skills. The other major reason is lack of
involvement by the user community. In other words, projects don’t tend to fail
for lack of programming skills or enthusiastic developers.
For an IT project to be successful, strong IT management and business
direction need to be present. The other major element in all project success is
sound project management procedures as well as experienced and competent
project managers. In fact, good project managers always ensure that they have
received clear directives from business executives and committed user involve-
ment with the requirements for the new system.
The Role of the Project Manager
Project management is organizing and directing other people to achieve a
planned result within a predetermined schedule and budget. At the beginning of
a project, a plan is developed that specifies the activities that must take place,
the deliverables that must be produced, and the resources that are needed.
Thus, project management can also be defined as the processes used to plan the
project and then to monitor and control it.
One of the most exciting careers for IT-oriented people is being a project
manager. As projects become more complex because of shorter time frames,
distributed project teams (including off-shore and cross-cultural teams), rapidly
changing technology, and more sophisticated requirements, highly qualified
project managers are sought after and paid well. Many universities are adding
project management courses to their curricula to respond to the needs of
industry. There is a strong need and a high demand for people who are capable
project managers. As your career progresses, you should develop your manage-
ment skills. You may even want to become active in the Project Management
Institute (PMI), which is the most well-known professional organization for
project managers.
Overall, project managers must be effective internally (managing people and
resources) and externally (conducting public relations). Internally, the project
24%
32%
44%
Challenged projects
Failed projects
Successful projects
FIGURE 9-1
Project completion results as reported
by the Standish Group
project management organizing and
directing other people to achieve a planned
result within a predetermined schedule and
budget
256 PART 4 ■ Projects and Project Management
manager serves as locus of control for the project team and all its activities. He
or she establishes the team’s structure so work can be accomplished. This list
identifies a few of these internal responsibilities:
■ Developing the project schedule
■ Recruiting and training team members
■ Assigning work to teams and team members
■ Assessing project risks
■ Monitoring and controlling project deliverables and milestones
Externally, the project manager is the main contact for the project. He or
she must represent the team to the outside world and communicate the team
members’ needs. Major external responsibilities include:
■ Reporting the project’s status and progress
■ Working directly with the client (the project’s sponsor) and other
stakeholders
■ Identifying resource needs and obtaining resources
A project manager works with several groups of people. First of all, there
is the client (i.e., the customer), who pays for the development of the new
system. Project approval and the release of funds come from the client. For
in-house developments, the client may be an executive committee or a vice
president. The client approves and oversees the project, along with its funding.
For large, mission-critical projects, an oversight committee (sometimes
called the steering committee) may be formed. This consists of clients and
other key executives who have a vision of the organization’s strategic direc-
tion and a strong interest in the project’s success. On the other hand, the
users are the people who will actually use the new system. The user typically
provides information about the detailed functions and operations needed in
the new system.
Communication with the client and oversight committee is an important
part of the project manager’s external responsibilities. Similarly, working
with the team leaders, team members, and any subcontractors is an important
part of a project manager’s internal responsibilities. The project manager
must ensure that all internal and external communication is flowing properly.
Figure 9-2 depicts the various groups of people involved in a development
project.
Project Management and Ceremony
Another dimension that has a heavy impact on project management is the
level of formality, sometimes called ceremony, required for a given project.
Ceremony is a measure of the amount of documentation generated, the
traceability of specifications, and the formality of the project’s decision-making
processes. Some projects, particularly small ones, are conducted with very low
ceremony. Meetings occur in the hallway or around the water cooler. Written
documentation, formal specifications, and detailed models are kept to a mini-
mum. Developers and users usually work closely together on a daily basis to
define requirements and develop the system. Other projects, usually larger,
more complex ones, are executed with high ceremony. Meetings are often held
on a predefined schedule, with specific participants, agendas, minutes, and
follow-through. Specifications are formally documented with an abundance of
diagrams and documentation and are frequently verified through formal review
meetings between developers and users.
A project’s ceremony isn’t the same as whether its approach is predictive or
adaptive. However, even though the approach and ceremony are different, large
predictive projects often tend to have high ceremony, with lots of meetings and
documentation. Unfortunately, the extensive documentation tended to increase
client the person or group that funds the
project
oversight committee clients and key
managers who review the progress and direct
the project
users the person or group of people who
will use the new system
ceremony the level of formality of a
project; the rigor of holding meetings and
producing documentation
CHAPTER 9 ■ Project Planning and Project Management 257
the length of the project and sometimes contributed to cost overruns.
Techniques such as rapid application development (RAD) were utilized to help
manage large predictive projects with less formality. This approach required less
documentation and fewer status and review meetings. Of course, many smaller
projects were often managed with less ceremony.
Adaptive projects can also be more or less formal in the way they are
managed. The Unified Process, which will be explained in Chapter 14, is quite
formal, with high ceremony. Each iteration is precisely defined, with such
specific outcomes as specifications, diagrams, prototypes, and deliverables.
However, adaptive, iterative approaches also lend themselves to being
managed with much less formality. The inherent characteristics of an iterative
approach, with its “just in time” project plans, easily adjust to less documen-
tation, fewer diagrams for specifications, and less formal status reporting. The
Agile approach, discussed in several chapters, is typically a low-ceremony
approach.
Project Management Body of Knowledge (PMBOK)
The Project Management Institute (PMI) is a professional organization that
promotes project management, primarily within the United States but also
throughout the world. In addition, professional organizations in other countries
promote project management. The PMI has a well-respected and rigorous
Project manager
Client
External
stakeholders
UserUser
Oversight committee
Internal
stakeholders
Subcontractor Team leaderTeam leader
MemberMember Member MemberMember
FIGURE 9-2
Participants in a system development
project
258 PART 4 ■ Projects and Project Management
certification program, and many corporations encourage their project managers
to become certified.
As part of its mission, the PMI has defined a body of knowledge for project
management. This body of knowledge, referred to as the project management
body of knowledge (PMBOK), is a widely accepted foundation of information
that every project manager should know. The PMBOK is organized into these
nine knowledge areas:
■ Project Scope Management—Defining and controlling the functions that are
to be included in the system as well as the scope of the work to be done by
the project team
■ Project Time Management—Creating a detailed schedule of all project tasks
and then monitoring the progress of the project against defined milestones
■ Project Cost Management—Calculating the initial cost/benefit analysis and
its later updates and monitoring expenditures as the project progresses
■ Project Quality Management—Establishing a comprehensive plan for
ensuring quality, which includes quality control activities for every phase
of a project
■ Project Human Resource Management—Recruiting and hiring project team
members; training, motivating, and team building; and implementing related
activities to ensure a happy, productive team
■ Project Communications Management—Identifying all stakeholders and
the key communications to each; also establishing all communications
mechanisms and schedules
■ Project Risk Management—Identifying and reviewing throughout the
project all potential risks for failure and developing plans to reduce these
risks
■ Project Procurement Management—Developing requests for proposals,
evaluating bids, writing contracts, and then monitoring vendor performance
■ Project Integration Management—Integrating all the other knowledge areas
into one seamless whole
As you progress in your career, you would be wise to keep a record of the
project management skills you observe in others as well as those you learn from
your own experiences. One place to start is with the set of skills a systems
analyst needs, as described in earlier chapters. A good project manager knows
how to develop a plan, execute it, anticipate problems, and make adjustments.
Project management skills can be learned.
Agile Project Management (APM)
In the last chapter, you learned about the Agile approach to developing systems
and the four values of Agile development, which tended to prefer flexibility over
plans and defined procedures. Obviously, these values have a large impact on
the way a project is managed. However, one of the concerns with them is that
they imply a working environment that has no controls or plans—one that can
turn into pure chaos. In Chapter 8, we introduced a term, chaordic,
that describes a project that expects and allows chaos while remaining
controlled or ordered.
Agile project management is still a young discipline, and the IT industry is
still learning how best to balance the flexibility and chaos of an Agile team
with the order and control needed for a project. More than anything else, Agile
project management is a way of balancing these two conflicting requirements:
how to be agile and flexible while maintaining control of the project schedule,
budget, and deliverables.
To help you understand Agile project management better, we will now go
through five of the nine knowledge areas of the PMBOK and discuss the issues
involved in implementing them by using Agile principles.
project management body of
knowledge (PMBOK) a project
management guide and standard of
fundamental project management principles
CHAPTER 9 ■ Project Planning and Project Management 259
Agile Scope Management
Scope management refers to the scope of the new system and the scope of
the project. In traditional predictive projects, the project manager and the
team attempted to define the scope in both areas at the beginning of the project,
during the planning phase. Unfortunately, for most new systems, there were so
many unknowns that the scope was almost never defined accurately. The Agile
philosophy accepts the fact that the scope isn’t well understood and that
there will be many changes, updates, and refinements to the requirements as the
project progresses. However, uncontrolled scope can result in a project that
never finishes, even if it is an Agile project. The project manager must have a
process and mechanisms in place to control the scope of the project. How can
this be done?
Let us assume that one of the major outcomes of the planning iteration was
the decision to develop a prioritized list of business requirements that the new
system needs to support. Figure 9-3 represents this list, with the higher-priority
items toward the top and the lower ones toward the bottom. These require-
ments can be prioritized by using several criteria, including importance to the
business, risk, complexity, size, and other dependencies. In most projects, some
combination of these criteria is used to prioritize the requirements. Figure 9-3
also indicates that the project team has made a preliminary assignment of these
requirements to iterations. As new requirements are defined, they are prioritized,
inserted into the stack, and assigned to an iteration.
Controlling the scope is a decision made by the client, with input provided
by the project team and the users. With an iterative project, a deliverable is
usually provided at the end of each iteration. Because the system is growing
throughout the project, with the highest priority requirements implemented
first, the client is able to shut down the project when he or she feels that the
High-priority functions
Low-priority functions
Iteration 1
New required fuctions
can be inserted.
Existing functions can be
removed or reprioritized.Iteration 2
Iteration 3
Iteration 4
Iteration 5
FIGURE 9-3
Scope management with changing
requirements
260 PART 4 ■ Projects and Project Management
system is complete enough to satisfy the business need. Most projects usually
require one or two more iterations to do final integration and testing to ensure
that the system will scale for high volume and that it meets all the “hardening”
requirements for security purposes.
Agile Time Management
Traditional time management is primarily concerned with scheduling tasks:
creating the schedule, assigning work according to the schedule, and monitoring
progress against the schedule. In predictive projects, the schedule is created
during the initial planning phase and entered into a project scheduling system,
such as Microsoft Project.
In an Agile project, because the requirements are always changing, it can be
very difficult to create and maintain a meaningful project schedule. The initial
planning effort will usually include the beginning set of requirements and divide
the project into iterations, with a preliminary assignment of requirements
to iterations. However, it is expected that the number of iterations and the
assignments will change as new requirements are discovered and put on the
prioritized stack.
Within an iteration, which often lasts from two to four weeks, a more
detailed schedule can be developed. The Agile philosophy includes the idea that
only for small work projects, in which the tasks are performed at nearly the
same time (i.e., within one iteration), can a meaningful schedule be developed.
In addition, the project team, not the project manager or team leader, will
schedule its own work. Thus, for an Agile project, each iteration is usually
planned as the first task within the iteration. The tasks are identified, estimates
of the effort are developed, and work is assigned by the project team members.
Because there are so many iterations in a project, the project team gets lots of
practice and quickly becomes proficient at estimating and scheduling the work.
Agile Cost Management
It is normal for the client stakeholder to ask “How long will it take and how
much will it cost for this new system to be developed?” These questions are
hard to answer. For predictive projects, the project manager gives estimates, but
as we saw earlier, these are usually incorrect. Agile project managers admit
more readily that time and cost estimates are difficult to make, especially with a
project in which the requirements are expected to change throughout. Hence,
estimating the project’s cost isn’t as important as controlling the cost during the
life of the project. The project manager’s responsibility to control costs is just as
important for an Agile project as it is for a traditional predictive project.
Agile Risk Management
In most adaptive, iterative projects, including Agile projects, close attention is
given to project risks, particularly technical risks. Iterative projects are often
risk-driven, meaning that early iterations focus specifically on addressing the
most critical project risks. Although a similar emphasis on risk can be included
in a predictive project, it is more difficult to integrate specific risk-reducing
activities into the project schedule. The major difference between the two types
of projects is that in predictive projects, separate prototypes are built, whereas
in adaptive projects, the high-risk portions of the new system are built first.
Agile Quality Management
Usually, quality management has to do with the quality of the deliverable from
the project. However, in an Agile project, we also consider the quality of the
process. How well is the project working, and how well do the internal proce-
dures promote project success?
In a predictive project, the final set of tasks consists of the system test, the
integration test, and the user acceptance test. However, scheduling these
CHAPTER 9 ■ Project Planning and Project Management 261
extensive tests at the end of the project renders it very difficult and expensive to
make the necessary changes. An alternative is to deploy the system with minimal
testing, which helps the budget but can cause many problems for the company.
In an Agile project, each iteration has a deliverable. Often, each iteration
also integrates a new piece into the growing total system. Within each iteration,
the new pieces are tested by themselves and as integrated with the rest of the
system. The users also get involved in testing the system’s ability to meet their
business needs. Hence, testing and quality control are spread across the entire
project and usually provide a better-tested and more robust system.
Another kind of quality control that should be done as part of an Agile
project is a process evaluation at the end of each iteration. In other words, the
project team does a self-evaluation to figure out how well it did and what could
be done to improve the next iteration.
Activities of Core Process 1:
Identify the Problem and Obtain Approval
The adaptive SDLC used in this text includes six core processes. Chapter 2
outlined the activities of Core Process 3 (“Discover and understand details”),
and Chapter 6 outlined the activities of Core Process 4 (“Design system compo-
nents”). In this chapter, we discuss the activities of Core Processes 1 and 2.
Core Process 1 is probably the most critical process for project success. As
was noted in the Standish report, establishing such things as strong executive
support, clear business case and direction, and effective planning is critical to
project success. These important factors are identified and resolved during the
activities of Core Process 1. Figure 9-4 highlights the four activities associated
with Core Process 1.
Identify the Problem
Information system development projects are initiated for various reasons,
including: (1) to respond to an opportunity, (2) to resolve a problem, and (3) to
respond to an external directive.
Most companies are continually looking for ways to increase their market
shares or open up new markets. One way they create opportunities is with
strategic plans—short term and long term. In many ways, planning is the
optimal way to identify new projects. As the strategic plans are developed,
projects are identified, prioritized, and scheduled.
Projects are also initiated to resolve immediate business problems. Such
projects can be initiated as part of a strategic plan, but they are more commonly
FIGURE 9-4 Activities of Core Process 1
Identify Problem Activities
Identify the problem.
Quantify project approval factors.
Perform risk and feasibility analysis.
Review with the client and obtain approval.
Core
Processes
1 2 3 4 5 6
Identify problem and obtain
approval.
Plan and monitor the project.
Discover and understand details.
Design system components.
Build, test, and integrate system
components.
Complete system tests and deploy
solution.
Iterations
262 PART 4 ■ Projects and Project Management
requested by middle managers who want to take care of some difficulty in the
company’s operations. Sometimes, these needs are so critical that they are
brought to the attention of the strategic planning committee and integrated into
the overall business strategy. At other times, an immediate need can’t wait,
such as a new sales commission schedule or a new report needed to assess
productivity. In these cases, managers of business functions will request the
initiation of individual development projects.
Finally, projects are initiated to respond to outside directives. One common
version of this is legislative changes that require new information gathering
and reporting—for example, changes in tax laws and labor laws. Legislative
changes can also expand or contract the range of services and products that an
organization can offer in a market. The regulatory changes in the telecommuni-
cations industry have opened doors for cable TV and telephone companies,
which are vying for opportunities to provide cellular services, Internet access,
and personalized entertainment.
Identifying and carefully defining the problem is a critical activity for a
successful project. The objective is to ensure that the new system actually meets
the business need. The purpose is to precisely define the business problem and
determine the scope of the new system. This activity defines the target you want
to hit. If the target is ill defined, all subsequent activities will lack focus.
For example, a request might be made for a system that would “keep track of
salesperson commissions.” Without knowing more about the context surround-
ing this request, a system could be built that only records the commissions,
ignoring the complexities of tax reporting, internal-versus-outside salespersons,
deferred commissions, complex relationships, shared commissions, and so
forth. Thus, even though all the specifications may not be defined in this initial
activity, enough defining needs to be done to understand most of the implica-
tions of the required solution.
An effective way to define the problem is to develop a System Vision
Document, which was introduced in Chapter 1. There are three components to
this document: the problem description, the anticipated business benefits, and
the system capabilities.
The first task in developing a System Vision Document is to review the
business needs that initiated the project. If the project was initiated as part
of the strategic plan, then the planning documents need to be reviewed. If the
project originated from departmental needs, then key users need to be consulted
to help the project team understand the business need. From this task, a brief
problem description is developed. As these needs are identified, the team also
develops a detailed list of the expected business benefits. The list of business
benefits contains the results that the organization anticipates it will accrue
from a new system. Business benefits are normally described in terms of the
specific results that can change the financial statements, either by decreasing
costs or increasing revenues.
As the business benefits are being identified, the project team will identify
the new system’s specific capabilities to support the realization of these benefits.
The objective of this task is to define the scope of the problem in terms of the
requirements for the information system. This scoping statement, as defined by
a list of system capabilities, helps identify the size and complexity of the new
system and the project that will be required.
Members of the development team, working with the users and the client,
combine these three components—the problem description, the business benefits,
and the system capabilities—into a System Vision Document. Figure 9-5
presents RMO’s System Vision Document. Note the differences between the
business benefits and the system capabilities. The business benefits focus on the
financial benefit to the company. The system capabilities focus on the system
itself. The benefits are achieved through the capabilities provided by the system.
System Vision Document a document
to help define the scope of a new system
business benefits the benefits that
accrue to the organization; usually measured
in dollars
system capabilities the required
capabilities of a new system; part of a System
Vision Document
CHAPTER 9 ■ Project Planning and Project Management 263
FIGURE 9-5 System Vision Document for RMO’s CSMS
Consolidated Sales and Marketing System
System Vision Document
Problem Description
Sales and marketing on the Web has changed drastically since the CSS system was built. Customers
are more sophisticated, and they are used to catalog and sales systems that are easy to use and provide
many services, such as one-click ordering, deferred-purchase tracking, simplified searches, and
comparison shopping. In addition, research has shown that sales increase dramatically when social
media marketing tools are combined with basic sales functionality. Hence, the new CSMS is needed not
only to respond to today‘s competition but to launch RMO into today‘s world of social media and mobile
computing. The longer RMO delays in starting this project, the more opportunities it misses.
System Capabilities
This document identifies the required system capabilities at a high level. Later documents will specify the
detailed requirements. These capabilities are required:
• Provide a shopping cart capability.
• Support customer sales with high automation (one-click, etc.).
• Recommend related product purchases and comparison shopping.
• Allow customer ratings and recommendations.
• Include “friend” network capability.
• Include comprehensive order fulfillment.
• Support multiple and split-order shipping and tracking.
• Support back-ordering and tracking.
• Allow customer comments and feedback.
• Provide customer account and billing capability.
• Provide individualized customer accounting.
• Support electronic billing and many electronic payment methods.
• Accumulate customer “points” and allow transfer and sharing.
• Include marketing functions for promotions and specials.
• Provide flexible promotions and sales.
• Accumulate and track “points” from suppliers directly to customers.
• Interface with social marketing media for advertising and social marketing activities.
• Support mobile devices for social marketing and sales.
Business Benefits
The primary business benefit of these capabilities will be to increase sales by connecting with customers
and improving the customer experience. The specific benefits include:
• Increasing the size of customer purchases
• Increasing the frequency of customer purchases
• Increasing customer satisfaction
• Increasing product recommendations from customers to friends
• Attracting new customers through recommendations and social marketing
• Building customer loyalty with recommendations and service
• Increasing speed of product availability
• Eliminating shipping delays and outages
264 PART 4 ■ Projects and Project Management
RMO’s existing CSS system was built under a tight deadline, and the
company recognized that it would have a fairly short life. There were still many
things to learn about Web marketing, but the existing CSS system will help the
company define the requirements for its CSMS system.
Quantify Project Approval Factors
The first activity produced a high-level overview document that identified the
need for a new system. However, that document alone may not be adequate to
receive approval and funding. During this second activity, the project team,
working with the users, will attempt to define more precisely the scope and
impact of the project.
The objective is to provide sufficient justification so funds will be released
and the project can start. Sometimes, the need is so great or so obvious that
project approval is almost automatic. In other situations, it may be necessary
to prepare a thorough cost-benefit analysis. These criteria must frequently be
considered to obtain project approval:
■ The estimated time for project completion
■ The estimated cost for the project and system
■ The anticipated benefits from the deployment of the new system
These are rough estimates. In the traditional predictive approach to systems
development, estimates were often made with a considerable amount of detail.
However, the estimates were usually far off the mark. The problem was, of
course, that with most new systems, the team was venturing into unknown
needs, requirements, and technologies. With the more adaptive approaches, the
stakeholders recognize that the requirements are unknown and that it is more
important to monitor and control scope, cost, and schedule than to try to make
estimates.
The Estimated Time for Project Completion
During Core Process 2 (“Plan and monitor the project”), a more detailed project
schedule is created. During project initiation, there usually isn’t enough known
about the project to create a schedule. But there is nevertheless a need to
estimate the project’s completion date, even though this is one of the hardest
things to do.
Sometimes, there are business constraints that dictate the completion of the
project. For example, new legislative requirements may affect the deployment
date. A window of opportunity may also provide a powerful motivation to
complete a project at a specific time. These considerations should be made
manifest and considered in the project approval and project planning processes.
The major inputs toward estimating the project completion date are the
scoping document and the amount of effort required to develop the listed
requirements. As indicated earlier, it is difficult to make an estimate with any
degree of accuracy. At this early point in the project, gross estimates of team
size and time frame are usually the best that can be achieved. For a predictive
approach, the list of requirements can serve as the starting point for estimating
the effort required to define and develop a particular function. For an adaptive
approach, the same information can be used to estimate the number of itera-
tions required and the size and number of teams working on the various
subsystems.
Figure 9-6 shows an example of a time estimate document for RMO.
For RMO, the development of the time estimate was a one-day exercise.
Because the project didn’t yet have approval or funding, neither a project
manager nor any systems analysts had been assigned to the project. However,
a project manager had been assigned to obtain approval, and two systems
analysts were assigned to help him. These three experienced technical people
CHAPTER 9 ■ Project Planning and Project Management 265
met for four hours with the key users from the various RMO departments. The
object of these meetings was to build a comprehensive list of all the functional
requirements from each department. After the meetings, the group met again
to organize this list of requirements into groupings that could be assigned to
various iterations for the development of the software.
An assumption that was made by the director of new development was that
there would be two subteams of four people each allocated to this project. As
indicated in Figure 9-6, the time estimate for this project is 48 weeks from the
date it begins.
The Estimated Cost for the Project and System
The estimated costs of developing the new CSMS are shown in Figure 9-7. By far,
the largest cost item in the project’s budget is the salaries of the project team. Other
cost elements include the cost of the new computers, training for the users, offices,
facilities, and utilities for the project team, travel expenses for the project team
to do site visits, and software licenses. As you can see, this estimate is a little over
$1.5 million.
After the system has been put into production, there will be annual operat-
ing costs, as shown in Figure 9-8. The largest cost is for a hosting service to
provide some of the equipment, the connection to the Internet, and server
administration services. These estimated costs were based on RMO using a host-
ing service to provide the equipment, the connection to the Internet, and server
Summary of Development Costs for CSMS
Expense category Amount
Salaries/wages (includes benefits costs)
(1 PM, 8 analysts, 1 support)
$936,000.00
Equipment/installation $308,000.00
Training $78,000.00
Facilities $57,000.00
Utilities $97,000.00
Travel/miscellaneous $87,000.00
Licenses $18,000.00
Total $1,581,000.00
FIGURE 9-7
Summary of development costs
for CSMS
Time Estimate for the New CSMS Project
Subsystem Functional
requirements
Iterations
required
15
Order Fulfillment subsystem* 12
Customer Account subsystem** 10
Marketing subsystem** 6
7
5
5
4
3
3
2
Estimated
time
20 weeks
20 weeks
15 weeks
13 weeks
12 weeks
40 weeks
8 weeks
48 weeks
Reporting subsystem**
Total development time (2 teams)
Final hardening and acceptance testing
Total project time
*Assigned to Tiger team
**Assigned to Cougar team
Sales subsystem*
FIGURE 9-6
Project completion date estimate for
the CSMS project
266 PART 4 ■ Projects and Project Management
administration. The project team estimated about $13,000 a month for those
expenses, which is enough for 15 very large managed servers. This appeared to
be more than adequate, depending on the traffic volume. Other costs were for
one full-time programmer and two help desk personnel.
The Anticipated Benefits from the Deployment of the New System
The System Vision Document identifies the anticipated business benefits of
the new system. In this task, we analyze those business benefits and provide an
estimate of their value to the organization. This value becomes part of the total
decision criteria. Obviously, the dollar amount associated with these savings or
revenues must be estimated by the client. It isn’t the project manager’s job to
predict the value of business benefits. However, the project manager can
help the client identify categories of potential benefits. Typical areas of increased
revenue or cost reduction benefits include:
■ Opening up new markets with new services, products, or locations
■ Increasing market share in existing markets
■ Enhancing cross-sales capabilities with existing customers
■ Reducing staff by automating manual functions or increasing efficiency
■ Decreasing operating expenses, such as shipping charges for “emergency
shipments”
■ Reducing error rates through automated editing or validation
■ Reducing bad accounts or bad credit losses
■ Reducing inventory or merchandise losses through tighter controls
■ Collecting receivables (accounts receivable) more rapidly
The project team at RMO worked with the vice president of sales and
marketing to identify benefit areas and estimate a value for each one. This size
of an investment and ongoing expense was going to require board approval
within RMO. The board will want to know what the benefits of the new system
will be and what the return on the investment will be. One of the difficulties for
RMO is to determine how to assign a value to a benefit. A typical question
might be “Do we assign the value of all our sales given that this system is
needed to stay competitive in the marketplace? Or do we assign only the value
of the increased sales we expect to get from marketing and higher volume?” If
sales will drop because RMO becomes less competitive in the marketplace, the
total sales value could be used. However, if the existing system is good enough
to maintain a good client base, then only the increased sales should be used.
These kinds of decisions are made by the client, not the project team. In this
case, the vice president of sales and marketing at RMO decided to use a more
conservative estimate. Figure 9-9 summarizes the estimates he generated.
Many organizations like to compare the estimated costs with the anticipated
benefits to calculate whether the benefits outweigh the costs. This process is
called a cost/benefit analysis. Companies use a combination of methods to
measure the overall benefit of the new system. One popular approach is to
determine the net present value (NPV) of the new system. The two concepts
behind net present value are (1) that all benefits and costs are calculated in
terms of today’s dollars (present value) and (2) that benefits and costs are
Summary of Estimated Annual Operating Costs for CSMS
Recurring expense Amount
Programming $75,000.00
Connectivity/hosting $156,000.00
Help desk $90,000.00
Total $321,000.00
FIGURE 9-8
Summary of estimated annual
operating costs for CSMS
cost/benefit analysis process of
comparing costs and benefits to see whether
investing in a new system will be beneficial
net present value (NPV) the present
value of dollar benefits and dollar costs of a
particular investment
CHAPTER 9 ■ Project Planning and Project Management 267
combined to give a net value. The future stream of benefits and costs are netted
together and then discounted by a factor for each year in the future. The
discount factor is the rate used to bring future values back to current values.
Figure 9-10 shows a copy of the NPV calculation done for RMO’s new
CSMS. There are various techniques for calculating the NPV of a given invest-
ment. In this example, Year 0 represents the development period prior to the
deployment of the system. The annual benefits for each year are extended across
the top row. The development costs are shown on the second row. Annual
expenses are shown on the third. Those three rows are combined in the fourth
row to give the net benefits and costs. The fifth row shows the discount value,
given a 6 percent discount rate. The sixth row is the product of the fourth and
fifth rows and represents the net value in terms of today’s dollars (i.e., the
NPV). The seventh row shows a cumulative total of annual NPVs.
In Figure 9-10, the numbers in the seventh row eventually change from neg-
ative to positive. The point in time when that happens is called the break-even
point. The length of time before the break-even point is reached is called the
payback period. The payback period occurs in the year that the cumulative
value goes positive. To calculate it, first take the last year that the cumulative
value is negative—in this case, Year 2. Add to that year the number of days in
the following year (in this case, Year 3) that it takes for the cumulative value
to go positive. The method for doing that is to take absolute values of the end-
ing value in Year 2 divided by the sum of the absolute values for the end of
Year 2 and Year 3—in this case, 226,865 divided by (226,865 + 430,743).
Here, that calculation indicates that the cumulative value goes positive after
35 percent of the year has passed. Multiply .35 times the 365 days in the year
to get 128 days into Year 3. Many companies require a payback period of two
to three years on new software.
The previous cost/benefit calculation depends on an organization’s ability
to quantify the costs and benefits. If it can indeed estimate a dollar value for a
benefit or a cost, the organization treats that value as a tangible benefit or
FIGURE 9-10 Five-year cost/benefit analysis for CSMS
Recapture/prevention of lost sales
Sales to new customers
Increased efficiency in order processing
Reduction of data center and equipment costs
because of hosting
Total
$200,000.00
$350,000.00**
$50,000.00
$146,000.00
$1,046,000.00
**plus 8% annual growth
Estimated Annual Benefits for CSMS
Benefit or cost saving Amount
Increase sales to existing customers $300,000.00
FIGURE 9-9
Estimated annual benefits for CSMS
break-even point the point in time at
which dollar benefits offset dollar costs
payback period the time period after
which the dollar benefits have offset the
dollar costs
tangible benefit a benefit that can be
measured or estimated in terms of dollars
268 PART 4 ■ Projects and Project Management
cost. However, in many instances, an organization can’t measure some of the
costs and benefits to determine a value. Never discount the importance of ascer-
taining the “behind the scenes” reasons for a project. There may be political
reasons for or against the project that override all other feasibility analyses. If
there is no reliable method for estimating or measuring the value, it is consid-
ered an intangible benefit. In some instances, the importance of the intangible
benefits far exceeds the tangible costs—at least in the opinion of the client, who
pursues developing the system even though the dollar numbers don’t indicate a
good investment.
Examples of intangible benefits include:
■ Increased levels of service (in ways that can’t be measured in dollars)
■ Increased customer satisfaction (not measurable in dollars)
■ Survival
■ Need to develop in-house expertise (such as a pilot program with new
technology)
Examples of intangible costs include:
■ Reduced employee morale
■ Lost productivity (the organization may not be able to estimate it)
■ Lost customers or sales (during some unknown period of time)
Determining Project Risk and Feasibility
Project risk and feasibility analysis verifies whether a project can be started and
completed successfully. Because each project is a unique endeavor, every project
has unique challenges that affect its potential success.
The objective of this activity is to identify and assess the potential risks to proj-
ect success and to take steps to eliminate or at least ameliorate these risks. They
should be identified during the project approval process so all stakeholders are
aware of the potential for failure. The team can also establish plans and
procedures to ensure that those risks don’t interfere with the success of the project.
Generally, the team assigns itself these tasks when confirming a project’s feasibility:
■ Determine the organizational risks and feasibility.
■ Evaluate the technological risks and feasibility.
■ Assess the resource risks and feasibility.
■ Identify the schedule risks and feasibility.
Determine Organizational Risks and Feasibility
Each company has its own culture, and any new system must be accommo-
dated to that culture. There is always the risk that a new system departs
so dramatically from existing norms that it can’t be successfully deployed.
The analysts involved with feasibility analysis should evaluate organizational
and cultural issues to identify potential risks for the new system. Such issues
might include:
■ Substantial computer phobia
■ A perceived loss of control on the part of staff or management
■ Potential shifting of political and organizational power due to the new
system
■ Fear of change of job responsibilities
■ Fear of loss of employment due to increased automation
■ Reversal of long-standing work procedures
It isn’t possible to enumerate all the potential organizational and cultural
risks that exist. The project management team needs to be very sensitive to the
reluctance within the organization to identify and resolve these risks.
intangible benefit a benefit that accrues
to an organization but that can’t be measured
quantitatively or estimated accurately
CHAPTER 9 ■ Project Planning and Project Management 269
After identifying the risks, the project management team can take positive
steps to counter them. For example, the team can hold additional training ses-
sions to teach new procedures and provide increased computer skills. Higher
levels of user involvement in developing the new system will tend to increase
user enthusiasm and commitment.
Evaluate Technological Risks and Feasibility
Generally, a new system brings new technology into the company, even state-
of-the-art technology. Other projects use existing technology but combine it
into new, untested configurations. If an outside vendor is providing a capability
in a certain area, the client organization usually assumes the vendor is expert
in that area. However, even an outside vendor may find the requested level of
technology too complicated.
The project management team needs to carefully assess the proposed tech-
nological requirements and available expertise. When these risks are identified,
the solutions are usually straightforward. The solutions to technological risks
include providing additional training, hiring consultants, or hiring more experi-
enced employees. In some cases, the scope and approach of the project may
need to be changed to ameliorate technological risk. The important point is that
a realistic assessment will identify technological risks early, making it possible to
implement corrective measures.
Assess Resource Risks and Feasibility
The project management team must also assess the availability of resources for
the project. The primary resource consists of team members. Development
projects require the involvement of systems analysts, system technicians, and
users. Required people may not be available to the team at the necessary times.
An additional risk is that people assigned to the team may not have the neces-
sary skills for the project. After the team is functioning, members may have to
leave the team. This threat can come either from staff who are transferred
within the organization if other special projects arise or from qualified team
members who are hired by other organizations. Although the project manager
usually doesn’t like to think about these possibilities, skilled people are in short
supply and sometimes do leave projects.
The other resources required for a successful project include adequate com-
puter resources, physical facilities, and support staff. Generally, these resources
can be made available, but the schedule can be affected by delays in the
availability of these resources.
Identify Schedule Risks and Feasibility
The development of a project schedule always involves high risk. Every schedule
requires many assumptions and estimates without adequate information. For
example, the needs (and, hence, the scope) of the new system aren’t well known.
Also, the time needed to research and finalize requirements has to be estimated.
The availability and capability of team members aren’t completely known.
Another frequent risk in developing the schedule occurs when upper man-
agement decides that the new system must be deployed within a certain time.
Sometimes, there is an important business reason for setting a fixed deadline,
such as RMO’s need to complete the CSS in time for online ordering over the
holidays. Similarly, universities require the completion of new systems before
key dates in the university schedule. For example, if a new admissions system
isn’t completed before the admissions season, then it might as well wait another
full year. In cases like these, schedule feasibility can be the most important
feasibility factor to consider.
If the deadline appears arbitrary, the tendency is to create the schedule to
show that it can be done. Unfortunately, this practice usually spells disaster.
The project team should create the schedule without any preconceived notion of
270 PART 4 ■ Projects and Project Management
required completion dates. After the schedule is completed, comparisons can be
done to see whether timetables coincide. If not, the team can take corrective
measures, such as reducing the scope of the project, to increase the probability
of the project’s on-time completion.
One objective of defining milestones and iterations during the project sched-
ule is to permit the project manager to assess the ongoing risk of schedule slip-
page. If the team begins to miss milestones, the manager can possibly
implement corrective measures early. Contingency plans can be developed and
carried out to reduce the risk of further slippage.
Review with Client and Obtain Approval
As mentioned earlier, the amount of expenditure for the RMO project required
board approval. However, before a presentation could be given to the board,
RMO’s executive committee needed to understand and agree to