Learn More
43 focus 1 they know intuitively (but not always predictably) what key issues to consider. 1 In general, design reasoning and decision making are still tacit processes, much of which architects learn on the job. Exploring what constitutes a good decision should lead to a better-understood and improved design process. Design reasoning has two key elements:(More)
Software metrics offer us the promise of distilling useful information from vast amounts of software in order to track development progress, to gain insights into the nature of the software, and to identify potential problems. Unfortunately, however, many software metrics exhibit highly skewed, non-Gaussian distributions. As a consequence, usual ways of(More)
Real software systems change and become more complex over time. But which parts change and which parts remain stable? Common wisdom, for example, states that in a well-designed object-oriented system, the more popular a class is, the less likely it is to change from one version to the next, since changes to this class are likely to impact its clients. We(More)
The advent of online software distribution channels like Apple Inc.'s App Store and Google Inc.'s Google Play has offered developers a single, low cost, and powerful distribution mechanism. These online stores help users discover apps as well as leave a review. Ratings and reviews add value to both the developer and potential new users by providing a(More)
Online software distribution channels such as Apple Inc.'s App Store and Google Inc.'s Google Play provide a platform for third-party app distribution. These online stores feature a public review system, allowing users to express opinions regarding purchased apps. These reviews can influence product-purchasing decisions <i>via</i> polarised sentiment (1 to(More)
Software systems evolve over time incrementally and sections of code are modified. But, how much does code really change? Lehman's laws suggest that software must be continuously adapted to be useful. We have studied the evolution of several public domain object-oriented software systems and analyzed the rate as well as the amount of change that individual(More)