Rasheed Wihaib – Software Abstractions and Systems Integration. Week 1 1.
What do the authors mean by “concept”, “conceptual model”, and “conceptual integrity”? Give examples illustrating these definitions from a system different from those discussed in the paper.
Concepts are explicitly referred to on the first line of the second section, they are said to mean the “constructs and notions either that the system deals with, …, or that are invented for the purpose of structuring the functions of the system”. They are said to have “psychological content”, and each concept will have corresponding cognitive processes from the user when using thinking about the application. A concept is the “Timeline” on Twitter, this structures some of the functions of system such as displaying posts and interacting (retweeting, favouriting, sharing) with posts.
Conceptual model refers to a specification that focuses on concepts rather than details of behavior. Twitter’s conceptual model has, at it’s core, a micro blogging platform with constraints on post lengths. Then there are interlinked concepts such as follow’s and retweets that incorporate a social element into the system. These are all concepts of the system and do not specify any particular behavior on the part of the system.
Conceptual integrity encapsulates three principles; orthogonality, propriety and generality. One could argue that Twitter upholds conceptual integrity as following another user is the only way one can receive updates from that user on their own timeline, demonstrating orthogonality. It’s minimalist user interface and restrictions from its’ design have also allowed for propriety. Generality can also be found in the system as favouriting a tweet does not only allow a user to save a tweet, it also could place the tweet in the ‘discover’ news feed of their followers.
2.
What is their main criticism of Git’s conceptual model?
The authors claim that “Git is far more complicated that it needs to be”, claiming that the level of complexity is greater than the “limited functionality”. They attribute these flaws to its conceptual model. In their graphical representation of the conceptual model (figure 1), they show some key concepts of Git such as a “Tracked File” and a “Branch”. Their illustration of the relation between a File and a Version demonstrates their criticism very clearly; this reveals, amongst other things, over complication of the concept of file versions.
3.
Do you agree with their analysis?
Their argument is indeed compelling and as a Git user, I have suffered the same frustrations when using the system so can vouch for much of their analysis. Their criticisms with regards to the conceptual integrity and the conceptual model do hold but they are not handled independently of each other. The criticism of the conceptual integrity of Git is done in the analysis of the conceptual model, and while a conceptual model is specified to not focus on details of behavior, the authors comprehensively analyse the model by its behavior. Despite this causing some ambiguity in their arguments, I generally agree with their analysis of Git. I did feel some concepts, namely rebasing, have not been considered and, in the case of rebasing, removes the need for their “more general branching concept”.