Component Based Software Engineering

Slides:



Advertisements
Similar presentations
Testing Workflow Purpose
Advertisements

Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Software Reuse and Component-Based Software Engineering
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Lecture # 2 : Process Models
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
- 1 - Component Based Development R&D SDM Theo Schouten.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
Course Instructor: Aisha Azeem
Domain-Specific Software Engineering Alex Adamec.
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
COMPONENT-BASED SOFTWARE ENGINEERING
Software Architecture in Practice (3rd Ed) Introduction
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
Chapter 10 Architectural Design
Component Based Development
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
An Introduction to Software Architecture
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Chapter :11 Component-Level Design
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Chapter 3: Software Project Management Metrics
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
CSE 303 – Software Design and Architecture
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 14 컴포넌트-수준 설계 Component-Level Design
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Lecture 21: Component-Based Software Engineering
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
1 CASE Computer Aided Software Engineering. 2 What is CASE ? A good workshop for any craftsperson has three primary characteristics 1.A collection of.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Introduction to Databases Transparencies
Chapter 14 Component-Level Design
SOFTWARE DESIGN AND ARCHITECTURE
Introduction to Databases Transparencies
Introduction to Databases
Introduction to Databases Connolly and Begg
Software Processes (a)
Part 3 Design What does design mean in different fields?
Introduction to Databases
Software Quality Engineering
Abstract descriptions of systems whose requirements are being analysed
Software Processes.
Chapter 16 – Software Reuse
Object Oriented Analysis and Design
Object-Oriented Analysis
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Component-Based Software Engineering
Component-based Software Engineering
Introduction to Databases
Object-Oriented Design
Software engineering -1
Software Engineering with Reusable Components
An Introduction to Software Architecture
Introduction to Databases
Introduction to Databases Transparencies
Component Based Software Engineering (CBSE)
Chapter 17 - Component-based software engineering
Chapter 16 – Software Reuse
Chapter 8, Design Patterns Introduction
Chapter 6: Architectural Design
Chapter 10 – Component-Level Design
Presentation transcript:

Component Based Software Engineering Chris Sholar 11/4/2003 CS5667

Domain Engineering Goal – “identify, construct, catalog and disseminate a set of software components that have applicability to existing and future software in a particular application domain.” Additional – “establish mechanisms that enable software engineers to share these components – to reuse them – during work on existing and new systems.”

Domain Engineering Three major activities Analysis Construction Dissemination: to scatter abroad, to spread widely.

The Analysis Process Five Steps Define the domain to be investigated Categorize items extracted Collect a representative sample of applications in the domain Analyze each sample Develop an analysis model for the objects

The book claims that domain analysis can be applied to any software engineering methodology and may be applied to conventional and object oriented development. This is similar to noun extraction for identifying objects and creation of models for representation of the system.

Point Two Expanded Eight extra steps added… Select specific functions Abstract functions Define taxonomy or classification system Identify common features Identify specific relationships Abstract the relationships Derive a functional model Define a domain language

Does this really help? These steps provide a useful model for domain analysis, but do they help with deciding which components are appropriate for reuse?

Sample questions to ask How common is the component’s function within the domain? Is the component hardware dependent? Does the hardware remain unchanged between implementations? Is the design optimized enough for the next iteration? Is reuse through modification feasible? Can a nonreusable component be decomposed to produce reusable components?

Further Help Characterization process Define some generic characterizations for the component. e.g. Importance of safety/reliability Programming language Concurrency in processing These characteristics are shared by all software within a domain. Establish a relevancy scale for the characteristics

Structural Modeling Includes Structure Points Basis for component selection and categorization Software can be characterized by structural models, so components can be categorized by structure points, architectural patterns. Aircraft avionics has a structural model of architectural style.

Component Based Development Occurs in parallel with domain engineering Software team refines an architectural style that is appropriate for analysis model. The architecture for the system is composed of components that are available from reuse libraries, or engineered to meet the custom needs.

Three Phases Component Qualification Ensures that a candidate component will perform the function required, and has the quality characteristics required. Factors considered API Development and integration tools required Runtime requirements Security features And others

Component Adaptation Ideally domain engineering produces libraries of components that are easily integrated. Implications Consistent resource management Data management exists for all components Interfaces within architecture and with external environment are consistent

To remove some of the conflicts the previous implications produce, component wrapping is used. When source code is available, often not with COTS, white box wrapping is used. Code-level changes to fix conflicts When the component library provides component extension languages or APIs that allow the conflicts to be masked or removed, this is called gray box wrapping. Black box wrapping requires the use of pre- and post-processing at the component interface.

Component Composition Assembles qualified, adapted, and engineered components to fill the architecture with the needed functionality. Four architectural ingredients needed to create a coherent software package from components: Data exchange model Automation Structured storage Underlying object model

Underlying object model Data exchange model Enables users and applications to interact and transfer data Automation Tools, macros, scripts implemented to provide for interaction between components Structured storage Heterogeneous data should be organized and accessed as a single data structure Underlying object model Ensures that components of different programming languages and built on different platforms can be interoperable.

Summary Domain engineering and component based development occur simultaneously in the CBSE process. Domain engineering creates software components for reuse Component based development refines the components chosen for the system. Economics…