Page 105 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 105

Unit 5: Software Project Planning



            Moreover, the work related to software development is typically multi-specialist in character, in   Notes
            the sense that it depends on dissimilar kinds of expert competencies being combined and aligned
            in different phases. Thus, software development may be described as a knowledge-intensive
            and  combined  practice  that  unfolds  over  time  by  way  of  complex  processes  of  exploration,
            negotiation, and decision-making. To monitor and control the software processes, planning is
            significant. The estimation of work effort is a core task in this regard as it is used for purposes
            such as budgeting, trade-off and risk analysis, project planning and control, and software
            improvement investments analysis.
            Software effort estimation, however, is a huge challenge, particularly as it is an area in which
            miscalculations can result in delays, low quality software, or the loss of contracts. A review of
            studies of software development projects shows that 70 to 80% of such projects overrun their
            estimates and spend on average 30 to 40% more effort than estimated. Today, as in the early
            days of computer programming, software projects whose plans and budgets are based on effort
            estimates that are too low experience severe management and delivery problems. Thus, more
            knowledge about the estimation practice of software professionals and the challenges faced in
            such work is important for project management.

            Most of estimation has been concerned with developing different kinds of formal estimation
            models.  However,  judgment-based  estimation  is  the  most  frequently  applied  estimation
            approach in the software industry today. The work a team of software professionals does when
            estimating the effort of a software project using a judgment-based approach. An effort estimate
            is here understood as the most likely number of work hours necessary to complete a software
            development project as assessed by the managers and developers responsible for delivery. In
            this approach, the quantification step (i.e., “the step where an understanding of the software
            development estimation problem is translated into a quantitative measure of the required effort”)
            is based on a judgmental process as opposed to an algorithmic calculation. How this judgmental
            process comes about and how it is collaboratively achieved has, however, proved difficult to
            reveal. The aims to contribute to filling this gap by examining the work conducted to arrive at
            an effort estimate as a social and communicative practice. To disclose the details of this Software
            Effort Estimation as Collective Accomplishment practice we focus on the  social interactions
            through which the estimation tasks are collectively explored, negotiated, and accomplished.
            A requirement specification describing the details of the project to be developed forms a point
            of departure for the estimation process.  Usually, this document  outlines what the software
            system should do in detail, including the services and functions the system should provide
            and the constraints under which the system must operate. Here the constitutive elements of
            the  interactional  process  as  the  team’s  way  of  approaching  the  information  provided  in  the
            requirement specification and the way of using this as a basis for collective exploration and
            negotiation. We commence, however, by positioning our analysis within related strands of
            research.

            5.3 COCOMO Model


            The model of COCOMO-I is also called COCOMO’81 is presented. The underlying software
            lifecycle is a waterfall lifecycle. Detailed information about the ratings as well as the cost drivers
            can be found in Boehm proposed three levels of the model: basic, intermediate, detailed.
               •  The basic COCOMO’81 model is a single-valued, static model that computes software
                 development effort (and cost) as a function of program size expressed in estimated thousand
                 delivered source instructions (KDSI).

               •  The intermediate COCOMO’81 model computes software development effort as a function
                 of program size and a set of fifteen “cost drivers” that include subjective assessments of
                 product, hardware, personnel, and project attributes.

                                             LOVELY PROFESSIONAL UNIVERSITY                                    99
   100   101   102   103   104   105   106   107   108   109   110