Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Agile Software Assessment — ICPC 2012

1,190 views

Published on

Keynote presentation a

Published in: Education, Technology
  • Be the first to comment

Agile Software Assessment — ICPC 2012

  1. 1. Agile Software Assessment Oscar Nierstrasz Software Composition Group scg.unibe.ch ICPC 2012
  2. 2. SCG Present and Past 2
  3. 3. Agile Software AssessmentMotivation Challenges Agility in Moose
  4. 4. The need for AgileSoftware Assessment
  5. 5. Legacy code is hard to understand 5
  6. 6. The architecture ... is not in the code 6
  7. 7. Developers spend more time reading than writing code 7
  8. 8. Specialized analysesrequire custom tools 8
  9. 9. Agility in Moose
  10. 10. Moose is a platform forsoftware and data analysis www.moosetechnology.org 10
  11. 11. Model repository Nierstrasz et al. The Storyof Moose. ESEC/FSE 2005 11
  12. 12. Model repository Navigation Metrics Querying Grouping Nierstrasz et al. The Storyof Moose. ESEC/FSE 2005 11
  13. 13. Model repository Navigation Metrics Querying Grouping Smalltalk Nierstrasz et al. The Storyof Moose. ESEC/FSE 2005 11
  14. 14. ConAn Van Hapax ... CodeCrawler Model repository Navigation Metrics Querying Grouping Smalltalk Nierstrasz et al. The Story of Moose. ESEC/FSE 2005 11
  15. 15. ConAn Van Hapax ... CodeCrawler Extensible meta model Model repository Navigation Metrics Querying Grouping Smalltalk Nierstrasz et al. The Story of Moose. ESEC/FSE 2005 11
  16. 16. ConAn Van Hapax ... CodeCrawlerSmalltalk Extensible meta model Java Model repositoryCOBOL Navigation C++ Metrics … Querying Grouping Smalltalk Nierstrasz et al. The Story of Moose. ESEC/FSE 2005 11
  17. 17. ConAn Van Hapax ... CodeCrawlerSmalltalk Extensible meta model Java Model repositoryCOBOL External CDIF Navigation Parser C++ Metrics … Querying Grouping XMI Smalltalk Nierstrasz et al. The Story of Moose. ESEC/FSE 2005 11
  18. 18. System complexity Lanza et al. Polymetric Views. TSE 2003 12
  19. 19. Clone evolution Balint et al. How Developers Copy. ICPC 2006 13
  20. 20. Class blueprintLanza et al. A Categorization of Classes based on the Visualization of their Internal Structure: the Class Blueprint. OOPSLA 2001 14
  21. 21. Topic correlation matrix Kuhn et al. Semantic Clustering: Identifying Topics in Source Code. IST 2007 15
  22. 22. Distribution map(topics spread over classes in packages) Ducasse, et al. Distribution Map. ICSM 2006 16
  23. 23. Hierarchy evolution view Gîrba et al. Modeling History to Analyze Software Evolution. JSME 2006 17
  24. 24. Ownership map Gîrba et al. How Developers Drive Software Evolution. IWPSE 2005 18
  25. 25. 19
  26. 26. Moose Demo Demo: finding deprecated classes that are still in use ...
  27. 27. Mondrian Demo Demo: visualizing name cohesion within packages Meyer et al. Mondrian: An Agile Visualization Framework. SoftVis 2006
  28. 28. Glamour Demo Demo: a package browser for name cohesion Bunge et al. Scripting Browsers with Glamour. ESUG 2009
  29. 29. Challenges for Agile Software AssessmentCustomization Context Continuous Assessment
  30. 30. Customization
  31. 31. ChallengeLoad the model in the morning, analyze it in the afternoon 25
  32. 32. Problems 26
  33. 33. Problems Unknown languages 26
  34. 34. Problems Unknown languages Unstructured text 26
  35. 35. Problems Unknown languages Heterogeneous projects Perin et al. Recovery and Analysis of Transaction Scope from Scattered Information Unstructured text in Java Enterprise Applications. ICSM 2010 26
  36. 36. Ideas 27
  37. 37. Ideas Source code parse 5 Nierstrasz et al. Example- specify examples import Parser Driven Reconstruction of 2 1 5 Software Models. CSMR 2007 4 generate ... := ... ... ... ... infer | ... ... ... ... | ... ... ... ... 3 ... := ... ... ... ... Example mappings | ... ... ... ... | ... ... ... ... ... := ... ... ... ... | ... ... ... ... | ... ... ... ... export 6 Grammar Exploit example Model m..n 1 mappings to generate fact extractors 27
  38. 38. Ideas Source code parse 5 Nierstrasz et al. Example- specify examples import Parser Driven Reconstruction of 2 1 5 Software Models. CSMR 2007 4 generate ... := ... ... ... ... infer | ... ... ... ... | ... ... ... ... 3 ... := ... ... ... ... Example mappings | ... ... ... ... | ... ... ... ... ... := ... ... ... ... | ... ... ... ... | ... ... ... ... export 6 Grammar Exploit example Model m..n 1 mappings to generate fact extractors Incrementally refine island grammars 27
  39. 39. Ideas Source code parse 5 Nierstrasz et al. Example- specify examples import Parser Driven Reconstruction of 2 1 5 Software Models. CSMR 2007 4 generate ... := ... ... ... ... infer | ... ... ... ... | ... ... ... ... 3 ... := ... ... ... ... Example mappings | ... ... ... ... | ... ... ... ... ... := ... ... ... ... | ... ... ... ... | ... ... ... ... export 6 Grammar Exploit example Model m..n 1 mappings to generate fact extractors Incrementally refine island grammars Exploit eg indentation as a proxy for structure 27
  40. 40. Ideas Source code parse 5 Nierstrasz et al. Example- specify examples import Parser Driven Reconstruction of 2 1 5 Software Models. CSMR 2007 4 generate ... := ... ... ... ... infer | ... ... ... ... | ... ... ... ... 3 ... := ... ... ... ... Example mappings | ... ... ... ... | ... ... ... ... ... := ... ... ... ... | ... ... ... ... | ... ... ... ... export 6 Grammar Exploit example Model m..n 1 mappings to generate fact extractors Exploit similarities between languages Incrementally (adapt and compose) refine island grammars Exploit eg indentation as a proxy for structure 27
  41. 41. Challenge Build a new assessment tool in ten minutes 28
  42. 42. Problems 29
  43. 43. Problems What tools do developers really need? 29
  44. 44. Problems What tools do developers really need? What is a unifying meta-model for tool construction? 29
  45. 45. Problems What tools do developers really need? What is a unifying meta-model for tool What are appropriate construction? meta-tools? 29
  46. 46. Ideas 30
  47. 47. Ideas Analyze developer needs (!) 30
  48. 48. Ideas Analyze developer needs (!)From meta-models to interactive DSLs 30
  49. 49. Ideas Analyze developer needs (!) “Malleable”IDEFrom meta-models to (not just plug-ins) interactive DSLs 30
  50. 50. Context
  51. 51. Challenge “Who had this problem before, and how did they solve it? 32
  52. 52. Problems 33
  53. 53. Problems Is the answer out there? 33
  54. 54. Problems Is the answer out there? How to express the query? 33
  55. 55. Problems Is the answer out there? How to express the query? Is intent captured? 33
  56. 56. Ideas 34
  57. 57. IdeasClone analysis for querying 34
  58. 58. Ideas Ecosystem analysisClone analysis for querying 34
  59. 59. Ideas Ecosystem analysisClone analysis for querying Exploit big software data Lungu et al. Big Software Data Analysis. ERCIM News 2012 34
  60. 60. Ideas Ecosystem analysisClone analysis for querying Exploit big software data Embedding Lungu et al. Big Software Data intelligence in Analysis. ERCIM News 2012 the IDE 34
  61. 61. Continuous Assessment
  62. 62. Challenge “What will my code change impact?” 36
  63. 63. Challenge “What will my code change impact?” 36
  64. 64. Problems 37
  65. 65. Problems Multi-Version Analysis Tests Analysis Softwarenaut-Core Understanding architectural constraints Lungu et al. Evolutionary and Collaborative Software ArchitectureRecovery with Softwarenaut. SCP 2012 37
  66. 66. Problems Multi-Version Analysis Tests Implicit dependencies Analysis Softwarenaut-Core Understanding architectural constraints Lungu et al. Evolutionary and Collaborative Software ArchitectureRecovery with Softwarenaut. SCP 2012 37
  67. 67. Problems Multi-Version Analysis Tests Implicit dependencies Analysis Softwarenaut-Core Understanding architectural constraints Ripple effects Lungu et al. Evolutionary and Robbes et al. A Study of Ripple Effects in Collaborative Software Architecture Software Ecosystems. ICSE-NIER 2011Recovery with Softwarenaut. SCP 2012 37
  68. 68. Ideas 38
  69. 69. Ideas Architecture monitoring (beyond layers) 38
  70. 70. Ideas Architecture monitoring (beyond layers) Ecosystem monitoring 38
  71. 71. Conclusion Current IDEs offer developers poor support for software assessment
  72. 72. Conclusion Current IDEs offer developers poor support for software assessment Developers need support for customization, context, continuous assessment

×