quality and multi language systems
play

Quality and Multi-language Systems Yann-Gal Guhneuc KAIST - PowerPoint PPT Presentation

Quality and Multi-language Systems Yann-Gal Guhneuc KAIST 13/10/14 This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 3.0 Unported License 2/126 Typical software developers? 3/126 4/126 Software


  1. Frame Panel Good Practices DrawingEditor DrawingView Tool Drawing Handle Figure We can identify AbstractFigure in the architecture AttributeFigure DecoratorFigure PolyLineFigure CompositeFigure of a systems Figure AttributeFigure DecoratorFigure PolyLineFigure CompositeFigure micro-architectures similar to Component 1..n Client operation() ramification design motifs Leaf Composite add(Component) operation() remove(Component) getComponent(int) For each components operation() to explain the component.operation() To compose objects problem solved in a tree-like structure to describe whole–part hierarchies 56/126

  2. Frame Panel Good Practices DrawingEditor DrawingView Tool Drawing Handle Figure We can identify AbstractFigure in the architecture AttributeFigure DecoratorFigure PolyLineFigure CompositeFigure of a systems Figure AttributeFigure DecoratorFigure PolyLineFigure CompositeFigure micro-architectures similar to Component 1..n Client operation() ramification design motifs Leaf Composite add(Component) operation() remove(Component) getComponent(int) For each components operation() to explain the component.operation() To compose objects problem solved in a tree-like structure to describe whole–part hierarchies 57/126

  3. Good Practices  Conclusions – Codify experts’ experience – Help train novice developers – Help developers’ communicate – Lead to improved quality 58/126

  4. Metrics Quality Models Models Measures Good Practices Definition Maintainability Detection Occurrences Social Studies Characteristics Factors Developers Studies Behaviour 59/126

  5. Social Studies  Developers’ characteristics – Gender – Status – Expertise – Training – Processes – … 60/126

  6. 61/126

  7. Agile programming, anyone? 62/126

  8. 63/126

  9. Social Studies  Need for social studies, typically in the form of experiments – Independent variable (few) – Dependent variables (many) – Statistical analyses (few) – Threats to validity (many) 64/126

  10. Social Studies  For example, impact on identifiers on program understandability – Identifier styles [Sharif, Binkley] – Identifier quality [Lawrie] – Developers’ gender and identifiers [Sharafi] – … 65/126

  11. Social Studies  For example, impact on identifiers on program understandability – Identifier styles [Sharif, Binkley] – Identifier quality [Lawrie] – Developers’ gender and identifiers [Sharafi] – … 66/126

  12. Social Studies  Independent variables – Gender: male vs. female – Identifier: camel case vs. underscore  Dependent variables – Accuracy – Time – Effort 67/126

  13. Social Studies  Subjects Subjects’ Demography (24 Subjects) Academic background Gender Ph.D. M.Sc. B.Sc. Male Female 11 10 3 15 9  Conclusions Accuracy Time Effort 68/126

  14. Metrics Quality Models Models Measures Good Practices Definition Maintainability Detection Occurrences Social Studies Characteristics Factors Developers Studies Behaviour 69/126

  15. Developers Studies  Developers’ thought processes – Cognitive theories – Memory theories • Brooks’ • Kelly’s categories • Von Mayrhauser’s • Minsky’s frames • Pennington’s • Piaget’s schema • Soloway’s • Schank’s scripts – Mental models • Gentner and Stevens’ mental models 70/126

  16. Developers Studies  Studying developers’ thought processes – Yarbus’ eye-movements and vision studies – Just and Carpenter’s eye–mind hypothesis – Palmer’s vision science – … 71/126

  17. Developers Studies  Picking into developers’ thought processes 72/126

  18. Developers Studies  Picking into developers’ thought processes 73/126

  19. Developers Studies  Picking into developers’ thought processes 74/126

  20. Developers Studies  Developers’ thought processes – Reading code – Reading design models • Content • Form – … 75/126

  21. Developers Studies  Developers’ thought processes – Reading code – Reading design models • Content • Form – … 76/126

  22. Developers Studies  Developers’ use of design pattern notations during program understandability – Strongly visual [Schauer and Keler] – Strongly textual [Dong et al.] – Mixed [Vlissides] 77/126

  23. Developers Studies  Independent variables – Design pattern notations – Tasks: Participation, Composition, Role  Dependent variables – Average fixation duration – Ratio of fixations – Ration of fixation times 78/126

  24. Developers Studies  Subjects – 24 Ph.D. and M.Sc. students  Conclusions – Stereotype-enhanced UML diagram [Dong et al.] more efficient for Composition and Role – UML collaboration notation and the pattern- enhanced class diagrams more efficient for Participation 79/126

  25. Feedback Loop  Use – Measures – Occurrences – Factors to build “better” quality models 80/126

  26. 81/126

  27. Modeling for modeling's sake? 82/126

  28. Aristote 384 BC–Mar 7, 322 BC 83/126

  29. Aristote 384 BC–Mar 7, 322 BC Galileo Galilei Feb 15, 1564–Jan 8, 1642 84/126

  30. Aristote 384 BC–Mar 7, 322 BC Galileo Galilei Feb 15, 1564–Jan 8, 1642 Isaac Newton Dec 25, 1642–Mar 20, 1727 85/126

  31. Aristote 384 BC–Mar 7, 322 BC Galileo Galilei Feb 15, 1564–Jan 8, 1642 Isaac Newton Dec 25, 1642–Mar 20, 1727 Max Tegmark May 5, 1967– 86/126

  32. Usefulness? Aristote 384 BC–Mar 7, 322 BC Galileo Galilei Feb 15, 1564–Jan 8, 1642 Isaac Newton Dec 25, 1642–Mar 20, 1727 Max Tegmark May 5, 1967– 87/126

  33. Impact of Quality Models  DSIV – SNCF IT department – 1,000+ employees – 200+ millions Euros – Mainframes to assembly to J2EE – 2003 • Quality team 88/126

  34. Impact of Quality Models  MQL – Dedicated measurement process 89/126

  35. Impact of Quality Models  MQL – Web-based reports 90/126

  36. Impact of Quality Models  Independent variables – Use of MQL or not – LOC; team size, maturity, and nature  Dependent variables – Maintainability, evolvability, reusability, robustness, testability, and architecture quality – Corrective maintenance effort (in time) – Proportions of complex/unstructured code and of commented methods/functions 91/126

  37. Impact of Quality Models  Subjects – 44 systems • 22 under MQL (QA=1) • 22 under ad-hoc processes (QA=0) 92/126

  38. Impact of Quality Models 93/126

  39. Impact of Quality Models 94/126

  40. Impact of Quality Models 95/126

  41. Impact of Quality Models 96/126

  42. Impact of Quality Models  Conclusions – Impact on all dependent variables – Statistical practical significance  Limits – Applicability to today’s software systems 97/126

  43. 98/126

  44. What’s with today’s systems? 99/126

  45. 100/126

Recommend


More recommend