Program design methodologies and the software development process
International Journal of Man-Machine Studies
Journal of Systems and Software - Special issue on Evaluation and assessment in software engineering
The ups and downs of object-oriented systems development
Communications of the ACM
IEEE Transactions on Software Engineering
An Experimental Comparison of the Maintainability of Object-Orientedand Structured Design Documents
Empirical Software Engineering
A controlled experiment on inheritance depth as a cost factor for code maintenance
Journal of Systems and Software
An empirical investigation of an object-oriented design heuristic for maintainability
Journal of Systems and Software
Model-Based Performance Prediction in Software Development: A Survey
IEEE Transactions on Software Engineering
Object-Oriented and Classical Software Engineering
Object-Oriented and Classical Software Engineering
An Ethnographic Study of Copy and Paste Programming Practices in OOPL
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
The task-dependent nature of the maintenance of object-oriented programs
Journal of Systems and Software
Cognitive activities and levels of abstraction in procedural and object-oriented design
Human-Computer Interaction
A systematic review of software maintainability prediction and metrics
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Information Resources Management Journal
Hi-index | 0.00 |
Empirical evidence for the maintainability of object-oriented systems is far from conclusive, partly due to the lack of representativeness of the subjects and systems used in earlier studies. We empirically examined this issue for mission-critical software that was currently operational and maintained by software professionals. Two functionally equivalent versions of a credit approval system were maintained, one object oriented (OO) and the other non-object oriented (NOO). We found that the OO group took less time to maintain a greater number of software artifacts than its NOO counterpart. This difference held for all phases of the software development life cycle. This result was due to the usefulness of UML for impact analysis of the OO version, which contributed to effective comprehension and communication. Insufficient design specifications for the NOO version led to ambiguity and costly defects in transferring design solutions to development. Also, the encapsulation of the OO version appeared to reduce mental loads for maintenance tasks and resulted in code reuse. On the other hand, the number of files to be managed increased and, thus, dependency management was required for the OO version. Furthermore, despite much tuning, the OO version ran slower than its NOO counterpart. More field studies on software professionals are needed to compare contextual factors such as methods, processes, and maintenance tools.