IEEE Std 830-1998: Parts of anSRS • Introduction – Purpose • purpose of SRS • intended audience for SRS – Scope • identify software to be produced by name • explain what software will (not) do • describe application of software (benefits, objectives)
IEEE Std 830-1998: Parts of anSRS • Introduction (continued) – Definitions/acronyms/abbreviations – References • list documents referenced by name and source – Overview • brief description of rest of SRS • organization of SRS
IEEE Std 830-1998: Parts of anSRS• Overall description – Product perspective (related products?) • block diagram • constraints – system interfaces » identify functionality that fulfills each system requirement – user interfaces – hardware interfaces – software interfaces » how software interacts with supporting software (purpose, message content and format) » required versions
IEEE Std 830-1998: Parts of anSRS• Overall description (continued) – Product perspective • constraints – communications interfaces » network protocols – memory » requirements/limits on primary and secondary memory – operations » modes of operation » interactive vs. unattended operation » backup & recovery – site adaptation requirement
IEEE Std 830-1998: Parts of an SRS• Overall description (continued) – Product functions • summary of major functions sw will perform – Intended user characteristics • educational level • experience • technical expertise
IEEE Std 830-1998: Parts of anSRS• Overall description (continued) – Constraints (limitations of developer options) • regulatory policies • hardware limitations (e.g. signal timing requirements) • interfaces to other applications • parallel operation • audit functions • control functions • higher-order language requirements • reliability requirements • criticality of the application • safety and security considertations
IEEE Std 830-1998: Parts of an SRS• Overall description (continued) – Assumptions and dependencies • e.g. specific OS available on HW – Apportioning of requirements • requirements that may be delayed to future versions
IEEE Std 830-1998: Parts of an SRS• Specific requirements – External interfaces – Functions – Performance requirements – Logical database requirements – Design constraints • Standards compliance
IEEE Std 830-1998: Parts of an SRS• Specific requirements (continued) – Software system attributes • Reliability • Availability • Security • Maintainability • Portability
IEEE Std 830-1998: Parts of an SRS• Specific requirements (continued) – Organizing the specific requirements • System mode • User class • Objects • Feature • Stimulus • Response • Functional hierarchy – Additional comments
IEEE Std 830-1998: Parts of an SRS• Supporting Information – Table of contents – Index – Appendixes
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.
Contents of Feasibility Study Client: Who is this project for? Scope: What are the boundaries of the project? Benefits: What are the benefits? Can they be quantified? Technical: Is the project possible. Is there at least one technical way to carry out the project? Resources: What are the estimates of staff, time, equipment, etc? Alternatives: What are the options if the project is not begun?
Feasibility ReportA written document• For a general audience: client, financial management, technical management, etc.• Short enough that everybody reads it.• Long enough that no important topics are skipped.• Details are often included in supporting documents.It should be a well written, well presented 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 organization’s ability to construct the proposed system• Takes into account various project risk factors
Other Feasibility Concerns• Operational – Will the system achieve the objectives of the project?• 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?
Issues to be handled under SPM – People, – Process, – And Problem – Software metrics – Software project – Software process – Software team – Risk
Issues to be handled underSPM• How must the – people, – process, – and problem be managed during a software project?• What are software metrics and how can they be used to manage a software project and the software process?
Issues to be handled underSPM• How does a software team generate reliable estimates of effort, cost, and project duration?• What techniques can be used to formally assess the risks that can have an impact on project success?
Issues to be handled under SPM • How does a software project manager select the set of software engineering work tasks? • How is a project schedule created? • How is quality defined so that it can be controlled? • What is software quality assurance? • Why are formal technical reviews so important? • How is change managed during the development of computer software and after delivery to the customer?
Who does Software Project Management • Everyone “manages” to some extent, but the scope of management activities varies with the person doing it. • A software engineer manages his day-to-day activities, planning, monitoring, and controlling technical tasks. • Project managers plan, monitor, and control the work of a team of software engineers. • Senior managers coordinate the interface between the business and the software professionals
The 4 P’s• 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 34
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”
People management capabilitymaturity model (PM-CMM)• The people management maturity model defines the following key practice areas for software people: recruiting, selection, performance management, training, compensation, career development, organization and work design, and team/culture development.
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 sets—tasks, 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 controlling the project.
Who are the Stakeholders in SPM• Senior managers who define the business issues that often have significant influence on the project.• Project (technical) managers who must plan, motivate, organize, and control the practitioners who do software work.• Practitioners who deliver the technical skills that are necessary to engineer a product or application.• Customers who specify the requirements for the software to be engineered and other stakeholders who have a peripheral interest in the outcome.• End-users who interact with the software once it is 41 released for production use.
What is MOI model of leadership• Motivation. The ability to encourage (by “push or pull”) technical people to produce to their best ability.• Organization. The ability to mold existing processes (or invent new ones) that will enable the initial concept to be translated into a final product.• Ideas or innovation. The ability to encourage people to create and feel creative even when they must work within bounds established for a particular software product or application.
Types of Software Team• Mantei [MAN81] suggests three generic team organizations:• Democratic decentralized (DD). This software engineering team has no permanent leader. Rather, "task coordinators are appointed for short durations and then replaced by others who may coordinate different tasks.“• Communication within the team is horizontal.
Types of Software Team• Controlled decentralized (CD). This software engineering team has a defined leader who coordinates specific tasks and secondary leaders that have responsibility for subtasks. – Problem solving remains a group activity, but implementation of solutions is partitioned among subgroups by the team leader. – Communication among subgroups and individuals is horizontal. Vertical communication along the control hierarchy also occurs.
Types of Software Team• Controlled Centralized (CC). Top-level problem solving and internal team coordination are managed by a team leader. Communication between the leader and team members is vertical.
What are the Project coordinationtechniques • Formal, impersonal approaches include software engineering documents and deliverables (including source code), technical memos, project milestones, schedules, and project control tools, change requests and related documentation, error tracking reports, and repository data. • Formal, interpersonal procedures focus on quality assurance activities applied to software engineering work products. These include status review meetings and design and code inspections.
What are the Project coordinationtechniques • Informal, interpersonal procedures include group meetings for information dissemination and problem solving sessions for development staff. • Electronic communication encompasses electronic mail, electronic bulletin boards, and by extension, video-based conferencing systems. • Interpersonal networking includes informal discussions with team members and those outside the project who may have experience or insight that can assist team members.
Motivation behind the selectionof Software Teams
Motivation behind the selection ofSoftware Teams• The difficulty of the problem to be solved• The size of the resultant program(s) in lines of code or function points• The time that the team will stay together (team lifetime)• The degree to which the problem can be modularized• The required quality and reliability of the system to be built• The rigidity of the delivery date• The degree of sociability (communication) required for the project 51
What is the Product Scope….• Scope • Context. How does the software to be built fit into a larger system, product, or business context and what constraints are imposed as a result of the context? • Information objectives. What customer-visible data objects are produced as output from the software? What data objects are required for input? • Function and performance. What function does the software perform to transform input data into output? Are any special performance characteristics to be addressed?• Software project scope must be unambiguous and understandable at the management and 53 technical levels.
What is Problem Decomposition• Sometimes called partitioning or problem elaboration• Once scope is defined … – It is decomposed into constituent functions – It is decomposed into user-visible data objects or – It is decomposed into a set of problem classes• Decomposition process continues until all functions or problem classes have been defined 54
The Project get into troublewhen …• Software people don’t understand their customer’s needs.• The product scope is poorly defined.• Changes are managed poorly.• The chosen technology changes.• Business needs change [or are ill-defined].• Deadlines are unrealistic.• Users are resistant.• Sponsorship is lost [or was never properly obtained].• The project team lacks people with appropriate skills.• Managers [and practitioners] avoid best practices and 56 lessons learned.
THE W5HH PRINCIPLE: A way ofanalysisIt includes a series of questions that lead to a definition of key project characteristics and the resultant project plan:• Why is the system being developed?• What will be done?• When will it be accomplished?• Who is responsible?• Where are they organizationally located?• How will the job be done technically and managerially?• How much of each resource (e.g., people, software, 58 tools, database) will be needed?
Why SPM is different... • The product is intangible. • The product is uniquely flexible. • Software engineering is not recognized as an engineering discipline with the sound status as mechanical, electrical engineering, etc. • The software development process is not standardised. • Many software projects are ‘never-to -be- repeated projects
Types of project planPlan DescriptionQuality plan Describes the quality procedures and standards that will be used in a project.Validation plan Describes the approach, resources and schedule used for system validation.Configuration Describes the configuration managementmanagement plan procedures and structures to be used.Maintenance plan Predicts the maintenance requirements of the system, maintenance costs and effort required.Staff development plan. Describes how the skills and experience of the project team members will be developed.
Project plan structure• Introduction• Project organisation• Risk analysis• Hardware and software resource requirements• Work breakdown• Project schedule• Monitoring and reporting mechanisms
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
Milestones in the SE process ACTIVITIESFeasibility Requir ements Prototype Design Requir ements study analysis development study specificationFeasibility Requir ements Evaluation Architectural Requir ements report definition report design specification MILESTONES
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
The project scheduling process Identify Identify activity Estimate resources Allocate people Create project activities dependencies for activities to activities charts Software Activity chartsrequirements and bar charts
Scheduling problems; why itoccurs.• Estimating the difficulty of problems and hence the cost of developing a solution is hard• Productivity is not proportional to the number of people working on a task• Adding people to a late project makes it later because of communication overheads• The unexpected always happens. Always allow contingency in planning
Bar charts and activity networks• Graphical notations used to illustrate the project schedule• Show project breakdown into tasks. – Tasks should not be too small. – They should take about a week or two• Activity charts show task dependencies and the critical path• Bar charts show schedule against calendar time
Activity network 14/7/99 15 days 15 days M1 T3 8 days T9 T1 5 days 4/8/99 25/8/99 25/7/99 T6 M4 M6 4/7/99 M3 start 20 days 7 days 15 days T7 T11 T2 25/7/99 10 days 11/8/99 5/9/99 10 days M2 M7 M8 T4 T5 15 days T10 10 days 18/7/99 T12 M5 25 days T8 Finish 19/9/99
Risk managementRisk 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 Risk type Description Staff turnover Project Experienced staff will leave the project before it is finished. Management change Project There will be a change of organisational management with different priorities. Hardware unavailability Project Hardware which is essential for the project will not be delivered on schedule. Requirements change Project and There will be a larger number of product changes to the requirements than anticipated. Specification delays Project and Specifications of essential interfaces product are not available on schedule Size underestimate Project and The size of the system has been product underestimated. CASE tool under- Product CASE tools which support the performance project do not perform as anticipated Technology change Business The underlying technology on which the system is built is superseded by new technology. Product competition Business A competitive product is marketed before the system is completed.
The Risk Management Process• Risk identification – Identify project, product and business risks• 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
The risk management process Risk Risk analysis Risk planning Risk identification monitoringList of potential Risk avoidance Risk Prioritised risk and contingency risks list assessment plans
Risks and risk typesRisk type Possible risksTechnology The database used in the system cannot process as many transactions per second as expected. Software components which should be reused contain defects which limit their functionality.People It is impossible to recruit staff with the skills required. Key staff are ill and unavailable at critical times. Required training for staff is not available.Organisational The organisation is restructured so that different management are responsible for the project. Organisational financial problems force reductions in the project budget.Tools The code generated by CASE tools is inefficient. CASE tools cannot be integrated.Requirements Changes to requirements which require major design rework are proposed. Customers fail to understand the impact of requirements changes.Estimation The time required to develop the software is underestimated. The rate of defect repair is underestimated. The size of the software is underestimated.
Risk analysis• Assess probability and seriousness of each risk• Probability may be – very low – low – moderate – high or very high• Risk effects might be – catastrophic – serious – Tolerable – insignificant
Risk analysis Risk Probability Effects Organisational financial problems force reductions Low Catastrophic in the project budget. It is impossible to recruit staff with the skills High Catastrophic required for the project. Key staff are ill at critical times in the project. Moderate Serious Software components which should be reused Moderate Serious contain defects which limit their functionality. Changes to requirements which require major Moderate Serious design rework are proposed. The organisation is restructured so that different High Serious management are responsible for the project. The database used in the system cannot process as Moderate Serious many transactions per second as expected. The time required to develop the software is High Serious underestimated. CASE tools cannot be integrated. High Tolerable Customers fail to understand the impact of Moderate Tolerable requirements changes. Required training for staff is not available. Moderate Tolerable The rate of defect repair is underestimated. Moderate Tolerable The size of the software is underestimated. High Tolerable The code generated by CASE tools is inefficient. Moderate Insignificant
Risk planningConsider each risk and develop a strategy to manage that riskAvoidance strategies The probability that the risk will arise is reducedMinimisation strategies The impact of the risk on the project or product will be reducedContingency plans If the risk arises, contingency plans are plans to deal with that risk
Risk management strategies Risk Strategy Organisational Prepare a briefing document for senior management showing financial problems how the project is making a very important contribution to the goals of the business. Recruitment Alert customer of potential difficulties and the possibility of problems delays, investigate buying-in components. Staff illness Reorganise team so that there is more overlap of work and people therefore understand each other’s jobs. Defective Replace potentially defective components with bought-in components components of known reliability. Requirements Derive traceability information to assess requirements change changes impact, maximise information hiding in the design. Organisational Prepare a briefing document for senior management showing restructuring how the project is making a very important contribution to the goals of the business. Database Investigate the possibilit y of buying a higher-performance performance database. Underestimated Investigate buying in components, investigate use of a program development time generator.
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 factorsRisk type Potential indicatorsTechnology Late delivery of hardware or support software, many reported technology problemsPeople Poor staff morale, poor relationships amongst team member, job availabilityOrganisational organisational gossip, lack of action by senior managementTools reluctance by team members to use tools, complaints about CASE tools, demands for higher-powered workstationsRequirements many requirements change requests, customer complaintsEstimation 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