1 |
nContract - Creating Configurable Run-Time Contract Verification for .NET ComponentsHaggard, Westley 07 April 2005 (has links)
The use of third-party components is helpful while writing complex software systems, but it can be difficult to debug software that interacts with third-party components. To address this problem, a mechanism for determining if one is using the component correctly would be beneficial. Reading component documentation may or may not help, depending on its clarity and precision. A formally specified contract for that component would be better, and would also allow run-time contract verification via assertions. The client of the component could enable these assertions during development and debugging, and then disable them for the final production release to increase performance.
This thesis presents nContract, a tool that provides configurable run-time contract verification without requiring component recompilation or source code access. nContract allows component developers to formally specify .NET components using attributes. This contract information is retrieved from the compiled component's metadata and a subclass is generated for each formally specified type. All members of the component's interface are overridden and contract assertions are wrapped around calls to the base class. As long as the component client uses a factory to create instances of the component's types, the decision of whether or not to create assertion-checked or unchecked objects can be deferred until run-time. / Master of Science
|
2 |
An Environment For Specifying and Executing Adaptable Software ComponentsUnhale, Sudeep Prabhakar 27 April 2003 (has links)
One of the difficulties of Component Based Software Engineering (CBSE) [1] in reusing pre-existing components is the need to adapt these components to work within the desired target systems [2, 3, 4, 5, 6]. Third-party or in-house Commercial Off-the-shelf (COTS) components may not always have the required exact functionality demanded by the builders of the target system, so these systems have to be either modified [2, 3, 4, 5, 6] or adapted to provide this required functionality. Modifying these components may not be always practically possible. In this thesis, we propose an infrastructure that supports the active interface adaptation technique [3, 8, 9, 10]. This infrastructure directly addresses the problem of effectively packaging components for third-party use, adaptation, and deployment. Doing so we support both component designers and third party application builders. Further we evaluate our approach using several adaptations over the case studies.
|
3 |
Automating Component-Based System AssemblySubramanian, Gayatri 23 May 2006 (has links)
Owing to advancements in component re-use technology, component-based software development (CBSD) has come a long way in developing complex
commercial software systems while reducing software development time and cost. However, assembling distributed resource-constrained and
safety-critical systems using current assembly techniques is a challenge. Within complex systems when there are numerous ways to assemble the components unless the software architecture clearly defines how the components should be composed, determining the correct assembly that satisfies the system assembly constraints is
difficult. Component technologies like CORBA and .NET do a very good job of integrating components, but they do not automate component assembly; it is the system developer's responsibility to ensure thatthe components are assembled correctly.
In this thesis, we first define a component-based system assembly (CBSA) technique called "Constrained Component Assembly
Technique" (CCAT), which is useful when the system has complex assembly constraints and the system architecture specifies component composition as assembly constraints. The technique poses the question: Does there exist a way of assembling the components that satisfies all
the connection, performance, reliability, and safety constraints of the system, while optimizing the objective constraint?
To implement CCAT, we present a powerful framework called "CoBaSA". The CoBaSA framework includes an expressive language for declaratively describing component functional and extra-functional properties, component interfaces, system-level and component-level connection, performance, reliability, safety, and optimization constraints. To perform CBSA, we first write a program (in the CoBaSA language) describing the CBSA specifications and constraints, and then an interpreter translates the CBSA program into
a satisfiability and optimization problem. Solving the generated satisfiability and optimization problem is equivalent to answering the question posed by CCAT. If a satisfiable solution is found, we deduce that the system can be assembled without violating any constraints.
Since CCAT and CoBaSA provide a mechanism for assembling systems that have complex assembly constraints, they can be utilized in several
industries like the avionics industry. We demonstrate the merits of CoBaSA by assembling an actual avionic system that could be used on-board a Boeing aircraft. The empirical evaluation shows that our approach is promising and can scale to handle complex industrial problems.
|
Page generated in 0.1128 seconds