• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MSR Asia Summit
 

MSR Asia Summit

on

  • 1,128 views

Quality, maintability, quality models, good practices, developers' studies, social studies, data mining, challenges.

Quality, maintability, quality models, good practices, developers' studies, social studies, data mining, challenges.

Statistics

Views

Total Views
1,128
Views on SlideShare
1,111
Embed Views
17

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 17

http://www.ptidej.net 17

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    MSR Asia Summit MSR Asia Summit Presentation Transcript

    • Some Challenges of Quality Assurance with Multi-language Systems Yann-Gaël Guéhéneuc MSR Asia Summit 13/10/28 This work is licensed under a Creative Commons Attribution-NonCommercialShareAlike 3.0 Unported License
    • 2/67
    • Software development services? 3/67
    • 4/67
    • Software costs? 5/67
    • 6/67
    • 7/67
    • Cost of bugs http://www.di.unito.it/~damiani/ariane5rep.html 8/67
    • 9/67
    • 10/67
    • Cost of quality http://calleam.com/WTPF/?p=4914 11/67
    • Maintainability is the ease with which a software system can be modified —IEEE Standard Glossary of Software Engineering Terminology, 2013 12/67
    • Agenda  Maintainability – Quality models – Good practices – Social studies – Developers studies  Multi-language Systems  Challenges – Maintainability – Not only for quality assurance! 13/67
    • Metrics Quality Models Models Good Practices Definition Maintainability Detection Social Studies Measures Occurrences Characteristics Factors Developers Studies Behaviour 14/67
    • Metrics Quality Models Models Good Practices Definition Maintainability Detection Social Studies Measures Occurrences Characteristics Factors Developers Studies Behaviour 15/67
    • Quality model are models with the objective to describe, assess, and–or predict quality —Deissenboeck et al., WOSQ, 2009 (With minor adaptations) 16/67
    • Quality Models  Basis for quality models – Software measures (aka metrics) – Relationships among characteristics and metrics • Theoretical • Practical 17/67
    • Quality Models  Metrics have been well researched – Chidamber and Kemerer – Hitz and Montazeri – Lorenz and Kidd – McCabe –… (Do not miss Briand et al.’s surveys on cohesion and coupling metrics) 18/67
    • Quality Models  Different input metrics, different output characteristics – Bansiya and Davis’ QMOOD • Design metrics • Maintainability-related characteristics – Zimmermann et al.’s models • Code and historical metrics • Fault-proneness –… 19/67
    • Quality Models  Feedback – Measures – Occurrences – Factors to build “better” quality models 20/67
    • Metrics Quality Models Models Good Practices Definition Maintainability Detection Social Studies Measures Occurrences Characteristics Factors Developers Studies Behaviour 21/67
    • 22/67
    • Important assumptions – That practices can be codified in such a way that they can be shared between different designers – That reuse will lead to “better” designs. There is an obvious question here of what constitutes “better”, but a key measure is maintainability —Zhang and Budgen, 2012 (With minor adaptations) 23/67
    • Frame DrawingEditor Drawing Handle We can identify in the architecture of a systems micro-architectures similar to design motifs to explain the problem solved DrawingView Tool Good Practices Panel Figure AbstractFigure AttributeFigure DecoratorFigure PolyLineFigure CompositeFigure Figure AttributeFigure Component Client DecoratorFigure PolyLineFigure CompositeFigure 1..n operation() ramification Leaf operation() Composite add(Component) remove(Component) getComponent(int) operation() For each components component.operation() To compose objects in a tree-like structure to describe whole–part hierarchies 24/67
    • Frame DrawingEditor Drawing Handle We can identify in the architecture of a systems micro-architectures similar to design motifs to explain the problem solved DrawingView Tool Good Practices Panel Figure AbstractFigure AttributeFigure DecoratorFigure PolyLineFigure CompositeFigure Figure AttributeFigure Component Client DecoratorFigure PolyLineFigure CompositeFigure 1..n operation() ramification Leaf operation() Composite add(Component) remove(Component) getComponent(int) operation() For each components component.operation() To compose objects in a tree-like structure to describe whole–part hierarchies 25/67
    • Frame DrawingEditor Drawing Handle We can identify in the architecture of a systems micro-architectures similar to design motifs to explain the problem solved DrawingView Tool Good Practices Panel Figure AbstractFigure AttributeFigure DecoratorFigure PolyLineFigure CompositeFigure Figure AttributeFigure Component Client DecoratorFigure PolyLineFigure CompositeFigure 1..n operation() ramification Leaf operation() Composite add(Component) remove(Component) getComponent(int) operation() For each components component.operation() To compose objects in a tree-like structure to describe whole–part hierarchies 26/67
    • Frame DrawingEditor Drawing Handle We can identify in the architecture of a systems micro-architectures similar to design motifs to explain the problem solved DrawingView Tool Good Practices Panel Figure AbstractFigure AttributeFigure DecoratorFigure PolyLineFigure CompositeFigure Figure AttributeFigure Component Client DecoratorFigure PolyLineFigure CompositeFigure 1..n operation() ramification Leaf operation() Composite add(Component) remove(Component) getComponent(int) operation() For each components component.operation() To compose objects in a tree-like structure to describe whole–part hierarchies 27/67
    • Good Practices  Impact of practices – “Good”, such as DPs • Comprehension by Lange et al. • Quality metrics by Masuda et al. • Change-proneness by Bieman et al. and Khomh et al. – “Bad”, such as APs • Comprehension by Deligiannis et al. and Abbes et al. • Change-proneness by Khomh et al. • Fault-proneness by Li et al.  Feedback in quality models? 28/67
    • Metrics Quality Models Models Good Practices Definition Maintainability Detection Social Studies Measures Occurrences Characteristics Factors Developers Studies Behaviour 29/67
    • Social Studies  Developers’ characteristics – Gender – Status – Expertise – Training – Processes –… 30/67
    • 31/67
    • 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) 32/67
    • Social Studies  For example, impact on identifiers on program understandability – Identifier styles by Sharif et al. and Binkley et al. – Identifier quality by Lawrie et al. – Identifiers styles and gender by Sharafi et al. –… 33/67
    • Metrics Quality Models Models Good Practices Definition Maintainability Detection Social Studies Measures Occurrences Characteristics Factors Developers Studies Behaviour 34/67
    • Developers Studies  Developers’ thought processes – Cognitive theories • • • • Brooks’ Von Mayrhauser’s Pennington’s Soloway’s – Memory theories • • • • Kelly’s categories Minsky’s frames Piaget’s schema Schank’s scripts – Mental models • Gentner and Stevens’ mental models 35/67
    • Developers Studies  Picking into developers’ thought processes 36/67
    • Developers Studies  Picking into developers’ thought processes 37/67
    • Developers Studies  Developers’ thought processes – Reading code by Hansen et al. and Sharafi et al. – Reading design models • Content by Kagdi et al. and Sharafi et al. • Form by Cepeda et al. –… 38/67
    • 39/67
    • What’s with today’s systems? 40/67
    • 41/67
    • 42/67
    • 43/67
    • 44/67
    • 45/67
    • 46/67
    • 47/67
    • 48/67
    • 49/67
    • 50/67
    • Multi-language Systems  Today’s systems are multi-languages – Facebook – Twitter –… – Even your “regular” software system is now multi-language, typically a Web application 51/67
    • Multi-language Systems  New problems – Different computational models – Complex interfaces (API) – Wrong assumptions – Wrong conversions –… 52/67
    • Multi-language Systems  For example, control- and data-flows between Java and “native” C/C++ code methods in Java are used by Java classes but (typically) implemented in C/C++  native 53/67
    • Multi-language Systems  Control-flow interactions – Java code calls native code – Native code calls Java methods – Native code can “throw” and must catch exceptions  Data-flow interactions – Java code passes objects (pointers) – Native code creates objects –… 54/67
    • Multi-language Systems  Different computational models static void *xmalloc(JNIEnv *env, size_t size) { void *p = malloc(size); if (p == NULL) JNU_ThrowOutOfMemoryError(env, NULL); return p; } #define NEW(type, n) ((type *) xmalloc(env, (n) * sizeof(type))) static const char *const *splitPath(JNIEnv *env, const char *path) { ... pathv = NEW(char *, count+1); pathv[count] = NULL; ... } 55/67
    • Multi-language Systems  Different computational models static void *xmalloc(JNIEnv *env, size_t size) { void *p = malloc(size); if (p == NULL) JNU_ThrowOutOfMemoryError(env, NULL); return p; } #define NEW(type, n) ((type *) xmalloc(env, (n) * sizeof(type))) static const char *const *splitPath(JNIEnv *env, const char *path) { ... pathv = NEW(char *, count+1); pathv[count] = NULL; ... } No diversion of control flow! 56/67
    • 57/67
    • What challenges? 58/67
    • Unbalanced focus on “mono”-language systems vs. multi-language systems 59/67
    • Challenges  Maintainability – Quality models • Metrics? • Relations? – Good practices • “Border-line” practices? – Social and developers’ studies • Independent variables? 60/67
    • Challenges  Not only for quality assurance! (Just for examples…) 61/67
    • Challenges  Not only for quality assurance! (Just for examples…) Build systems descriptions 62/67
    • Challenges  Not only for quality assurance! (Just for examples…) Build systems descriptions Legal issues due to interrelations 63/67
    • Challenges  Not only for quality assurance! (Just for examples…) Build systems descriptions Legal issues due to interrelations Clone definition and detection 64/67
    • Challenges  Not only for quality assurance! (Just for examples…) Build systems descriptions Legal issues due to interrelations Clone definition and detection Impact on studies of large systems 65/67
    • Conclusion 66/67
    • 67/67
    • 68/67