Beruflich Dokumente
Kultur Dokumente
User requirements System requirements Domain requirements Functional requirements Non-functional requirements
External requirements
Portability requirements
Interoperability requirements
Ethical requirements
Usability requirements
Delivery requirements
Standards requirements
Legislative requirements
Performance requirements
Privacy requirements
Safety requirements
Requirements measures
Requirements measures
Prope rty Speed Size Ease of use Reliability Measure Processed transactions/second User/Event response time Screen refresh t ime K Byt es Number of RAM chips Training t ime Number of help frames Mean time t o failure Probabilit y of unavailability Rate of failure occurrence Availabilit y Time to restart after failure Percent age of events causing failure Probabilit y of dat a corruption on failure Percent age of t arget dependent statements Number of t arget syst ems
Design
Describe how it will be done Primary goal of design: OPTIMIZATION
A system architecture may be designed to structure the requirements The system may inter-operate with other systems that generate design requirements The use of a specific design may be a domain requirement
Change
Requirements confusion
Functional and non-functional requirements tend to be mixed-up
Requirements combination
Several different requirements may be expressed together
Alternatives to NL specification
Alternatives to NL specification
Notation Structured natural language Design description languages Graphical notations Mathematical specifications Description This approach depends on defining standard forms or templates to express the requirements specification. This approach uses a language like a programming language but with more abstract features to specify the requirements by defining an operational model of the system. A graphical language, supplemented by text annotations is used to define the functional requirements for the system. These are notations based on mathematical concepts such as finite-state machines or sets. These unambiguous specifications reduce the arguments between customer and contractor about system functionality.
It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it
System customers
Specify the requirements and read them to check that they meet their needs. They specify changes to the requirements Use the requirements document to plan a bid for the system and to plan the system development process
Managers
System engineers
Use the requirements to help understand the system and the relationships between its parts
What is an SRS?
It is a document that you prepare:
after customer gives you their system specifications before you design the system
Purpose (continued)
1. 2. 3. 4. It provides feedback to the customer. It decomposes the problem into component parts. It serves as an input to the design specification. It serves as a product validation check.
Scope
identify software to be produced by name explain what software will (not) do describe application of software (benefits, objectives)
Overview
brief description of rest of SRS organization of SRS
Apportioning of requirements
requirements that may be delayed to future versions
Additional comments
Requirements Engineering
Requirements Definition
Feasibility Report
System Models
SRS
V&V
Requirements Engineering
Requirements Definition
Feasibility Study
Requirements Elicitation and Analysis
Feasibility Report
Requirements Engineering
Requirements Definition
Feasibility Study
Requirements Elicitation and Analysis
Feasibility Report
Feasibility Study
Feasibility Study
A feasibility study is a study made before committing to a project. A feasibility study leads to a decision: go ahead do not go ahead think again
In production projects, the feasibility study often leads to a budget request. A feasibility study may be in the form of a proposal.
Feasibility Report
A written document
Types of Feasibility
Economic feasibility Technical feasibility Operational feasibility Schedule feasibility Legal and contractual feasibility Political feasibility
Economic Feasibility
Cost-benefit analysis identify all the financial benefits and costs associated with a project Tangible vs. intangible benefits Tangible vs. intangible costs One-time vs. recurring costs
Technical Feasibility
Assessing the organizations ability to construct the proposed system Takes into account various project risk factors
Schedule
Can the project be accomplished in a reasonable time frame? Project management critical path scheduling can help answer this concern.
Legal/Contractual
Are there regulations or legal obligations that affect the success of the project?
Political
Will the project have user and management support? Will there be resistance?
Why Software Project Management is important Building computer software is a complex undertaking, particularly if it involves many people working over a relatively long time.
The 4 Ps
People the most important element of a successful project Product the software to be built Process the set of framework activities and software engineering tasks to get the job done Project all work required to make the product a reality
62
The People
The people factor is so important that the Software Engineering Institute has developed a people management capability maturity model (PM-CMM), to enhance the readiness of software organizations to undertake increasingly complex applications by helping to attract, grow, motivate, deploy, and retain the talent needed to improve their software development capability
The Product
Before a project can be planned, product objectives and scope should be established. Alternative solutions should be considered, and technical and management constraints should be identified. Without this information, it is impossible to define reasonable (and accurate) estimates of the cost, an effective assessment of risk, a realistic breakdown of project tasks, or a manageable project schedule that provides a meaningful indication of progress.
The Process
A software process provides the framework from which a comprehensive plan for software development can be established. A number of different task setstasks, milestones, work products, and quality assurance points enable the framework activities to be adapted to the characteristics of the software project and the requirements of the project team.
The Project
In 1998, industry data indicated that 26 percent of software projects failed outright and 46 percent experienced cost and schedule overruns. In order to avoid project failure, a software project manager and the software engineers who build the product must avoid a set of common warning signs, understand the critical success factors that lead to good project management, and develop a commonsense approach for planning, monitoring and
Software project scope must be unambiguous and understandable at the management and 77 technical levels.
Decomposition process continues until all functions or problem classes have been defined
78
The Process
Once a process framework has been established
Consider project characteristics Determine the degree of rigor required Define a task set for each software engineering activity
Task set =
81
Activity organization
Activities in a project should be organised to produce tangible outputs for management to judge progress Milestones are the end-point of a process activity Deliverables are project results delivered to customers The waterfall process allows for the straightforward definition of progress milestones
ACT IVITIES Feasibility study Requir ements analysis Prototype development Design study Requir ements specification
Feasibility report
Architectural design
Project scheduling
Split project into tasks and estimate time and resources required to complete each task Organize tasks concurrently to make optimal use of workforce Minimize task dependencies to avoid delays caused by one task waiting for another to complete Dependent on project managers intuition and experience
Identify activities
Software requirements
Activity charts show task dependencies and the critical path Bar charts show schedule against calendar time
Activity network
14/7/99 8 days T1 4/7/99 start 15 days T2 10 days T4 18/7/99 M5 25 days T8 19/9/99 Finish 25/7/99 M2 T7 10 days T5 11/8/99 M7 15 days T10 M1 15 days T3 5 days T6 20 days 4/8/99 M4 15 days T9 25/7/99 M3 25/8/99 M6 7 days T11 5/9/99 M8 10 days T12
Activity timeline
4/ 7 T4 T1 T2 M1 T7 T3 M5 T8 M3 M2 T6 T5 M4 T9 M7 T1 0 M6 T1 1 M8 T1 2 Fi n is h 11/ 7 St art 18 / 7 25 / 7 1/ 8 8/ 8 15 / 8 22 / 8 29 / 8 5/ 9 12 / 9 19 / 9
Staff allocation
4/7 Fred T4 T8 Jane T1 T3 T9 Anne T2 T6 Jim Mary T7 T5 T10 T11 T12 11/7 18/7 25/ 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
Risk management
Risk management is concerned with identifying risks and drawing up plans to minimise their effect on a project. A risk is a probability that some adverse circumstance will occur.
Project risks affect schedule or resources Product risks affect the quality or performance of the software being developed Business risks affect the organisation developing or procuring the software
Software risks
Risk Staff turnover Management change Hardware unavailability Requirements change Specification delays Size underestimate CASE tool underperformance T echnology change Product competition Risk type Project Project Project Project and product Project and product Project and product Product Business Business Description Experienced staff will leave the project before it is finished. There will be a change of organisational management with different priorities. Hardware which is essential for the project will not be delivered on schedule. There will be a larger number of changes to the requirements than anticipated. Specifications of essential interfaces are not available on schedule The size of the system has been underestimated. CASE tools which support the project do not perform as anticipated The underlying technology on which the system is built is superseded by new technology. A competitive product is marketed before the system is completed.
Risk analysis
Assess the likelihood and consequences of these risks
Risk planning
Draw up plans to avoid or minimise the effects of the risk
Risk monitoring
Monitor the risks throughout the project
Risk identification
Risk analysis
Risk planning
Risk monitoring
Risk assessment
Risk identification
Technology risks People risks Organisational risks Requirements risks Estimation risks
People Organisational
Tools Requirements
Estimation
Risk analysis
Assess probability and seriousness of each risk Probability may be
very low low moderate high or very high
Risk analysis
Risk Organisational financial problems force reductions in the project budget. It is impossible to recruit staff with the skill s required for the project. Key staff are ill at critical times in the project. Software components which should be reused contain defects which limit their functionalit y. Changes to requirements which require major design rework are proposed. The organisation is restructured so that different management are responsible for the project. The database used in the system cannot process as many transactions per second as expected. The time required to develop the software is underestimated. CASE tools cannot be integrated. Customers fail to understand the impact of requirements changes. Required training for staff is not available. The rate of defect repair is underestimated. The size of the software is underestimated. The code generated by CASE tools is inefficient. Probability Effects Low Catastrophic High Moderate Moderate Moderate High Moderate High High Moderate Moderate Moderate High Moderate Catastrophic Serious Serious Serious Serious Serious Serious Tolerable Tolerable Tolerable Tolerable Tolerable Insignificant
Risk planning
Consider each risk and develop a strategy to manage that risk Avoidance strategies
The probability that the risk will arise is reduced
Minimisation strategies
The impact of the risk on the project or product will be reduced
Contingency plans
If the risk arises, contingency plans are plans to deal with that risk
Risk monitoring
Assess each identified risks regularly to decide whether or not it is becoming less or more probable Also assess whether the effects of the risk have changed Each key risk should be discussed at management progress meetings
Risk factors
Risk type Technology People Organisational Tools Requirements Estimation Potential indicators Late delivery of hardware or support software, many reported technology problems Poor staff morale, poor relationships amongst team member, job availabilit y organisational gossip, lack of action by senior management reluctance by team members to use tools, complaints about CASE tools, demands for higher-powered workstations many requirements change requests, customer complaints failure to meet agreed schedule, failure to clear reported defects
Key points
Good project management is essential for project success. The intangible nature of software causes problems for management. Managers have diverse roles but their most significant activities are planning, estimating and scheduling. Planning and estimating are iterative processes which continue throughout the course of a project.
Key points
A project milestone is a predictable state where some formal report of progress is presented to management. Risks may be project risks, product risks or business risks Risk management is concerned with identifying risks which may affect the project and planning to ensure that these risks do not develop into major threats