Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
The sciences of the artificial (3rd ed.)
The sciences of the artificial (3rd ed.)
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Problem frames: analyzing and structuring software development problems
Problem frames: analyzing and structuring software development problems
Estimating the Numbers of End Users and End User Programmers
VLHCC '05 Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing
Computer structures: Readings and examples (McGraw-Hill computer science series)
Computer structures: Readings and examples (McGraw-Hill computer science series)
Artificial Intelligence for Engineering Design, Analysis and Manufacturing - Special Issue: Design Spaces: The Explicit Representation of Spaces of Alternatives
What do we "mashup" when we make mashups?
Proceedings of the 4th international workshop on End-user software engineering
Software Engineering for Self-Adaptive Systems: A Research Roadmap
Software Engineering for Self-Adaptive Systems
Engineering Self-Adaptive Systems through Feedback Loops
Software Engineering for Self-Adaptive Systems
The Design of Design: Essays from a Computer Scientist
The Design of Design: Essays from a Computer Scientist
Documenting Software Architectures: Views and Beyond
Documenting Software Architectures: Views and Beyond
The state of the art in end-user software engineering
ACM Computing Surveys (CSUR)
Modularity for the modern world: summary of invited keynote
Proceedings of the tenth international conference on Aspect-oriented software development
Hi-index | 0.00 |
Software engineering should aspire to be a true engineering discipline. We have made good progress in some areas, but a number of aspects of practical engineering are under-represented in our research portfolio. We have been slow to move beyond well-delimited systems developed by professional programmers to systems integrated from multiple public sources that evolve in the hands of their users. We have focused on formal reasoning and systematic testing to the detriment of qualitative and incremental reasoning supporting cost-effective, rather than perfect solutions. We have been slow to codify our results into unified theories and practical reference material. To establish a true engineering discipline for software, we need to broaden our view of what constitutes a "software system" and we need to develop techniques that help to provide cost-effective quality despite associated uncertainties.