4010 Lec2
4010 Lec2
Lecture
Click to edit Master 2 –styles
text Initiation and Analysis, Estimation, Development
Principles and Mistakes
Second level
Third level
Fourth level
Fifth level
1
System Development Project
• Project:
• A planned undertaking that has a beginning, and end, and which produces a predetermined
result or product
• Usually specified in terms of cost, schedule, and performance requirements
2
Project Matters (components)
• Schedule:
• A list of a project’s milestones, activities, and deliverables with intended start and
finish dates
• Participant:
• Any person participating in a project
• Are considered stakeholders
• Task:
• Work to be performed by a project participant to create a work product
3
Project Matters (communications)
• Planned communications:
• Help to disseminate information that targeted participants are expected to use
• Problem inspections:
• Gathering information from the problem statements, the clients, and/or users
about their needs and application domain
• Status meetings:
• Review the progress of the project team
• Peer reviews:
• Reviews by team members to identify defects and find solutions in preliminary
project products
• Client and project reviews:
• Reviews by the client or project member(s) to review the quality of a
deliverable
• Releases:
• Project participants/team make available to the client/users a version of the
system and its documentation
4
Project Matters (components)
• Unplanned communications:
• Help to deal with crises and unexpected information needs
• Request for clarification: project participant requests specific information from
others about the system, application domain, or the project
• Request for changes: participant describes problems encountered in the system or
new features that the system should support
• Issue resolution: to identify a conflict between different stakeholders, explore and
negotiate solutions and agree upon a resolution
5
Project Matters (organization)
• Team-based organization
• Project interactions:
• Reporting: to report status information
• Decision: to propagate a decision (rule)
• Communication: to exchange all other types of information needed for decision or status
reporting
6
System Development Life Cycle (SDLC)
• 5 Core Phases:
7
System Development Life Cycle (SDLC)
• Initiation:
8
Initiation: Origin/Source
9
Defining the Problem
• May involve developing a context diagram to explain the scope of the project
10
Statement of Need
11
High-Level Overview of System Capabilities
12
System Vision Document
• Problem description
• System capabilities
• Business benefits
13
Project Schedule
2. Estimate the size of each task (time and resources) – optimistic, pessimistic and
expected times
• Charting methods
• 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
• Shows schedules well but not dependencies as well
14
Overlap of systems development activities in
scheduling
15
Project Schedule – Task List
16
16
Project Team/Members
17
Project Team/Members
18
PERT Chart
19
PERT Chart
20
Gantt Chart
21
Gantt Chart
22
Staffing a Project
23
Feasibility Studies
24
Economic feasibility study
• Other costs such as equipment, software licenses, training are also estimated
• Net present value (NPV) – present value of benefits and costs, is calculated for e.g.
5 year period
25
Cost-Benefit Analysis
• Costs
26
Cost-Benefit Analysis
• 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
27
Cost-Benefit Analysis
• Benefits
• Intangible benefits – examples
• Increased level of service (in ways that can’t measure)
• Increased customer satisfaction
• Survival
• The need to develop in-house expertise
28
Cost-Benefit Analysis
• Cumulative NPV – Calculated value of benefits and costs over a certain time
period
29
Further Planning Preparations
30
Software Estimations as a Process of Refinement
31
Sources of uncertainty (single feature)
• If you implement the cheap version of feature X, will the customer later want
the expensive version after all?
• How long will it take to debug and correct the mistakes made in the
implementation of feature X?
• How long will it take to integrate feature X with all the other features?
32
Estimate-convergence graph
33
Estimate Multipliers
34
Estimation Techniques
• Size estimation:
• Algorithmic approach
• Utilizes program size from description of program features
• Mainly relies on similar completed projects and experience to determine size
• Function-Point estimation
• A kind of size estimation often used in a project’s early stages
• Based on counting:
• Inputs – screens, forms, dialog boxes, controls, etc…
• Outputs – screens, reports, graphs, etc.
• Inquiries – Input/output combinations
• Logical internal files – files controlled by the program
• External interface files – files control by other programs
35
Estimation Techniques
• Effort estimation
• Once you have the size estimate you can derive the effort estimate
• Can convert size estimate (e.g. lines of code or number of functions) to effort
estimate
• Based on an organization’s historical data in terms of efficiency to determine
how much effort previous projects of an estimated size took
36
Estimation Techniques
• Schedule estimation:
• Schedule estimation can be derived from effort estimation
37
General Development Principles and Mistakes
38
General Development Principles and Mistakes
39
General Development Principles and Mistakes
Practices that improve development speed, allowing you to deliver software faster
Practices that reduce schedule risk, allowing you to avoid huge schedule overruns
Practices that make progress visible, allowing you to dispel the appearance of slow
development
40
General Development Principles and Mistakes
41
General Development Principles and Mistakes
• Provide support (as “four pillars”) for the best possible application development
• Classic Mistake Avoidance, Development Fundamentals, Risk Management,
Schedule-oriented practices
42
General Development Principles and Mistakes
• Four dimensions of development speed:
• People
• Process
• Product
• Technology
43
General Development Principles and Mistakes
• The People Dimension:
• People issues have more impact on software productivity than any other factor
• The most effective practices leverage human potential of developers
• Individual ability, individual motivation, team ability, and team motivation dwarf
other productivity factors
44
General Development Principles and Mistakes
• Process dimension:
• “Process” includes both management and technical methodologies
• Including:
• Rework avoidance (process should avoid repetition)
• Quality assurance
• Risk management
• Resource targeting
• Lifecycle planning
• Customer orientation
45
General Development Principles and Mistakes
• Product dimension:
• If you can reduce a product’s feature set you can reduce the product’s schedule
46
General Development Principles and Mistakes
• Technology dimension:
• Changing from less effective tools to more effective tools can be a fast way to
improve development speed
• E.g. the change from low-level languages to high-level languages
• Choosing tools effectively and managing the risks involved are important
47
General Development Principles and Mistakes
• Classic Mistakes: People
1. Undermined motivation
Motivation has biggest effect on productivity
2. Weak Personnel
Has next most important influence on productivity
4. Heroics
Encourages too much risk taking
48
General Development Principles and Mistakes
• Classic Mistakes: People
8. Unrealistic expectations
49
General Development Principles and Mistakes
• Classic Mistakes: Process
50
General Development Principles and Mistakes
• Classic Mistakes: Process
51
General Development Principles and Mistakes
• Classic Mistakes: Product
52
General Development Principles and Mistakes
• Classic Mistakes: Technology
53
System Development Life Cycle (SDLC)
• 5 Core Phases:
54
The Activities of the Analysis Phase
55
Gathering Information
• Can get information from people who will be using the system
• By interviewing them
• By observing them
• Can get other information by reviewing documents and policy statements
(e.g. At a bank)
• Can involve the analyst actually doing some or part of the task to get a feel
for what is done
• In order to automate order-entry you may need to become an “expert”
on the task (knowing how orders are processed)
• Need to understand current and future users, locations, system interfaces,
possible solutions, etc.
56
Gathering Information
• Example techniques:
• Interviewing users and other stakeholders
• Distributing and collecting questionnaires
• Reviewing inputs, outputs, and documentation
• Observing and documenting business procedures
• Researching vendor solutions
• Collecting active user comments and suggestions
57
Stakeholders
58
Stakeholders
• For an accounting system for a large public company:
59
User Stakeholders
• Can identify users horizontally – i.e. Across departments
• How does one department affect another?
• Can also identify users vertically – i.e. Hierarchy within a department (e.g. lower,
middle and upper managers)
• How does one user role affect those above or below?
• Business operation -> management -> executive
• Type of users
• Business operations users – use the system daily to perform operations
(transactions – a piece of work)
• Query users – could be business people or customers – request info
• Management users – want reports, performance stats, want to know
volumes of transactions etc.
• Executive users – want information to help with strategic issues, e.g.
compare improvements in resource utilization
60
Interviewing Users and Other Stakeholders
Time-consuming and resource-expensive.
61
Interviewing Users and Other Stakeholders
62
Interviewing Users and Other Stakeholders
• Behaviour and activity checklist:
63
Interviewing Users and Other Stakeholders
• Sample Session
64
Documentation
65
Importance of Documentation
• Persistence
• Large amounts of information
• Stakeholders involved can hardly memorize or reflect on all this information
• Common reference
• Common reference point for all stakeholders involved
• Promotes communication
• Common reference promotes discussion about the requirements
• Promotes objectivity
• Exchange of information via documents is less amenable to unwanted alteration of the
information or subjective interpretation
• E.g. broken telephone
66
Importance of Documentation
67
Documentation vs Specification
• Documentation:
• Varying formats and levels of detail
• Varying levels of abstraction
• Specification:
• A specific kind of requirements documentation
• Generally more formal, higher level of detail, lower level of abstraction
• Aims to specify the requirements in compliance with the defined specification rules
and guidelines
• Each specified requirement is also a documented requirement
• But not vice-versa
68
Requirements Documents
69
Types of Software/System Requirements
• Functional Requirements
• are directly related to the software functionality
• ie: What the system must do
• Frequently expressed as an if/then relationship
• Non-Functional Requirements
• NFRs express constraints that a software must comply with
• Can be seen as specific qualities that a software must have
• “How” the software must do the “What”
• Eg: usability, security
70
Requirements Statements
• What types of requirements statements are these?
• System: Twitter
• “The social media managers should be able to view tweet analytics in order to view
tweet reach and achieve growth.”
71
Writing Good Requirements
• Good requirements:
• State a need
• Are verifiable
• Are attainable
• Are clear and concise
• Are unambiguous
• Do Not:
• Make assumptions
• Describe processes rather than what must be
attained
72
Software Requirements Specification (SRS)
• Purpose
• Communication
• Explain the application domain and the system to be developed
• Contractual
• May be legally binding!
• Expresses agreement and commitment
• Baseline for evaluating software
• Supports testing, validation and verification
• “Enough information to verify if a delivered system meets
requirements”
• Baseline for change control
73
Audience of SRS
• System analysts
• Write other specifications that interrelate
• Developers
• Have to implement requirements
• Testers
• Have to check that requirements have been met
• Project Managers
• Have to measure and control the project
74
Quality Criteria for Requirements Specifications
• Of course need to:
• State a need
• Are verifiable
• Are attainable
• Are clear and concise
• Are unambiguous
• But also:
• Consistent
• Doesn’t contradict itself
• Uses all terms consistently
• Consistent across artifacts
• Ranked
• Indicates relative importance/stability of each requirement
• Modifiable and Readable
• Can be changed without difficulty, unique identification number, etc…
• Traceable
• Origin of each requirement is clear
• Each requirement is labeled for future referencing
75
Quality Criteria for Requirements Specifications
• Rated
• Relevance and/or stability have been determined and documented
• Up to date
• Reflects the current status of the system and system context, such as current stakeholder wishes or
current legal regulations
• Atomic
• Describes a single, coherent fact
• Does NOT describe multiple isolated or merely loosely coupled facts which can easily be divided into
several requirements
76
Quality Criteria for Requirements Specifications
• Example:
In order to authenticate himself, the driver enters an electronic card and a PIN. If invalid, the engine does not
start.
R1: The system must respond to event ES-2 in at least 80% of the cases within 2s, and in all cases, within 3s
at the latest for a system load between 80% and 90% of the maximum load as specified by constraint C14
(System load profile).
R2: The normal response time of the system shall be less than 2s.
The user must log on to the system in order to be able to search for a particular order by order ID or by full-text
search in the customer database.
77
Quality Criteria for Requirements Specifications
• Example:
In order to authenticate himself, the driver enters an electronic card and a PIN. If invalid, the engine does not
start.
Functional, Ambiguous
R1: The system must respond to event ES-2 in at least 80% of the cases within 2s, and in all cases, within 3s
at the latest for a system load between 80% and 90% of the maximum load as specified by constraint C14
(System load profile).
R2: The normal response time of the system shall be less than 2s.
Functional, Non-functional, Unconcise, Ambiguous, R2 cannot be verified. “Normal response time” refers to?
(load, conditions)
The user must log on to the system in order to be able to search for a particular order by order ID or by full-text
search in the customer database.
Functional, Non-atomic (describes user authentication as well as searching for orders)
78
SRS Should Address:
• Functionality
• What is the system supposed to do?
• External interfaces
• How does the system interact with people, system’s hardware, other
hardware/software?
• What assumptions can be made about these external entities?
• Required performance
• What is the speed, availability, response time, etc. of various functions?
• Quality attributes
• What are the portability, correctness, maintainability, security, and other
considerations?
79
SRS Should NOT Address:
• Designs
• Requirements and designs have different audiences
80
SRS Can Be Organized By:
• …System feature
• E.g., for a telephone system: call forwarding, call blocking, conference
call, etc.
• …System response
• E.g., for a payroll system: generate pay cheques, report costs, print tax
info;
• …External object
• E.g., for a library information system, organize by book type
81
SRS Can Be Organized By:
• …User type
• E.g., for a project support system: manager, technical staff,
administrator, etc.
• …Mode of operation
• E.g., for word processor: page layout mode, outline mode, text editing
mode, etc.
• …Subsystem
• E.g., for spacecraft: command & control, data handling, comms,
instruments, etc.
82