Lecture 2 - York University

advertisement
Requerements in the Software Lifecycle
1
Requirements Challenge
• Complex
 HCI : Always complicate and complex
• Eliciting Requirements
 Need to be always exploring
 Many possible solutions
 No right or wrong
 What is the problem again ?
2
Once more What is RE ?
• A systematic process of developing requirements
through an iterative and co-operative process of
analyzing the problem, documenting the resulting
observations in a variety of representation formats, and
checking the accuracy of the understanding gained.
[MaCaulay – Requirements Engineering (applied
Computing)]
3
Software Myths (From Easterbrook Lectures)
• Cost of Software is Lower than cost of physical
devices
• Software is easy to change
• Computers are more reliable than physical devices
• Software can be formally proved to be correct
• Software reuse increases safety and reliability
• Computers reduce risk over mechanical systems
4
Why do we develop a software ?
• Competition, critical facts
• New technology has been developed
• New Requirements
• Company is growing
 Business is changing
• Something Changed in your world
• Continue a previous project
5
Professional Responsibility
• Competence
 Never misrepresent your level of competence
• Confidentiality
 Respect confidentiality of ALL Stakeholders
users
customer
• Stakeholders
clients
Non-clients
clients
Third party clients
Investor
Owner
Especialist
Partner
 How customers are linked and how is it important ?
 Who are the Stakeholders ?
6
Professional Responsibility
• Intellectual property rights
 Respect protection on ideas, design, patterns ….
• Data Protection
 Check the Law to see how personal data should be handled
 Whatever you learn here should be constantly check during the whole
lifecycle
7
Managing Projects
• What can a Manager Control ?
 Resources - Money, Personal, tools, facilities ..
 Product – What and how the system will do things – (Control the
scope)
 Time
 create detailed schedules
 Check milestones
 Change schedule and milestones
 Be pro-active
 Risk
 What are the risks in the project
o Different scope/solutions may have different risks
 Which risks can we live with
 If risk is too high how should we proceede
o Brace for collision ?
o Revisit the scope or possible alternatives ?
8
Management
• Measure !!
 If you can’t measure your process/project you can not manage it
• Have a clear notion of the desired goals and objectives
• Plan ahead
• Assume things will go wrong
• Monitor and adjust it as frequently as needed
• Keep the environement
 Calm
 Productive
 Informed (when possible)
9
Why do we start a project ?
• Why ?
 Problem driven
 Existing system present problems
 Incompleteness
 Changes in the domain
 When something relevant arises in business or its environment
 Current system can not handle new businesses
 Change in Law
 New opportunities
 New technology can improve business
 New markets have arisen
 New upper management
10
Source of Requirements
• Customer
 A specific customer have a specific need
• Market
 May want to sell to a large number of clients (e.g. ERP)
 Need to reach new customers
 Marketing identifies ne wopportunities
• Social Related
 Systems that do not seek profit
 Open software
 Scientific research
• Mix
 We do have a client but we want to leave it open to explorer larger set
of customers late.
11
Most Common types of systems
• Information systems
 Support an organization
 Database is part of the system
 More than 70% of all software
 Payroll
 Accounting
 Customer relation
 Student Enrollment
• Control Systems
 Control process (hardware) in real time
 Flight Control
 Nuclear power plant
 Elevators
• Generic
 Provide services to other systems
 Search engines
 Credit Card processingM
12
Software Lifecycles
• Waterfall
13
Software Lifecycles
14
Software Lifecycles
15
Rational Unified Process
16
16
System Lifecycle
17
Software lifecycle
18
Software Lifecycles
19
Software Lifecycles
20
What is a System
• Part of a reality that can be observed and interact with the
environment
 Every system has a boundary
 Get inputs and send outputs
 Almost always composed of smaller sub-systems
• Examples
 Cars, weather, universe, Cardiovascular
 Operating Systems
 Database Servers
 Organizations
• Not Systems
 Numbers
 Letters
21
22
Types of Systems
• Natural Systems
 Ecosystems, weather, human body
• Abstract Systems
 Mathematical equations, computer programs
• Designed Systems
 Cars, planes, phones, internet
• Human Activity Systems
 Organization, markets, clubs
• Information Systems
 MIS
 Transaction Processing
 Real-Time Control
23
Software Systems
• Hard to define precisely
• Composed of abstract ideas
• Different people may have different understandings
• The system doesn’t really exists
 Talking about systems helps to understand it
• The system is a Theory of how some part of the world
operates
24
System Boundary
• The part of the world that interacts with the system
 Every system has a subsystem
 The environment in itself is a system
• Choosing Boundaries
 Maximize modularity
 Telephone system – switches, phone lines, handsets, users, account
 Desktop Computer - ?
 Tips
 Exclude things that have no functional effect on the system
 Exclude things that influence the system but cannot be influenced or
controlled by the system
 Include things that can be strongly influenced or controlled by the system
25
A Place to Start
• Nowadays almost always there is a system in place
 Studying what we have prompts to requirements and helps to avoid
past mistakes
• Using what we have
 Can reduce costs
 Makes it easier to break problems downs
 But Can mislead you too !!
• Is the problem presented to us the real problem ?
26
Starting in a Nutshell
• Stakeholders
 How customers are linked and how is it important ?
 Who are the Stakeholders ?
Non-clients
users
customer
clients
clients
Third party clients
Investor
Owner
Especialist
Partner
27
Starting in a Nutshell
• Boundaries
 How do you scope the problem ?
 How far should we go ?
 Time constraints ?
 Budget constraints ?
• Goals and Scenarios
 Helps understanding what, who, when, why
 May not be too easy to determine
• Feasibility
 Cost vs Benefit analysis
• Risk
 Continuous Risk Management
28
vz
29
• Subject World
 Things that need to be used in the information system
 Account, Transaction in a bank account, Collision Alert
• Usage World
 The environment where the future system will operate
 People
o Manager
o Clerk
o Customer
 Business Process
o Withdraw money
o Evasive Action (Plane)
30
• System World
 What the system does within its operational environment
 What are the information needed ?
 What functions should be performed ?
 System records log of use
 System gives account Balance
 System monitors patient
• Development World
 Process
 Team
 Schedule
 Qualities (Non-Functional Requirements)
 System to be delivered in 12 months
 Team should not exceed 12 people
31
Developing a Project Schedule
1. Identify individual tasks for each activity
•
Top-down or bottom-up approach
2. Estimate the size of each task (time and
resources) – optimistic, pessimistic and expected times
3. Determine the sequence for the tasks
4. Schedule the tasks
• Charting methods (Appendix C)
 PERT/CPM (Project Evaluation and Review
Technique/Critical Path Method) chart shows the
relationships based on tasks or activities
 Defines tasks that can be done concurrently or not and
critical path
 Gantt chart shows calendar information for each task
as a bar chart
32
32
 Shows schedules well but not dependencies as well
33
33
34
34
Gantt Chart
•
•
•
•
Tasks represented by vertical bars
Vertical tick marks are calendar days and weeks
Shows calendar information in a way that is easy
Bars may be colored or darkened to show
completed tasks
• Vertical line indicates today’s date
35
35
36
36
Further Preparations
• Staffing the Project
 Develop a resource plan
 Identify and request technical staff
 Identify and request specific user staff
 Organize the project team into work groups
 Conduct preliminary training and team-building
37
37
2. Confirming Project Feasibility
 Economic feasibility – cost-benefit analysis
 Organizational and cultural feasibility
E.g. low level of computer literacy, fear of employment loss
 Technological feasibility
Proposed technological requirements and available expertise
 Schedule feasibility
How well can do in fixed time or deadline (e.g. Y2K projects)
 Resource feasibility
Availability of team, computer resources, support staff
• Economic Feasibility
 The analysis to compare costs and benefits to see
whether the investment in the development of the
system will be more beneficial than than costly
38
38
• Costs
 Development costs : salaries and wages, equipment and
installation, software and licenses, consulting fees and
payments to third parties, training, facilities, utilities
and tools, support staff, travel and miscellaneous
 Sources of Ongoing Costs of Operations: connectivity,
equipment maintenance, computer operations,
programming support, amortization of equipment,
training and ongoing assistance (help desk), supplies
39
39
• Benefits
 Tangible benefits - examples
Reducing staff (due to automation)
Maintaining constant staff
Decreasing operating expenses
Reducing error rates (due to automation)
Ensuring quicker processing and turnabout
Capturing lost discounts
Reducing bad accounts or bad credit losses
Reducing inventory or merchandise loss
Collecting accounts receivable more quickly
Capturing income lost due to “stock outs”
Reducing the cost of goods with volume discounts
Reducing paperwork costs
40
40
• Benefits
 Intangible benefits – examples
Increased customer satisfaction
Survival
Safety of a Patient
The need to develop in-house expertise
Note - also can have intangible costs for a project
reduced employee moral
lost productivity
lost customer or sales
41
41
Conducting the feasibility study
• Each category of cost is estimated
• Salaries and wages are calculated based on
staffing requirements
• Other costs such as equipment, software
licenses, training are also estimated
• A summary of development costs and annual
operating costs is created
• A summary of benefits is created
• Net present value (NPV) – present value of
benefits and costs, is calculated for e.g. 5 year
period
• Decision is made to proceed with project
42 or not42
43
43
Job
Time
Salary
Total
Project
Manager
System
Analyst
(3)
Program
mers (6)
Network
Designer
12
90,000
months
9 months 75,000
90,000
7 months 50,000
175,000
5 months 70,000
29,166
168,750
462,916
44
44
45
45
46
46
47
47
48
Ok. How Elicitation fits ?
• First part of Requirements Process
• But it goes throughout the whole software
• Never stops
49
• Another Definition for Requirements:
 An externally Observable Characteristic of a Desired System
• 2 Buttons in a mouse
 If the user needs 2 buttons this is a requirement
 If the user only need a way of moving slides back and forth, this is
too detailed to be a requirement
50
Tackling the problem not the solution
• My Elevator is slow
My Elevator is too slow
•You have a throughput problem
not a speed problem !
51
Tackling the problem not the solution
• My Elevator is slow
•Why is that a problem ?
• Well it’s a problem because
people complaint about the lines
•How better should it be?
As better as needed for
stopping complaints
• Solution ????
52
Basic Needs for Elicitation
(Questions from Polya)
• What is unknown?
• Do you know any related problem?
• Can you reinvent the problem?
53
Elicitation
Elicit [Var. elicit + make it clearer + extract]
1.discover, make explicit, get as much
information as possible to understand the
object being studied.
54
Elicitation
• Identify sources of information
• Gather facts
• Communication
55
Elicitation
• Gathering information may be hard
 Communication can be difficult (different languages and
knowledge)
 Stakeholder may be (often are) hard to meet
 They may have conflicting objectives
 Stakeholder often have different viewpoints regarding the
same thing
 Knowledge is usually distributed among many different
sources
 The mere presence of an outsider may change the process
 Hidden agendas
 Fear of change
56
Who is related to the software?
Non-clients
users
customer
interested
clients
clients
Third party clients
Investor
Owner
Especialist
Partner
developers
Quality Control (QC)
Technical writers
Software Engineer
57
Identifying Sources of Information
• Actors in the Universe of Discourse
 Clients
 Users
 Developers
•
•
•
•
Documents
Books
Software Systems
COTS
58
Criteria
• Experience
• Knowledge about the domain
• Volume of investment
• What the stakeholder does daily
59
Sources of Information
UofD
UofD
Source of Information =
{ a,b,c,d,e,f}
U
{g,h}
60
Heuristics to identify sources of
information
•
•
•
•
•
•
Who is the client?
Who owns the system?
Is there any customized system available?
What are the books related to the application?
Is it possible to reuse software artifacts?
What are the documents most cited by the actors of
UofD?
61
Facts gathering
•
•
•
•
•
•
•
•
•
•
Document Reading
Observation
Interviews
Reunions
Questionnaires
Anthropology
Active participation from actors
Protocol Analysis
Reverse Engineering
Reuse
62
Tacit Knowledge
• The kind of knowledge that is trivial for the actor being
interviewed but not for the interviewer
• Because it is trivial, people almost never remebers to
mention it. The interviewer in his/her turn, not
knowing about the tacit knowledge can not ask about
it.
63
Psychological Considerations
• Experts are not used to describing what they do
 3 Stage model of learning
 Cognitive – verbal rehearsal of tasks
 Associative – reinforcement through repetition
 Autonomous – compiled
• Representational Problems
 Experts don’t have the language to describe their knowledge
 No verbal language are precise
 RE and Users must work together to understand each other
• Brittleness
 Knowledge is created not extracted
 Knowledge models are abstractions of reality - has to be selective
 Brittleness caused by the simplifying assumption – instead of adding more
knowledge a better (more comprehensive) model is needed
64
65
66
67
68
69
70
Download