Learn More
Component-based development (CBD) technique for software has emerged to fulfill the demand on the reuse of existing artifacts. In comparison to traditional object-oriented techniques, CBD can provide more advanced abstraction concepts such as subsystem-level reusability, gross structure abstraction, and global control flow abstraction. Unfortunately,(More)
SUMMARY Roles and role models have received much attention as useful concepts for developing highly reusable and dynamically evolvable systems. Role models belong to the category of collaboration-based development techniques, but most of the existing approaches to role models do not explicitly incorporate the core principle of collaboration-based(More)
Software often needs to be modified for accommodating requirements changes through the software life cycle. To deal with several accidental requirements changes related to software maintenance, a systematic and safe approach to modifying softwares is needed. The design patterns provide a high degree of design flexibility for such accidental requirements(More)
Software maintenance is a very expensive activity in software life cycle. As in conventional systems, Web-based applications also needs a considerable cost of maintenance efforts and in general the more cost because of their inherent complex architecture. To estimate the maintainability cost of software, many software metrics have been proposed. This paper(More)
Interoperability and reusability are major issues in large-scale software system development. Military applications , one of such large scale software systems, have utilized the Common Operating Environment (COE) for the last decade. The COE reduces duplicated development effort and enhances the reusability/interoperability by providing standardized(More)
While software development techniques for identifying specifying , and analyzing functional requirements of software systems are quite mature, existing traditional design methods are not mature enough to capture non-functional requirements such as concurrency, performance, fault tolerance, distribution, and persistence of a software application. Very(More)