.

Monday, June 3, 2019

Effort Estimation Model

Effort Estimation ModelEffort Estimation Model for apiece Phase of Softw are tuition Life make passInformation TechnologyAbstractAssessment of main risks of parcel program development discloses that major threat of delays are ca white plagued by poor driveway / greet estimation of the run into. broken / poor cost estimation is the second highest priority risk 1.This risk evict affect four out of summate five human bodys of software development life cycle i.e. Analysis, Design, Coding and Testing. Hence targeting this risk alone may reduce the over all risk uphold of the project by fifty portion.Architectural constructing of the schema is great activity which consumes most of the duration in SDLC. Obviously apparent motion is plant to introduce the design of the system. It is evident that none of the existing estimation imitates try to calculate the driveway put on designing of the system. Although use case estimation lesson uses the use case points to gauge t he cost. But what is the cost of creating use cases? One reason of poor estimates produced by existing models female genitals be negligence of design confinement/cost. and so it shall be well estimated to prevent any cost overrun of the project.We nominate a model to estimate the effort in for each one of these phases rather than just avowing upon the cost estimation of the cryptanalytics phase only. It will also ease the monitoring of project status and comparison against planned cost and actual cost incurred so far at any point of time.Key Words Effort estimation, software development life cycle, Risk Mitigation, construe Planning.Section 1Back Ground and MotivationExisting estimation techniques such as Functions point estimation and use case estimation rely upon the artifacts generated in earlier phase. These artifacts (i.e. Use case diagrams, class diagrams, sequence diagrams, activity diagrams, state chart diagrams etc) soak up the architectural design of the entire sy stem. These diagrams are not generated out of a blue or are not instantly available without putting any effort.Standard assign set and the percentage of lam duration associated with it decomposes the ratio of effort put in each phase.Activity Standard Work Effort%Definition PhaseBusiness Requirements 6% serviceable Specifications 10%Delivery PhaseDetailed Design 14%Code and Unit Test 40%System Testing 20%User espousal Testing 10%Total Effort100% elude 1 Standard Task Set Work Duration %age 4It is evident in Table 1 that although major ratio (i.e. 40%) of work effort is put in code and unit test phase. The rest 60 percent effort is put in different areas of the project development life cycle. Hence this signifies the importance of estimating cost for these phases of software development life cycle.Usually the effort estimation is done after the analyses phase when the project reaches into coding stage. The cost / effort is cadencyd in terms of line of codes for each functionalit y to be unified into the software. accordingly it is very clear to understand that only 40 % (i.e. as shown in table 1) of the core software development effort is estimated. Whereas this estimation is slow down until all the analyses and design has completed. We postulate adapted a different approach and suggest that effort estimation shall be carried out for each phase of the development process.We propose this model to avoid the risk of low cost estimation as earliest as possible in the development process.Current software cost estimation methods first try to survive the size of the software to be built. Based upon this size the expected effort to be put is measured. Estimated effort advance is utilized to calculate the duration (i.e. Time unavoidable) and cost (monetary/human resources) of the project.Calculating the size of project is the foremost logical feeling to be interpreted in order to estimate the effort. If we do not know the distance to be travelled we can not estimate the cost and duration per mileage. Therefore we also first measure the size of the entire project.We know that there are mainly three categories of software projects i.e.Organic mode These are relatively small, simple SW projects (application programs e.g. Thermal psychoanalysis program)Embedded mode System programs which are developed within tight HW, SW and operational constraints (flight control SW for aircraft).Semi-detached mode An intermediate level (size and complexity, utility programs) SW projects with mixed experience, mixed requirements. It can be mixture of organic and embedded software as well.Therefore these categories of the software project would effect the estimation of each phase. We propose the modular approach to be adapted for the development efforts so that even large shield enterprise information systems can also be decomposed into a mix of several modules of organic, semi detached, and embedded system. Therefore the focus can be put in individual module accordingly.Following are the sections which individually discuss the methods to estimate the expected effort to be put in each phase of software development life cycle.Section 2 Measuring the size of each projectWe do not try to measure the size of the project as a whole rather focus on measuring the size of each phase i.e. Analyses, design, coding and testing phases. This can post us different milestones in the road map of project development.Our main objective is to suggest the estimation methods for analysis, design and testing phasing. We do not focus more on coding phase, as we would refer to the already done work for this phase. We estimate the size of each phase based on the artifacts and project products which are produced in that position phase. E.g. the analyses phase produces the detailed drug user requirements document (use cases etc), design phase produces the class diagram, database Model i.e. E-R diagram, Sequence diagrams, activity diagrams etc. based u pon these deliverables in each phase the time and effort to produce these are estimated.Figure 1 shows the step reinvigorated flow chart of entire project supply process. After the identification of project scope/objectives, characteristics and infrastructure, the identification of all the activities is done. This identification of activities at early on stage may provide the strong basis to estimate the size of each individual phase of software development process. As this involves the work break down structure to be defined and can chance upon the product / deliverable of each phase.Figure also shows that based on this identification of each activity the cost and risk are estimated for each activity. As this is part of project planning. Therefore we can obtain this information in the most earliest phase of project planning and do not shoot to wait for longer duration as reach to wait in existing cost estimation models to estimate the cost of construction of the software.Henc e early stage activity identification can help us to estimate the cost/effort for each phase i.e. analysis, design, coding and testing.Figure 1. Step wise Project Planning 3Moreover the responsibility of the analysis and design of the system goes to the systems analyst. Generally system is viewed in terms of a collection of sub systems hence each sub system analysis and design is the responsibility of any individual analyst. Hence the human resource need is very clear for analysis and design phase. But when team work is done in coding and testing phases thusly more stressed has to be put to estimate the required human resources.Bruegge defines the following work products to be generated in each phase of software development life cycle.Figure 2 Software Life Cycle Activities. 6Bruegge describes and decomposes the overall system model and design into three types of design models i.e.Analysis model heading Design modelBehavioral modelSection 3 Requirement Elicitation Analyses Phase size of it and Effort EstimationIn earlier phase of the development process the scope is defined. This may also provide an intuitive vision of project size to the experienced project managers.Unified Process for software development defines the work products in different phases. 2During the analyses phase we propose source points to be identified and estimated. Inception points refer to the points which must be analyzed about in context of the interest of each stakeholder. As use cases represent the points of some business operation or systems functionality, which needs to be distinctly understood and modeled therefore we call them inception points. We must know the accurate count of inception points and the effort ask to develop those points. Unified process for software development describes the following main work products in Inception phase.Definition of the problemIdentification of all stakeholdersIdentification of Functional / non functional requirementsValidation of req uirements2Therefore all the main inception points can be clearly identified. Inception point will mainly focus around the identification of the users / stakeholders (possible actors functionality needed) and requirements. The size can be estimated for this phase by estimating the requirements. This can pass on be utilized to estimate the cost to build the use cases for each requirement.We suggest that the elicitation of requirements may consume effort / cost relevant to the number of requirements and user present.No of Requirements No of UsersProject SizeLess than 25 1-10Small25 50 11-50Average 50 above 50 above wideTable 2 Project size based on no of requirements.Table 2 can signifies the need to enumerate each requirement, moreover each requirement will produce a use case and would also identify all its possible actors. Hence this can produce the effort needed to build those use cases which need to be documented in the software requirement specification document.Use cases can also be weighted to measure their complexity. So that the size can be determined and the time taken to create those use cases can be determined.No of Processing Points No of ActorsNo of Use caseTime taken to developNo of Person 1-3 1-21-23 Hours14-53-53-5 5 Hours15 +5 +5 +7 Hours1Table 3 Use Case Types We have categorized the use cases based upon the number of processing points. actors, and the extension use cases which emerge from that particular use case.We conducted a survey to get the opinion from experienced software engineers and project managers in different software houses. We had distributed the questionnaire which primarily contained the questions to ask about the time needed to develop different types of use case as described in the table 3. We have processed the survey data and have obtained the clean time for each category of the use case.Hence we can sum up the total number of inception points and can multiply them by the number of hours required for each type of use case. Summing up the time required in hours for each type of use case can then further give us the total number of hours required to build inception points.Section 4Design Phase Size and Effort EstimationObject design model and behavioral model are produced during the design phase. We can estimate the size of each model alone and can sum the effort to obtain the total design phase effort. We can identify the Design Points, therefore we can add the weight associated to each design point and hence can measure the size and effort of that particular design point. This gives the lower level granularity to perceive the effort and size of each possible system feature to be designed. Hence further gives us tighter grip on the project progress.Following can be the possible design pointsEntity classesBoundary classes envision classesSystem decompositionSystem integrationAggregation / composition of objectsGeneralization / specialization of objectsObject interactionInterfacesApplication logic 4.1Object Design Model Size and EffortThe main artifact of the Object model is class diagram.Class diagram is comprised of several entity, control and boundary classes. If Entity Relationship diagram has already been produced then the effort can be lessened as persistent object are already been identified. Further more each type of classes need to be designed very carefully as control classes depict all the processing and interaction responsibilities among the classes. Where as boundary classes are responsible for the interfacing with either new(prenominal) system components, users, or external system for electronic data interchange. We declare each class to be a design point. A class in the system primarily depicts a systems object which interacts with other objects in systems environment. Hence a class does not dangle into a void but have solid connections and interactions with other classes that must be very accurately and rightly designed. Therefore we can categorize the class based on the complexity of their design. A class would be difficult to design if it has many associations, aggregations, generalizations, functionalities, overloading, overriding etc.Table 4 depicts the parameters to judge the complexity ratio of any class to be designed therefore the effort would be relevant to the complexity ratio.Complexity symmetryNo of Associations No of InteractionsNo of MethodsNo of InterfacesTime Required(Hours) upsetNoneNone 1-51 22 mediumSingleSingle5-10 2 5 5HighMultiple Multiple10-205 108Table 4 class categories for design complexityOur conducted survey tells us that based upon the complexity ratio any class can take 2, 5, or 8 hours for designing. Remember that this time is for design of the class but coding can take extra effort in the coding phase. Therefore if we can obtain the total number of design points and multiply them with the hours required to get the total hours required for the entire class diagram.4.2Behavioral Model Size and EffortBeh avioral model comprises of different diagrams which depicts the state, interaction of different classes with each other and the sequence of activities performed in the system to grasp any objective or perform business function. These diagrams are sequence diagram and state transition diagrams mainly.We declare each of these diagrams to be the design point as it is very substantive to trace the possible states of the system so that a good design can be obtained. Whereas the sequence diagrams is the most sophisticated diagram that shows the complete step by step functionality and participating classes. But if the functionality of the existing system has been well understood then creation of sequence diagrams become easier. Our surveyed data reveals the facts that each of these diagrams can be different in complexity level i.e. low, medium, high. Parameters involved for determining the complexity level are summarized in table 5 below.Complexity RatioState Chart No of StatesNo of Tran sitions / EventsNo of Activity of StateNo of Actions associated with statesTime Required(Hours)1-51-51-51-535-105-75-75-7510-157-107-107-108Sequence platNO of Classes No of ActorsNo of Events No of Control, boundary Entity ObjectsTime Required(Hours)1-51-51-51-535-105-75-75-7510-157-107-107-108Table 5 Complexity parameters for behavioral model diagramsWe perceive each of such diagrams as design point and can sum up the total number of hours required for each to obtain the total size and effort estimate to develop behavioral model.4.3Data Model Size and EffortMainly an objective is set to achieve an Entity Relationship diagram to depict the over all database design for the entire software system. E-R diagram itself involves several steps to be carried out. The size of database model itself may relate to the type of software project. Embedded software may not be using any large data base but may work using a few(prenominal) files available in the read only memory. Whereas organic an d semi detached software projects may require the data to be accessed from large databases. Complexity further increases when database has to be distributed. For the time being we do not discuss about distributed databases and leave it for our future work. Therefore we aim to estimate the size of conventional database to be built.The following table 4 summarizes the parameters that would affect the size of the database.Complexity RatioNo of Entities No of RelationshipsNo of AggregationsNormalization DegreeQuery JoinsLow10-205-101-51-310-15Medium20-3510-205-10 1-315-25High35-50 20-4010-201-525-50Table 6 Complexity parameters and Ratio to develop E-R ModelThe larger the number of entities to be designed, larger the database size increases. It is time consuming task to identify the persistent objects (i.e. entities) in the system. Then to design its attribute set. Different types of attributes i.e. composite, derived and multi-valued attributes are difficult to design and to decide tha t which entity would be the best qualified place for any particular attribute.Based upon the complexity ratio we had conducted a survey to know that how much time and personnel department is required to build the E-R model. We have analyzed the data and got the average time and no of personnel required to develop E-R model.Complexity RatioDays RequiredPersonnel RequiredLow 7 101 2 Medium 10 251 3High 25 401 5Table 7 Required Effort for E-R modelWe have considered the flexibility range in the commencement of the activities as well, therefore have concluded the time and personnel requirement in to range of lower and upper limit.Section 5.Coding phase Size and Effort estimateMuch work has been done to focus at the code phase effort and size estimation. Mainly Constructive Cost Model and Use case Point method strive hard to achieve this objective. But still there is room for the refinement. But as our main objective was to talk about the other phases e

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.