Electronic Notes in Theoretical Computer Science · 2006 · 40 citations · 6 references
ComputingComputer ScienceComputer SystemsFault-tolerant ComputingFault-tolerant SystemsFormal MethodsComponent-based Software EngineeringDeductive VerificationProcess AlgebraProtocol VerificationSoftware DesignState ManagementComponent ModelsComponent RefinementComponent SpecificationsComponent-based Software DesignReactive System ModelingReactive System RefinementReactive SystemsRefinement
We present a theory of reactive components. We identify a component by its provided services, and specify the individual services by a guarded-design, which enables one to separate the responsibility of clients from the commitment made by the component, and model the behaviour of a component by a set of failures and divergences. Protocols are introduced to coordinate the interactions between a component and its environment. We adopt the notion of process refinement to formalise the substitutivity of components, and provide a complete proof method based on the notion of simulations. We also study the algebraic properties of component combinators.
6
Systematic software development using VDM
Sunil Vadera · Data Processing · 1986 · 1.1K citations
Computing, Systems Engineering, Requirements Engineering +11
C. A. R. Hoare, Ian J. Hayes, He Jifeng et al. · Communications of the ACM · 1987 · 389 citations · Full text
Practical analysis for refactoring
Ralph E. Johnson, Donald Bradley Roberts · 1999 · 254 citations
Improving the Design of Existing Code
Martin Fowler · 2000 · 238 citations
Evolving Object-Oriented Designs with Refactorings
Lance Tokuda, Don Batory · Automated Software Engineering · 2001 · 232 citations