Saturday, April 18, 2020

Waterfall Models in Software Engineering free essay sample

Software metrics Measurement can be applied †¢ to the software process with the intent of improving †¢ to assist in estimation, quality control, productivity assessment, and project control †¢ to help assess the quality of technical work products and to assist in tactical decision making as a project proceeds ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 1 MEASURES , METRICS , AND INDICATORS measure provides a quantitative indication of the extent, amount, dimensions, capacity, or size of some attribute of a product or process. a metric as a quantitative measure of the degree to which a system, component, or process possesses a given attribute†. an indicator is a metric or combination of metrics that provide insight into the software process, a software project, or the product itself A software engineer collects measures and develops metrics so that indicators will be obtained . ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING METRICS IN THE PROCESS AND PROJECT DOMAINS Process indicators †¢ enable a software engineering organization to gain insight into the efficacy of an existing process ( i. We will write a custom essay sample on Waterfall Models in Software Engineering or any similar topic specifically for you Do Not WasteYour Time HIRE WRITER Only 13.90 / page e. , the paradigm, software engineering tasks , work products , and milestones ) . †¢ enable managers and practitioners to assess what works and what doesnt. Process metrics are collected across all projects and over long periods of time. Their intent is to provide indicators that lead to longterm software process improvement. †¢ ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 2 Project indicators enable a software project manager to †¢ assess the status of an ongoing project †¢ track potential risks †¢ uncover problem areas before they go critical †¢ adjust work flow or tasks †¢ evaluate the project teams ability to control quality of software engineering work products. ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Process Metrics and Software Process Improvement The only rational way to improve any process is †¢to measure specific attributes of the process †¢develop a set of meaningful metrics based on these attributes †¢use the metrics to provide indicators that will lead to a strategy for improvement ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 3 Product Customer Characteristics Business Conditions Process People Development Environment Technology oduct Determinants for software quality and organizational effectiveness. ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Determinants for software quality and organizational effectiveness †¢ process sits at the center of a triangle connecting three factors that have a profound influence on software quality and organizational performance †¢the skill and motivation of people has most influential factor in quality and performance †¢ the complexity of the product have impact on quality and team performance †¢ the technology (the software engineering methods) the process triangle exists within a circle of environmental conditions that include the development environment, business conditions, customer characteristics (e. . , ease of communication) ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 4 Outcomes We measure the efficacy of a software process indirectly based on the outcomes that can be derived from the process. Outcomes : –measures of errors uncovered before release of the software –efects delivered to and reported by end users –work products delivered –human effort expended –calendar time expended –schedule conformance ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING We derive process metrics by measuring the characteristics of specific software engineering tasks. measure the effort and time spent performing the umbrella activities –measure the generic software engineering activities ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 5 Private metric There are private and public uses for different types of process data : Data private to the individual –serve as an indicator for the individual only Examples of metrics private to the individual –defect rates (by individual) –defe ct rates (by module) –errors found during development ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Personal Software Process A structured set of process descriptions , measurements , and methods that can help engineers to improve their personal performance Some process metrics are private to the software project team but public to all team members –Defects reported for major software functions –Errors found during formal technical reviews –Lines of code or function points per module and function ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 6 Public metrics Public metrics assimilate information that originally was private to individuals and teams. Project-level defect – rates , – effort, – calendar times, – related data are collected and evaluated in an attempt to uncover indicators that can improve organizational process performance. ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Software metrics etiquette Software process metrics can be misused. Software metrics etiquette: –Use common sense and organizational sensitivity when interpreting metrics data. –Provide regular feedback to the individuals and teams who have worked to collect measures and metries. –Dont use metrics to appraise individuals. Work with practitioners and teams to set clear goals and metrics that will be used to achieve them –Never use metrics to threaten individuals or teams. –Metrics data that indicate a problem area should not be considered negative. These data are merely an indicator for process improvement. –Dont obsess on a single metric to the exclusion of other impo rtant metrics. ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 7 A simple defect distribution Hardware interface 8% Error checking 11% Data handling 11% User interface 12% Standards 7% Specifications 25% Causes of defects and their origin for four software projects Software interface 6% Logic 20% Origin of errors/defects specification/requirem ents desig n code ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING A fishbone diagram showing the causes of one class of defects Missing Ambiguous Specification defects wrong customer queried customer gave wrong info inadequate inquiries used outdated info Incorrect Changes ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 8 Project Metrics Used for strategic purposes by a project manager and a software team to adapt project work flow and technical activities . Project metrics on estimation effort and time duration estimates Production rates pages of documentation, –review hours, –function points, –delivered source lines ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING The intent of project metrics is twofold : –to minimize the development schedule, –to assess product quality on an ongoing basis and when necessary, modify the technical app roach to improve quality. Every project should measure: –inputs measures of the resources (e. g. , people, environment) required to do the work, –outputs measures of the deliverables or work products created during the software engineering process, –results measures that indicate the effectiveness of the deliverables ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 9 SOFTWARE MEASUREMENT Direct measures (e. g. , the length of a bolt) Indirect measures (e. g. , the quality ) Direct measures –lines of code (LOC) –execution speed –memory size –defects reported over some set period of time Indirect measures †¢functionality, quality, complexity, efficiency, reliability, †¢maintainability and many other abilities ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Size-Oriented Metrics Derived by normalizingquality and or productivity measures by considering the size of the software ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 10 Size Oriented Metrics a set of simple size -oriented metrics can be developed for each project: †¢errors per KLOC (thousand lines of code) †¢defects per KLOC †¢$ per LOC †¢pages of documentation per YLOC other interesting metrics: –errors/person-month –LOC per person-month –$/page of documentation ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Lines of Code (LOC) proponents claim †¢LOC can be easily counted, †¢many existing software estimation models use LOC or KLOC as a key input, †¢a large body of literature and data predicated on LOC already exists. pponents claim –LOC measures are programming language dependent, –they penalize well-designed but shorter programs, –they cannot easily accommodate nonprocedural languages, their use in estimation requires a level of detail that may be difficult to achieve (i. e. , the planner must est imate the LOC to be produced long before analysis and design have been completed). ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 11 Function-Oriented Metrics Use a measure of the functionality delivered by the application as a normalization value. Function-oriented metrics were first proposed by Albrecht. Function points measurement parameter number of user inputs number of user outputs number of user inquiries number of files number of externel interfaces count = total count ? ? ? ? ? Weighting Factor simple 3 4 3 7 5 average 4 5 4 10 7 complex 6 7 6 15 10 = = = = = Computing function point metrics. ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Number of user inputs. Each user input that provides distinct applicationoriented data to the software is counted. Inputs should be distinguished from inquiries, which are counted separately. Number of user outputs. Each user output that provides application-oriented information to the user is counted. In this context output refers to reports, screens, error messages, and so on. Individual data items within a report are not counted separately. Number of user inquiries. An inquiry is defined as an on-line input that results in the generation of some immediate software response in the form of an on-line output. Each distinct inquiry is counted. Number of files. Each logical master file (i. e. , a logical grouping of data that may be one part of a large database or a separate file), is counted. Number of external interfaces. All machine readable interfaces (e. g. , data files on tape or disk) that are used to transmit information to another system are counted. ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 12 COMPUTING FUNCTION POINTS Once the above data have been collected, a complexity value is associated with each count. For determining whether a particular entry, –simple, –average, –complex. To compute function points (FP), FP = count-total x [0. 65 + 0. 01 x ? Fi] The Fi ( i = 1 to 14) are complexity adjustment values ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING COMPUTING FUNCTION POINTS Rate each factor on a scale of 0 1 2 3 4 5 No influenc Incident Moderat Average Significant Essentia 1. Does the system require reliable backup and recovery? 2. Are data communications required? 3. Are there distributed processing functions? 4. Is performance critical? 5. Will the system run in an existing, heavily utilized operational environment? 6. Does the system require on-line data entry? 7. Does the on-line data entry require the input transaction to be built over multiple screens or operations? 8. Are the master files updated on-line? 9. Are the inputs, outputs, files, or inquiries complex? 10.. Is the internal processing complex? 1. Is the code designed to be reusable? 12. Are conversion and installation included in the design? 13. Is the system designed for multiple installations in different organizations? 14. Is the application designed to facilitate change and ease o f use by the user? ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 13 Function Point Once function points have been calculated, they are used in a manner analogous to LOC to normalize measures of software productivity, quality, and other attributes : †¢errors per FP †¢defects per FP †¢$ per FP †¢page of documentation per FP †¢FP per person-month ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING An Example of LOC-Based Estimation The CAD software will accept two- and three-dimensional geometric data from an engineer. The engineer will interact and control the CAD system through a user interface that will exhibit characteristics of good humanmachine interface design. All geometric data and other supporting information will be maintained in a CAD database. Design analysis modules will be developed to produce required output which will be displayed on a variety of graphics devices. The software will be designed to control and interact with peripheral devices that include a mouse, digitizer, and laser printer. –user interface and control facilities (UICF) –two-dimensional geometric analysis (2DGA) –three-dimensional geometric analysis (3DGA) –database management (DBM) –computer graphics display facilities (CGDF) –peripheral control (PC) –design analysis modules (DAM) ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 14 Function Estimated LOC 2,300 5,300 6,800 3,350 4,950 2,100 8,400 33,200 User interface and control facilities (UICF) Two-dimensional geometric analysis (2DGA) Three-dimensional geometric analysis (3DGA) Database management (DBM) Computer graphics display facilities (CGDF) Peripheral control (PC) Design analysis modules (DAM) Estimated lines of code ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Estimation table for LOC method. optimistic: 4600 most likely: 6900 pessimistic: 8600 AN EXAMPLE OF FP-BASED ESTIMATION Information Domain Value opt. likely pess. est. count weight FP-count Number of inputs Number of outputs Number of inquiries Number of files Number of external interfaces 0 12 16 4 2 24 15 22 4 2 30 22 28 5 3 24 16 22 4 2 4 5 4 10 7 96 80 88 40 14 318 Count-total ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 15 Estimating information domain values. Factor Backup and recovery Data communications Distributed processing Performance critical Existing operating environment On-line data entry Input transaction over multiple s creens Master files updated on-line Information domain values complex Internal processing complex Code designed for reuse Conversion/installation in design Multiple installations Application designed for change Complexity adjustment factor Value 4 2 0 4 3 4 5 3 5 5 4 3 5 5 1. 17 ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING The estimated number of FP is derived: FPestimated = count-total ? [0. 65 + 0. 01 ? ? Fi ] FPestimated = 372 †¢Historical data normalized using function points indicate that the organizational average productivity for systems of this type is 6. 5 FP/p m. †¢Burdened labor rate of $8000 per month, the cost per FP is approximately $1230. †¢Based on the LOC estimate and the historical productivity data, the total estimated project cost is $457,000 and the estimated effort is 58 personmonths. ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 16 Extended Function Point Metrics †¢The function point metric was originally designed to be applied to business information systems applications. †¢The data dimension was emphasized to the exclusion of the functional and behavioral (control) dimensions. †¢The function point measure was inadequate for many engineering and embedded systems †¢Feature points –a superset of the function point –applications in which algorithmic complexity is high. real-time –process control –embedded software applications ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING To compute the feature point †¢information domain values are again counted and weighted as described †¢ In addition, the feature point metric counts a new software characteristic, algorithms. †¢An algorithm is defined as a bounded computational problem that is included within a specific computer program ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 17 3D Function Point †¢ 3D function point integrates Data dimension of software with the functional and control dimensions. Data Dimension †¢ Counts of retained data (the internal program data structure, e. g. , files) †¢ External data (inputs, outputs, inquiries, and external references) Functional Dimension †¢ Measured by considering the number of internal operations required to transform input to output data ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Transformation †¢ †¢ A series of processing steps that are constrained by a set of semantic statements. A transformation is accomplished with an algorithm that results in a fundamental change to input data as it is processed to become output data. Acquire data from a file Simply place that data into program memory †¢ †¢ ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 18 The level of complexity assigned to each transformation is a function of : †¢ The number of processing steps †¢ The number of semantic statements that control the processing steps. Semantic Statements 1-5 Processing Steps 1-10 low low low 6-10 11+ 11-20 low average high 21+ verage high high Determining the complexity of a transformation for 3D function points ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Control Dimension †¢ †¢ Measured by counting the number of transitions between states A state represents some externally observable mode of behavior, and a transition occurs as a result of some event that causes the software or system to change its mode of behavior . For example, a cellular phone †¢ auto-dial state †¢ resting state †¢ dialing state ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING 19 To compute 3D function points index = I+ O +Q+F+ E+ T+ R where I, 0, Q, F, E, T, and R represent inputs, outputs, inquiries, internal data structures, external files, transformations, and transitions, respectively.. †¢ Each complexity weighted value is computed using the following relationship complexity weighted value = Nil Wil + Nia Wia + Nih Wih where Nil , Nia , and Nih represent the number of occurrences of element i (e. g. , outputs) for each level of complexity (low, average, high) Wil , Wia and Wih are the corresponding weights. ITU DEPARTMENT OF COMPUTER ENGINEERING SOFTWARE ENGINEERING Function Point †¢ The function point ,like the LOC, measure is controversial Proponents claim that †¢ FP is programming language independent, making it ideal for applications using conventional and nonprocedural languages †¢ It is based on data that are more likely to be known early in the evolution of a project Opponents claim that †¢ The method requires some sleight of hand in that computation s i based on subjective, rather than objective, data †¢ Counts of the information domain (and other dimensions) can be difficult to collect after-the fact †¢ FP has no direct physical meaning its just a number.