ABSTRACT
One of the major challenges in the development of large component-based software systems is the system assembly problem: from a sea of available components, which should be selected and how should they be connected, integrated, and assembled so that the overall system requirements are satisfied? We present a powerful framework for automatically solving the system assembly problem directly from system requirements. Our framework includes an expressive language for declaratively describing system-level requirements, including component interfaces and dependencies, resource requirements, safety properties, objective functions, and various types of constraints. We show how to automatically solve system assembly problems using verification technology that takes advantage of current advances in Boolean satisfiability methods. We have implemented our techniques in the CoBaSA tool (Component-Based System Assembly), and we have successfully applied it to several large-scale industrial examples.
- C. A. 651. Arinc report 651, draft 9. Technical Report 91-207/SAI-435, Airlines Electronic Engineering Committee, September 1991.Google Scholar
- F. Aloul, A. Ramani, I. Markov, and K. Sakallah. PBS: A backtrack search pseudo-boolean solver. In Symposium on the Theory and Applications of Satisfiability Testing (SAT), 2002.Google Scholar
- T. Asikainen, T. Männistö, and T. Soininen. Using a configurator for modelling and configuring software product lines based on feature models. In Workshop on Software Variability Management for Product Derivation, Software Product Line Conference (SPLC3), 2004.Google Scholar
- L. Bass, P. Clements, and R. Kazman. Software Architecture in Practice. Addison-Wesley, 1998. Google ScholarDigital Library
- D. Batory and B. J. Geraci. Composition validation and subjectivity in GenVoca generators. IEEE Transactions on Software Engineering (IEEE TSE), pages 67--82, 1997. Google ScholarDigital Library
- D. Batory and S. O'Malley. The design and implementation of hierarchical software systems with reusable components. ACM Trans. Softw. Eng. Methodol., Volume 1(4):355--398, 1992. Google ScholarDigital Library
- D. Batory, V. Singhal, J. Thomas, S. Dasari, B. Geraci, and M. Sirkin. The GenVoca model of software-system generators. Software, IEEE, Volume 11:89--94, Sep 1994. Google ScholarDigital Library
- D. S. Batory. Feature models, grammars, and propositional formulas. In Software Product Lines, SPLC 2005, volume 3714 of Lecture Notes in Computer Science, pages 7--20. Springer, 2005. Google ScholarDigital Library
- D. Benavides, P. T. Martín-Arroyo, and A. R. Cortés. Automated reasoning on feature models. In CAiSE, volume 3520 of Lecture Notes in Computer Science, pages 491--503. Springer, 2005. Google ScholarDigital Library
- A. Bertolino and R. Mirandola. Modeling and analysis of non-functional properties in component-based systems. In TACoS 2003: Proc. International Workshop on Test and Analysis of Component Based Systems, volume 82 of Electronic Notes in Theoretical Computer Science, April 2003.Google Scholar
- F. Cao, B. R. Bryant, C. C. Burt, R. R. Raje, A. M. Olson, and M. Auguston. A component assembly approach based on aspect-oriented generative domain modeling. Electronic Notes in Theoretical Computer Google ScholarDigital Library
- J. Cheesman and J. Daniels. UML Components: A Simple Process for Specifying Component-Based Software. Addison-Wesley, 2000. Google ScholarDigital Library
- I. Crnkovic. Component-based software engineering - new challenges in software development. Software Focus, December 2001.Google ScholarCross Ref
- I. Crnkovic and M. Larsson. Building Reliable Component-Based Software Systems. Artech House publisher, 2002. Google ScholarDigital Library
- I. Crnkovic, H. Schmidt, J. Stafford, and K. Wallnau. Automated component-based software engineering. Journal of Systems and Software, 74(1), January 2005. Google ScholarDigital Library
- G. T. Heineman and W. T. Councill. Component Based Software Engineering: Putting the Pieces Together. Addison-Wesley, 2001. Google ScholarDigital Library
- P. Inverardi and M. Tivoli. Software architecture for correct components assembly. Lecture Notes in Computer Science, Volume 2804, Nov 2003.Google Scholar
- S. Lacour, C. Perez, and T. Priol. A software architecture for automatic deployment of CORBA components using grid technologies. In In Proceedings of the 1st Franco-phone Conference On Software Deployment and (Re)Configuration (DECOR 2004), Oct. 2004.Google Scholar
- F. Martin and C. Fraboul. Modeling and simulation of integrated modular avionics. In Proceedings of the Sixth Euromicro Workshop on Parallel and Distributed Processing, 1998. PDP '98., pages 102--110, 1998.Google Scholar
- N. Medvidovic and R. N. Taylor. A classification and comparison framework for software architecture description languages. IEEE Trans. Software Eng., 26(1):70--93, 2000. Google ScholarDigital Library
- M. Mikic-Rakic, S. Malek, N. Beckman, and N. Medvidovic. A tailorable environment for assessing the quality of deployment architectures in highly distributed settings. In Component Deployment, Second International Working Conference, CD 2004, volume 3083 of Lecture Notes in Computer Science, pages 1--17. Springer, 2004.Google Scholar
- S. Mittal and F. Frayman. Towards a generic model of configuraton tasks. In IJCAI, pages 1395--1401, 1989.Google Scholar
- Object Management Group (OMG). Response to the UML 2.0 OCL RfP Revised Submission, Version 1.6, 2003. http://www.omg.org/docs/ad/03-01-07.pdf.Google Scholar
- D. E. Perry and A. L. Wolf. Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes, Vol. 17(4):40--52, 1992. Google ScholarDigital Library
- P. J. Prisaznuk. Integrated modular avionics. In Proceedings of the IEEE 1992 National Aerospace and Electronics Conference (NAECON 1992), volume 1, pages 39--45, 1992.Google ScholarCross Ref
- Rational Partners, Object Management Group. UML Notation Guide, Sept. 1997. http://www.omg.org/docs/ad/97-08-04.pdf.Google Scholar
- Rational Partners, Object Management Group. UML Semantics, Sept. 1997. http://www.omg.org/docs/ad/97-08-04.pdf.Google Scholar
- M. A. Sánchez-Puebla and J. Carretero. A new approach for distributed computing in avionics systems. In ISICT '03: Proceedings of the 1st international symposium on Information and communication technologies, pages 579--584. Trinity College Dublin, 2003. Google ScholarDigital Library
- M. Shaw, R. DeLine, D. V. Klein, T. L. Ross, D. M. Young, and G. Zelesnik. Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering, Vol. 21(4):314--335, 1995. Google ScholarDigital Library
- T. Soininen, J. Tiihonen, T. Männistö, and R. Sulonen. Towards a general ontology of configuration. AI EDAM, 12(4):357--372, 1998. Google ScholarDigital Library
- C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2002. Google ScholarDigital Library
- K. Wallnau, S. Hissam, and R. Seacord. Building Systems from Commercial Components. SEI Series in Software Engineering. Addison-Wesley, 2002. Google ScholarDigital Library
- K. Wallnau, J. Stafford, S. Hissam, and M. Klein. On the relationship of software architecture to software component technology. In Proceedings of the 6th ECOOP Workshop on Component-Oriented Programming, 2001. Google ScholarDigital Library
- R. Warrilow. The avionics platform, 2004. See URL www.smiths-aerospace.com/Press/TechPapers/.Google Scholar
- L. Zhang and S. Malik. The quest for efficient boolean satisfiability solvers. In 18th International Conference on Automated Deduction, CADE'02, pages 295--313, 2002. Science, Volume 114:119--136, 2005. Google ScholarDigital Library
Index Terms
- Automating component-based system assembly
Recommendations
A new algorithm in assembly for component-based software using dependency chart
Component-Based Software Development (CBSD) promises to reduce development cost and time by enabling rapid development of highly flexible and easily maintainable software modules. CBSD is based on the idea that software systems can be developed by ...
Improvement of component selection process using Genetic Algorithm for Component-Based Software Development
Modern information systems are becoming more expensive to build and maintain. Software development management and software quality goals are necessary, but not sufficient for the needs of today's marketplace. Shorter cycle time, completed with fewer ...
A component-based software configuration management model and its supporting system
AbstractSoftware configuration management (SCM) is an important key technology in software development. Component-based software development (CBSD) is an emerging paradigm in software development. However, to apply CBSD effectively in real world practice, ...
Comments