CSE298 CSE300 Overview of Presentation Reuse Background Reuse Background Development Process Development Process Component-Based Development Component-Based Development Component Management Component Management Select Products Select Products IDC Forecast IDC Forecast Future Research & References Future Research & References
CSE298 CSE300 Why Reuse? Increase software productivity Shorten software development time Improve software system interoperability Develop software with fewer people Move personel more easily from project to project Reduce software development and maintenance costs Produce more standardized software Produce better quality software Provide a powerful competitive advantage
CSE298 CSE300 Application Template Data Model Data Structure System Architecture Process Model Process Definition Prototype Plan Skeleton User Interface Skeleton/GUI Process Skeleton Utility Components Types of Reusable Components
CSE298 CSE300 Organizational perspective * shorten development time * reduce costs * increase competitiveness Personnel perspective * increase productivity Customer perspective * achieve greater user satisfaction through the production of more flexible products Reuse Benefits
CSE298 CSE300 TOP-DOWN: To determine what is needed to satisfy this need. BOTTOM-UP: To determine what is available to satisfy this need. OTHERS: Consider the similarity among concurrent projects. FUTURE: Consider the possibility of reusing in future projects. Development Process
CSE298 CSE300 What is CBD? CBD: Component-Based Development
CSE298 CSE300 Supplier /Consumer Model
CSE298 CSE300 ComponentsObjects Business oriented Technology oriented Coarse grained Fine grained Standards based Language based Multiple interfaces Single interface Provide services Provide operations Fully encapsulated Use inheritance Understood by everyoneUnderstood by developers Components vs. Objects
CSE298 CSE300Specification Implementation Executable Interfaces Component
CSE298 CSE300 Components as assets can grow Complexity of Component
CSE298 CSE300 Versions Versions Aggregations Aggregations Functional Functional Inheritance Inheritance Association Association Dependency of Components Dependency Type of Components
CSE298 CSE300 Select Products Select Component Factory Select Component Factory Component Manager Component Manager C++ Synchronizer C++ Synchronizer Estimator Estimator Requirement Manager Requirement Manager Enterprise for Java Enterprise for Java Enterprise for Visual Basic Enterprise for Visual Basic Select SE Select SE
CSE298 CSE300RepositoryBrowserHierarchy Component Repository
CSE298 CSE300 Multiple Repository Support Multiple Support
CSE298 CSE300 CBD life cycle BusinessDirection General Business Requirements User, Business and Data services Business and Data services ComponentRequirements UserServices Harvest
CSE298 CSE : $652 million 2001: $12 billion IDC forecast CBD market
CSE298 CSE300 Software Composition Workbench JavaBeans Visual Café, Symantec Visual J++ Enabler, Softlab Microsoft Repository UREP, Unisys Select Software Tools, Select Tools and Software
CSE298 CSE300 Future Research CBD vs. OOD CBD vs. OOD Business Data Modeling Business Data Modeling Consistency of Components Consistency of Components DRE Tool DRE Tool
CSE298 CSE300 References * Reusable Software Research Group, West Virginia University * Reusable Software Research Group, Ohio State University * Select Software Tools * Software Reuse Executive Primer, DOD * Model-Driven Software Reuse, Extended Intelligence Inc
CSE298 CSE300 * Reuse: Re-engineering the Software Process, Extended Intelligence Inc * Experiences from the OO Playing Field, Extended Intelligence Inc * Getting Started with Software Reuse: Secrets to Reuse Success Revealed References (Cont.)