Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dynamic Analysis for Locating Product Features in Ada Code Laura J. White and Norman Wilde Department of Computer Science University of West Florida Pensacola,

Similar presentations


Presentation on theme: "Dynamic Analysis for Locating Product Features in Ada Code Laura J. White and Norman Wilde Department of Computer Science University of West Florida Pensacola,"— Presentation transcript:

1

2 Dynamic Analysis for Locating Product Features in Ada Code Laura J. White and Norman Wilde Department of Computer Science University of West Florida Pensacola, Florida

3 2 Pop Quiz 1. Estimate the total number of hours that you have invested, searching for code related to product features within large software systems. a. 0 0 b. 10 2 c. 10 30000 d. 10 32,000,000,000,000 2. Was it fun?

4 3 Software Reconnaissance facilitates searching for product features in software systems, and is especially valuable in understanding unfamiliar programs.

5 4 History Reconnaissance method tried and refined with SERC support. Series of case studies conducted. l Trials on our own code. l Experienced C programmers "thinking aloud". l Software Engineers finding features in code that they were familiar with. Telecordia Software Reconnaissance tools for C and C++.

6 5 Trial Results Software Reconnaissance usually finds very good starting points for code exploration. Attention is focused on a small part of the code. Code familiar to Software Engineers: "I didn't know it was doing that!"

7 6 Why? In telephone software, find all code fragments that are involved with the "call forwarding" feature.

8 7 The Method 1. Instrument a copy of the program. 2. Compile instrumented program. 3. Execute instrumented program with test cases that do and do not exhibit the feature. Traces will be produced. 4. Analyze the traces.

9 8 Locating Marker Components Components executed in test cases that do exhibit the feature. Set 1

10 9 Locating Marker Components Components executed in test cases that do exhibit the feature. Components executed in test cases that do not exhibit the feature. Set 2Set 1

11 10 Locating Marker Components Look here first Components executed in test cases that do exhibit the feature. Components executed in test cases that do not exhibit the feature. Code components for feature Set 2Set 1Set 1 minus Set 2

12 11 Recon2 Software Reconnaissance for C and C++ code is available for download at www.cs.uwf.edu/~recon/ Also available at this site: User's Manual FAQ WWW demo

13 12 Software Reconnaissance for Ada l Several SERC affiliates expressed an interest in applying Software Reconnaissance to Ada code, and especially to embedded systems. l The development of a Software Reconnaissance tool for Ada code is currently underway.

14 13 New Concerns Ada code has characteristics which make dynamic analysis interesting: 1. Impact of traces on embedded systems 2. Real-time constraints 3. Multi-tasking

15 14 Primary Circumstances 1. Development Environment 2. Target Environment 3. Remote Monitoring

16 15 Tracing Decisions 1. What events should be instrumented? 2. What information should be captured at each event? 3. How is trace monitoring performed?

17 16 Development The actual implementation of this tool has proceeded slowly as this software is the target used in the graduate software engineering project course, that emphasizes process and maintenance.

18 17 Current Architecture

19 18 Notations Instrumentation If (Recon_T_F( number = 1, string )); Traces 1 41T Marked Output >>>>> 100% T

20 19 Ada Performance Trials Impact of producing traces on software features. Reference point for selecting trace strategies. Hand-instrumented several small publicly available programs.

21 20 Ada Programs in Trials Program DescriptionSource ACESSALL.ADB Demonstrates access types [CORO] BTREE.ADB Binary tree demonstration [CORO] CHAR_LOO.ADB Loop printing characters [EMBR] FUNCRECR.ADB Recursive factorial calculation [CORO] GODYNSTR.ADB Dynamic string package [CORO] INPUT_TE.ADB Input of different data types [EMBR] LINKLIST.ADB Linked list of characters [CORO] MULTOUT.ADB File output [CORO] OPEROVER.ADB Operator overloading [CORO] RANDOM_T.ADB Test random number generator [EMBR]

22 21 Basic Block Events (% slowdown) BOOL CNT SEQTIME ProgramGLOB PKGGLOBPKGPKGPKG ACCESSALL.ADB39%38%37%37%37%36% BTREE.ADB27%31%28%32%34%31% CHAR_LOO.ADB13%23%22%20%24%23% FUNCRECR.ADB37%41%38%42%41%41% GODYNSTR.ADB16%22%21%21%32%31% INPUT_TE.ADB56%56%55%56%56%55% LINKLIST.ADB31%34%28%34%36%33% MULTOUT.ADB0%17%14%9%0%10% OPEROVER.ADB45%40%43%42%44%45% RANDOM_T.ADB25%28%23%27%28%28%

23 22 Subprogram Entry and Return Events (% slowdown) BOOL CNT SEQTIME ProgramGLOB PKGGLOBPKGPKGPKG ACCESSALL.ADB39%37%36%37%36%36% BTREE.ADB26%31%27%31%35%35% CHAR_LOO.ADB11%20%18%20%21%20% FUNCRECR.ADB33%41%38%41%42%40% GODYNSTR.ADB14%18%18%19%25%23% INPUT_TE.ADB55%55%55%56%57%56% LINKLIST.ADB27%31%27%31%31%32% MULTOUT.ADB0%14%13%18%15%21% OPEROVER.ADB44%40%42%44%44%44% RANDOM_T.ADB25%25%22%28%26%26%

24 23 Future Work Our future work will focus on: l Modifying the instrumentor to provide various types of instrumentation. l Moving the trace_manager_interface to a package that will be with'd by the user's main program unit. l Make use of the TraceGraph visualization tool.

25 24 TraceGraph

26 25 TraceGraph Cell

27 26 Recon3 Toolkit Instrumentor --- Available by request Trace Manager Interface/Trace Array Package --- Trial version Trace Manager --- Platform dependent TraceGraph --- Prototype available on the web

28 27 Acknowledgements Architecture: Gus Lorberg Andre Wacaster Performance Trials: Barry Coker Carlos Trani Survey of Industrial Instrumentation Practices: Dean Knudson

29 28 Contact Information Laura J. White University of West Florida 850-474-3017 lwhite@uwf.edu


Download ppt "Dynamic Analysis for Locating Product Features in Ada Code Laura J. White and Norman Wilde Department of Computer Science University of West Florida Pensacola,"

Similar presentations


Ads by Google