





Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of Component-Based Software Design (CBSD), its importance, and the various phases and technologies involved. CBSD is a technique used to design software applications by assembling pre-approved components. components, their characteristics, component technologies, and the life cycle of CBSD. It also discusses the role of CBSD in handling complexity and reusability, and the challenges in integrating and maintaining components.
Typology: Assignments
1 / 9
This page cannot be seen from the preview
Don't miss anything!






CBSD= Component based software design/development
certify the quality of component so that component possess all characteristics. Quality of components have few characteristics which are defined here: 1) Maintainability: 2) Usability; 3) Interface; 4) Testability; 5); Functionality 6) Reliability [2]. III. OVERVIEW OF COMPONENT TECHNOLOGIES Software productions continue applying CB software design which can make profit for them by reducing time and giving quality product by using of available and off-the- shelf components, This approach can handle complex projects if used with strategy [1]. Among the component infra structure few technologies which are being used and now are known somewhat standardized are discussed below : a. COM and DCOM Component object model is an abbreviated with COM generally. while other is distributed component object model. This is a common architecture generally used for component-based software. It is based on window and window NT runs for language-independent and platform- dependent, for component- based applications. It defines the interaction between components for their customers. Client can directly connect to COM, it defines a binary standard which is used to interact and make sure it dynamically interoperable [2] [14]. DCOM is extension of COM and this protocol enables client to directly communicate over network in secure, reliable and efficient manners. It is designed to use for cross networks like http to transport data [2]. b. CORBA CORBA stands for Common Object Request Broker Architecture, this commonly and repeatedly used in object-oriented technology because it has consistent run time environment and programming language over common operating system, programming languages and distributed systems. An open source well known standard though OMG for application interoperability and which is being maintained through same company. It manages details of interoperability of components, also it can permit applications to communicate regardless of designers and locations. Object request broker is central in CROBA which handles client-server communication between components. Client can invoke a function call using ORB Object on server whose location is completely crystal clear [10] [14]. c. Java Platform Java provides portability, efficient security and provides portable java bytecodes and provides reliable and unreliable Java Applets. Moreover, its features/functions are inherited in all JAVA based Applications [12]. d. Sun’s Component Model based on JAVA Platform independency feature of java has enabled us to widespread used in business applications. Adding more to it, capability of java standard classes to load energetically has made very famous to use in Server-side development. Java is interop ratable across multi vendors servers and provides security. These component model comprises of JavaBeans and EJB. Both of abovementioned inherit all strengths of Java including security and portability in the field of component-based development [10] [12]. e. JavaBeans This component technology based on JAVA by mission statement “code once, deploy anywhere, reuse all over the place.” It is implemented to build reusable and portable user side not server-side components of Web-based large and complex enterprise applications. This component belongs to special type of Java classes which can be modified, created, assembled and reused, into new feature enterprise applications [10] [12]. f. JavaBeans versus ActiveX ActiveX is a Microsoft based component technology. Above-mentioned both are designed for Web based applications. This is platform-independent with language dependent (Java-based) But ActiveX is Windows platform dependent and language-independent. This dependency on Platform is weakness of ActiveX in internet-based applications [10] [12]. g. Enterprise JavaBeans (EJB) Another extension of server side in javabeans which based on component model. this is a dedicated component of javabeans as non-visual which runs server side and controlled centrally. Like JavaBeans, its components can be accumulated together with other beans to produce new application’s. Its class can be customized, enhanced, and operated with property of table and build in customization method. EJB provides development model for server side and variety of multi-tier logics for complex and large enterprise-based applications. Its components are mostly suitable in database, application and transaction servers [10] [12]. More EJB components: Enterprise JavaBeans Server EJB Container EJB Interfaces EJB Types Developing large Web-based or enterprise applications using EIB is meaningfully much easier comparing to other component technologies like CORBA and DCOM.
In CBSE life cycle various phases which are used to design the software. It has slightly different working than Traditional life cycles like waterfall modal. It uses to build form pre-build components. Main focus of this to reuse already developed components [7]. Most of the methods, techniques, approaches and values of software requirement engineering can be utilized for similar purpose like types of web based but there with single difference, CBSD protections both system composition and component development with components. [5]. A component is well detailed, sufficiently general, easy to understand, deliver, adapt, replace or deploy [5]. Software development life cycle (SDLC) are recommended with many variations. It is suitable to check for different models in depth and highlight weakness and strengths before we proceed for next one. However, waterfall is being used for long time in software engineers. The spiral model was also planned for fast software development using prototyping. The fountain model provisions iterative and incremental software design, which happen throughout the creation of OOP software. However, one of the main deficiencies of above models is reusability factor, none of them have defined it in any of phase. Therefore, a CB software design model is required to be in market to promote usability [1]. A. Requirements analysis for component The services of systems, constraints and their aims are established (such as specification what the system to do). In the process of Component requirement analysis main focus is of finding, documenting, validating & managing and understanding the requirement about component. The objective of this phase is to produce the complete, accurate, consistent, applicable, and requirements that a component should comprehend [7] [2]. Choose the components those are according to requirements of the system. However, sometimes we need o tradeoff our analysis when requirements are not clearly stated to adjust the system architecture by reformulating the requirements so that it can be used for component [5]. However, procurement and gathering or requirements can be a problem on designing the component when COTS selection is combined with requirements [12]. Obtaining requirements is mandatory before selecting a COTS because early section of components can cause the problem of not meeting to requirements exactly [5]. Requirement gathering Requirement analysis Component modeling Requirement validation Data dictionary System maintenance Initiators (customer, users, managers) Component development Requirement document tempalte Figure 2 : Requirement overview and analysis process B. Software architecture construction, evaluation ,analysis, and selection In the process of system architecture design selecting, assessing and producing software architecture of a CB system. The purpose of this phase is to gather the client requirement, select appropriate system architecture, identify the system specification, and control the operation details such as programming languages, platform, etc. This purpose of this phase to select best architecture between available architecture. Diagram of this process overview is showing in figure 3 with input and output. This phase main purpose is to design system architecture , collecting requirements according to system specifications. This stage will output the system requirement for the next system testing stage and system specification document for integration, additionally maintenance stage [2]. The development of component is process of developing and implement the requirements for a working with distinct component functions with the multiple interface. The objective of component development System are the final component Items with development of document [7]. Requirement gathering Requirement analysis System Architecture design System specification System Testing Initiators System Integration Requirement document tempalte System maintenance
assess the system to approve that system contents the all listed requirements and also identifies the risk and defects and correct them before implementation [7] [2]. The purpose of system testing is to make ready a whole a system as final system using selected components against requirements specified in earlier phases. System testing should comprise functional testing and consistency testing. This stage functions and process are explained in details in Figure 7. This stage details out the selecting system testing, strategy testing, user acceptance (UA) testing, and completion events. The input should be the documents from integration od system phases. And component development, testing document will be output for system maintenance [2]. Testing strategy System testing User Acceptance Test Test Completion Activities System Integration System Maintenance (Previous software life cycle) System maintenance Component Development Figure 7 : System Testing G. System Maintenance The phase is after delivery of product and service and preserve the activities required to use the software efficiently after it transported to the user. The purpose of maintenance of system to deliver the services to client while it correcting defects or enhance the software performance or to extend features of components [7] [2]. There must be a maintenance team for every software item to provide technical support in case of changes required. When changes are required and reported to development team these must reimplemented by support strategy and casemented. Out put of this phase will be new version after completing and implementing changes or amendments or it can be bug fixes. This process diagram is as shown in Figure 8 Support strategy Problem Management System Maintenance All Previous Phases System Testing Figure 8 : System Maintenance V. FUTURE OF CBSD It is well known that CBSD and CBSE are in their introductory phase, its recognized as new approach but very powerful due to reusability because it has change revolutionary development environment. We can expect that these two services of CBSD and CBSE both will be used by non-programmers for building software applications. For building such application tools must be built to make this process easy enough for non-programmers. We can see another update on in internet that domain specific component is already available today for standardization. Standardization in domain specific requires special standard processes. CBSE/CBSD facing many challenges today and I have mentioned below few of them [5]: Trusted components-component development is in not in control of component users in rising trend so trustworthiness is main question and great importance for component users. Trustworthiness meaning can be defined as reliability a robustness but it’s not yet standard to all users Component certification- another classification of component is their certification and it can be defined as trustworthiness. This can give test results and environment in which these tests were performed. However, for component this certification is yet not standardized in software development. Composition predictability- once we know the general attributes of components but we are not sure these attributes will remain same after integration to main system. The ideal situation for composition is still question for research. And it needs lot of work in this field. Selection and management of requirements- This is a complex process. There can be problem in requirements is incomplete, contradictory and imprecise. So main objective is to select a component which satisfies requirements for which it is going to be implemented. Management of component-based system for long term - as there are sub systems and all have
independent life cycle so problem can be in evolution the system. There are many issues i-e administrative, technical issues and legal issues. Tool support- visual basic is yet very successful tool but another is yet to be successful. This can be problem if tools are not well structured in components repository, evaluation tools and selection tools. Component configurations- large and complex systems contains many components and their configuration is very difficult while composition Component development models- models are yet not powerful in this process so it needs lot of work. And these models requires standardization process to be more effective. There are many other issues and challenges to component based being faced today. The goal is to standardize and formalize all disciplines activities being supporting in CBSD. The success of CBSD depends on more research and implementation of CBSE [5]. VI. CONCLUSION In This paper we described about component specification and life cycle development model with all phases in details. We have detailed out different definitions and terms being used for components specifically. We discussed different component technologies and their characteristics. We discussed all phases of life cycle and described how component can be developed and customized. After this we discussed how to integrate the component and verify the width requirements to make sure its functionality. We have discussed in details about component technologies like Corba, Com, Dcom, JAVA , EJB and other technologies. This approach of CBSD requires new form of education to software designer. The main focus should be on how o evaluates components and select for best use in terms of cost and integrity of functionality. Further research is required to handle challenges of component handling, and how to overcome disadvantages of component-based development. I have discussed future work of which is required in in this development work. I have discussed also the various issues and challenges to this new technology which needs more research and work. Furthermore, CBSD needs lot of standard procedures and polies be more productive and useful for all types of users.
[1] Miriam A. M. Capretz, Luiz Fernando Capretz, Dahai Li, “Component-Based Software Development,” University of Western Ontario 1201 Western Road London, N6G 1 H1, CANADA. [2] Kam-Fai Wong, Michael R. Lyu, Roy Ko, Xia Cai, “Component- Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes” The Chinese University of Hong Kong. [3] Ning Dong and Stephen S. Yau, “Integration in Component-Based Software Development Using Design Patterns” Arizona State University Tempe, AZ 85287, USA [4] Wolfgang Pree, “Component-Based Software Development-A New Paradigm in Software Engineering?” Universitatsstr. 10 D- Constance, Germany. [5] Ivica Crnkovic “Component-based Software Engineering — New Challenges in Software Developmen” Mälardalen University Department of Computer Engineering Västerås, Sweden. [6] Padmal Vitharana “RISKS AND CHALLENGES OF COMPONENT-BASED SOFTWARE DEVELOPMEN” [7] Gaurav Sethi, Dr. Andhe Dharani , Ashwini V. Patil “Survey on Component-Based Software Development System” R.V. College of Engineering, Bangalore. [8] Dr. Gilda Pour “Moving toward Component-Based Software Development Approach” San Jose State University, San Jose, CA 95 172-0180, U.S.A [9] Sherif M. Yacoub, any H. Ammar and Bojan Cukic, “A Component- Based Approach to Reliability Analysis of Distributed Systems1” West Virginia University, Morgantown. [10] Gilda Pour, Ph.D. “Enterprise JavaBeans, JavaBeans & XML Expanding the Possibilities for Web-Based Enterprise Application Development” San Jose State University San Jose, CA, U.S.A [11] Microsoft,COM+,httv:~lwww.microsoft.com/com/tech/co mvlus.asp, (July 2001). [12] Sun website ht “www. i ava. sun.com.” (July 2001). [13] IBM website “htt://www.so~are.ibm.com/” [14] OMG website for CORBA, htto://www.oma.org, [15] Matena V, Stearns B. Applying Enterprise JavaBeans(TM): Component-Based Development for the J2EE(TM) Platform. Addison-Wesley, 2000. [16] Daniels J. Cheesman J, UML Components — a Simple Process for Specifying Component-Based Software. Addison-Wesley, 2001. [17] Bosch J. Design & Use of Software Architecture. Addison Wesley,
[18] Ncube C , Maiden N “Acquiring Requirements for Commercial Off- The Shelf Package Selection” IEEE Software 1998; 15(2). [19] Crnkovic I , Larsson M. “New challenges for configuration Management, Proceedings of 9th Symposium on System Configuration Management,” Lecture Notes in Computer Science, Springer, 1999. [20] [22] S.M.Yacoub, H.H.Ammar, B. Cukic, “A Scenario-Based Reliability Analysis of Component-Based Software,” Proceedings 10th International Symposium on Software Reliability Engineering, 1999, pp. 22 -31. [23] B. Xia, S.S.Yau, “Object-Oriented Distributed Component Software Development based on CORBA,” Proceedings of COMPSAC’98. The Twenty-Second Annual International, 1998, pp. 246-25 1.