Learn More
The goals of developing systems better, faster, and cheaper continue to drive software engineering practitioners and researchers to investigate software engineering methodologies. In requirements engineering, the focus has been on modeling the software engineering process and products for systems that are being built from scratch. As the size and complexity(More)
Just about everything changes, and so should a software system accordingly in order to survive and succeed. But how can we develop such a software system? Lately, a growing number of practitioners have shown great interests in using design patterns towards the development of an adaptable system, since design patterns represent high-level abstractions that(More)
The increasingly complex environments in which systems need to execute has lead to the need for tools and techniques to systematically design dynamically adaptable systems. A new framework for the design of these adaptive systems is proposed here. The framework, named SMART (State Model Adaptive Run Time), is based on the mathematics of control theory and(More)
As a security policy model evolves, the design of security systems using that model could become increasingly complicated. It is necessary to come up with an approach to guide the development, reuse and evolution of the design. In this paper, we propose an aspect-oriented design approach to designing flexible and extensible security systems. A case study(More)
Many critical application systems require reconfigurability in order to adapt under changing environment. To achieve system reconfigurability, it is possible to use adaptation mechanisms that are external to components or to use parameterized components. This paper focuses on making components reconfigurable in terms of QoS tradeoffs. We propose a new(More)
At the heart of a well-disciplined, systematic methodology that explicitly supports the use of commercial off-the-shelf (COTS) components is a clearly defined process for effectively using components that meet the needs of the system under development. In this paper, we present the CARE/SA approach that supports the iterative matching, ranking, and(More)
Component-based development (CBD) techniques have been widely used to enhance the productivity and reduce the cost for software systems development. However, applying CBD techniques to embedded software development faces additional challenges. For embedded systems, it is crucial to consider the quality of service (QoS) attributes, such as timeliness, memory(More)
The problem of effectively designing and analyzing software system to meet its non-functional requirements such as performance, security, and adaptability is critical to the system's success. The significant benefits of such work include detecting and removing defects earlier, reducing development time and cost while improving the quality. The Formal Design(More)
—The rapid growth of embedded systems urgently requires methods of improving the development process for these systems. Component-based development (CBD) techniques have been widely studied to enhance the productivity of developing complex applications. These techniques can benefit the software development process for embedded systems as well as other(More)