Designing software for ease of extension and contraction

Designing software for ease of extension and contraction Parnas, IEEE Transactions on Software Engineering, 1979 A couple of weeks ago we looked at ‘A design methodology for reliable software systems’. David Parnas posted a comment (thank you!) giving some more insight into the history of Dijkstra’s “levels of abstraction” concept: This paper followed Dijkstra in … Continue reading Designing software for ease of extension and contraction

A Bayesian approach to graphical record linkage and de-duplication

A Bayesian approach to graphical record linkage and de-duplication Steorts et al. AISTATS, 2014 I don't normally cover papers from statistics conferences and journals, but this one caught my eye as addressing a high-value problem. Through a different lens, it also shows some of the challenges in maintaining privacy when it is possible to join … Continue reading A Bayesian approach to graphical record linkage and de-duplication

Replex: A scalable, highly available multi-index data store

Replex: A scalable, highly available multi-index data store Tai et al. USENIX 2016 Today’s choice won a best paper award at USENIX this year. Replex addresses the problem of key-value stores in which you also want to have an efficient query capability by values other than the primary key. … NoSQL databases achieve scalability by … Continue reading Replex: A scalable, highly available multi-index data store

Preemptive intrusion detection: theoretical framework and real-world measurements

Preemptive intrusion detection: theoretical framework and real-world measurements Cao et al, HotSoS 2015 Phuong Cao (the first author of this paper) got in touch following my review of DeepDive to say "Thanks for the review on DeepDive. I was inspired by that paper to apply factor graph on detecting intrusions at an early stage..." Preemptive … Continue reading Preemptive intrusion detection: theoretical framework and real-world measurements

What’s wrong with Git? A conceptual design analysis

What's wrong with Git? A conceptual design analysis De Rossi & Jackson Onward! 2013 We finished up last week talking about the how to find good concepts / abstractions in a software design and what good modularization looks like. Today's paper jumps 40+ years to look at some of those issues in a modern context … Continue reading What’s wrong with Git? A conceptual design analysis

A design methodology for reliable software systems

A design methodology for reliable software systems Liskov 1972 We've come to the end of Liskov's list. The final paper is by Barbara Liskov herself, on the question of how best to go about designing software systems so that we can have some confidence they will work. The unfortunate fact is that the standard approach … Continue reading A design methodology for reliable software systems