Uploaded by DAMIAN PSYCHE

Chapter 2- Systems Analysis

advertisement
System Analysis
Dr Edmore Chikohora
Namibia University of Science & Technology
Lecture I: Requirements Engineering
• Systems requirements
• Gathering Requirements
 Gathering Requirements Through Interviews
 Gathering Requirements Using Other Techniques
 Gathering Requirements in Agile Projects
• Representing Requirements
• Validating and Verifying Requirements
Requirements Engineering
System requirement:
A characteristic or feature that must be included in an information system to
satisfy business requirements and be acceptable to users
Requirements engineering:
Composed of three main activities:
i. Gathering requirements: understanding the problem
ii. Representing requirements: describing the problem
iii. Validating and verifying requirements: agreeing upon the problem
Types of Requirements
Functional requirements
A statement of the services a system should provides.
Examples:
• The website shall report online volume statistics every four hours and hourly
during peak periods.
• The inventory system shall produce a daily report showing the part number,
description, quantity on hand, quantity allocated, quantity available, and unit
cost of all sorted by part number.
• The system must provide logon security at the operating system level and at
the application level.
Types of Requirements
Non-Functional requirements
A statement of operational system constraints. AKA quality attributes.
Examples:
• Data entry screens must be uniform, except for background color, which can
be changed by the user.
• The system must support 25 users online simultaneously.
• Response time must not exceed four seconds.
• The system must be operational 7 days a week, 365 days a year.
• The system should work on Windows and Mac platforms.
Activity 1
Requirements present numerous challenges to the Systems Analyst.
List and discuss any Five (5) most important requirements challenges Systems
Analysts face during system project implementation.
Systems Development Techniques
System developers or development team uses different techniques to
achieve best results at the end of the project.
There are three(3) most popular techniques used in systems
development, ie.
i. Joint Application Development (JAD)
ii. Rapid Application Development (RAD) and
iii. Agile methods
JAD
A popular fact-finding technique that brings
users into the development process as
active participants.
The end product of JAD is a requirements
model
JAD Participants and Roles:
• A JAD team usually meets over a period of
days or weeks in a special conference room to
analyze the existing system, obtain user input
and expectations, and document user
requirements for the new system.
• The table describes some typical JAD
participants and their roles.
JAD
Advantages and Disadvantages:
• Compared with traditional methods, JAD is more expensive
• It can be cumbersome if the group is too large relative to the size of the project.
• Many companies find, however, that JAD allows key users to participate effectively in
the requirements engineering process.
• When users participate in the systems development process, they are more likely to
feel a sense of ownership in the results and support for the new system.
• When properly used, JAD can result in a more accurate statement of system
requirements, a better understanding of common goals, and a stronger commitment
to the success of the new system.
RAD
Attributes:
• A team-based technique that speeds up information systems development
and produces a functioning information system.
• Like JAD, RAD uses a group approach but goes much further.
• The end product of RAD is the new information system, hence RAD is a
complete methodology, with a four-phase life cycle that parallels the
traditional SDLC phases
• RAD relies heavily on prototyping and user involvement
• The project team uses CASE tools to build the prototypes and create a
continuous stream of documentation.
RAD Phases & Activities
RAD
Advantages and Disadvantages:
• The primary advantage is that systems can be developed more quickly with
significant cost savings.
• A disadvantage is that RAD stresses the mechanics of the systems itself and
does not emphasize the company’s strategic business needs.
• The risk is that a system might work well in the short term, but the corporate
and long-term objectives for the system might not be met.
• Another potential disadvantage is that the accelerated time cycle might allow
less time to develop quality, consistency and design standards.
Agile methods
Attributes:
• Attempt to develop a system incrementally by building a series of prototypes and constantly
adjusting them to user requirements.
• As the agile process continues, developers revise, extend, and merge earlier versions into the final
product.
• An agile approach emphasizes continuous feedback and each incremental step is affected by what
was learned in the prior steps.
• Scrum is another agile approach. The name comes from the rugby term scrum, where team
members lunge at each other to achieve their objectives.
• In a Scrum session, agile team members play specific roles, including colorful designations such as
pigs or chickens. (Note: These roles are based on the old joke about the pig and chicken who
discuss a restaurant where ham and eggs would be served. Pigs role would require a total
commitment, Chicken’s role would only be a contribution).
• In the agile world:
- The Pigs include the product owner, the facilitator, and the development team, while
- The chickens include users, other stakeholders and managers.
Agile methods
Advantages:
• Agile methods are very flexible and efficient in dealing with change.
• They stress team interaction and reflect a set of community-based values.
• Frequent deliverables constantly validate the project and reduce risk.
Disadvantages
• Team members need a high level of technical and interpersonal skills.
• Lack of structure and documentation can introduce risk factors, such as
blurring of roles and responsibilities, and loss of corporate knowledge.
• The overall project may be subject to significant change in scope as user
requirements continue to evolve during the project.
Lecture II: Gathering Requirements
• Gathering requirements is the first step in the requirements
engineering process. AKA requirements elicitation or fact-finding
• The systems analyst uses various techniques to gather requirements
such as:
-
Interviews,
Document review,
Observation,
Surveys,
Questionnaires,
Sampling and
Research.
Gathering Requirements
Sample questions during requirements elicitation as the focus shifts
from the current system to the proposed system.
Interview Process
Definition:
A planned meeting during which the analyst obtains information from another person.
The Interview Process
• Commences after identifying the information needed, as described in the previous
questions.
• Each interview consists of seven steps as follows:
1.
2.
3.
4.
5.
6.
7.
Determine the people to interview.
Establish objectives for the interview (purpose of interview).
Develop interview questions (open/ closed ended questions).
Prepare for the interview (Appointments, time your questions).
Conduct the interview.
Document the interview (write notes).
Evaluate the interview (make a reflection).
Other Techniques
•
•
•
•
Document review,
Observation,
Surveys,
Questionnaires
- Used to get information from a large number of people
• Brainstorming
- Structured/ unstructured
• Sampling
Random, Targeted, stratified, systematic.
• Research.
Using Agile methods
Agile methods use the following tools to gather requirements:
• Features,
- AKA an epic, that is a simple high-level statement of a requirements.
- Has a descriptive name, an estimate of its size in terms of derived requirements and a
priority (eg: collection of user stories).
• User stories,
- Represent more fine-grained requirements (ie. User roles, actions, and goals).
• Scenarios,
- A real-world example of how users will interact with the system. A scenario describes
a particular set of steps taken or events.
• Storyboards.
- A simple graphic organizer that helps systems analysts visualize the status of a project
Requirements Representation
This is meant to Keep accurate records of interviews, facts, ideas, and
observations.
The following are tools an Analyst can use:
• Natural languages
• Diagrams
• Models
Natural Languages
This format uses unstructured natural language, that is,
plain English to represent requirements.
• Requirements represented in unstructured natural
language can be stored in a simple file, in a database
that may facilitate searching its contents, or in an Excel
spreadsheet.
• Requirements represented as structured natural
language can be stored on a simple index card.
• The Volere shell from the Atlantic Systems Guild
Diagrams
Analysts use diagrams to help users, managers and IT professionals
understand the design of a system.
Three most commonly used diagrams are:
1. Functional Decomposition Diagram (FDD):
- A top-down representation of a function or process
2. Business Process Model (BPM):
- Represents one or more business processes, eg. Booking an airline ticket.
3. Data flow diagram (DFD)
- Shows how a system stores, processes and transforms data.
Diagrams
1. DFD
DFD shows how books are added
and removed in a library system
2. FDD
FDD shows a library system with four
top-level functions
3. PDM
PDM shows the processes involved
in an order processing system
Models
• Models provide a more formal representation of system requirements
using diagrams
• They can be drawn using CASE tools.
• The Unified Modeling Language (UML) is the most widely used modeling
technique for visualizing and documenting software systems design.
• UML uses object-oriented design concepts, but it is independent of any
specific programming language
• UML provides various graphical tools such:
- Use case diagrams and
- Sequence diagrams.
Use Case Diagram (UCD)
• A UCD visually represents the
interaction between users and
the information system.
• In a use case diagram, the user
becomes an actor, with a
specific role that describes how
he or she interacts with the
system.
• The system becomes the Use
Case
The UCD shows a Sales system,
where the actor is a customer and
the use case is a credit card
validation system
UCD with many Actors
The diagram shows a student
records system, with several
use cases and actor
Sequence Diagrams (SD)
• A SD shows the timing of interactions
between objects as they occur.
• A systems analyst might use a
sequence diagram to show all possible
outcomes or focus on a single scenario.
• Sequence diagram shows a credit card
validation process, discussed in
previous slide.
• Umlet
Activity I
Attempt the following questions:
1. What is the relationship between user stories and features in agile
projects?
2. Traceability is an important requirements attribute. It’s one of the
things that should be checked when performing V&V of the system
requirements. Describe how you would manually check traceability
for an existing system and list a few features of a CASE tool that you
think would help you with the task.
Lecture III: Data & Process Modelling
Content:
•
•
•
•
•
•
•
•
Logical Versus Physical Models
Data Flow Diagrams
Data Flow Diagram Symbols
Drawing Data Flow Diagrams
Drawing a Context Diagram
Drawing Lower-Level DFDs
Data Dictionary
Process Description Tools in Modular Design
Logical vs Physical Models
Logical model
Shows what the system must do, regardless of how it will be implemented physically.
Physical model
Later, in the systems design phase, Physical model is built that describes how the
system will be constructed.
Four-model approach
Its an approach that develops:
• Logical & physical models of the current system and
• Logical & Physical model of the new system.
• It provides a clear picture of current system functions before any modifications or
improvements are made. (A major benefit)
Data Flow Diagrams
A DFD uses various symbols to
show how the system
transforms input data into
useful information
DFD Symbols
A process receives input data and
produces output that has a different
content, form, or both.
Combined Data flow & Process
symbols
?
Why is the diagram above
incorrect?
Drawing a DFD
Guidelines for drawing a DFD:
• Draw the context diagram so it fits on one page.
• Use the name of the information system as the process name in the context
diagram. eg: Student Registration System.
• Use unique names within each set of symbols. eg. Entity names, data flow
names to avoid mix-up/ confusion.
• Do not cross lines. One way to achieve that goal is to restrict the number of
symbols in any DFD.
• Provide a unique name and reference number for each process.
Context Diagram (CD)
• A CD is a top-level view of an
information system that shows
the system’s boundaries and
scope.
• To draw a context diagram, start
by placing a single process
symbol in the center of the page
• The symbol represents the entire
information system, and it is
identified as process 0
Context diagram for an order system
Drawing DFD
DFD for the Order System showing different
levels
Activity II
Case Study:
You are the IT director at Big Ten University.
As part of a training program, you decide to
draw a DFD that includes some obvious
mistakes to see whether your newly hired
junior analysts can find them. You came up
with the diagram 0 DFD as shown.
Based on the rules explained earlier in the
lecture:
1. Identify the mistakes in the DFD
2. Explain the mistakes and suggest
corrections
Object Modelling
•
•
•
•
•
•
•
•
•
Object-Oriented Analysis
Objects
Attributes
Methods
Messages
Classes
Relationships Among Objects and Classes
The Unified Modeling Language (UML)
Tools
Object Oriented Analysis (OOA)
• Describes an information system by identifying things called objects.
• Object represents a real person, place, event, or transaction. eg: when
a patient makes an appointment to see a doctor, the patient is an object, the
doctor is an object, and the appointment itself is an object.
• An Object Model is a product of OOA, a popular approach that sees a
system from a viewpoint of the objects themselves.
Objects
A message is a command that
tells an object to perform a
certain method.
Example of a parent object
Example of a child object
Objects & Classes - Relationship
Relationships
• Enable objects to communicate and interact as they perform business
functions and transactions required by the system.
• Describe:
i.
ii.
iii.
What objects need to know about each other
How objects respond to changes in other objects and
The effects of membership in classes, super-classes, and sub-classes.
• Some relationships are stronger than others and the strongest relationship is
called inheritance
Inheritance
UML.
Use Case:
Represents the steps in a specific business
function or process.
A use case diagram showing the processes at
an auto service department.
Class Diagram:
Shows the object classes and relationships
involved in a use case
A Class diagram for a sales order use case
(Note: Attributes and methods omitted for clarity
UML
State Transition Diagram:
shows how an object changes from one state to
another, depending on events that affect the object.
Sequence diagram for the ADD NEW STUDENT
use case
Activity Diagram:
Shows actions & events as they occur
An activity diagram showing the actions and events
involved in withdrawing cash from an ATM.
Activity III:
You are an IT consultant and you are asked to create a new system for a
small real estate brokerage firm. You have no experience with OOA and
you decide to try it.
• How will you begin?
• How will the tasks differ from structured analysis?
Lecture IV: Development Strategies
Contents:
•
•
•
•
•
•
•
Traditional Versus Web-Based Systems Development
Evolving Trends
In-House Software Development Options
Offshoring
Software as a Service
Selecting a Development Strategy
Completion of Systems Analysis Tasks
Software Acquisition
Traditional methods:
• Inhouse development (develop software from within org.)
• Purchase a software package (with/ out modification)
• Hire consultants to perform the work (Outsourcing).
Contemporary methods:
• Application Service Providers (ASP)
• Web-hosted software options and firms that offer a variety of enterprise-wide
software solutions.
Traditional vs Web-based Software Acquisition
Traditional
Web-Based:
• Compatibility issues, including existing hardware and
software platforms and legacy system requirements,
influence systems design.
• Systems are developed and delivered in an Internet-based
framework such as .NET
• Systems are designed to run on local and wide-area
company networks.
• Systems often utilize Internet links and resources, but webbased features are treated as enhancements rather than
core elements of the design.
• Development typically follows one of three main paths: inhouse development, purchase of a software package with
possible modification, or use of outside consultants.
• Scalability can be affected by network limitations and
constraints.
• Internet-based development treats the web as the platform, rather
than just a communication channel.
• Web-based systems are easily scalable and can run on multiple
hardware environments.
• Large firms tend to deploy web-based systems as enterprise-wide
software solutions for applications such as customer relationship
management, order processing, and materials management.
• Web-based software treats the software application as a service
that is less dependent on desktop computing power and resources.
• Many applications require substantial desktop computing
power and resources.
• When companies acquire web-based software as a service rather
than a product they purchase, they can limit in-house involvement
and have the vendor install, configure, and maintain the system by
paying agreed-upon fees.
• Security issues usually are less complex than with webbased systems, because the system operates on a private
company network, rather than the Internet.
• Web-based software usually requires additional layers, called
middleware, to communicate with existing software and legacy
systems.
• Web-based solutions open more complex security issues that
should be addressed.
Inhouse Software Development
• A company can choose to develop its
own systems (make/ build). called a
make or buy, or build or buy, decision.
The company’s IT department makes,
builds the software.
• or Purchase (buy) a software package
from a vendor/ supplier .
• Sometimes an organization can buy and
possibly customize a software package.
• Many factors influence this decision, the
most important consideration is the Total
Cost of Ownership (TCO).
Make or Buy Decision
Outsourcing
• The transfer of information systems development, operation or maintenance to an
outside firm that provides these services for a fee, on a temporary or long-term basis.
i.
ii.
Application Service Provider (ASP) - firms that delivers a software application or access to an
application by charging a usage or subscription fee (SaaS).
Internet Business Services (IBS) – firms that provide powerful web-based support for
transactions such as order processing, billing, and customer relationship management, etc.
Issues & Concerns:
• Handing over sensitive organization’s data to an external service provider and trust the provider to
maintain security, confidentiality and quality.
• Outsourcing relieves a company of the responsibility of adding IT staff in busy times and
downsizing when the workload lightens.
• Raises employee concerns about job security. Talented IT people usually prefer positions where
the firm is committed to in-house development
• The solution can be only as good as the outsourcing firm that provides the service
Offshoring
• AKA Offshore outsourcing or global outsourcing, refers to the
practice of shifting IT development, support and operations to other
countries.
Issues & Concerns:
• The main reason for offshoring is the same as domestic outsourcing: To lower
bottom-line costs attract quality work from experts.
• Possible economic impact (forex payments, lack local development )
• Project control, security issues, disparate cultures and communication
challenges.
Selecting a Software Development Strategy
• Selecting the best development strategy is an important decision that
requires companies to consider multiple factors.
• The systems analyst has an important role to play in this decisionmaking process.
• Multiple factors should be considered, In particular:
i.
Analyzing the costs and benefits of each development alternative (A key to
providing objective data to management).
ii. A cost-benefit checklist can help guide this analysis
Analyzing Cost & Benefits
• Financial analysis tools are used to analyze costs/ benefits incurred in each
strategy.
• The Systems Analyst’s Toolkit describes three popular tools:
i.
Return on Investment (ROI) - A percentage rate that compares the total net
benefits (the return) received from a project to the total costs (the investment) of
the project.
ii. Payback Analysis - Determines how long it takes an information system to pay for
itself through reduced costs and increased benefits.
iii. Net Present Value (NPV) (of a project) - The total value of the benefits minus the
total value of the costs, with both costs and benefits adjusted to reflect the point
in time at which they occur.
• These tools and many others can be used to determine TCO
Cost Benefit Analysis Checklist
The best way to monitor the application of the tools discussed. The checklist
follows the steps below:
• List each development strategy being considered.
• Identify all costs and benefits for each alternative. Be sure to indicate when costs will
be incurred and benefits realized.
• Consider future growth and the need for scalability.
• Include support costs for hardware and software.
• Analyze various software licensing options, including fixed fees and formulas based
on the number of users or transactions.
• Apply the financial analysis tools to each alternative.
• Study the results and prepare a report to management.
The Software Acquisition Process
A typical example of issues and tasks involved in software acquisition:
Step 1: Evaluate the Information System Requirements
i.
ii.
iii.
iv.
v.
vi.
Evaluate the IS requirements
Identify key features of the software
Consider network and web related issues
Estimate volume and growth
Specify hardware, software and /or personnel
Prepare a RFQ
Step 2: Identify Potential Vendors or Outsourcing Options
Step 3: Evaluate the Alternatives
i.
ii.
iii.
Contact existing users/ clients
Application testing
benchmarking
Step 4: Perform Cost-Benefit Analysis
Step 5: Prepare a Recommendation
Activity IV:
1. To complete the systems analysis phase, the analyst must:
a.
b.
c.
Finalize the system requirements document,
Present their findings to management and
Begin the transition to systems design.
Discuss what is involved in each of the phases listed.
2. Suppose you tried to explain the concept of “Weighted evaluation
models” to a manager and she responded by asking, “So, how do
you set the weight factors? Is it just a subjective guess?” How would
you reply?
Download