Extending the Embedded Software Process (ESP) to DSP applications

Slides:



Advertisements
Similar presentations
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Advertisements

The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during.
Generation of highly parallel code for TigerSHARC processors An introduction This presentation will probably involve audience discussion, which will create.
Software Process and Product Metrics
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Capability Maturity Model
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #14 Software Engineering.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #5 Software Engineering.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
N By: Md Rezaul Huda Reza n
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 8.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
By: Md Rezaul Huda Reza 5Ps for SE Process Project Product People Problem.
Disciplined Software Engineering Lecture #4 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #6 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Configuration Management (CM)
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
By Ritesh Reddy Nagaram.  Organizations which are developing software processes are facing many problems regarding the need for change of already existing.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Software Engineering Prof. Dr. Bertrand Meyer March–June 2007 Chair of Software Engineering Lecture 2: The Personal Software Process.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
SWEN 5130 Requirements Engineering 1 Dr Jim Helm SWEN 5130 Requirements Engineering Requirements Management Under the CMM.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #4 Software Engineering.
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming Both change and stability are fundamental to process.
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Fall 2005.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #2 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #2 Software Engineering.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
Ch-1 Introduction The processes used for executing a software project have major effect on quality of s/w produced and productivity achieved in project…
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
SOFTWARE PROCESS IMPROVEMENT
Introduction to the Personal Software Process. Overview Process Fundamentals PSP Concepts and Structure PSP Planning and Measurement PSP Quality Management.
Chapter 10: Software Size Estimation Omar Meqdadi SE 273 Lecture 10 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Spring 2006.
Capability Maturity Model. What is CMM? n CMM: Capability Maturity Model n Developed by the Software Engineering Institute of the Carnegie Mellon University.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
CS4311 Spring 2011 Process Improvement Dr
Information Technology Project Management – Fifth Edition
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Estimating with PROBE II
A possible solution: Personal Software Process (PSP)
واشوقاه إلى رمضان مرحباً رمضان
Microcoded CCU (Central Control Unit)
Overview of SHARC processor ADSP Program Flow and other stuff
This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during.
* M. R. Smith 07/16/96 This presentation will probably involve audience discussion, which will create action items. Use PowerPoint.
Software Engineering Lecture 16.
Software Engineering I
This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during.
* 2000/08/1307/16/96 This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these.
Capability Maturity Model
The role of Planning in the Software Development Process
This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during.
Mistakes, Errors and Defects
Capability Maturity Model
Presentation transcript:

Extending the Embedded Software Process (ESP) to DSP applications * 07/16/96 This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during your presentation In Slide Show, click on the right mouse button Select “Meeting Minder” Select the “Action Items” tab Type in action items as they come up Click OK to dismiss this box This will automatically create an Action Item slide at the end of your presentation with your points entered. Extending the Embedded Software Process (ESP) to DSP applications K. Nielsen and M. R. Smith, Electrical and Computer Engineering University of Calgary, Canada smithmr @ ucalgary.ca 2nd Quantitative Software Engineering Conference Banff, Canada, February 2002 *

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Overview of Talk Need for Humphrey’s Personal Software Process (PSP). Relationship between PSP and CMM. PROBE method of estimating effort needed to implement a design. Concept of Abowd’s Embedded Software Process (ESP) Testing of Abowd’s ESP process Problems of extending ESP into DSP environment 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Personal Software Process * 07/16/96 To introduce you to a process-based approach to developing software To show you how to measure and analyze your personal software process (PSP) To show you how to use process data to improve your personal performance To show you how to apply these methods to your other tasks KEY -- Ability to recognize and handle undue pressures 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca *

Review of Embedded Software Process Copyright smithmr@ucalgary.ca * PSP Principles - 1 07/16/96 The quality of a software system is governed by the quality of its worst components. The quality of a software component is governed by the individual who developed it. This is governed by your knowledge discipline commitment 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca *

Review of Embedded Software Process Copyright smithmr@ucalgary.ca PSP Principles - 2 * 07/16/96 As software professionals you should know your own performance. You should measure, track, and analyze your work. You should learn from your performance variations. You should incorporate these lessons in your personal practices. Use the information to avoid placing “unrealistic expectations” on customer or yourself. 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca *

Review of Embedded Software Process Copyright smithmr@ucalgary.ca The CMM and the PSP - 1 * 07/16/96 The capability maturity model (CMM) was developed by the SEI with the help of leading software groups to the most effective large-scale software practices. The PSP is a modification of the CMM to provides the framework for disciplined individual work. 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca *

Review of Embedded Software Process Copyright smithmr@ucalgary.ca * The CMM and the PSP - 2 07/16/96 Level 5: Process change management* Technology innovation* Defect prevention* 5 From Humphrey 4 Level 4 Quality management* Process measurement and analysis* 3 Level 3 Peer reviews* Intergroup coordination Software product engineering* Integrated software management* Training program Organization process definition* Organization process focus* 2 Level 2 Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight* Software project planning* Requirements management 1 Level 1 *PSP key practices 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca *

Review of Embedded Software Process Copyright smithmr@ucalgary.ca PSP Overview - 2 * 07/16/96 PSP3 Cyclic development From Humphrey PSP2.1 Design templates PSP2 Code reviews Design reviews PSP1.1 Task planning Schedule planning PSP1 Size estimating Test report PSP0.1 Coding standard Size measurement Process improvement proposal (PIP) PSP0 Current process Time recording Defect recording Defect type standard 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca *

Defect cost fixes decrease PSP Level 3 Ad-hoc -- PSP Level 0 Modified from Humphrey 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Productivity is not affected by PSP? PSP Level 3 Ad-hoc -- PSP Level 0 Modified from Humphrey 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

The Project Planning Framework * 07/16/96 Define Requirements Produce Conceptual Design Estimate Size Resources Schedule Develop Product Size, Resource Data Process Analysis Available Productivity Database Delivery Tracking Reports From Humphrey 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca *

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Object LOC Correlation With Development Hours LOC is a “useful” proxy for effort From Humphrey 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

The PROBE Estimating Method * 07/16/96 Start Conceptual Design From Humphrey Identify Objects Number of Methods Object Type Relative Size Reuse Categories Calculate Added and Modified LOC Estimate Program Size Calculate Prediction Interval Estimate 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca *

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Conceptual Design A conceptual design is needed to relate the requirements to the product to define the product elements that will produce the desired functions to estimate the size of what will be built For understood designs, conceptual designs can be done quickly. If you do not understand the design, you do not know enough to make an estimate. 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Identify the Objects - 1 Where possible, select application entities. Judge how many methods each object will likely contain. Determine the type of the object, i.e.: data, calculation, file, control, etc. Judge the relative size of each object: very small (VS), small (S), medium (M), large (L), very large (VL). NOTE THE NON-EXACTNESS. I feel from my past experience this will become a Large Math Module 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Identify the Objects - 2 From YOUR historical object data, determine the size in LOC/method of each object. This is what differs from “ad-hoc” approaches Multiply by the number of methods to get the estimated object LOC. When objects do not fit an existing type, they are frequently composites. Ensure they are sufficiently refined Refine those that are not elemental objects 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Estimate Program Size Total program size consists of newly developed code (adjusted with the regression parameters calculated from historical data on prior estimated newly developed (object) LOC and actual new and changed LOC) The completed estimate includes 70% and 90% prediction intervals -- based on the stability of your process Use your known productivity to estimate time. Then use your known schedule to estimate completion date This completion date allows “pressure avoidance” Date obtained without any coding being done 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Why Resource and Schedule Plans Are Needed Provides a business basis for doing the work establishes the price sets the schedule permits agreement on the work Establishes a management framework defines commitments helps groups coordinate their work allows status tracking 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

PSP becomes DSP with ESP PSP helps software engineers Estimate size and time of project early in the development Develop a higher quality project Embedded systems have software and also hardware PSP is not enough Need to estimate “early in development” whether the available hardware will support the new design or permit new features to be added RAM, ROM, cycle time Concept comes from Peter Abowd 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

PSP becomes DSP with ESP On-chip memory is a very big concern System (off-chip) memory can be a key cost issue. 10 bytes over the top of available memory means “complete new block” of memory or “project time to code crunch” and mostly available in large blocks only Being able to accurately estimate system memory needed would reduce project risks 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca The Embedded PSP Embedded PSP is an extension of PSP Use the PSP PROBE method to convert design concepts into YOUR project LOC. Uses LOC estimate to estimate ROM/RAM based on your OWN personal programming style Inaccurate estimates problematic Reduce ROM/RAM used Late program changes introduce defects 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Basis of Extension From Abowd 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Is there a good correlation Between LOC and ROM/RAM? ROM contains assembly code instructions Most code written in C # C LOC → Assembly LOC not consistent Results will be processor dependent However “C” was a “processor independent” assembly language RAM contains variables 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Industry Data Memory vs. LOC (P. Abowd) From Abowd ROM (Program) vs LOC RAM vs LOC 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Embedded PSP Application Example Abowd attempted to test the process as follows 2 embedded engineers each develop a bicycle monitor. Each write 6 programs Micro Startup Simple cyclic schedule Read wheel sensor and calculate speed Button matrix decode and event handling A to D braking control LCD output Use results of first 3 to plan final 3 programs 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Estimating ROM and RAM Results of PSP Planning Phase Base LOC (B), Deleted LOC (D), Modified LOC (M), and New and Changed LOC (N) Conversion to required ROM and RAM Deleted LOC frees utilized ROM & RAM New & Changed LOC consumes ROM & RAM Modified LOC has no effect (simplified) Not always true Total LOC = B + N – D – M Best estimate of required ROM = β01 + β11(B + N – D – M) Best estimate of required RAM = β02 + β12(B + N – D – M) β0 & β1 parameters are unique to ROM and RAM and individual -- found from individuals data base. 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Measures From Abowd Engineer A Engineer B ROM RAM 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca How Well Does It Work? From Abowd 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Issues not explained by P. Abowd Which processor was discussed? What happens to stack usage? Why does it work? The problems associated with “loops” and hence execution times were discussed by Abowd. He did provide a “personal process engine” for automating the process 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Does ESP scale to DSP applications? Consider 2106X processor Program requirements Need off-chip ROM to store program code on start up This ROM size can be estimated by ESP This ROM code is then transferred to on-chip RAM program memory -- therefore that can be estimated too! Halstead Volume correlates highly with LOC. Halstead volume relates to the number of operations in the “C” code -- does this correlate to the number of bytes needed for code? 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Does ESP scale to DSP applications? Consider 2106X processor Data requirements Abowd examined only “control” applications Very small amount of data Ram 20 - 100 bytes DSP algorithms uses large arrays for initial and final storage Need initial design information for this? Is there some sort of relationship between LOC and sizes of intermediate arrays needed? PSP uses Small, medium, large estimates for data, calculation, file, control, functions etc. Perhaps “array size” is another “function type” 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Does ESP scale to DSP applications? Peter Abowd intended to estimate # of Cycles as well Could not develop a useful model Branching conditions and loop counts are unpredictable from LOC counts However in DSP, the size of arrays handled is probably known ahead of time, therefore the loop size is known. Also algorithm is well known. 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

DOES ESP scale to DSP applications? What about parallel operations? Can estimates “maximum usage” of resources and therefore get a theoretical lower limit on code size? Lot of code is written directly in assembly Depends on company Different relationship between assembly LOC and effort? Probably not, as often stated that roughly the same amount of time for 1 line of code regardless of effort -- hence it is better to use the highest level of language possible. 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

What sort of test needed? We already have tools to measure LOC and Halstead Volumes Use of linker memory maps would provide rom and ram usage information. Most processor manufacturers provide example code, in both “C” and assembly Use that code to see if ROM/RAM v LOC relationship still exists But code written by many different people! Doug Joest has offered to try out something 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca Overview of Talk Need for Humphrey’s Personal Software Process (PSP). Relationship between PSP and CMM. PROBE method of estimating effort needed to implement a design. Concept of Abowd’s Embedded Software Process (ESP) Testing of Abowd’s ESP process Problems of extending ESP into DSP environment 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca

Review of Embedded Software Process Copyright smithmr@ucalgary.ca * Credits 07/16/96 Slides from Watts Humphrey’s Disciplined Software Engineering Software Engineering Institute, Carnegie Mellon University Research sponsored by the U.S. Department of Slides from P. Abowd, “Personal Process for Embedded Systems,” Presentation, Salt Lake City, 1998 Automotive electronic software engineer 10 years of experience at Ford Motor / Visteon DSP additions from Dr. Smith Presentation based on SENG689 project by Kraig Nielsen Paper presented at 2nd QSE conference in Banff, Feb, 2002. 12/9/2018 Review of Embedded Software Process Copyright smithmr@ucalgary.ca *