Feasibility Studies

advertisement
Feasibility Studies
CSCI 5801: Software Engineering
Feasibility Studies
Feasibility Studies
• Should we develop this system?
– Does the system contribute to objectives of the
customer?
• Are there better and cheaper alternatives they have?
– Will it work within the informational/
organizational structure of the organization?
– Is the system affordable by the customer?
•
•
•
•
Product development
Supporting hardware/software
User training
Maintenance
Feasibility Studies
• Can we develop this system?
– Do we have the resources?
• People
• Expertise/experience
• Hardware/software
resources
If not, can we afford
to hire/purchase what
we don’t have?
– Can it be done within constraints?
• On time
• Within budget
With respect to customer needs
Major Steps
•
•
•
•
Determine scope of product
Create basic design
Estimate costs
Deliver report/proposal
for decision
Analogous to
steps in
development
process!
• Must be done quickly (a week or two at most)
Project Scope
• What will system do?
– Short list of functions/use cases
– Will refine in requirements stage
• What will system not do?
– Just as important to avoid misunderstanding!
All possible requirements
What this system
will do
Example: Registration System
• This system will
– Read courses from the existing course inventory
– Allow chairs to create sections
– Allow students to view course information, and
add or drop courses over the web
– Keep track of roster for sections and allow
instructors to view their courses
– Close sections when the roster is full
– Prevent students from adding courses at
conflicting times
Example: Registration System
• This system will not
– Enforce prerequisite constraints
– Detect room/instructor conflicts
– Store grades received by students
– Handle billing for courses
Preliminary Design
• Is there some way the system can be built?
– Worry about “best” design later
• Often based on existing design patterns
Client/server
architecture
Repository architecture
registrars
Central repository
server
students
faculty
course
inventory
Cost Estimation
• Goal: accurate estimate of time/expense of
developing system
• Reality: Too many variables
– Human, technical, market…
Cost Estimation Models
• Experience:
– “How long has it taken us to do similar things before?”
– If you haven’t done this before, assume a longer time!
• Mathematical:
Complexity of problem
Expertise of team
Function
Estimate
of effort
– Example: COCOMO II (COnstructive COst Model)
• Very widely used for cost estimation and project
scheduling
• http://sunset.usc.edu/research/COCOMOII/cocomo_main.html
COCOMO II
• Project complexity = NOP (new object points)
• Based on number/complexity of
– User interface screens (single process may have many)
– Reports/database tables
– Major components/classes used to implement logic
Object type
Complexity Weight
Simple
Medium
Difficult
Screen
1
2
3
Report
2
5
8
Component
10
COCOMO II
• Individual Productivity Rate (PROD) based on
– Developer general
experience/capability
– Experience with
software engineering
tools/environments
Developer experience
Very low
Low
Nominal
High
Very high
Environment capability Very low
Low
Nominal
High
Very high
7
13
25
50
PROD
4
COCOMO II
• NOP also based on reuse (%reuse)
– Similar components we have previously built
– Components we can purchase “off shelf”
• NOP = (object points) x (100 – reuse%)/100
• Estimated effort (in terms of person/months)
=NOP/PROD
Final Report
• Describes all of the above
– Project scope, Preliminary design, Cost estimate
• May be presentation
– To management for budget approval
– To customer for approval/initial bids
• May include simple prototyping
– Sample screens for customer
– Very simple system for user focus groups
The Decision
• Based on what is best for customers and your
organization
• Not other considerations
– “It would look good on my resume if I said I have experience
developing this type of system”
– “I don’t know if it will work, but we have to be seen as having
the most up to date stuff”
Download