Object-oriented systems analysis: modeling the world in data
Object-oriented systems analysis: modeling the world in data
A laboratory for teaching object oriented thinking
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Object-oriented design: a responsibility-driven approach
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Object-oriented software engineering
Object-oriented software engineering
Object-oriented design
Designing object-oriented software
Designing object-oriented software
The object-oriented brewery: a comparison of two object-oriented development methods
ACM SIGSOFT Software Engineering Notes
Object-oriented design quality
Addendum to the 1997 ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (Addendum)
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
The unified software development process
The unified software development process
IEEE Transactions on Software Engineering
ACM SIGSOFT Software Engineering Notes
An Experimental Comparison of the Maintainability of Object-Orientedand Structured Design Documents
Empirical Software Engineering
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
Assessing the Changeability of two Object-Oriented Design Alternatives—a Controlled Experiment
Empirical Software Engineering
Object-Oriented Program Comprehension: Effect of Expertise, Task and Phase
Empirical Software Engineering
Assuring Good Style for Object-Oriented Programs
IEEE Software
Software-Engineering Research Revisited
IEEE Software
IEEE Software
Case Studies for Method and Tool Evaluation
IEEE Software
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Identifying the difficulties of object-oriented development
Journal of Systems and Software
A web-based support environment for software engineering experiments
Nordic Journal of Computing
Conducting Realistic Experiments in Software Engineering
ISESE '02 Proceedings of the 2002 International Symposium on Empirical Software Engineering
Empirical Software Engineering
A Survey of Controlled Experiments in Software Engineering
IEEE Transactions on Software Engineering
An Experimental Investigation of Formality in UML-Based Development
IEEE Transactions on Software Engineering
Using patterns for the refinement and translationof UML models: A controlled experiment
Empirical Software Engineering
On the usage and usefulness of OO design principles
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
The Impact of UML Documentation on Software Maintenance: An Experimental Evaluation
IEEE Transactions on Software Engineering
The Future of Empirical Methods in Software Engineering Research
FOSE '07 2007 Future of Software Engineering
Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise
IEEE Transactions on Software Engineering
Journal of Systems and Software
Safety Hazard Identification by Misuse Cases: Experimental Comparison of Text and Diagrams
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
The effect of task order on the maintainability of object-oriented software
Information and Software Technology
Empirical investigation towards the effectiveness of Test First programming
Information and Software Technology
Experimental comparison of attack trees and misuse cases for security threat identification
Information and Software Technology
Comparing of feedback-collection and think-aloud methods in program comprehension studies
Behaviour & Information Technology
Empirical Software Engineering
Information and Software Technology
Using concept mapping for maintainability assessments
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
A measurement framework for object-oriented software testability
Information and Software Technology
Identification of refactoring opportunities introducing polymorphism
Journal of Systems and Software
A comparison of two approaches to safety analysis based on use cases
ER'07 Proceedings of the 26th international conference on Conceptual modeling
An experimental comparison of ER and UML class diagrams for data modelling
Empirical Software Engineering
ER'10 Proceedings of the 29th international conference on Conceptual modeling
Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures
Journal of Systems and Software
A method for evaluating rigor and industrial relevance of technology evaluations
Empirical Software Engineering
Benchmarking library and application software with Data Envelopment Analysis
Software Quality Control
Identifying the weaknesses of UML class diagrams during data model comprehension
Proceedings of the 14th international conference on Model driven engineering languages and systems
Improving the software inspection process
EuroSPI'05 Proceedings of the 12th European conference on Software Process Improvement
Who tested my software? Testing as an organizationally cross-cutting activity
Software Quality Control
Comprehensively evaluating conformance error rates of applying aspect state machines
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
What works for whom, where, when, and why?: on the role of context in empirical software engineering
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
Facilitating the transition from use case models to analysis models: Approach and experiments
ACM Transactions on Software Engineering and Methodology (TOSEM)
Enhancing design models with composition properties: a software maintenance study
Proceedings of the 12th annual international conference on Aspect-oriented software development
Empirical Evaluation of Test Driven Modeling
International Journal of Information System Modeling and Design
A pilot study: design patterns in parallel program development
SE-HPCCSE '13 Proceedings of the 1st International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering
A metric towards evaluating understandability of state machines: An empirical study
Information and Software Technology
To what extent can maintenance problems be predicted by code smell detection? - An empirical study
Information and Software Technology
Hi-index | 0.00 |
A fundamental question in object-oriented design is how to design maintainable software. According to expert opinion, a delegated control style, typically a result of responsibility-driven design, represents object-oriented design at its best, whereas a centralized control style is reminiscent of a procedural solution, or a "bad驴 object-oriented design. This paper presents a controlled experiment that investigates these claims empirically. A total of 99 junior, intermediate, and senior professional consultants from several international consultancy companies were hired for one day to participate in the experiment. To compare differences between (categories of) professionals and students, 59 students also participated. The subjects used professional Java tools to perform several change tasks on two alternative Java designs that had a centralized and delegated control style, respectively. The results show that the most skilled developers, in particular, the senior consultants, require less time to maintain software with a delegated control style than with a centralized control style. However, more novice developers, in particular, the undergraduate students and junior consultants, have serious problems understanding a delegated control style, and perform far better with a centralized control style. Thus, the maintainability of object-oriented software depends, to a large extent, on the skill of the developers who are going to maintain it. These results may have serious implications for object-oriented development in an industrial context: Having senior consultants design object-oriented systems may eventually pose difficulties unless they make an effort to keep the designs simple, as the cognitive complexity of "expert驴 designs might be unmanageable for less skilled maintainers.