Abstract--This paper proposes a method for deriving formal specifications of systems. To accomplish this task we pass through a non trivial number of steps, concepts and tools wher...
Code and design smells are recurring design problems in software systems that must be identified to avoid their possible negative consequences on development and maintenance. Conse...
Abstract. Slicing is a program analysis technique that was originally introduced to improve program debugging and understanding. The purpose of a slicing algorithm is to remove the...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages. We build on this work by addressing substitutability of subtypes as well as i...
Successive, formal refinement is a new approach for specification of embedded systems using a general-purpose programming language. Systems are formally modeled as Abstractable Sy...
James Shin Young, Josh MacDonald, Michael Shilman,...