Title: Introduction to Information Systems Analysis Information Systems Development Fact Finding Techniques
1Introduction to InformationSystems
AnalysisInformation Systems DevelopmentFact
Finding Techniques
2System Development Life Cycle
- A System Development Life Cycle is the process
used for developing a system - A life cycle is a management tool for planning,
conducting, and controlling an activity - Software and System life cycles are similar,
differing in the details of each activity
3Methodology
- A methodology, such as FAST, implements a life
cycle by defining activities - Each activity has roles and responsibilities,
creates work products, and uses tools and
techniques - Major recurring theme in the text
- Methodology should cover entire life cycle
4Capability Maturity Model
- Level 1 Initial chaos no consistent
processes - Level 2 Repeatable processes for a project
- Level 3 Defined processes across an
organization - Level 4 Quantitatively Managed projects
- Level 5 Processes Optimized continuously
5Groundwork
- Any system development should first define its
general scope - What kind of product will be created?
- What order of magnitude for time frame and number
of resources are available for this effort?
(e.g. week, month, year, or 10k, 1M) - What is the current state of similar products?
- What will make this product special?
6Ten Principles of System Development
- Get the system users involved
- Use a problem-solving approach
- Establish phases and activities
- Document throughout Development
- Establish standards
- Manage the Process and Projects
- Justify systems as capital investments
- Dont be afraid to cancel or revise scope
- Divide and conquer
- Design systems for growth and change
71. Get the System Users Involved
- Encourage owners, users, and developers to work
cooperatively and collaborate - Get everyone involved in defining requirements
and discussing changes - Document decisions well
- Education of owners and users can help overcome
biases and fears
82. Use a Problem-Solving Approach
- The methodology (life cycle) is an approach
- Study the problem and its context
- Define the requirements of a solution
- Identify possible solutions and pick one
- Design and implement the solution
- Observe the solutions impact, and refine it
- Dont skip steps!
93. Establish Phases and Activities
p. 89 (75)
- Major FAST phases are
- Scope Definition (led by system owners)
- Problem and Requirements Analysis (users)
- Logical Design and Decision Analysis (designers)
- Physical Design and Integration (builders)
- Construction and Testing
- Installation and Delivery
103. Establish Phases and Activities
- Higher levels are business-driven lower are
technology-driven - Each phase is broken down into activities and
tasks to make them manageable - Development is often iterative, with frequent
back-tracking to refine requirements and the
design - Be sure not to get stuck in iteration!
114. Document throughout Development
- In order for large projects to succeed, programs
need to be documented and agreed upon before
theyre developed - Necessary for coordination across stakeholders,
and to leave a comprehensible legacy for
maintenance
125. Establish Standards
- Standards should be used for both creation of the
information system itself, and for the processes
used to create the system - Records assumptions and measure progress
- May include document style standards, file and
variable naming conventions, and file
organization conventions
135. Establish Standards
- System development standards may describe, for
every phase of the life cycle - Activities (what happened?)
- Responsibilities (who did it and why?)
- Documentation requirements (tailor from corporate
standard templates) - Quality checks (peer review, defect prevention)
146. Manage the Process and Projects
- Deliberate process and project management ensures
that your organization 1) has defined processes,
and 2) they are actually used, and 3) you can
determine how to improve them - Benefits not only this program, but others in
the future too
157. Justify Systems as Capital Investments
- Information systems often outlive many projects,
hence are capital investments - Make sure alternatives are well investigated (do
you buy the first house you see?) - Analyze the cost-effectiveness of all major
alternatives, including both development and
operational costs - Manage risks during development
168. Dont be afraid to Cancel or Revise Scope
- The iterative nature of development makes it
tempting to implement a not-good system - Feature and schedule creep can sneak up quietly,
one good decision after another - Avoid getting stuck by choosing creeping
commitment points during development - At each, consider cancellation, projected system
cost, schedule, and feature scope
179. Divide and Conquer
- Every system is part of a larger system
(supersystem) and most contain smaller systems
(subsystems) - Interaction with supersystem can change
requirements during system development - Defining subsystems can help make project design
more manageable
1810. Design Systems for Growth and Change
- Business needs change over time
- During system maintenance (support), maintenance
cost grows as the system requirements evolve and
hardware wears out system becomes obsolete - Hence need to design systems so that they can be
replaced some day
19FAST Methodology
- An information system project starts when
- Problems keep your organization from reaching its
business goals or objectives - Opportunities arise when a new capability is
identified (e.g. new features) - Directives from outside your organization mandate
new features or requirements (e.g. laws,
regulations)
20PIECES Review Criteria
- Assess new projects for their
- Performance improvement potential
- Information or data improvement
- Economic or cost improvement
- Control or security improvement
- Efficiency improvement (people or process)
- Service to customer, supplier, staff, etc.
21FAST Phases
p. 96 (83)key overview
- Scope Definition in 4th Ed. Survey Phase
(system owner) - Problem Analysis Study Phase (analyst)
- Requirements Analysis Definition Phase
(analyst) - Logical Design not separate in 4th Ed.
- Decision Analysis Configuration Phase
(designer)
22FAST Phases
- Procurement Phase Version 4 separate only or
blend into other phases (designer) - Physical Design Integration Design Phase
(designer) - Construction Testing Construction Phase
(builder) - Installation Delivery Delivery Phase (builder)
231. Scope Definition
- This is a sanity check to see if the project is
worth looking at - If so, define the project team, budget, and
schedule (very rough) - Involves sponsors and managers, plus user
involvement - Deliver a feasibility study and project plan
242. Problem Analysis
- Study existing system (automated or not) for
problems and opportunities - Is the new improved system worth having?
- Run by system analyst, with user and owner
involvement - Define system objectives, and success criteria
for new system
253. Requirements Analysis
- Now define and prioritize detailed system and
business requirements - Consider also what it does NOT do
- Do NOT describe HOW it does anything
- System analyst and many users do this
- Create models of data, process, interface, and
geography perspectives
263. Requirements Analysis
- Might use prototyping to verify requirements
- Present requirements and models in a requirements
statement - Time boxing is placing requirements into
staged deliveries for implementation (hence start
to think of priorities)
274. Logical Design
- The logical design phase is when various models
are developed to describe the logical functions
of the system - This typically includes data, process, and/or
object models - Beware of getting stuck in analysis paralysis
285. Decision Analysis
- Identify candidate solutions, analyze them, and
recommend the best one - Done by system analyst, with support from all
others, and maybe consultants - May start before requirements are done
- May include make-or-buy decisions, and define an
application architecture
295. Decision Analysis
- Evaluate each solution for technical,
operational, economic, and schedule feasibility - Produce a system proposal for owners approval
- Often includes procurement phase for
off-the-shelf applications
30Procurement Phase
- Major system components are often acquired, not
built from scratch - See COTS tool reports (Commercial-Off-The-Shelf
software) by the SEI, STSC - Vendors help system analyst and users
- Study existing market future trends, then
generate a RFP or RFI (see References)
31Procurement Phase
- Evaluate vendors proposals pick the one that
meets requirements and is most cost effective - Negotiate contractual and licensing needs to
obtain products, installation, training, etc.
326. Physical Design Integration
- Turn requirements into plans for the builders,
iteratively, until plans are complete (Rapid
Application Development) - Analyst and specialists involved
- Database, program, human and system interfaces
are all designed using iterative prototyping
336. Physical Design Integration
- Iterate
- Define base system
- Define database, load with data, and review with
users - Define inputs, and review with users
- Define outputs, and review with users
- Define interfaces, and review with users
- Define other controls, and implement. Repeat.
347. Construction Testing
- Now build the real system and its interfaces
- System builders lead the team
- Design specifications are main input
- Write code, then conduct unit test, and system
test - May deliver system in stages
358. Installation Delivery
- Install new system and place it into operation
- May include data conversion and loading to
initialize system, and training of end users - Users provide feedback (problem reports) to
identify initial support issues
36System Operation and Maintenance
- While system is in use
- Assist users (help desk)
- Fix bugs
- Recover system after failures
- Adapt to new requirements (implement new
features)
37Cross Life Cycle Activities
- These may overlap many (or all) other phases of
development - Fact-finding
- Help collect information about systems,
requirements, and user preferences - Most important early in life cycle
38Cross Life Cycle Activities
- Documentation is generated to record the work
accomplished so far, and plan future activities - Presentations are a formal packaging, in writing
or orally, of some documentation - Dog and pony shows are presentations made to
upper management or sponsors
39Cross Life Cycle Activities
- Estimation and measurement are performed
throughout the life cycle (see INFO 630) - Estimation is to predict the amount of time,
effort, cost, and benefits of some activity
within system development - Measurement is to determine the actual amount of
what was estimated - Earned value is one way of comparing them
40Cross Life Cycle Activities
- Feasibility analysis is performed early in a
project to determine its potential benefits - Recall mention of technical, operational,
economic, and schedule feasibility - Project management is the deliberate planning and
control of a project to achieve the desired goal
(creation of a product)
41Cross Life Cycle Activities
- Process management is the conscious definition
and management of the processes used to conduct a
project, using standards to define typical work
products (deliverables) - Data and documents from all phases should be
stored, such as in a repository
42Methodology Options
p. 108 (n/a)
- Systems can be build from scratch, purchased
off-the-shelf, or some of both - Methodologies can be very rigid (prescriptive),
or flexible (adaptive) - Methodologies can be model-driven (draw pictures
first, e.g. FAST) or product-driven (build
something and see if it works)
43Model-Driven Development
- Most methods for analysis and design focus on
using models to capture thoughts - Structured analysis focuses on processes, such as
the data flow diagram - Information engineering focuses on data, such as
the entity relationship diagram - Object oriented analysis and design blend data
and process into objects
44RAD and COTS
- Rapid Application Development (RAD) focuses on
iterative development of prototypes with lots of
user input - Often uses time boxing to limit the effort on
each iteration - Commercial Off The Shelf (COTS) products can be
used as the entire system, or significant
portions of a developed one
45CASE Tools
- Computer Assisted Software Engineering (or
Systems Engineering) tools use an information
system (customized database) which is devoted to
managing a system development effort - CASE tools may include compilers, design and
diagram tools, quality and document management
tools, and generate code
46CASE Tools
- Upper CASE Tools focus on early development
activities requirements and high level design
phases may also be able to reverse engineer code - Lower CASE Tools focus on (you guessed it!) later
development activities detailed design,
construction (coding), implementation, and
perhaps support
47CASE and ADE Tools
- CASE Tools are noted for pretty graphical
capabilities - diagrams, flow charts, etc. - They store projects in repositories
- Price is high in both and learning curve
- Compilers have evolved into Application (or
Integrated) Development Environments (ADE or IDE)
may include debuggers and interface tools,
testing and version control
48Fact Finding and Information Gathering
- Fact finding is the formal process of using
various techniques to collect information about
system requirements and user preferences - Facts are the basis for modeling
- Conclusions about the system are also drawn from
these facts - So facts are, like, really important )
49Fact Finding and Information Gathering
- Fact finding is most important during the
planning and analysis phases, but still useful
during the rest of the life cycle - Seven techniques to choose from often use
several on any given project - Fact finding may also discover business rules
how does the system need to respond under
different conditions?
50Requirements
See also INFO627
- Fact finding may give info at various levels of
detail, depending on the audience - Requirements capture what and/or how the system
needs to be able to support its users - A requirement is more precise than a user need,
but more vague than a specification - Defining requirements is a key output from fact
finding and information gathering
51Requirements
- A Need defines the basis for requirements, such
as the system must support 20 simultaneous
users - A Requirement defines what capability the system
must fulfill to meet the need, the system must
handle 1000 tps from 20 simultaneous users - A Specification defines how to measure the
requirement, such as the protocol or test
conditions to be used
tps transactions per second
52Requirements
- Many requirements are functional they describe
what the system can do - Non-functional requirements describe how the
system performs the functional reqts - Performance, cost, control (security), efficiency
(resource usage), and the ilities (reliability,
availability, maintainability, usability, etc.)
53Fact Finding and Information Gathering
p. 243 (623)
- Techniques are
- Sampling
- Research and Site Visits
- Observation of the Work Environment
- Questionnaires
- Interviews
- Prototyping
54Sampling
- Works well for study of an existing system
- Comes before interviews may include
- Look for organization chart
- Investigate project history
- Look for high level mission or policies
- Charters for each organization affected
- Processes and procedures in use
55Sampling
- And study existing system documents
- Inputs
- Outputs
- Program documentation
- Data dictionaries
- User and maintenance manuals
56Sampling
- If you know a lot about the consistency of data,
can use statistical sampling techniques - A random sample should be truly random, not just
convenient - A stratified sample may be used to avoid
important special cases
See also INFO 630
57Research and Site Visits
- Research may use various sources, such as
- The Internet (e.g. for vendors)
- Trade and professional journals (AITP, AIS, IEEE,
ACM, etc.) - Company-specific intranets
- Government agencies (SEI, STSC, etc.)
- Site visits are to see the existing system
58Observation of the Work Environment
- Participate in, or watch the existing system
being used - Should determine what kind of data to collect,
when, and how (what forms) - Should already understand the process being
observed somewhat - Can use sampling for large numbers of
observations
59Observation of the Work Environment
- Determine who, what, where, why, and how
- Obtain permission from supervisor
- Inform subject of reason for visit
- Keep a low profile dont interrupt
- Take copious notes, and review them
- Focus on important activities
- Dont make assumptions
60Questionnaires
- Can be efficient for large audiences
- But hard to guarantee responses, or fairness
- Can use free format, but hard to analyze
- Fixed format may include
- Multiple choice (Y/N or A/B/C/..)
- Rating (5-point from strongly agree to strongly
disagree) - Ranking (importance, or or time)
61Interviews
- Provide more personal information about body
language, inflection, tone, etc. - Take a lot more time, but are often liked
- Can be structured or unstructured (rare)
- Structured tend to use open-ended questions
rather than closed-ended ones (yes/no) - Need to be well prepared, take good notes
62Prototyping
- Prototyping, or discovery prototyping, tends to
use very specialized tools, and may define and
refine prototypes with direct user involvement - Can be part of a RAD development approach
- Highly iterative helps clarify requirements
- Easy to omit quality and performance reqts
63Ethics
- Many professional organizations, such as the
AITP, IEEE, the Computer Ethics Institute, and
ACM have defined standards of professional
conduct - Such standards should be used for guidance when
dealing with information which may be sensitive,
such as pricing structure, profit data, or
employee personal data