tag:blogger.com,1999:blog-2359949979858824307.post1849681734729227223..comments2014-03-01T18:26:37.373-08:00Comments on Real Software Components & Real CBD for Software: Urging software researchers to discover real-CBSD and set the goal to achieve real-CBSD for large and complex software productsAnonymoushttp://www.blogger.com/profile/09834194277539725731noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-2359949979858824307.post-56261901374598706772014-02-02T05:22:15.977-08:002014-02-02T05:22:15.977-08:00
What is orange Juice? Any kind of juice extracted...<br />What is orange Juice? Any kind of juice extracted form Orange fruits. No other kind of juice extracted form any other kind of vegetable (e.g. carat, potato or brinjal) or forest fruit (tomato, dewberry or palm) can be Orange Juice. It is foolish to blindly define juice extracted from potato is a kind of Orange Juice, define juice extracted from tomato is another kind of Orange Juice and juice extracted from dewberry is yet another kind of Orange juice (without ever trying to discover what is an Orange fruit).<br /><br />What is CBD? Any kind of design that uses components for designing a product is CBD. The components are very special kind of parts having very unique and essential characteristics. That is each and every real component uniquely and universally shares certain characteristics. No other kind of part can be a component and using any other kind of part can’t be CBD. It is error to define any other kind of parts (either having useful properties or conform to a so called component model) is a kind of software components and it is error to define CBSD is using any kind of such so called components.<br /><br />Important conditions for real-CBD: (1) Cost of disassembling or reassembling must be less than 3% of the total cost of designing the product as hierarchy of replaceable components (i.e. CBD-structure), and designing and building all the components. (2) Each of the components in the CBD-structure can be redesigned and tested individually either in step-1 or step-3 of CBD-process. In case of software, any component can be redesigned and tested individually without touching or even seeing a single line of code implemented for any other component.<br /><br />For example, reusable modules such as each class for a GUI-component (e.g. line-chart, pie-chart or bar-chart) can be redesigned and tested individually without touching or even seeing a single line of code implemented for any other component. But such classes can neither achieve the 1st condition nor can be replaceable-components. Such reusable class is not self-contained, since it requires implementing substantial application logic to access/process application data for using the data to present a simple self-contained component. Such component is also not replaceable (i.e. can’t be disassembled as a unit), since it requires removing all this spaghetti application logic to effectively remove even a simple self-contained component.<br /><br />But each of the RSCC (replaceable self-contained component) in the CBD-structure could be more complex as illustrated in City_GIS application. For example, components such as City_GIS or City_Theaters comprise dozens of GUI-components, where each GUI-component is presented by implementing necessary application logic to access/process application data for using the data for initializing and configuring an object instance of respective GUI-class. The application logic for all the GUI-components implemented in a RCC (Replaceable Component-Class) for presenting in RSCC is generally implemented as a spaghetti code, so no single GUI-component is replaceable (i.e. can be disassembled as a unit to redesign and test individually).<br /><br />Since real-software-components are not yet known, today no other GUI-API is designed to encapsulate such large SCC (comprising multiple GUI-components) in a RCC, which is essential for achieving CBD-structure by building component hierarchies.<br /><br />Is it possible to extract Orange juice from any other kind of fruit or vegetable? Likewise, real-CBD requires using real-software-components. In case of physical products, we have only few kinds of parts, such as components and ingredient-parts (e.g. steel, silicon, alloys or plastic), since the physical parts are constrained by laws of nature and physical attributes (e.g. size, shape or weight). The software-parts have no such constraints, so it is possible to invent many kinds of parts, including very unique kind of parts that are logically equivalent to the physical functional-component (by having essential properties uniquely and universally shared by each and every physical component).Anonymoushttps://www.blogger.com/profile/09834194277539725731noreply@blogger.com