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
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
Good Practices Conclusions – Codify experts’ experience – Help train novice developers – Help developers’ communicate – Lead to improved quality 58/126
Metrics Quality Models Models Measures Good Practices Definition Maintainability Detection Occurrences Social Studies Characteristics Factors Developers Studies Behaviour 59/126
Social Studies Developers’ characteristics – Gender – Status – Expertise – Training – Processes – … 60/126
61/126
Agile programming, anyone? 62/126
63/126
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
Social Studies For example, impact on identifiers on program understandability – Identifier styles [Sharif, Binkley] – Identifier quality [Lawrie] – Developers’ gender and identifiers [Sharafi] – … 65/126
Social Studies For example, impact on identifiers on program understandability – Identifier styles [Sharif, Binkley] – Identifier quality [Lawrie] – Developers’ gender and identifiers [Sharafi] – … 66/126
Social Studies Independent variables – Gender: male vs. female – Identifier: camel case vs. underscore Dependent variables – Accuracy – Time – Effort 67/126
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
Metrics Quality Models Models Measures Good Practices Definition Maintainability Detection Occurrences Social Studies Characteristics Factors Developers Studies Behaviour 69/126
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
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
Developers Studies Picking into developers’ thought processes 72/126
Developers Studies Picking into developers’ thought processes 73/126
Developers Studies Picking into developers’ thought processes 74/126
Developers Studies Developers’ thought processes – Reading code – Reading design models • Content • Form – … 75/126
Developers Studies Developers’ thought processes – Reading code – Reading design models • Content • Form – … 76/126
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
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
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
Feedback Loop Use – Measures – Occurrences – Factors to build “better” quality models 80/126
81/126
Modeling for modeling's sake? 82/126
Aristote 384 BC–Mar 7, 322 BC 83/126
Aristote 384 BC–Mar 7, 322 BC Galileo Galilei Feb 15, 1564–Jan 8, 1642 84/126
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
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
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
Impact of Quality Models DSIV – SNCF IT department – 1,000+ employees – 200+ millions Euros – Mainframes to assembly to J2EE – 2003 • Quality team 88/126
Impact of Quality Models MQL – Dedicated measurement process 89/126
Impact of Quality Models MQL – Web-based reports 90/126
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
Impact of Quality Models Subjects – 44 systems • 22 under MQL (QA=1) • 22 under ad-hoc processes (QA=0) 92/126
Impact of Quality Models 93/126
Impact of Quality Models 94/126
Impact of Quality Models 95/126
Impact of Quality Models 96/126
Impact of Quality Models Conclusions – Impact on all dependent variables – Statistical practical significance Limits – Applicability to today’s software systems 97/126
98/126
What’s with today’s systems? 99/126
100/126
Recommend
More recommend