Class #3

advertisement
Introduction to Information
Systems Analysis
Systems Analysis
Joint Application Development
INFO 503
Glenn Booker
INFO 503
Lecture #3
1
What is System Analysis?
• System Analysis (logical design) is the
dissection of a system into pieces
(subsystems), and the study of how those
pieces interact and work
• It is followed by System Design
(Synthesis), where you take the pieces
and put them back together
• Terminology varies, but that’s ours!
INFO 503
Lecture #3
2
FAST & Systems Analysis
• The FAST model covers systems analysis in
the first four phases
– Scope Definition: Survey and plan system scope
– Problem Analysis: Study the existing system
and similar ones
– Requirements Analysis: Definition of
requirements for the new system
– Logical Design: to verify the requirements
INFO 503
Lecture #3
3
Systems Analysis Methods
• Model-Driven Analysis Approaches
– Structured Analysis
– Information Engineering
– Object-Oriented Analysis (OOA)
• Accelerated Analysis Approaches
– Discovery Prototyping
– Rapid Architected Analysis
INFO 503
Lecture #3
4
Structured Analysis
p. 188
(122)
• Structured analysis focuses on examining
the processes which are used by the system
to model business requirements
• Models include processes, inputs,
outputs, and files - such as a Data
Flow Diagram (DFD)
• Models describe how the system responds
to various actions (such as placing an order)
INFO 503
Lecture #3
5
Information Engineering
•
•
Information Engineering focuses more on
the data for an organization, with lesser
concern for processes
Develops the data model first (Entity
Relationship Diagram, or ERD) then will
create the process model (e.g. a DFD) and
deal with communication issues
–
INFO 503
Both structured analysis and information
engineering create an ERD and a DFD;
the difference is which model is done first
Lecture #3
6
Object Oriented Analysis
• In contrast, object oriented analysis defines
objects, who may contain data
• Data is only obtained or manipulated
through methods
– Methods are little programs, associated with a
class, which perform a very specific function
• Object oriented languages include C++, C#,
Java, Smalltalk (the first!), and Ada
INFO 503
Lecture #3
7
Discovery Prototyping
• Prototyping develops partial, but working,
versions of a system or application
– Feasibility prototyping is to test the
technology’s capabilities
(Is this tool capable of doing what we want?)
– Discovery prototyping is to refine the
requirements by presenting them visually
(Is this content correct?)
– Must accompany other design methods
INFO 503
Lecture #3
8
Rapid Architected Analysis
• Uses existing systems to develop
system models
• May use reverse engineering to
determine what the existing system
does (i.e. create models from code),
then improve on the existing system
based on its current structure
• Often involves CASE tools
INFO 503
Lecture #3
9
Requirements Discovery
Methods
• All analysis methods depend on
determining system requirements, using
one or more of the following methods:
– Fact-Finding Techniques (see last week)
– Joint Requirements Planning (JRP)
• Part of Joint Application Design (JAD)
• Uses trained facilitator to run a JRP workshop
– Business Process Redesign
INFO 503
Lecture #3
10
Joint Application Development
• JAD uses participative development, and
complements both model-driven and
accelerated development
• Joint Requirements Planning (JRP) is that
part of JAD which helps to define the
requirements through collaborative
discussion among stakeholders
INFO 503
Lecture #3
11
Joint Application Development
• Joint Application Development (JAD) is an
intense, structured group activity to reach
agreement on system requirements and high
level design
• Like any other tool, it may be used or not
• Blends disparate views to help reach
agreement, and reduces fact-finding time
INFO 503
Lecture #3
12
JAD Champion
• JAD sessions are typically all-consuming,
and may take from 1-10 days
• Sponsor “champions” the JAD session;
–
–
–
–
INFO 503
Plans the attendees
Picks the JAD Leader
Chooses the time and place of the session
Kicks off and closes the session
Lecture #3
13
JAD Leader
• The JAD Leader may be an outsider who:
–
–
–
–
–
–
INFO 503
Can communicate well
Can negotiate and resolve conflict
Understands the business environment
Can organize and manage a group
Is impartial
Does not report to any of the JAD participants
Lecture #3
14
JAD Participants
• The Leader facilitates the session
• Users, analysts, and managers are
common participants
• Someone is appointed “scribe” to record
what was discussed and distribute it quickly
• IS people may help provide a sanity check
of the ideas discussed
INFO 503
Lecture #3
15
Planning JAD
• Planning a JAD session must include
definition of high level scope and
requirements for each session
• Select a remote location for the sessions, to
improve focus on the task at hand
• Select participants who can contribute
specific relevant knowledge
INFO 503
Lecture #3
16
JAD Agenda
• Agenda must define the scope of discussion
and how much time is allocated to each
– Opening to define ground rules
and expectations
– Body to actually get the work done
– Conclusion to summarize the key points and
decisions, and remind all of unresolved issues
• Stay focused, yet strive for consensus!
INFO 503
Lecture #3
17
JAD Benefits
• Encourages ownership of the
decisions reached
• Reduces time for early development,
primarily by working out different needs
and perspectives together
• May blend prototyping benefits as well
INFO 503
Lecture #3
18
Business Process Redesign
• Business process redesign (or
reengineering) focuses on improving the
business processes, regardless of existing
computer technology usage
• Study each process for bottlenecks,
value added, wasted effort, and chances
for streamlining
• Often adds automation of processes
INFO 503
Lecture #3
19
FAST Analysis Approach
• Now we’ll start to outline the contents of
the FAST methodology in detail
–
–
–
–
INFO 503
Scope Definition Phase
Problem Analysis Phase
Requirements Analysis Phase
Logical Design Phase
Lecture #3
20
Scope Definition (Study) Phase
1.1 Identify baseline problems
and opportunities
1.2 Negotiate baseline scope
(may be concurrent with 1.1)
1.3 Assess baseline project worthiness
1.4 Develop baseline schedule and budget
1.5 Communicate the project plan
INFO 503
Lecture #3
21
1.1 Identify baseline problems
and opportunities
• Evaluate each problem, opportunity, and
p. 196
directive; write a Problem Statement
(132)
• Done by system owner, user, and analysts
using fact finding methods and keen
interpersonal skills
• Determine: urgency, visibility, benefits,
priority, and optionally, possible solutions
INFO 503
Lecture #3
22
1.2 Negotiate baseline scope
• Determine the preliminary scope of the
system and the project
• Involves system owner and analysts, others
as needed
• Write a Prelim. Problem Statement with
Scope: identify types of data and existing
business functions affected, system context
for interfaces, and operating locations
INFO 503
Lecture #3
23
1.3 Assess baseline project worthiness
• Based on the project’s Problem Statement,
system owners determine if project is
worth continuing
• Full feasibility analysis not yet possible
• Result is a Yes/No decision whether
to proceed, or negotiation of the scope
before approval is given
INFO 503
Lecture #3
24
1.4 Develop baseline
schedule and budget
• Develop a project plan, containing an
overall plan for the entire project, and a
detailed plan for the first phase of the
project (See also INFO 638)
• Done by project manager
• Define phases for the project, key activities
for each phase, and the personnel needed
INFO 503
Lecture #3
25
1.5 Communicate the project plan
• Present the project plan to an executive
‘steering body’ or whoever is needed to
approve it
• This activity also presents the project plan
(except sensitive parts) to all who will be
involved in it, often via a kickoff meeting
• Results in a project charter, containing the
results of all previous tasks
INFO 503
Lecture #3
26
Problem Analysis
(Study) Phase
2.1 Understand the problem domain
2.2 Analyze problems and opportunities
2.3 Analyze business processes (BPR only)
2.4 Establish system improvement objectives
2.5 Update or refine the project plan
2.6 Communicate findings and
recommendations
INFO 503
Lecture #3
27
2.1 Understand the problem domain
• Create models of the existing system
• Define the data, processes, interfaces, and
geography of the existing system in 1-2
page diagrams or short descriptions
• Avoid too much detail (analysis paralysis)
by avoiding perfectionism
• Ensure everyone agrees on the models
INFO 503
Lecture #3
28
2.2 Analyze problems and
opportunities
• Identify every problem, opportunity
(including existing good features you want
to keep) and directive
– This refines and expands on the earlier problem
and opportunity analysis
• Conduct cause and effect analysis of each
problem and opportunity, without seeking a
solution yet, using the PIECES structure
INFO 503
Lecture #3
29
2.2 Analyze problems and
opportunities
• Consider what has caused each problem,
and describe the effect of the problem on
your business
• Focus on business functions and system
capabilities – no technology yet!
• Define effects of new opportunities; how
will they affect the system?
INFO 503
Lecture #3
30
2.3 Analyze business processes
• This task applies to BPR projects only
• Lead by an analyst; no builders or designers
• Create process analysis models (like DFD)
– Show the volume of data and response or
processing times
– Identify bottlenecks by looking at the cost
and value-added of each function
– What loss if a process were removed?
INFO 503
Lecture #3
31
2.4 Establish system
improvement objectives
• Define objectives to measure system
improvement and development constraints
• Predict the effect of fixing each problem,
and taking advantage of each opportunity
• Remember not to describe specific
implementation technology (how it’s done)
• Add results to the cause and effect analysis
(Fig. 5-11 on page 207 (Fig. 4.12))
INFO 503
Lecture #3
32
2.4 Establish system
improvement objectives
• Make sure you can measure the amount of
improvement or benefit
– Objectives describe system success criteria
• Avoid writing detailed requirements for the
system at this point (“generate blah report”)
– Focus on what type of system capability will be
created or enhanced, and how that will help
improve the business value of the system
INFO 503
Lecture #3
33
2.4 Establish system
improvement objectives
– Avoiding specific requirements here allows
more flexibility later
• Identify constraints, which may be due
to schedule, cost, technology, or policy
(including legal directives)
– The only place system technology details
might belong in Fig. 5-11 (4.12) is under
the constraints column
INFO 503
Lecture #3
34
2.5 Update or refine the project plan
• Based on better understanding of project
goals and objectives, update the project plan
• Re-assess the scope; determine if all
objectives can be met
• Re-estimate time for each activity, and
refine the overall project plan
• If needed, re-negotiate project scope with
system owner
INFO 503
Lecture #3
35
2.6 Communicate findings and
recommendations
• The System Improvement Objectives and
Recommendations report should be written,
and presented to the system owners
– Summarize all analysis results so far
– The owners make the final decision as to the
scope of the project, or cancel it
• Then communicate the decision to all
affected project team members
INFO 503
Lecture #3
36
Requirements Analysis
(Definition) Phase
3.1 Identify and express system requirements
3.2 Prioritize system requirements
3.3 Update or refine the project plan
3.4 Communicate the requirements statement
INFO 503
Lecture #3
37
3.1 Identify and express
system requirements
• Describe all system requirements, based
on system improvement objectives
• Include both functional and
non-functional requirements
– Functional requirements are the activities and
services performed by the system, such as
inputs, outputs, processes, and stored data
needed to meet the system objectives
INFO 503
Lecture #3
38
3.1 Identify and express
system requirements
• For each system objective:
– Identify events or inputs to which the
system must respond
– Identify how the inputs are processed, and
what decisions need to be made
– Identify outputs which result, and any other
information which is produced along the way
– Identify data which needs to be stored
INFO 503
Lecture #3
39
3.1 Identify and express
system requirements
• Nonfunctional requirements are other
features and constraints – performance (e.g.
speed, throughput), cost, schedule, controls,
documentation, training, and constraints
• Look out for growth in the system scope
• Introduce system architect as new analyst
• Creates a draft requirements statement
INFO 503
Lecture #3
40
3.2 Prioritize system requirements
• Categorize requirements as mandatory,
desirable, or optional, then rank each within
those categories
• Stage (timebox) the requirements to ensure
the highest priority ones are built first
• Define system version history to implement
features in order of descending priority
INFO 503
Lecture #3
41
3.3 Update or refine the project plan
• Update the project plan to:
– Reflect changes in project scope, and
having prioritized requirements
– Include the detailed schedule for
implementation of features
• Create a Requirements Statement
• Get approval to proceed from owner
or sponsor
INFO 503
Lecture #3
42
3.4 Communicate the
requirements statement
• Once the requirements have been agreed
upon, communicate them to affected
members of the project team and the user or
customer community (if applicable)
INFO 503
Lecture #3
43
Requirements Management
• Requirements are never static!
• Need to have clear processes for
managing requirements
– Is it a new requirement, or refinement of an
old one?
– Analyzing and prioritizing new requirements
– Approving new requirements
– Communicating new requirements
INFO 503
Lecture #3
44
Logical Design Phase
• [Is part of Requirements Analysis phase in
4th edition of text]
4.1a Structure functional requirements and/or
4.1b Prototype functional requirements
4.2 Validate functional requirements
4.3 Define acceptance test cases
INFO 503
Lecture #3
45
4.1a Structure functional
requirements
• Create a logical (essential) model of the
proposed system
– Often use existing models as foundation for the
new ones
• May need to create data, process, interface,
and distribution models; or object models,
depending on the analysis strategy
INFO 503
Lecture #3
46
4.1b Prototype functional
requirements
• Prototyping is sometimes an alternative or a
prerequisite to system modeling (step 4.1a)
• Typically includes preparing sample inputs
and outputs, then having users review them
• Usually helps most with definition of
functional requirements
INFO 503
Lecture #3
47
4.2 Validate functional requirements
• Trace system models back to the
requirements, to ensure every requirement
is implemented somewhere
• Also look for duplication and redundancy
• Check where nonfunctional requirements
apply to functional requirements
• Review with owners and users
INFO 503
Lecture #3
48
4.3 Define acceptance test cases
• While not required this early, outlining the
test cases for system testing can help verify
that the requirements will fulfill the
intended functions
• System test cases often mimic user
activities, such as use cases or scenarios
• Test cases should be able to help prove
whether objectives were met
INFO 503
Lecture #3
49
Next FAST Phases
• The Decision Analysis Phase will be
discussed in week 5 with the other
design phases
INFO 503
Lecture #3
50
Download