— Adding to the fact that estimating development efforts is hard, it's worth stating that more resources doesn't always help.
Estimation. 1.
Software Cost Estimation J. Huang Department of Computer Science University of Houston Houston, TX. On Precision It is the mark of an instructed mind to rest satisfied with the degree of precision which the nature of subject admits, and not to seek exactness when only an approximation of the truth is possible. Huang 2005 Estimation Slide 2 of 44. An Observation Estimation of resources, cost, and schedule for a software development effort requires experience, access to good historical information, and the courage to commit to quantitative measures when qualitative data are all that exist.©J. Huang 2005 Estimation Slide 3 of 44.
Another Observation Estimation for software project carries inherent risk because of uncertainty in project complexity, project size, and structure (of requirements and problem to be solved).©J. Huang 2005 Estimation Slide 4 of 44. Major FactorsMajor factors that influence software cost:. product size and complexity. programmer ability. available time. required reliability.
level of technology©J. Huang 2005 Estimation Slide 5 of 44. Three Approaches Estimation can be done by using. experience and historical data. decomposition techniques. empirical models©J. Huang 2005 Estimation Slide 6 of 44.
Decomposition Techniques To obtain an estimation, we can decompose the problem to be solved, or decompose the process.©J. Huang 2005 Estimation Slide 7 of 44. DecompositionDecomposition should be done in such a way that1. Size can be properly estimated,2. Cost or effort required for each component can be accurately estimated,3.
The teams ability to handle the components is well known, and4. The estimated values will be relatively unaffected by changes to the requirements.©J. Huang 2005 Estimation Slide 8 of 44. Problem-Based Estimation 1. Based on the software scope, decompose the software into problem functions that can be estimated individually.
Estimate LOC or FP of each function. Make optimistic (sopt), most likely (sm), and pessimistic (spess) estimates for each item. Then compute the expected value: EV = (sopt + 4 sm + spess)/6 4. Apply baseline productivity metrics to compute estimated cost or effort.©J. Huang 2005 Estimation Slide 9 of 44.
Process-Based Estimation1. Decompose the process into a set of tasks or activities.2.
Estimate the cost or effort required for each.©J. Huang 2005 Estimation Slide 10 of 44.
Empirical Estimation Models. An estimation model provides empirically derived formulas to predict effort as a function of LOC or FP. The data used to support these models are derived from a limited sample.
Mar 19, 2018 - Wilcom Embroidery studio e2 cracked. Wilcom e2 crack safenet hasp embroidery studio full setup textile satin emulator how to dongle. Wilcom embroidery studio e2 dongle crack. Wilcom Embroidery Studio E2 Dongle Crack Torrent Download Wilcom Embroidery Studio e2 + crack + instructions torrent. Wilcom embroidery studio e2 dongle crack Read more about wilcom, embroidery, download, dongle, software and qasam. Wilcom embroidery studio e2 dongle crack Read more about wilcom, embroidery, dongle, download, software and embroiderystudio. Wilcom Embroidery Studio E2 Dongle Crack Torrent. Penalty David Summary MEETING Solar. November 5, 2017 2:08 AM. Wilcom Embroidery Studio E2.
Thus no model is appropriate for all classes of software.©J. Huang 2005 Estimation Slide 11 of 44. Structure of Estimation Model E = A + BXC where A, B, and C are empirically derived constants, E is the effort in person months, and X is the estimation variable, either in LOC or FP.©J.
Huang 2005 Estimation Slide 12 of 44. LOC-based ModelWalston-Felix Model E = 5.2(KLOC)0.91Bailey-Basili Model E = 5.5+0.73(KLOC)1.16Boehm Model (simple) E = 3.2(KLOC)1.05Doty Model for KLOC 9 E = 5.288(KLOC)1.047 ©J.
Huang 2005 Estimation Slide 13 of 44. FP-based model Albrecht and Gaffney Model E = -13.39 + 0.0545(FP) Kemerer Model E = 60.62 + 7.728(FP)310-8 Matson, Barnett & Mellichamp Model E = 585.7 + 15.12(FP)©J. Huang 2005 Estimation Slide 14 of 44. COCOMOThe COnstructive COst MOdelIt is LOC-based.There are three models: basic, intermediate, and advanced.©J. Huang 2005 Estimation Slide 15 of 44. Three Classes of Software Project.
Organic - a relatively small simple project in which small teams with good application experience work to a set of less than rigid requirements. Semi-detached - an intermediate project in which teams with mixed experience must meet a mix of rigid and less than rigid requirements. Embedded - a project that must meet tight hardware, software, and operational constraints.©J. Huang 2005 Estimation Slide 16 of 44. The COCOMO (continued)The basic equations E = a(KLOC)b T = cEd where E is the effort required in person-months, T is the required development time in chronological months, KLOC is the estimated size of software in thousand lines of delivered source code.
The constants a, b, c, and d are listed below:©J. Huang 2005 Estimation Slide 17 of 44. The COCOMO Model (continued) type of project a b c dorganic 2.4 1.05 2.5 0.38semi-detached 3.0 1.12 2.5 0.35embedded 3.6 1.20 2.5 0.32 ©J.
Huang 2005 Estimation Slide 18 of 44. The COCOMO (continued) Effort equation for the intermediate model: E = a(KLOC)b(EAF) where EAF is the effort adjustment factor that ranges from 0.9 to 1.4, and constants a and b are©J. Huang 2005 Estimation Slide 19 of 44.
The COCOMO (continued) type of project a b organic 3.2 1.05 semi-detached 3.0 1.12 embedded 2.8 1.20©J. Huang 2005 Estimation Slide 20 of 44. The Software EquationE = ((LOC)B0.333/P)3(1/t4)where E = effort in person-months t = project duration in months B = special skill factor ranging from 0.16 to 0.39 P = productivity parameter (ref. Huang 2005 Estimation Slide 21 of 44.
The Software EquationE = ((LOC)B0.333/P)3(1/t4)where E= effort in person-months t= project duration in months B= special skill factor ranging from 0.16 to 0.39 P = productivity parameter that reflects. overall process maturity and management practices. the extent to which good SE practices are used. the level of programming language used. the state of software environment. the skill and experience of the software team. the complexity of the application©J.
Huang 2005 Estimation Slide 22 of 44. Major FactorsMajor factors that influence software cost:.
product size and complexity. programmer ability. available time. required reliability. level of technology©J.
Huang 2005 Estimation Slide 23 of 44. Product ComplexityThree categories of products: Application programs: those developed in the environment by a language compiler, such as C. Utility programs: those written to provide user processing environments and make sophisticated use of the operating system facilities.
System programs: those interact directly with hardware, and often involve concurrent processing with time constraints. Huang 2005 Estimation Slide 24 of 44. Required Effort Given KDSI, thousand lines of deliverable code, Required programmer-months: application programs: PM = 2.4 x (KDSI)1.05 utility programs: PM = 3.0 x (KDSI)1.12 system programs: PM = 3.6 x (KDSI)1.20©J. Huang 2005 Estimation Slide 25 of 44. Required Development TimeRequired development time: application programs: TDev = 2.5 x (PM)0.38 utility programs: TDev = 2.5 X (PM)0.35 system programs: TDev = 2.5 x (PM)0.32©J. Huang 2005 Estimation Slide 26 of 44. Unit cost vs.
Size (assuming $5,000/PM) 80 sy stem 70 Dollars per line of source code 60 50 40 utility 30 20 application 10 0 1 1 10 2 100 1000 3 10000 4 Sof tware size in 1,000 lines of code©J. Huang 2005 Estimation Slide 27 of 44. Required development time vs. Size 60 application 50 Required dev elopment time in months utility 40 sy stem 30 20 10 0 0 1 1 10 100 2 1000 3 10000 4 Sof tware size in 1,000 lines of source code©J. Huang 2005 Estimation Slide 28 of 44. Productivity vs.
Size Lines of code per prgrammer per day 0,03 30 0,02 20 application (11.8) utility 0,01 10 (5.8) sy stem (2.8) 0,000 0 0 1 1 10 100 2 1000 3 4 10000 Sof tware size in 1,000 lines of source code©J. Huang 2005 Estimation Slide 29 of 44. Major FactorsMajor factors that influence software cost:. product size and complexity.
programmer ability. available time.
required reliability. level of technology©J. Huang 2005 Estimation Slide 30 of 44.
How programmers spend their time. Writing programs 13% Reading programs and manuals 16% Job communications 32% Personal 13% Miscellaneous 15% Training 6% Mail 5% Based on Bell Lab Study conducted in 1964 on 70 programmers©J. Huang 2005 Estimation Slide 31 of 44. Programmer’s Ability Variations in programmers abilities worst/best ratioperformance measure program #1 program # 2 debugging hours 28:1 26:1 CPU time 8:1 11:1 coding hours 16:1 25:1 program size 6:1 5:1 run time 5:1 13:1©J. Huang 2005 Estimation Slide 32 of 44.
Programmer’s Ability (continued) By eliminating extreme performance in both directions, a variability of 5 to 1 in programmer productivity can be expected.©J. Huang 2005 Estimation Slide 33 of 44.
Available Time Software projects require more total effort if development time is compressed or expanded from the optimal time.©J. Huang 2005 Estimation Slide 34 of 44. Available Time (continued) According to Putnam, a schedule compression of 0.86 will increase required staff by a factor of 1.82.©J. Huang 2005 Estimation Slide 35 of 44. Available Time (continued) It is commonly agreed that there is a limit beyond which a software project cannot reduce its schedule by adding more personnel and equipment.
This limit occurs roughly at 75% of the normal schedule.©J. Huang 2005 Estimation Slide 36 of 44. COCOMO Effort MultipliersProduct attributes Required reliability 0.75 to 1.40 Data-base size 0.94 to 1.16 Product complexity 0.70 to 1.65©J. Huang 2005 Estimation Slide 37 of 44. COCOMO Effort Multipliers (continued)Computer attributes Execution time constraint 1.00 to 1.66 Main storage constraint 1.00 to 1.56 Virtual machine volatility 0.87 to 1.30 Computer turn-around time 0.87 to 1.15©J. Huang 2005 Estimation Slide 38 of 44. COCOMO Effort Multipliers (continued)Personnel attributes Analyst capability 1.46 to 0.71 Programmer capability 1.42 to 0.70 Applications experience 1.29 to 0.82 Virtual machine experience 1.21 to 0.90 Programming language experience 1.14 to 0.95©J.
Huang 2005 Estimation Slide 39 of 44. COCOMO Effort Multipliers (continued)Project attributes Use of modern programming practices 1.24 to 0.82 Use of software tools 1.24 to 0.83 Required development schedule 1.23 to 1.00©J.
Huang 2005 Estimation Slide 40 of 44. Staffing Level Estimation A software project typically starts with a small group of capable people to do planning and analysis, a larger, but still small group to do architectural design. The size of required personnel increases in each successive phase, peaks at the implementation and system testing phase, and decreases in the maintenance phase.©J. Huang 2005 Estimation Slide 41 of 44. Staffing-Level Estimation The personnel level of effort required throughout the life cycle of a software product can be approximated by the following equation, which describes a Rayleigh curve:©J.
Huang 2005 Estimation Slide 42 of 44. Staffing-Level Estimation (continued) (0.15Tdev+0.7t)2 0.15Tdev+0.7t - FSP = PM( )e 0.5(Tdev)2 0.25(Tdev)2where FSP is the no. Of full-time software personnel required at time t, PM is the estimated programmer-months for product development, excluding planning and analysis, and Tdev is the estimated development time.
Huang 2005 Estimation Slide 43 of 44. Staffing-Level Estimation (continued)FSP Rayleigh curve t ©J. Huang 2005 Estimation Slide 44 of 44. Skills most lacking in entry level programmers.
Express oneself clearly in English. Develop and validate software requirements and specifications. Work within applications area. Perform software maintenance. Perform economic analyses.
Work with project management techniques. Work in group©J. Huang 2005 Estimation Slide 45 of 44.
The National Programme on Technology Enhanced Learning (NPTEL) is a project funded by the Ministry of Human Resource Development (MHRD). It provides e-learning through online Web and Video courses in Engineering, Sciences, Technology, Management and Humanities.
Staffing level estimation It is necessary to determine the staffing requirement for the project. Putnam first studied the problem of what should be a proper staffing pattern for software projects. He extended the work of Norden In order to appreciate the staffing pattern of software projects, Norden’s and Putnam’s results must be understood. Norden’s Work Norden studied the staffing patterns of several R & D projects. He found that the staffing pattern can be approximated by the Rayleigh distribution curve Norden represented the Rayleigh curve by the following equation: E = K/t²d. t. e-t² / 2 t²d Staffing level estimation For more details here is the attachment.
Project planning is an organized and integrated management process, which focuses on activities required for successful completion of the project. It prevents obstacles that arise in the project such as changes in projects or organization's objectives, non-availability of resources, and so on. Project planning also helps in better utilization of resources and optimal usage of the allotted time for a project.
The other objectives of project planning are listed below. It defines the roles and responsibilities of the project management team members. It ensures that the project management team works according to the business objectives. It checks feasibility of the schedule and user requirements. It determines project constraints.
Several individuals help in planning the project. These include senior management and project management team. Senior management is responsible for employing team members and providing resources required for the project.
The project management team, which generally includes project managers and developers, is responsible for planning, determining, and tracking the activities of the project. Table lists the tasks performed by individuals involved in the software project.
Tasks of Individuals involved in Software Project Senior Management Project Management Team. Approves the project, employ personnel, and provides resources required for the project. Reviews project plan to ensure that it accomplishes the business objectives. Resolves conflicts among the team members. Considers risks that may affect the project so that appropriate measures can be taken to avoid them. Reviews the project plan and implements procedures for completing the project. Manages all project activities.
Prepares budget and resource allocation plans. Helps in resource distribution, project management, issue resolution, and so on. Understands project objectives and finds ways to accomplish the objectives. Devotes appropriate time and effort to achieve the expected results. Selects methods and tools for the project. Project planning should be effective so that the project begins with well-defined tasks. Effective project planning helps to minimize the additional costs incurred on the project while it is in progress.
For effective project planning, some principles are followed. These principles are listed below. Data-ad-client='ca-pub-747791' data-ad-slot=' data-ad-format='auto'. Planning is necessary: Planning should be done before a project begins. For effective planning, objectives and schedules should be clear and understandable.
Risk analysis: Before starting the project, senior management and the project management team should consider the risks that may affect the project. For example, the user may desire changes in requirements while the project is in progress. In such a case, the estimation of time and cost should be done according to those requirements (new requirements). Tracking of project plan: Once the project plan is prepared, it should be tracked and modified accordingly. Meet quality standards and produce quality deliverables: The project plan should identify processes by which the project management team can ensure quality in software. Based on the process selected for ensuring quality, the time and cost for the project is estimated. Description of flexibility to accommodate changes: The result of project planning is recorded in the form of a project plan, which should allow new changes to be accommodated when the project is in progress.
Project planning comprises project purpose, project scope, project planning process, and project plan. This is essential for effective project planning and to assist project management team in accomplishing user requirements. Project Purpose Software project is carried out to accomplish a specific purpose, which is classified into two categories, namely, project objectives and business objectives. The commonly followed project objectives are listed below. Meet user requirements: Develop the project according to the user requirements after understanding them. Meet schedule deadlines: Complete the project milestones as described in the project plan on time in order to complete the project according to the schedule. Be within budget: Manage the overall project cost so that the project is within the allocated budget.
Produce quality deliverables: Ensure that quality is considered for accuracy and overall performance of the project. Business Software Engineering Business objectives ensure that the organizational objectives and requirements are accomplished in the project. Generally, these objectives are related to business process improvements, customer satisfaction, and quality improvements. The commonly followed business objectives are listed below. Evaluate processes: Evaluate the business processes and make changes when and where required as the project progresses.
Renew policies and processes: Provide flexibility to renew the policies and processes of the organization in order to perform the tasks effectively. Keep the project on schedule: Reduce the downtime (period when no work is done) factors such as unavailability of resources during software development.
Improve software: Use suitable processes in order to develop software that meets organizational requirements and provides competitive advantage to the organization. Project Scope With the help of user requirements, the project management team determines the scope of the project before the project begins. This scope provides a detailed description of functions, features, constraints, and interfaces of the software that are to be considered. Functions describe the tasks that the software is expected to perform. Features describe the attributes required in the software as per the user requirements. Constraints describe the limitations imposed on software by hardware, memory, and so on. Interfaces describe the interaction of software components (like modules and functions) with each other.
Project scope also considers software performance, which in turn depends on its processing capability and response time required to produce the output. Once the project scope is determined, it is important to properly understand it in order to develop software according to the user requirements. After this, project cost and duration are estimated. Lf the project scope is not determined on time, the project may not be completed within the specified schedule. Project scope describes the following information. The elements included and excluded in the project.
The processes and entities. The functions and features required in software according to the user requirements. Note that the project management and senior management team should communicate with the users to understand their requirements and develop software according to those requirements and expected functionalities. Project Planning Process The project planning process involves a set of interrelated activities followed in an orderly manner to implement user requirements in software and includes the description of a series of project planning activities and individual(s) responsible for performing these activities. In addition, the project planning process comprises the following. Objectives and scope of the project.
Techniques used to perform project planning. Effort (in time) of individuals involved in project. Project schedule and milestones.
Resources required for the project. Risks associated with the project. Project planning process comprises several activities, which are essential for carrying out a project systematically.
These activities refer to the series of tasks performed over a period of time for developing the software. These activities include estimation of time, effort, and resources required and risks associated with the project. Project planning process consists of the following activities. Identification of project requirements: Before starting a project, it is essential to identify the project requirements as identification of project requirements helps in performing the activities in a systematic manner. These requirements comprise information such as project scope, data and functionality required in the software, and roles of the project management team members. Identification of cost estimates: Along with the estimation of effort and time, it is necessary to estimate the cost that is to be incurred on a project. The cost estimation includes the cost of hardware, network connections, and the cost required for the maintenance of hardware components.
In addition, cost is estimated for the individuals involved in the project. Identification of risks: Risks are unexpected events that have an adverse effect on the project. Software project involves several risks (like technical risks and business risks) that affect the project schedule and increase the cost of the project. Identifying risks before a project begins helps in understanding their probable extent of impact on the project.
Identification of critical success factors: For making a project successful, critical success factors are followed. These factors refer to the conditions that ensure greater chances of success of a project. Generally, these factors include support from management, appropriate budget, appropriate schedule, and skilled software engineers. Preparation of project charter: A project charter provides a brief description of the project scope, quality, time, cost, and resource constraints as described during project planning. It is prepared by the management for approval from the sponsor of the project. Preparation of project plan: A project plan provides information about the resources that are available for the project, individuals involved in the project, and the schedule according to which the project is to be carried out. Commencement of the project: Once the project planning is complete and resources are assigned to team members, the software project commences.
Once the project objectives and business objectives are determined, the project end date is fixed. The project management team prepares the project plan and schedule according to the end date of the project. After analyzing the project plan, the project manager communicates the project plan and end date to the senior management.
Define Staffing Level Estimation In Software Engineering
The progress of the project is reported to the management from time to time. Similarly, when the project is complete, senior management is informed about it.
In case of delay in completing the project, the project plan is re-analyzed and corrective actions are taken to complete the project. The project is tracked regularly and when the project plan is modified, the senior management is informed. Project Plan As stated earlier, a project plan stores the outcome of project planning. It provides information about the end date, milestones, activities, and deliverables of the project. In addition, it describes the responsibilities of the project management team and the resources required for the project.
It also includes the description of hardware and software (such as compilers and interfaces) and lists the methods and standards to be used. These methods and standards include algorithms, tools, review techniques, design language, programming language, and testing techniques. A project plan helps a project manager to understand, monitor, and control the development of software project. This plan is used as a means of communication between the users and project management team.
There are various advantages associated with a project plan, some of which are listed below. It ensures that software is developed according to the user requirements, objectives, and scope of the project. It identifies the role of each project management team member involved in the project.
It monitors the progress of the project according to the project plan. It determines the available resources and the activities to be performed during software development. It provides an overview to management about the costs of the software project, which are estimated during project planning.
Note that there are differences in the contents of two project plans depending on the kind of project and user requirements. Atypical project plan is divided into the following sections. Introduction: Describes the objectives of the project and provides information about the constraints that affect the software project. Project organization: Describes the responsibilities assigned to the project management team members for completing the project. Risk analysis: Describes the risks that can possibly arise during software development as well as explains how to assess and reduce the effect of risks.
Resource requirements: Specifies the hardware and software required to carry out the software project. Cost estimation is done according to these resource requirements. Workbreakdown: Describes the activities into which the project is divided. It also describes the milestones and deliverables of the project activities. Project schedule: Specifies the dependencies of activities on each other. Based on this, the time required by the project management team members to complete the project activities is estimated. In addition to these sections, there are several plans that may be a part of or 'linked to a project plan.
These plans include quality assurance plan, verification and validation plan, configuration management plan, maintenance plan, and staffing plan. Quality Assurance Plan The quality assurance plan describes the strategies and methods that are to be followed to accomplish the following objectives. Ensure that the project is managed, developed, and implemented in an organized way. Ensure that project deliverables are of acceptable quality before they are delivered to the user.
Verification and Validation Plan The verification and validation plan describes the approach, resources and schedule used for system validation. The verification and validation plan, which comprises the following sections. General information: Provides description of the purpose, scope, system overview, project references, acronyms and abbreviations, and points of contact. Purpose describes the procedure to verify and validate the components of the system. Scope provides information about the procedures to verify and validate as they relate to the project. System overview provides information about the organization responsible for the project and other information such as system name, system category, operational status of the system, and system environment. Project references provide the list of references used for the preparation of the verification and validation plan.
Acronyms and abbreviations provide a list of terms used in the document. Points of contact provide information to users when they require assistance from organization for problems such as troubleshooting and so on. Reviews and walkthroughs: Provides information about the schedule and procedures. Schedule describes the end date of milestones of the project. Procedures describe the tasks associated with reviews and walkthroughs. Each team member reviews the document for errors and consistency with the project requirements.
For walkthroughs, the project management team checks the project for correctness according to software requirements specification (SRS). System test plan and procedures: Provides information about the system test strategy, integration, and platform system integration. System test strategy provides an overview of the components required for integration of the database and ensures that the application runs on at least two specific platforms. Database integration procedure describes how database is connected to the Graphical User Interface (GUI).Platform system integration procedure is performed on different s to test the platform. Acceptance test and preparation for delivery: Provides information about procedure, acceptance criteria, and installation procedure. Procedure describes how acceptance testing is to be performed on the software to verify its usability as required. Acceptance criteria describes that software will be accepted only if all the components, features and functions are tested including the system integration testing.
In addition, acceptance criteria checks whether the software accomplishes user expectations such as its ability to operate on several platforms. Installation procedure describes the steps of how to install the software according to the operating system being used. Configuration Management Plan The configuration management plan defines the process, which is used for making changes to the project scope.
Generally, the configuration management plan is concerned with redefining the existing objectives of the project and deliverables (software products that are delivered to the user after completion of software development). Maintenance Plan The maintenance plan specifies the resources and processes required for making the software operational after its installation.
Sometimes, the project management team (or software development team) does not carry out the task of maintenance. In such a case, a separate team known as software maintenance team performs the task of software maintenance. The maintenance plan, which comprises the sections listed below. Introduction and background: Provides a description of software to be maintained and the services required for it. It also specifies the scope of maintenance activities that are to be performed. Budget: Specifies the budget required for carrying out software maintenance and operational activities.
Roles and responsibilities: Specifies the roles and responsibilities of the team members associated with the software maintenance and operation. It also describes the skills required to perform maintenance and operational activities. In addition to software maintenance team, software maintenance comprises user support, user training, and support staff.
Performance measures and reporting: Identifies the performance measures required for carrying out software maintenance. It also describes how measures required for enhancing the performance of services (for the software) are recorded and reported. Management approach: Identifies the methodologies that are required for establishing maintenance priorities of the projects. For this purpose, the management either refers to the existing methodologies or identifies new methodologies. Management approach also describes how users are involved in software maintenance and operations activities as well as how users and project management team communicate with each other.
Documentation strategies: Provides a description of the documentation that is prepared for user reference. Generally, documentation includes reports, information about problems occurring in software, error messages, and the system documentation. Training: Provides information about the training activities. Acceptance: Defines a point of agreement between the project management team and software maintenance team after the completion of implementation and transition activities. Once the agreement has been made, the software maintenance begins.
Staffing Plan The staffing plan describes the number of individuals required for a project. It includes selecting and assigning tasks to the project management team members. It provides information about appropriate skills required to perform the tasks to produce the project deliverables and manage the project. In addition, it provides information of resources such as tools, equipment, and processes used by the project management team. Staff planning is performed by a staff planner, who is responsible for determining the individuals available for the project. Other responsibilities of a staff planner are listed below.
The staff planner determines individuals, who can be from existing staff, staff on contract, or newly employed staff. It is important for the staff planner to know the structure of the organization to determine the availability of staff. The staff planner determines the skills required to execute the tasks mentioned in the project schedule and task plan. In case staff with required skills is not available, staff planner informs the project manager about the requirements. The staff planner ensures that the required staff with required skills is available at the right time.
For this purpose, the staff planner plans the availability of staff after the project schedule is fixed. For example, at the initial stage of a project, staff may consist of a project manager and a few software engineers whereas during software development, staff consists of software designers as well as the software developers.
The staff planner defines roles and responsibilities of the project management team members so that they can communicate and coordinate with each other according to the tasks assigned to them. Note that the project management team can be further broken down into sub-teams depending on the size and complexity of the project. The staffing plan comprises the following sections. General information: Provides information such as name of the project and project manager who is responsible for the project. In addition, it specifies the start and end dates of the project.
Skills assessment: Provides information, which is required for assessment of skills. This information includes the knowledge, skill, and ability of team members who are required to achieve the objectives of the project. In addition, it specifies the number of team members required for the project. Staffing profile: Describes the profile of the staff required for the project. The profile includes calendar time, individuals involved, and level of commitment. Calendar time specifies the period of time such as month or quarter for which individuals are required to complete the project.
Individuals who are involved in the project have specific designations such as project manager and the developer. Level of commitment is the utilization rate of individuals such as work performed on full-time and part-time basis. Organization chart: Describes the organization of project management team members.
In addition, it includes information such as name, designation, and role of each team member.
Software Cost Components 1. Effort costs (dominant factor in most projects) salaries Social and insurance & benefits 2. Tools costs: Hardware and software for development Depreciation on relatively small # of years 300 K US$ 3.
Travel and Training costs (for particular client) 4. Overheads(OH): Costs must take overheads into account costs of building, air-conditioning, heating, lighting costs of networking and communications (tel, fax, ) costs of shared facilities (e. G library, staff restaurant, etc. ) depreciation costs of assets Activity Based Costing (ABC) Software Engineering SW Cost Estimation Slide 8. Lines Of Code (LOC) l l Program length (LOC) can be used to predict program characteristics e. Person-month effort and ease of maintenance What's a line of code? The measure was first proposed when programs were typed on cards with one line per card How does this correspond to statements as in Java which can span several lines or where there can be several statements on one line?
L l What programs should be counted as part of the system? Assumes linear relationship between system size and volume of documentation Software Engineering SW Cost Estimation Slide 14. Object Points (for 4 GLs) l l l Object points are an alternative function-related measure to function points when 4 Gls or similar languages are used for development Object points are NOT the same as object classes The number of object points in a program is a weighted estimate of The number of separate screens that are displayed The number of reports that are produced by the system The number of 3 GL modules that must be developed to supplement the 4 GL code C: SoftwareEngCocomoSoftware Measurement Page, COCOMO II, object points. Htm Software Engineering SW Cost Estimation Slide 36. Estimation techniques l There is no simple way to make an accurate estimate of the effort required to develop a software system: Initial estimates may be based on inadequate information in a user requirements definition The software may run on unfamiliar computers or use new technology The people in the project may be unknown l Project cost estimates may be self-fulfilling The estimate defines the budget and the product is adjusted to meet the budget Software Engineering SW Cost Estimation Slide 45.
Algorithmic Cost Modelling l l Most of the work in the cost estimation field has focused on algorithmic cost modelling. Costs are analysed using mathematical formulas linking costs or inputs with METRICS to produce an estimated output.
The formula is based on the analysis of historical data. The accuracy of the model can be improved by calibrating the model to your specific development environment, (which basically involves adjusting the weighting parameters of the metrics). Software Engineering SW Cost Estimation Slide 58. COCOMO II l COCOMO II is a 3 -level model that allows increasingly detailed estimates to be prepared as development progresses Early prototyping level Estimates based on object points and a simple formula is used for effort estimation Early design level Estimates based on function points that are then translated to LOC Includes 7 cost drivers Post-architecture level Estimates based on lines of source code or function point Includes 17 cost drivers l Five scale factors replace COCOMO 81 ratings (organic, semi -detached, and embedded) Software Engineering SW Cost Estimation Slide 71.
Software Cost Estimation In Software Engineering
Early prototyping level - COCOMO II l Suitable for projects built using modern GUI-builder tools Based on Object Points l l Supports prototyping projects and projects where there is extensive reuse Based on standard estimates of developer productivity in object points/month Takes CASE tool use into account Formula is PM = ( NOP ´ (1 -%reuse/100 ) ) / PROD PM is the effort in person-months, NOP is the number of object points and PROD is the productivity Software Engineering SW Cost Estimation Slide 72. Early Design Level: 7 cost drivers - COCOMO II l l Estimates can be made after the requirements have been agreed Based on standard formula for algorithmic models Effort for Manually developed code PM = A ´ Size. B ´ M + PMm Effort for Manual adaptation of Automatically generated code M = PERS ´ RCPX ´ RUSE ´ PDIF ´ PREX ´ FCIL ´ SCED A = 2. 5 in initial calibration, Size: manually developed code in KLOC Exponent B.
varies from 1. 24 depending on novelty of the project, development flexibility, risk management approaches and the process maturity. B is calculated using a Scale Factor based on 5 exponent drivers PMm: represents manual adaptation for automatically generated code Software Engineering SW Cost Estimation Slide 73. The Exponent B Scale Factor(SF) - COCOMO II l l Exponent B for effort calculation B = 1. 01 x sum SF (i), i=1, 5 SF = Scale Factor l Each SF is rated on 6 -point scale (ranging from 0 to 5): very low (5), low ( 4), nominal (3), high (2), very high (1), extra high (0) l 5 Scale Factor (exponent drivers) Precedenteness Development flexibility Architecture/risk resolution Team cohesion Process maturity Ex: 20 KLOC ^ 1. 26 / 20 KLOC ^ 1. 11 Software Engineering SW Cost Estimation Slide 76.
Post-architecture stage - COCOMO II l l Uses same formula as early design estimates Estimate of size is adjusted to take into account Requirements volatility: Rework required to support change Extent of possible reuse: Reuse is non-linear and has associated costs so this is not a simple reduction in LOC ESLOC = ASLOC ´ (AA + SU +0. 3 IM)/100 ESLOC is equivalent number of lines of new code. ASLOC is the number of lines of reusable code which must be modified, DM is the percentage of design modified, CM is the percentage of the code that is modified, IM is the percentage of the original integration effort required for integrating the reused software.
SU is a factor based on the cost of software understanding, AA is a factor which reflects the initial assessment costs of deciding if software may be reused. Software Engineering SW Cost Estimation Slide 79. COCOMO II Post Architecture Effort Multipliers (17 multipliers) l Product attributes (5 multipliers) concerned with required characteristics of the software product being developed l Computer attributes (3 multipliers) constraints imposed on the software by the hardware platform l Personnel attributes (6 multipliers) multipliers that take the experience and capabilities of the people working on the project into account. L Project attributes (3 multipliers) concerned with the particular characteristics of the software development project Software Engineering SW Cost Estimation Slide 80. Project duration and staffing - COCOMO II l l As well as effort estimation, managers must estimate the calendar time required to complete a project and when staff will be required Calendar time can be estimated using a COCOMO II formula TDEV = 3 ´ (PM)(0.
Cost Estimation In Software Engineering Ppt
01)) PM is the effort computation and B is the exponent computed as discussed above (B is 1 for the early prototyping model). This computation predicts the nominal schedule for the project l The time required is independent of the number of people working on the project Software Engineering SW Cost Estimation Slide 88.
Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |