220 likes | 464 Views
Presentation on Component Based Software Engineering. Presented by: Richard Akono Burak Çamdereli Yousef Al Sharma Volkan Ozdamar Eastern Mediterranean University. Overview . Introduction What is Component Component characteristics Fundamental Principals
E N D
Presentation on Component Based Software Engineering Presented by: Richard Akono Burak Çamdereli Yousef Al Sharma Volkan Ozdamar Eastern Mediterranean University
Overview • Introduction • What is Component • Component characteristics • Fundamental Principals • Terms & Attributes used in Software Component Model • Component Based Software Development • Life Cycle in CBSD • Metric used in CBSD • Benefits in CBSD • Difficulties in CBSD • CBSE vs. Traditional SE • Current Component Technologies • Applications • Conclusion
Introduction • CBSE embodies the “the ‘buy, don’t build’philosophy". • Because of the extensive uses of components, the Component- Based Software Engineering (CBSE) process is quite different from that of the traditional waterfall approach. • It emphasizes on developing new software from pre-built components.
What is Component • A component is an independent software unit that can be composed with other components to create a software system. • Council and Heineman define a component as: • “ A software element that conforms to a component model and can be independently deployed and composed without modification accordingly to a composition standard”
Component Characteristics • Independent: A component should be independent • Composable: It means that all external interactions must take place through publicly defined interfaces. • Deployable: A component has to be self-contained and must be able to operate as a stand-alone entity
Fundamental Principals • Independent Software Development: • Large software systems are necessarily assembled from components developed by different people. • To facilitate independent development, it is essential to decouple developers and users of components. • Reusability: • Some parts of a large system will necessarily be special-purpose software, it is essential to design and assemble pre-existing components in developing new components. • Software quality: • A component or system needs to be shown to have desired behavior, either through logical reasoning, tracing or testing.
Terms & Attributes used in Software Component Model • Syntax: It refers to the ‘grammar’ or the rules followed in the code as per the specific programming language. • Semantics: It refers to the actual meaning and view of the components. A component is associated with a name, an interface and the body that includes the code. • Composition: This relates to the construction and working together of components.
Component Based Software Development • Component-based software development(CBSD) approach is based on the idea to develop software systems by selecting appropriate off-the-shelf components and then to assemble them with a well-defined software architecture. • The term component-based software development (CBD) can be referred to as the process for building a system using components.
Life Cycle in Component-Based Development • Requirements analysis • Software architecture selection, construction, analysis, and evaluation • Component identification and customization • System integration • System testing • Software maintenance
Phases of Component development • System requirements • Design the component • Develop the component • Testing • Functional or Black Box Testing, • Structural or White Box Testing
Metric used in CBSD • Software metrics are intended to measure • software quality and performance • characteristics quantitatively encountered during the planning and execution of software development resource • and effort allocation, scheduling and product evaluation. • These can serve as measures of software products for the purpose of • comparison, • cost estimation, • fault prediction and • forecasting.
Metric used in CBSD cont… • Poulin presented a set of metrics used by IBM to estimate the efforts saved by reuse. • Reuse Percentage measures how much of the product can be attributed to reuse and is given as:- • Product Reuse Percentage = (RSI / (RSI + SSI)) * 100% • Where • SSI= Shipped Source Instructions • RSI= Reused Source Instructions
Metric used in CBSD cont… • The second approach is a metric called Component Reusability level (CRL) to measure particular component’s reuse level per application in a CBSD. • This metric is again divided into two sub-metrics. First is CRLLOC, which is measured by using lines of code, and is expressed as percentage as given as:- • CRL LOC ( C ) = (Reuse ( C ) / Size ( C )) *100%
Benefits in CBSD • Management of Complexity • Reduce Development Time • Increased Productivity • Improved Quality • Reliability is increased since the components have previously been tested in various contexts • Maintenance costs are reduced. • Efficiency and flexibility is improved due to the fact that components can easier be added or replaced
Difficulties in CBSD • Development of Components • Quality of Components is questionable • Lack of effective software matrix • Component Maintenance Costs • Reliability and Sensitivity to changes • Unsatisfied Requirements
CBSE vs. Traditional SE • CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture. • SE seeks to create a system from scratch(building something without tools). • CBSE does not have any standard development models like UML for SE. • CBSE is young, therefore long term maintainability is largely unknown. • SE can fulfill requirements more easily. • CBSE fulfillment of requirements is based on the available components.
CBSE vs. Traditional SE-cont.. • CBSE Life Cycle is shorter. • CBSE is less expensive [3]
CORBA: Common Object Request Broker Architecture • COM: Component Object Model • IDL: Interface Description Language • EJB: Enterprise JavaBeans (Java APIs)
Applications • This emerging component development approach is being widely used in various distinct domains .
Conclusion • CBSD is an inevitable next wave solution that has potential to improve time-to-market and man power/cost trends that have been ongoing. • CBSD is best implemented using more modern software technologies like: • COM • JAVA • EJB • CORBA • ActiveX