Carol L. Hoover
Carnegie Mellon University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Carol L. Hoover.
International Journal of Reliability, Quality and Safety Engineering | 2001
Carol L. Hoover; Jeffery P. Hansen; Philip Koopman; Sandeep Tamboli
System resource management for high-assurance applications such as the command and control of a battle group is a complex problem. These applications often require guaranteed computing services that must satisfy both hard and soft deadlines. Over time, their resource demands can also vary significantly with bursts of high activity amidst periods of inactivity. A traditional solution has been to dedicate resources to critical application tasks and to share resources among non-critical tasks. With the increasing complexity of high-assurance applications and the need to reduce system costs, dedicating resources is not a satisfactory solution. The Amaranth Project at Carnegie Mellon is researching and developing a framework for allocating shared resources to support multiple quality of service (QoS) dimensions and to provide probabilistic assurances of service. This paper is an overview of the Amaranth framework for policy-based QoS management, the current results from applying the framework, and the future research directions for the Amaranth project.
high-assurance systems engineering | 1999
Carol L. Hoover; Jeffery P. Hansen; Philip Koopman; Sandeep Tamboli
System resource management for high-assurance applications such as the command and control of a battle group is a complex problem. These applications often require guaranteed computing services that must satisfy both hard and soft deadlines. In addition, their resource demands can vary significantly over time with bursts of high activity amidst periods of inactivity. A traditional solution has been to dedicate resources to critical application tasks and to share resources among noncritical tasks. With the increasing complexity of high-assurance applications and the need to reduce system costs, dedicating resources is not a satisfactory solution. The Amaranth Project at Carnegie Mellon is researching and developing a framework for allocating shared resources to support multiple quality of service (QoS) dimensions and to provide probabilistic assurances of service. This paper is an overview of the Amaranth framework, the current results from applying the framework, and the future research directions for the Amaranth project.
workshop on object-oriented real-time dependable systems | 1996
Carol L. Hoover; Pradeep K. Khosla
We present an analytical method for incorporating knowledge about change into the design of reusable real time software components. We apply this method to the construction of algorithmic software solutions that minimize the effect of anticipated changes in the solution. The motivation for our research is based on two premises: software solutions that can easily be adapted to changes in the problem and solution domains are more readily reused; and the reuse of reliable software promotes the construction of high quality software systems and reduces development costs. The paper also briefly overviews our current research goals involving analysis and design methods to enable software engineers to rapidly adapt their real time software solutions to changing application requirements.
Proceedings of 9th Conference on Software Engineering Education | 1996
Carol L. Hoover; Mary Shaw; Nancy R. Mead
There is an increasing demand for domain specific software. For example, the software to control a machine on a factory floor is different in significant ways from the software to manipulate large databases. The software engineer building real time systems software to control a motor that powers a piece of machinery needs some understanding of the motors servo system; whereas a software engineer who designs the software to manage large databases for the NASA Space Station needs specific knowledge about database models as well as the types of data handled on a long term space vehicle. Specialization tracks within the Master of Software Engineering (MSE) Program at Carnegie Mellon University enable students to gain application domain knowledge while developing fundamental software engineering skills. The MSE Program currently offers specialization tracks in real time computing, human computer interaction (HCI), and business. The paper overviews these tracks.
International Journal of Software Engineering and Knowledge Engineering | 1999
Carol L. Hoover; Pradeep K. Khosla
Transforming software requirements into a software design involves the iterative partition of a solution into software components. The process is human-intensive and does not guarantee that design objectives such as reusability, evolvability, and reliable performance are satisfied. The costly process of designing, building, and modifying high-assurance systems motivates the need for precise methods and tools to generate designs whose corresponding implementations are reusable, evolvable, and reliable. This paper demonstrates an analytical approach for partitioning basic elements of a software solution into reusable and evolvable software components. First, we briefly overview the role of partitioning in current design methods and explain why computer-aided design (CAD) tools to automate the design of microelectromechanical systems (MEMS) are high-assurance applications. Then we present our approach and apply it to the design of CAD software to layout an optimized design of a MEMS accelerometer to be used in the navigational units of aircraft. Lastly, we discuss the implications of our approach and future research directions.
Annals of Software Engineering | 1999
Carol L. Hoover
Software is pervasive: it exists in many different types of applications and involves a variety of computer technologies. Representative applications that exemplify this diversity include aircraft control, video conferencing, Internet commerce, and computer-based tutors. There is a corresponding increase in demand for technical professionals with advanced software engineering skills and with expertise in developing specific applications or in applying specific technologies. A graduate curriculum that enables the student to acquire application-specific or technology-specific knowledge and skills while studying software engineering can help to supply this demand. Some graduate programs include electives that the student can use to specialize in technology-specific areas. Few programs offer students a systematic way to integrate their software engineering education with their development of application-specific knowledge and skills. This article discusses the TAP-D model for incorporating specialization tracks into a software engineering curriculum. The author discusses how this model was applied to the development of the “Real-Time Specialization Track” in the Master of Software Engineering Program at Carnegie Mellon University.
sei conference on software engineering education | 1995
Carol L. Hoover
A noteworthy feature of the computing industry is the increasing demand for application-specific software. For example, software to control a factory in real-time involves timing, fault-tolerance, and safety constraints. These requirements differ from those one would encounter in the design of a software interface to a database. Software engineers who architect real-time systems need to know how to apply basic principles about real-time computing, but there is a gap between real-time computing theory and industrial engineering practice. The subject of this report is a full-semester course, Introduction to Real-Time Software and Systems, which bridges this gap by focusing on the role of the software engineer in real-time software development. This course shows how real-time computing theory can be incorporated into software engineering practice. The report describes the rationale, structure, and content of the course. It also relates the authors experiences in teaching the course.
Proceedings 1999 IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. ASSET'99 (Cat. No.PR00122) | 1999
Carol L. Hoover; Pradeep K. Khosla; Daniel P. Siewiorek
Transforming software requirements into a software design involves the iterative partition of a solution into software components. The partition process starts with the identification of basic high-level design components and concludes with the definition of low-level design elements such as modules, packages, and library specifications. The process is human-intensive and does not guarantee that design objectives such as reusability, evolvability, and adaptable performance are satisfied. This paper overviews our analytical approach for partitioning basic elements of a software solution into reusable and evolvable software components. We discuss the process of generating basic components for an embedded control application using a representative object-oriented design technique. Then we outline our analytical approach and demonstrate its application to a class of search techniques which can be embedded into applications requiring polynomial-time search of a solution-space. Lastly, we discuss future research directions.
high assurance systems engineering | 1998
Carol L. Hoover; Pradeep K. Khosla
Transforming software requirements into a software design involves the iterative partition of a solution into software components. The process is human-intensive and does not guarantee that design objectives such as reusability, evolvability, and reliable performance are satisfied. The costly process of designing, building, and modifying high assurance systems motivates the need for precise methods and tools to generate designs whose corresponding implementations are reusable, evolvable, and reliable. We demonstrate an analytical approach for partitioning basic elements of a software solution into reusable and evolvable software components. First, we briefly overview the role of partitioning in current design methods and explain why computer-aided design (CAD) tools to automate the design of microelectromechanical systems (MEIMS) are high assurance applications. Then we present our approach and apply it to the design of CAD software to layout an optimized design of a MEMS accelerometer to be used in the navigational units of aircraft. Lastly, we discuss the implications of our approach and future research directions.
Archive | 1993
Carol L. Hoover