Sunteți pe pagina 1din 13

Vinod H Bachelor of Computer Application Semester - 5 BC0054 Software Project Management & Quality Assurance

Fall 2012 Assignment Set 1 Roll No: 521110833 Center Code: 03011

BC0054 Software Project Management & Quality Assurance Set-1 1. Explain the difference between light-weighted matrix organization and heavy-weighted matrix organization. Organizational structure depends on the product to be developed. Wheelwright and Clark define a continuum of organizational structures between two extremes, functional organizations and project organizations. Functional organizations are organized according to technological disciplines. Senior functional managers are responsible for allocating resources. The responsibility for the total product is not allocated to a single person. Coordination occurs through rules and procedures, detailed specifications, shared traditions among engineers and meetings (ad hoc and structured). Products that need a high level of specialized knowledge require a functionally organized structure. A light-weighted matrix organization remains functional and the level of specialization is comparable to that found in the functional mode. What is different is the addition of product manager who coordinates the product creation activities through liaison representatives from each function. Their main tasks are to collect information, to solve conflicts and to facilitate achievement of overall project objectives. Their status and influence are less as compared to functional managers, because they have no direct access to working-level people. A heavy-weighted matrix organization exists of a matrix with dominant project structure and underlying the functional departments. The product manager has a broader responsibility. Manufacturing, marketing and concept development are included. The status and influence of the product manager, who is usually a senior, is the same or higher as compared to the functional manager. Compared to functional managers, they have no direct access to working-level people. 2. What is project management? Explain various activities involved in project management. Project Management is the discipline of organizing and managing resources in such a way that these resources deliver all the work required to complete a project within defined scope, time, and cost constraints. A project is a temporary and one-time endeavor undertaken to create a unique product or service that brings about beneficial change or added value. This property of being a temporary and a one-time undertaking contrast with processes, or operations, which are permanent or semi-permanent ongoing functional work to create the same product over and over again. The management of these two systems is often vary different and requires varying technical skills and philosophy, hence requiring the development of project management. The first challenge of project management is ensuring that a project is delivered within the defined constraints. The second, more ambitious, challenge is the optimized allocation and integration of the inputs needed to meet those pre-defined objectives. The project, therefore, is a carefully selected set of activities chosen to use resources (money, people, materials, energy, space, provisions, communication, quality, risk, etc.) to meet the pre-defined objectives. There are many software engineers, involved in the development of software product. Their work must be coordinated and managed. It is a traditional engineering practice to define a project manager, responsible for the total project management. Large projects may compose of several subprojects, and each of which may be subdivided into further sub projects, if necessary. Overall, the project manager has to ensure that the project is completed.

3 Definitions

BC0054 Software Project Management & Quality Assurance Set-1

Some of the professional bodies of software project management have defined the project management in the following way, PMBOK (Project Management Institute PMI) Project Management is the application of knowledge, skills, tools and techniques to project activities to meet the project requirements DN 69901 (Deutsches Institute for Normung German organization for standardization) Project Management is the complete set of tasks, techniques, tools applied during project execution. Project management is often summarized in a triangle. The three most important factors are time, cost and scope. These form the vertices with quality as a central theme.

a. b. c. d.

Projects must be delivered on time. Projects must be within cost. Projects must be within scope. Projects must meet customer quality requirements.

More recently, this has given way to a project management diamond, with time, cost, scope and quality the four vertices and customer expectations as a central theme. No two customers expectations are the same so you must ask what their expectations are. 3. Explain in detail about software project development stages. The waterfall model, documented in 1970 by Royce was the first publicly documented life cycle model. The model was developed to help cope with the increasing complexity of aerospace products. The waterfall model followed a documentation driven paradigm. The next revolutionary new look at the development lifecycle was the spiral model, presented by Boehm in 1985. The spiral model is focused on risk management. Life cycle models describe the interrelationships between software development phases. The common life cycle models are: Spiral model Waterfall model Throwaway prototyping model

4 Evolutionary prototyping model Incremental/iterative development Automated software synthesis

BC0054 Software Project Management & Quality Assurance Set-1

Because the life cycle steps are described in very general terms, the models are adaptable and their implementation details will vary among different organizations. The spiral model is the most general. Most life cycle models can in fact be derived as special instances of the spiral model. Organizations may mix and match different life cycle models to develop a model more tailored to their products and capabilities. A software life cycle model depicts the significant phases or activities of a software project from conception until the product is retired. It specifies the relationships between project phases, including transition criteria, feedback mechanisms, milestones, baselines, reviews, and deliverables. Typically, a life cycle model addresses the following phases of a software project: requirements phase, design phase, implementation, integration, testing, operations and maintenance. Much of the motivation behind utilizing a life cycle model is to provide structure to avoid the problems of the undisciplined hacker. Spiral Model The spiral model is the most generic of the models. Most life cycle models can be derived as special cases of the spiral model. The spiral uses a risk management approach to software development. Some advantages of the spiral model are: Defers elaboration of low risk software elements. Incorporates prototyping as a risk reduction strategy Gives an early focus to reusable software Accommodates life-cycle evolution, growth, and requirement changes Incorporates software quality objectives into the product Focus on early error detection and design flaws Sets completion criteria for each project activity to answer the question: How much is enough? Uses identical approaches for development and maintenance. Can be used for hardware-software system development

Waterfall Model This is the least flexible and most obsolete of the life cycle models. Well suited to projects that have low risk in the areas of user interface and performance requirements, but high risk in budget and schedule predictability and control. This waterfall model is the base model for all the other models. This model involves the following phases: Analysis or Requirements Design Implementation Testing or verification

5 Maintenance

BC0054 Software Project Management & Quality Assurance Set-1

The waterfall model is one time model. It is not evolutionary model.

To follow the waterfall model, one proceeds from one phase to the next in a purely sequential manner. For example, one first completes requirements specification they set in stone the requirements of the software. When the requirements are fully completed, one proceeds to design. The software in question is designed and a blueprint is drawn for implementers (coders) to follow this design should be a plan for implementing the requirements given. When the design is fully completed, an implementation of that design is made by coders. Towards the later stages of this implementation phase, disparate software components produced by different teams are integrated. After the implementation and integration phases are complete, the software product is tested and debugged; any faults introduced in earlier phases are removed here. Then the software product is installed, and later maintained to introduce new functionality and remove bugs. Thus the waterfall model maintains that one should move to a phase only when the preceding phase is completed and perfected. Phases of development in the waterfall model are thus discrete, and there is no jumping back and forth or overlap between them. Throwaway Prototyping Model This model is useful in proof of concept or situations where requirements and users needs are unclear or poorly specified. The approach is to construct a quick and dirty partial implementation of the system during or before the requirements phase. Evolutionary Prototyping Model

BC0054 Software Project Management & Quality Assurance Set-1 Used in projects that have low risk in such areas as losing budget, schedule predictability and control, large-system integration problems, or coping with information sclerosis, but high risk in user interface design. Incremental/iterative Development An incremental development is an evolutionary model. This approach consists of step wise development, in which parts of some stages are postponed in order to produce some useful set of functions earlier in the development of the project. Increments may be delivered to the customer as they are developed. The development begins with the analysis of an increment at the requirements level. Each increment is then separately designed, coded, tested, integrated and delivered. In other words, the waterfall model is still followed, but for each separate increment. When the incremental model is used the first increment is often core product i.e. Basic requirements are addressed, but many supplementary features remain undelivered. The core product is used by the customer. As a result of use or evaluation, a plan is developed for the next increment. The plan addresses the modification of the core product to better meet the needs of the customer. The incremental model is shown in the following diagram. The incremental model delivers software in small units, called increments. In general, each increment builds on those that have already been delivered.

Automated Software Synthesis

BC0054 Software Project Management & Quality Assurance Set-1 This process relies on tools to transform requirements into operational code. Formal requirements are created and maintained using specification tools this is an active research area, and practical tools for this approach are yet to be developed. 4. Explain different project planning methods. Project planning is part of project management, which relates to the use of schedules such as Gantt charts to plan and subsequently report progress within the project environment. Initially, the project scope is defined and the appropriate methods for completing the project are determined. Following this step, the durations for the various tasks necessary to complete the work are listed and grouped into a work breakdown structure. The logical dependencies between tasks are defined using an activity network diagram that enables identification of the critical path. Float or slack time in the schedule can be calculated using project management software. Then the necessary resources can be estimated and costs for each activity can be allocated to each resource, giving the total project cost. At this stage, the project plan may be optimized to achieve the appropriate balance between resource usage and project duration to comply with the project objectives. Once established and agreed, the plan becomes what is known as the baseline. Progress will be measured against the baseline throughout the life of the project. Analyzing progress compared to the baseline is known as earned value management. Project planning is the key to completing a project successfully. Creating a project plan is the first thing you need to do when undertaking any kind of project. Many clients initially view the development of a project plan as a waste of time. They feel that they know what needs to be done and they shou7ld just do it. However, they soon come to realize that a good (even a mediocre) project plan can save considerable time, money and headaches. The purpose of planning a project is to identify the sequence of activities as per their complexities and dependencies. At the later stage, these plans help us to find any deviations from the actual plan, so that the corrective action may be taken. The sooner the deviations from the plan are detected, the more it is possible to cope up with them. There are several methods available for planning. The popular ones are: PERT Chart: (Program Evaluation and Review Technique) is basically a method to analyze the tasks involved in completing a given project, especially the time needed to complete each task, and identifying the minimum time needed to complete the total project. A PERT chart is represented with boxes and arrows. Each box represents an activity (ex. Design is an activity, Testing is an activity). The arrows are used to show the dependency of activities on one another. The activity at the head of the arrow cannot start until the activity at the tail of the arrow is finished. For developing his PERT chart, one must first list all the activities required for the completion of the project and estimate how long each will take, and then one must determine the dependencies of activities on one another. Salient Features of PERT Chart: It forces and helps the manager to plan. It shows the interrelationship among the tasks in the project.

BC0054 Software Project Management & Quality Assurance Set-1 It exposes the critical path and allows us the opportunity to consider the alternative approaches to cope with a potential problem. It allows scheduling and simulation of alternative schedules.

Example:

Gantt chart: Gantt chart is project planning technique used for several purposes, including scheduling, Budgeting, Resource planning. It was initially developed by Henry L Gantt. A Gantt chart represents the following: Graphical representation of a schedule Clear and easy communication Resource allocation Tracking of the schedule Providing a history of the project

A Gantt chart helps in scheduling the activities of a project, but it does not help in identifying them. Gantt charts are also used to allocate resources and plan staffing. Gantt charts do not highlight intertask dependencies, which is a subject matter of PERT charts. PERT chart is better for monitoring the timely progress of activities, While Gantt chart helps in planning utilization of resources. 5. What is cost estimation? Explain different cost Estimation methods. Software project management begins with a set of activities that are collectively called project planning. Before the project can begin, the manager and the software team must estimate the work to be done, the resources that will be required, and the time that will elapse from start to finish. Whenever estimates are made, we look into the future and accept some degree of uncertainty as a matter of course. To quote Frederick Brooks [BRO75] although estimating is as much art as it is science, this important activity need not be conducted in a haphazard manner. Useful techniques for time and effort estimation

BC0054 Software Project Management & Quality Assurance Set-1 do exist. Process and project metrics can provide historical perspective and powerful input for the generation of quantitative estimates. Past experience (of all people involved) can aid immeasurably as estimates are developed and reviewed. Because estimation lays a foundation for all other project planning activities and project planning provides the road map for successful software engineering, we would be ill-advised to embark without it. Steps for Estimation Step 1: Establish Objectives Key the estimating objectives to the needs for decision making information. Balance the estimating accuracy objectives for the various system components of the cost estimates. Re-examine estimating objectives as the process proceeds, and modify them where appropriate.

Step 2: Plans for required Data and Resources If we consider the software cost-estimation activity as a mini project, then we automatically cover this problem by generating a project plan at an early stage. The mini plan includes an early set of notes on the why, what, when, who, where, how, how much, and whereas of your estimating activity. Step 3: Pin Down Software Requirements It is important to have a set of software specifications that are as unambiguous as possible (subject to qualifications with respect to our estimating objectives). The best way to determine to what extent a software specification is cost table is to determine to what extent it is testable. A specification is testable to the extent that one can define a clear pass/fail test for determining whether or not the developed software will satisfy the specification. In order to be testable, specifications must be specific, unambiguous, and quantitative wherever possible. Step 4: Work out as Much Detail as Feasible As feasible here means as is consistent with our cost-estimating objectives. In general, the more detail to which we carry out our estimating activities, the more accurate our estimates will be, for three main reasons: a) The more detail we explore, the better we understand the technical aspects of the software to be developed b) The more pieces of software we estimate, the more we get the law of large numbers working for us to reduce the variance of the estimate c) The more we think through all the functions the software must perform, the less likely we are to miss the costs of some of the more unobtrusive components of the software Step 5: Use Several Independent Techniques and Sources None of the alternative techniques for software cost estimation is better than the others from all aspects, their strengths and weaknesses are complementary. It is important to use a combination of techniques, in order to avoid the weakness of any single method and to capitalize on their joint strengths.

10 Step 6: Compare and Iterate Estimates

BC0054 Software Project Management & Quality Assurance Set-1

The most valuable aspect of using several independent cost-estimation techniques is the opportunity to investigate why they give different estimates. An iteration of the estimates after finding why they give different estimates may converge to a more realistic estimate. Step 7: Follow-up Once a software project is started, it is essential to gather data on its actual costs and progress and compare these to the estimates because of: Software estimating inputs are imperfect (sizing estimates, cost driver ratings). It is important to update the cost estimate with the new knowledge of the cost drivers by comparing the estimates to actual, providing a more realistic basis for some projects does not exactly fit the estimating model. Both nearterm project-management feedback and long-term model-improvement feedback of any estimatesversus-actual differences are important. Software projects tend to be volatile: components are added, split up, rescoped, or combined in unforeseeable ways as the project progresses. The project manager needs to identify these changes and generate a more realistic update of the estimated upcoming costs. Software is an evolving field. Estimating techniques are all calibrated on previous projects, which may not have featured the future projects environment. It is important to sense differences due to these trends and incorporate them into improved project estimates and improved estimating techniques continuing to manage the project. Software estimating techniques are imperfect. For long-range improvements, we need to compare estimates to actual and use the results to improve the estimating techniques. 6. What is budgeting? Write any three budgeting techniques.. Budgeting in a business sense is the planned allocation of available funds to each department within a company. Budgeting allows executives to control overspending in less productive areas and put more company assets into areas which generate significant income or good public relations. Budgeting is usually handled during meetings with accountants, financial experts and representatives from each department affected by the budgeting. Software budgeting is also the same. Capital Budgeting (or investment appraisal) is the planning process used to determine a firms long term investments such as new machinery, replacement machinery, new plants, new products, and research and development projects. (Ex: IT Projects) Many formal methods are used in capital budgeting, including the techniques such Net present value Profitability index Internal rate of return Modified internal Rate of return, and Equivalent annuity

These methods use the incremental cash flows from each potential investment, or project. Techniques based on accounting earnings and accounting rules are sometimes used through economists consider

11

BC0054 Software Project Management & Quality Assurance Set-1 this to be improper such as the accounting rate of return, and return on investment. Simplified and hybrid methods are used as well, such as payback period and discounted payback period. NVP (Net present value) is a standard method for the financial appraisal of long-term projects. Used for capital budgeting, and widely throughout economics, it measures the excess or shortfall of cash flows, in present value (PV) terms, once financing charges are met. By definition, NPV = Present value of net cash flows. For its expression, see the formula below. The net-present-value (NPV) method is a discounted-cash-flow approach to capital budgeting that computes to all expected future cash flows using a minimum desired rate of return. Formula: Each cash inflow/outflow is discounted back to its PV. Then they are summed. Therefore

Where t the time of the cash n the total time of the project r the discount rate

Ct the net cash flow (the amount of cash) at time t. Co the capital outlay at the beginning of the investment time (t=0)

In the above formula, Choosing an appropriate discount rate is crucial to the NPV calculation. A good practice of choosing the discount rate is to decide the rate which the capital needed for the project could return if invested in an alternative venture. If, for example, the capital required for Project A can earn five percent elsewhere, use this discount rate in the NPV calculation to allow a direct comparison to be made between Project A and the alternative. Reflecting to the real situation than that calculated from a constant discount rate for the entire investment duration.
For some professional investors, their investment funds are committed to target a specified rate of return. In such cases, that rate of return should be selected as the discount rate for the NPV calculation. In this way, a direct comparison can be made between the profitability of the project and the desired rate of return. The rate used to discount future cash flows to their present values is a key input of this process. Most firms have a well-defined policy regarding their capital structure. So the weighted average cost of capital (after tax) is appropriate for use with all projects. Alternately, higher discount rates can be used for more risky projects. Another method is to apply higher discount rates to cash flows occurring further along the time span, to reflect the yield curve premium for long-term debt. What NPV tells

12

BC0054 Software Project Management & Quality Assurance Set-1 With a particular project, if Ct is a positive value, the project is in the status of cash inflow in the time of t. If Ct is a negative value, the project is in the status of cash outflow in the time of t. appropriately risked projects with a positive NPV should be accepted. This does not necessarily mean that they should be undertaken since NPV at the cost of capital may not account for opportunity cost, i.e. comparison with other available investments. In financial theory, if there is a choice between two mutually exclusive alternatives, the one yielding the higher NPV should be selected. The following sums up the NPV's various situations. If... NPV > 0 It means... Then...

the investment would add the project should be accepted value to the firm the investment would subtract the project should be rejected value from the firm the investment would neither We should be indifferent in the decision whether to gain nor lose value for the firm accept or reject the project. This project adds no monetary value. Decision should be based on other criteria, e.g. strategic positioning or other factors not explicitly included in the calculation.

NPV < 0

NPV = 0

Example X Corporation must decide whether to introduce a new product line. The new product will have startup costs, operational costs, and incoming cash flows over six years. This project will have an immediate (t=0) cash outflow of $100,000 (which might include machinery, and employee training costs). Other cash outflows for years 1-6 are expected to be $5,000 per year. Cash inflows are expected to be $30,000 per year for years 1-6. All cash flows are after-tax, and there are no cash flows expected after year 6. The required rate of return is 10%. The present value (PV) can be calculated for each year: T=0 - $100,000 / 1.10^0 = -$100,000 PV. T=1 ($30,000 - $5,000)/ 1.10^1 = $22,727 PV. T=2 ($30,000 - $5,000)/ 1.10^2 = $20,661 PV. T=3 ($30,000 - $5,000)/ 1.10^3 = $18,783 PV. T=4 ($30,000 - $5,000)/ 1.10^4 = $17,075 PV. T=5 ($30,000 - $5,000)/ 1.10^5 = $15,523 PV. T=6 ($30,000 - $5,000)/ 1.10^6 = $14,112 PV. The sum of all these present values is the net present value, which equals $8,881. Since the NPV is greater than zero, the corporation should invest in the project. Applications of NPV

13 Using NPV to calculate share prices. Calculating Net Present Value.

BC0054 Software Project Management & Quality Assurance Set-1

In finance, rate of return (ROR) or return on investment (ROI), or sometimes just return, is the ratio of money gained or lost on an investment relative to the amount of money invested. The amount of money gained or lost may be referred to as interest, profit/loss, gain/loss, or net income/loss. The money invested may be referred to as the asset, capital, principal, or the cost basis of the investment. ROI is also known as rate of profit. Return can also refer to the monetary amount of gain or loss. ROI is the return on a past or current investment, or the estimated return on a future investment. ROI is usually given as a percent rather than decimal value. ROI stands for "return on investment," one of the great mysteries of online advertising, and indeed, advertising in general. ROI is trying to find out what the end of result of the expenditure (in this case, an ad campaign) is. A lot depends on the goal of the campaign, building brand awareness, increasing sales, etc. Early attempts at determining ROI in Internet advertising relied heavily on the click-rate of an ad. ROI does not indicate how long an investment is held. However, ROI is most often stated as an annual or annualized rate of return, and it is most often stated for a calendar or fiscal year. In this article, ROI indicates an annual or annualized rate of return, unless otherwise noted. ROI is used to compare returns on investments where the money gained or lost or the money invested are not easily compared using monetary values. For instance, a $1,000 investment that earns $50 in interest obviously generates more cash than a $100 investment that earns $20 in interest, but the $100 investment earns a higher return on investment. $50/$1,000 = 5% ROI $20/$100 = 20% ROI

Since rates of return are percentages, negative rates cannot be averaged with positive rates for purposes of calculating monetary returns. However, it is common practice in finance to estimate monetary returns by averaging periodic rates of return; these estimations are most useful when the averaged periodic returns are all positive, all negative, or have low variances.

S-ar putea să vă placă și