A3, Inc.<br />CPSC 547<br />Dr. Chen<br />Software Effort Measurement Using Abstraction Techniques<br />
Measurement Process<br />Plays a key role in an enterprise IT environment.<br />Begins with planning and involves<br />Sel...
Software projects have been failing due to poor project planning and time estimation. <br />Estimation process reduces the...
Improve estimation of building software, or the phases of various software cycles.<br />Abstract software requirement into...
Software requirements are documented clearly in software requirements specification document.<br />Abstraction represents ...
For the estimation and data collection, this project will use decomposed requirements or individual chunks of the informat...
As time goes on we will gain significant data to measure.  <br />The data could be represented in a table of abstraction c...
The technique described in this paper relies heavily on use cases since they consist of the strategic goals and scenarios ...
The first sub-phase of the analysis phase is determining user requirements.<br />Future users should be involved in the pr...
Two Phases<br />Project Planning Phase<br />Project Post Mortem Phase<br />Framework<br />
In the first step we analyze the use cases and software requirement specification in an attempt to retrieve an abstraction...
Project Planning Phase (Cont.)<br />
We first combine functional requirements (FR) with the quality attribute requirements (QAR) to understand the full scope r...
Compare with Existing Abstractions Catalog<br />Here we compare the AFSR with the existing AFSR catalog.  <br />If no cata...
Create New Catalog Entry if Required<br />If the AFSR does not exist in the catalog we need to create a new catalog entry ...
Analyze Existing Data for Abstraction Category Based on Historical Data<br />Here we analyze the existing data that we hav...
Project Planning Phase (Cont.)<br /><ul><li>Enter Estimate for Requirement into Database in Relation to Abstraction Category
Finally, using the historical data we have we can systematically come up with an estimate for the given AFSR.  We then rec...
Step 2: Analyze the delta between original time and actual time and finding the root cause.<br />At this stage we will det...
Re-factor Existing Abstraction Catalog if Required<br />Following are the step for re-factoring existing abstraction catal...
To help clarify this framework let us go through an example.  <br />For the sake of this example let&apos;s assume the pre...
Determine Functional and Quality Attribute Abstractions<br />1.    FR = Enter in address<br />2.    QAR = Secure transacti...
Hierarchy FSR<br />Project Planning Phase (Illustration)<br />
Analyze Existing Data for Abstraction Catalog Based on Historical Data<br />
Enter Estimate for Requirement into Database in Relation to Abstraction Category<br />
Analyze Original Estimate and Actual Effort<br />Here we need to analyze our data again.  More specifically we need to ana...
After recording our data we need to pay special attention to the delta time, which is the difference between the estimate ...
Here we determine if in fact there is a need to re-factor the existing catalog.  For example if the AFSR of Secure Data Ca...
Estimates and measurements are wishful thinking. <br />They are dependent on perfect scenarios with no distractions.<br />...
In this paper we proposed a framework for measuring software effort using abstraction techniques. <br />Certain guidelines...
Once the detailed requirements and use cases have been developed, and hopefully most of the unknowns have become known, it...
Upcoming SlideShare
Loading in …5
×

Software Effort Measurement Using Abstraction Techniques

800 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
800
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Software Effort Measurement Using Abstraction Techniques

  1. 1. A3, Inc.<br />CPSC 547<br />Dr. Chen<br />Software Effort Measurement Using Abstraction Techniques<br />
  2. 2. Measurement Process<br />Plays a key role in an enterprise IT environment.<br />Begins with planning and involves<br />Selecting and defining product process measurement<br />Integrating the resulting measurement activities into organization’s existing software process.<br />Identify issues during the software development. <br />Overview<br />
  3. 3. Software projects have been failing due to poor project planning and time estimation. <br />Estimation process reduces the risk around schedule and cost.<br />Estimation also helps the cost of delivering business functionality and provides a starting point for managing the schedule and cost of a project.<br />How would we solve the problem? (next slide…)<br />Introduction<br />
  4. 4. Improve estimation of building software, or the phases of various software cycles.<br />Abstract software requirement into different modules by using OOD techniques of abstract classes and interfaces.<br />Decompose requirements into manageable chunks.<br />These chunks are then abstracted and their abstractions are categorized. The abstraction categories are then estimated and recorded. <br />Over time there will be significant data representing the estimates of each abstraction category. <br />Collect the data to visualize the measurement process in order to investigate the cause and as result this project will improve overall productivity of an organization. <br />Introduction (Cont.)<br />
  5. 5. Software requirements are documented clearly in software requirements specification document.<br />Abstraction represents the essential characteristics of an object that differentiate the object from the all kind of various objects and thus provide crisp defined conceptual boundaries, relative to the perspective of the viewer. <br />Goal of this project is to abstract the software requirements into similar categories. And use object-oriented analysis techniques such as abstraction and estimate the time and cost by using measurement techniques.<br />Introduction (Cont.)<br />
  6. 6. For the estimation and data collection, this project will use decomposed requirements or individual chunks of the information. <br />For this purpose, these individual chunks will be recorded so that we can apply measurement technique. <br />For the measurement these chunks will be used as the data elements.  <br />This project will use various tools for understanding of the collected data. This is because as we collect data to <br />visualize the abstracted category or to investigate <br />Problem, and <br />improvement<br />This project would use tools such as <br />Control charts,<br />scatter diagrams,<br />cause-and-effect diagrams.<br />Introduction (Cont.)<br />
  7. 7. As time goes on we will gain significant data to measure. <br />The data could be represented in a table of abstraction categories and the estimate times for those categories. <br />Using this table we could create a scatter plot for example to analyze the data and find useful statistical information such as the mean and standard deviation.<br />Over time, we should be able to reduce the standard deviation and get more and more accurate estimates.<br />Introduction (Cont.)<br />
  8. 8. The technique described in this paper relies heavily on use cases since they consist of the strategic goals and scenarios that provide value to a business domain.<br />Use cases also provide insight into an application’s complexity.<br />A use case defines a goal-oriented set of interactions between external actors and the system under consideration. <br />Use case driven analysis helps manage complexity, since it focuses on one specific usage aspect at a time. <br />Use cases encourage designers to envision outcomes before attempting to specify outcomes, and thereby they help to make requirements more proactive in system development.<br />Use Cases<br />
  9. 9. The first sub-phase of the analysis phase is determining user requirements.<br />Future users should be involved in the process early on so that their views of the system are taken into consideration.<br />Using the SRS, this technique would carve out the abstractions into categories necessitating the framework itself. <br />SRS would provide feedback to the customer and decomposes the problem into component parts. <br />It serves as an input to the design specification as well as a product validation check. <br />Software Requirements Specification<br />
  10. 10. Two Phases<br />Project Planning Phase<br />Project Post Mortem Phase<br />Framework<br />
  11. 11. In the first step we analyze the use cases and software requirement specification in an attempt to retrieve an abstraction of both the functional requirements and the quality attributes. <br />Our goal is to parse out the generalization of the requirement without the fine details. <br />There is a series of steps that we can take to retrieve an abstraction of a requirement. <br />Project Planning Phase<br />
  12. 12. Project Planning Phase (Cont.)<br />
  13. 13. We first combine functional requirements (FR) with the quality attribute requirements (QAR) to understand the full scope requirement (FSR). FR+QAR = FSR<br />Then we reduce the fine details of a requirement. To do this we repeat the following steps:<br />Analyze each FSR to categorize it into a hierarchy. The hierarchy should represent a tree like structure with the most general concepts at the top and the most detailed concepts at the bottom.<br />Analyze a leaf at the bottom of the tree and determine if the essence of the FSR will remain stable if a leaf is removed. <br />If it doesn’t destabilize the essence of the FSR, then remove the node.<br />Repeat steps b and c until no more leafs can be removed without destabilizing the essence of the FSR. At the end we will have an abstraction of the full scope requirement (AFSR).<br />Project Planning Phase (Cont.)<br />
  14. 14. Compare with Existing Abstractions Catalog<br />Here we compare the AFSR with the existing AFSR catalog. <br />If no catalog exists this is where we would create one. <br />The catalog entry should contain the AFSR ID and its accompanying FSR for reference.<br />Project Planning Phase (Cont.)<br />
  15. 15. Create New Catalog Entry if Required<br />If the AFSR does not exist in the catalog we need to create a new catalog entry unique to this AFSR.  <br />Re-factor Existing Abstraction Catalog if Required<br />This is a critical step and one that has to be thought about thoroughly. <br />Once we have compared the AFSR with the catalog and have determine that we have found a match, we must determine if re-factoring of the existing catalog is required. <br />We do this by determining if the existing AFSR and FSR list are comparable in essence to the new AFSR that is about to be entered. <br />If not then we need decompose the AFSR into two (or more) more detailed AFSR’s that capture the essence of the requirement at a finer level of detail.<br />Project Planning Phase (Cont.)<br />
  16. 16. Analyze Existing Data for Abstraction Category Based on Historical Data<br />Here we analyze the existing data that we have accumulated over time for a particular AFSR. <br />This data is an accumulation of the estimated time vs. actual time it took to complete the FSR post project mortem. <br />The goal here is to get an understanding of how much data we have collected, and how far off we were in our estimations in the past. <br />We can also determine what the mean and standard deviation for the actual time spent for a particular AFSR. <br />Project Planning Phase (Cont.)<br />
  17. 17. Project Planning Phase (Cont.)<br /><ul><li>Enter Estimate for Requirement into Database in Relation to Abstraction Category
  18. 18. Finally, using the historical data we have we can systematically come up with an estimate for the given AFSR. We then record this data in relation to the AFSR ID for future analysis.</li></li></ul><li>Step 1: Generate a report <br />This report contains following data<br />a) The list of AFSR <br />b) How much original time was estimated for each AFSR?<br />c) How much actual time took for the corresponding AFSR?<br />d) Delta Time<br />Project Post Mortem Phase<br />
  19. 19. Step 2: Analyze the delta between original time and actual time and finding the root cause.<br />At this stage we will determine the root cause of delta&apos;s time for each AFSR items<br />For instance, AFSR_ID 0 delta time, we found out that development phase took longer than expected time. This is because, the developer who developed the AFSR 0 functionality was trying to use new technology because of new security requirement. Moreover this security requirement was added later in the development phase. As a result, it took longer.<br />Thus, by the end of this phase we will find the root cause of each delta. In addition, senior management would also obtain a clear picture of the project and determine whether the product was under budget and on time. <br />Project Post Mortem Phase (Cont.)<br />
  20. 20. Re-factor Existing Abstraction Catalog if Required<br />Following are the step for re-factoring existing abstraction catalog phase<br />Step 1: Collect the list of AFSR with delta.<br />Step 2: Identify the root cause of delta for AFSR from post project mortem phase<br />Step 3: Go through with the list of abstraction catalog (AFSR)<br />Step 4: Determine if the existing catalog entry has the same AFSR but different FSR. This can be determine during the root cause phase<br />Step 5: if same AFSR has different FSR Then re factor the existing AFSR<br />Thus by re-factoring activity, we can predict the output accurately and as a result organization productivity will be increased. <br />Project Post Mortem Phase (Cont.)<br />
  21. 21. To help clarify this framework let us go through an example. <br />For the sake of this example let&apos;s assume the prerequisites are in place and we have the appropriate use cases and software requirement specification. <br />Let&apos;s say that the product is a simple form of application that allows the user to securely enter in their address into the system to become a part of a mailing list. <br />Illustrations of Use<br />
  22. 22. Determine Functional and Quality Attribute Abstractions<br />1. FR = Enter in address<br />2. QAR = Secure transaction<br />FR + QAR = FSR<br />Project Planning Phase (Illustration)<br />
  23. 23. Hierarchy FSR<br />Project Planning Phase (Illustration)<br />
  24. 24. Analyze Existing Data for Abstraction Catalog Based on Historical Data<br />
  25. 25. Enter Estimate for Requirement into Database in Relation to Abstraction Category<br />
  26. 26. Analyze Original Estimate and Actual Effort<br />Here we need to analyze our data again. More specifically we need to analyze our original estimate and the actual result.<br />Post Project Mortem Phase (Illustration)<br />
  27. 27. After recording our data we need to pay special attention to the delta time, which is the difference between the estimate time and the actual time. For example if this number is more than 20% of the original estimate we need to analyze why there is this much of a difference. There might be problems with incomplete requirements, poor architectural design, or maybe a technical problem with a particular language or runtime. If however the problem is determine to be a poorly categorized AFSR then we need to determine how to re-establish the integrity of the catalog.<br />Post Project Mortem Phase (Illustration)<br />
  28. 28. Here we determine if in fact there is a need to re-factor the existing catalog. For example if the AFSR of Secure Data Capture is not sufficient for a scenario where much more data needs to be captured then we will need to re-factor the catalog like displayed in figure 3.6<br />Re-factor Existing Abstraction Catalog if Required<br />
  29. 29. Estimates and measurements are wishful thinking. <br />They are dependent on perfect scenarios with no distractions.<br />Unclear and incomplete requirements and use cases can throw the measurement off. <br />If a certain requirement was categorized under a different abstraction at the beginning of the project and not apparent until the end, it might be too late at that moment to fix budget over runs and/or adjust schedules. <br />The development schedule might be overly aggressive and result in insufficient resources. <br />If after the project completion, when actual project time lines were not recorded with the correct abstractions and elements in mind, that would never work towards building a comprehensive database of close to real estimations. <br />Possible Problems<br />
  30. 30. In this paper we proposed a framework for measuring software effort using abstraction techniques. <br />Certain guidelines have to be followed in order for this to be a success and accurate. <br />The measurement’s accuracy is related to its purpose at a particular point in time. <br />The effort measurement at a project’s feasibility stage needs only be accurate enough to support a decision to prepare a more detailed project timeline estimation. <br />Conclusion<br />
  31. 31. Once the detailed requirements and use cases have been developed, and hopefully most of the unknowns have become known, it’s time to jump into this framework for hopefully very accurate measurements based on abstract requirements.<br />Due to the inherent uncertainties in all projects, one might need to re-estimate as you learn more. <br />Whenever major unplanned events occur, one would need to understand how they impact the schedule and effort, and bake that into the final actual recording phase. <br />Conclusion (Cont.)<br />

×