Component-Based Software Engineering(CBSE) Xingui Tang CS532, Fall /6/2015
Content Introduction Component Software component Component-based Software engineering Component-based software construction Typical CBD Process Model Introducing and Establishing CBSE from an Organizational View Three phases Requirements Pros and cons of CBSE Conclusion Reference
Introduction Component
Introduction ----Cont. Component A component is a nontrivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture. It conforms to and provides the physical realization of a set of interfaces. --- Philippe Krutchen
Introduction ----Cont. Software component Definition A software component is a unit of composition with contractually specified interfaces and context dependencies only. It can be deployed independently and is subject to composition by third parties. ---Clement Szyperski A software component is a software element that confirms to a component model and can be independently deployed and composed without modification according to a composition standard. ---Bill Councill and George T. Herneman
Introduction ----Cont. Software component Feature Identity Modularity and encapsulation Contact-based interface Independent deliverability Reusability Interoperability Deployability
Introduction ----Cont. Component-based Software engineering Definition Component-based Software engineering denotes the process of building the software by (re)using pre-built software components thus basing on the meaning of software components. CBSE is also referred to as component based software development (CBSD) or component- based development (CBD).
Introduction ----Cont. Component-based Software engineering Why need it software exists problems SW is late SW is buggy SW is expensive SW is difficult to understand SW is difficult to maintain CBSE can solve the problems Focuses on reuse of subsystem and infrastructure
Component-based software construction Type 1
Component-based software construction ----Cont. Type 2
Component-based software construction ----Cont. Type 3
Typical CBD Process Model
Introducing and Establishing CBSE from an Organizational View Three phases
Introducing and Establishing CBSE from an Organizational View ----Cont. Requirements CBSE approach must include reuse component selection component test requirements reconciliation CBSE must be supported by modeling formalisms and tools development tools
Pros and cons of CBSE Pros Increased Reliability Reduced Costs and Development time Promotes Software Reuse Reduced Maintenance Costs Cons Lack of world wide standards Lake of flexibility in the system design Hard to meet the demands of high reliability and availability Requires skilled people
Conclusion Promising Challenging
Reference: D’Souza, D. F., and Alan C. Wills "Objects, Components, and Frameworks with UML the Catalysis Approach”, ISBN Addison-Wesley, 1998 Philippe Kruchten, “modeling component systems with the unified modeling language”, a position paper for icse’98 workshop Kyo C. Kang, “Issues in component based software engineering”, 1999 international workshop on component based software engineering. Guido Schryen, “Component-based Software engineering(CBSE) from an organizational point of view” Ivica Crnkovic, “Introduction to Component-based Software engineering” G.T. Heineman, W. Councill, “CBSE putting the Pieces Together” Peter Herzum, Oliver Sims, “A Comprehensive Overview of Component-Based Development for the Enterprise” Ivica Crnkovic, Magnus Larsson, “Overview Component-based Software engineering State of the art Report” Lim Wayne, “Managing software reuse – a comprehensive guide to trategically reengineering the organization for reusable components”, PrenticeHall Jacobson Ivar, Griss Martin, Johnsson Patrick, “Software Reuse – Architecture, Process and Organization for Business Success”, ACM Press Sametinger, Johannes, “Software engineering with reusable components”, Springer CBSE track
Any questions? Thanks!