Abstraction and specification in program development
Abstraction and specification in program development
Statecharts: A visual formalism for complex systems
Science of Computer Programming
Semantic database modeling: survey, applications, and research issues
ACM Computing Surveys (CSUR)
The Z notation: a reference manual
The Z notation: a reference manual
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Object-oriented modeling and design
Object-oriented modeling and design
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
Software requirements & specifications: a lexicon of practice, principles and prejudices
Software requirements & specifications: a lexicon of practice, principles and prejudices
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Analysis patterns: reusable objects models
Analysis patterns: reusable objects models
The Unified Modeling Language user guide
The Unified Modeling Language user guide
The entity-relationship model—toward a unified view of data
ACM Transactions on Database Systems (TODS) - Special issue: papers from the international conference on very large data bases: September 22–24, 1975, Framingham, MA
Data Model Patterns: Conventions of Thought
Data Model Patterns: Conventions of Thought
The Mythical Man-Month: Essays on Softw
The Mythical Man-Month: Essays on Softw
Computer Architecture: Concepts and Evolution
Computer Architecture: Concepts and Evolution
Program Development in Java: Abstraction, Specification, and Object-Oriented Design
Program Development in Java: Abstraction, Specification, and Object-Oriented Design
UNIX-Hater Handbook
Domain Engineering: A Software Engineering Discipline in Need of Research
SOFSEM '00 Proceedings of the 27th Conference on Current Trends in Theory and Practice of Informatics
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Conceptual Modeling of Information Systems
Conceptual Modeling of Information Systems
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Pro Git
The Design of Design: Essays from a Computer Scientist
The Design of Design: Essays from a Computer Scientist
The Design of Everyday Things
Version Control with Git: Powerful tools and techniques for collaborative software development
Version Control with Git: Powerful tools and techniques for collaborative software development
Hi-index | 0.00 |
It is commonly asserted that the success of a software development project, and the usability of the final product, depend on the quality of the concepts that underlie its design. Yet this hypothesis has not been systematically explored by researchers, and conceptual design has not played the central role in the research and teaching of software engineering that one might expect. As part of a new research project to explore conceptual design, we are engaging in a series of case studies. This paper reports on the early stages of our first study, on the Git version control system. Despite its widespread adoption, Git puzzles even experienced developers and is not regarded as easy to use. In an attempt to understand the root causes of its complexity, we analyze its conceptual model and identify some undesirable properties; we then propose a reworking of the conceptual model that forms the basis of (the first version of) Gitless, an ongoing effort to redesign Git and experiment with the effects of conceptual simplifications.