Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3139903.3139921acmotherconferencesArticle/Chapter ViewAbstractPublication PagesiwstConference Proceedingsconference-collections
research-article

Design Heuristics for Reliable and Flexible Virtual Machine Subsystems

Published: 04 September 2017 Publication History

Abstract

This paper describes the process of designing a logging subsystem for a Smalltalk virtual machine written in C to illustrate a software design methodology focused on promoting reliability and flexibility. The design approach begins with identifying responsibilities, as well as sources of change and risk. Once these are determined, the implementation space is carved so that the areas affected by these sources of change and risk are encapsulated by interface boundaries that simultaneously fulfill the required responsibilities. Aligning responsibilities with sources of change and risk during this process results in clearer, less ambiguous interface boundaries. Interface clarity improvement manifests in a number of ways. For example, change mitigation implementation approaches should not be exposed by, or propagated through, their enclosing interface. Concentrating interface focus on fulfilling responsibilities reduces behavioral ambiguity. Moreover, by aligning responsibilities with sources of change and risk, the scope of responsibilities affected by future modifications is constrained. The resulting interfaces are more stable over time, and therefore reduce the background source code maintenance overhead. Consequently, these interfaces gain clarity from their stability. As an almost unintended side effect of this design methodology, the logging facility gained flexibility beyond initial expectations. Specifically, the more accurate boundaries allowed extending the logging subsystem's functionality in several beneficial, unanticipated ways without affecting its users or inducing code duplication. Hence, this design methodology also seems valuable as a heuristic approach to handle new feature requirements.

References

[1]
Rebecca Wirfs-Brock and Alan McKean. 2003. Object Design: Roles, Responsibilities, and Collaborations. Addison Wesley, ISBN 0201379430.
[2]
Yichen Xie and Dawson Engler. 2002. Using redundancies to find errors. In Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering (SIGSOFT '02/FSE-10). ACM, New York, NY, USA, 51--60.
[3]
See the sample debugging extension included within the WinDBG SDK. For some context and additional information, see e.g. https://blogs.msdn.microsoft.com/sgajjela/2013/03/02/how-to-develop-windbg-extension-dll/, and https://docs.microsoft.com/en-us/dotnet/framework/tools/sos-dll-sos-debugging-extension.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
IWST '17: Proceedings of the 12th edition of the International Workshop on Smalltalk Technologies
September 2017
128 pages
ISBN:9781450355544
DOI:10.1145/3139903
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 September 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Smalltalk
  2. design
  3. design patterns
  4. logging
  5. responsibility driven design
  6. virtual machines

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

IWST '17

Acceptance Rates

Overall Acceptance Rate 25 of 27 submissions, 93%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 45
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 27 Nov 2024

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media