Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
SMALLTALK-80: the interactive programming environment
SMALLTALK-80: the interactive programming environment
The Role of Domain Expenence in Software Design
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
The vocabulary problem in human-system communication
Communications of the ACM
ICSE '87 Proceedings of the 9th international conference on Software Engineering
Object-oriented systems analysis: modeling the world in data
Object-oriented systems analysis: modeling the world in data
Designing documentation to compensate for delocalized plans
Communications of the ACM
A field study of the software design process for large systems
Communications of the ACM
gIBIS: a hypertext tool for exploratory policy discussion
ACM Transactions on Information Systems (TOIS)
Some strategies of reuse in an object-oriented programming environment
CHI '89 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Design environments for constructive and argumentative design
CHI '89 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Real time languages: design and development
Real time languages: design and development
Design reuse and frameworks in the smalltalk-80 system
Software reusability
Object oriented design with applications
Object oriented design with applications
End-user modifiability in design environments
CHI '90 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Software engineering: methods, management, and CASE tools
Software engineering: methods, management, and CASE tools
Implementing faceted classification for software reuse
Communications of the ACM - Special issue on software engineering
Object-oriented software engineering
Object-oriented software engineering
A view matcher for reusing Smalltalk classes
CHI '91 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Object-oriented modeling and design
Object-oriented modeling and design
Object-oriented analysis (2nd ed.)
Object-oriented analysis (2nd ed.)
Designing object-oriented software
Designing object-oriented software
A book of object-oriented knowledge: object-oriented analysis, design and implementation, a new approach to software engineering
ACM Computing Surveys (CSUR)
A research typology for object-oriented analysis and design
Communications of the ACM - Special issue on analysis and modeling in software development
Communications of the ACM - Special issue on analysis and modeling in software development
Component-oriented software development
Communications of the ACM - Special issue on analysis and modeling in software development
Analysis and modeling in software development
Communications of the ACM - Special issue on analysis and modeling in software development
Object-oriented analysis for evolving systems
ICSE '92 Proceedings of the 14th international conference on Software engineering
Increasing shared understanding of a design task between designers and design environments: the role of a specification component
Essays on object-oriented software engineering (vol. 1)
Essays on object-oriented software engineering (vol. 1)
From programming tasks to solutions: bridging the gap through the explanation of examples
From programming tasks to solutions: bridging the gap through the explanation of examples
CHI '94 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Things that make us smart: defending human attributes in the age of the machine
Things that make us smart: defending human attributes in the age of the machine
The sciences of the artificial (3rd ed.)
The sciences of the artificial (3rd ed.)
Cognitive tools for locating and comprehending software objects for reuse
ICSE '91 Proceedings of the 13th international conference on Software engineering
What kind of minimal instruction manual is the most effective
CHI '87 Proceedings of the SIGCHI/GI Conference on Human Factors in Computing Systems and Graphics Interface
On the inevitable intertwining of specification and implementation
Communications of the ACM
Object-Oriented Software Construction
Object-Oriented Software Construction
Design at Work: Cooperative Design of Computer Systems
Design at Work: Cooperative Design of Computer Systems
The Experience of Learning and Using Smalltalk
IEEE Software
Work-Oriented Design of Computer Artifacts
Work-Oriented Design of Computer Artifacts
Reusability Framework, Assessment, and Directions
IEEE Software
Reusability: The Case for Object-Oriented Design
IEEE Software
Cognitive View of Reuse and Redesign
IEEE Software
Usability engineering turns 10
interactions
The Vista environment for the coevolutionary design of user interfaces
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Integrating active information delivery and reuse repository systems
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Looking at digital library usability from a reuse perspective
Proceedings of the 1st ACM/IEEE-CS joint conference on Digital libraries
GCSE '01 Proceedings of the Third International Conference on Generative and Component-Based Software Engineering
Designing process-based software curriculum
CSEET '97 Proceedings of the 10th Conference on Software Engineering Education and Training
Strategies for Seeking Reusable Components in Smalltalk
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Agent orientation in software engineering
The Knowledge Engineering Review
Journal of Visual Languages and Computing
Modified development process of component-based software engineering
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
Object-oriented (OO) technology has been heralded as a solution to the problems of software engineering. The claims are that OO technology promotes understandability, extensibility, evolvabilty, reusability, and maintainability of systems and that OO systems are easy to understand and use. However, this technology has not been as successful as expected. An analysis of experiences and empirical studies reveals that the problem is not the technology per se but that the technology provides no support to software developers in performing the processes the technology requires. We present a cognitive model of software development that details the challenges software developers face in using OO technology. The model focuses on three aspects of software development-evolution, resue and redesign, and domain orientation. We motivate this model with a variety of firsthand experiences and use it to assess current OO technology. Further, we present tools and evaluations that substantiate parts of this model. The model and tools indicate directions for future software development environments, looking beyond the technological possibilities of OO languages and beyond the context of individual developers and projects.