Software components are today the most promising approach to dealing with the complexity and uneven quality of software systems. The design-using-components paradigm has been extremely successful in almost every engineering field, with its benefits of rapid, routine, reliable system construction. The central dilemma of software design using components is that component developers cannot know how their components will be used and so cannot describe component properties for an unknown, arbitrary situation; but if the component customer (system designer) must determine relevant properties of each component before using it, component-based development loses much of its appeal. In technical terms, component behavior depends on the operational profile the component sees when in place in a larger system; in turn, that profile depends both on system usage and the internal structure of the system, neither of which can be known to the component developer.A solution to the dilemma is presented in a new theory of component-based design. The component developer performs measurements and provides a component description in such a way that the component buyer can later factor in usage information without repeating the measurements. The heart of the theory is a method of calculating how an operational profile is transformed by one component to be presented to the next component in a system.The theory originated in an investigation of system reliability to be calculated from component reliabilities. It then became apparent that similar methods applied to other system properties, such as its run time and its security properties. Each of these properties can be measured for components by conventional testing and these measurements enter into calculations of the composite system properties. The system designer does not construct or experiment with a trial system, but uses a CAD tool to make predictions of how the system will behave.Preliminary validation experiments support the theory.
We have experimented with the use of weekly on-line quizzes to enhance student learning in our first-year computer science courses. In our experiments we compared the effectiveness of using quizzes to the alternative of using weekly marked laboratory assignments. The results of our experiments show that student learning and retention increase with on-line quizzes. Weekly quizzes would be impossible if they were administered and marked in the traditional fashion; thus, we developed and used a secure, online environment for administering, writing, and marking the quizzes, with most of the marking performed automatically via simple marking programs. In this paper we describe our experiment, present our observations about student learning, outline student opinion, relate problems we encountered and our solutions, and provide technical details of our closed-quiz and marking environment.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.