COTS-Aware Requirements Engineering and Software Architecting Lawrence Chung and Kendra Cooper Department of Computer Science University of Texas at Dallas {chung, kcooper}@utdallas.edu
Why COTS (Commercial-Off-The-Shelf)? Perceived benefits – cheaper, faster, better software development by orders of magnitude! Issues Gaps between requirements and COTS components - high degree of usage vs. high degree of satisficing - COTS components must meet both functional and non-functional requirements, … and at the same time fit with the architecture Many (more types of) stakeholders Many more sources of changes - Customer needs, new technology – hw/sw/infrastructure, new/similar products, etc. - Evolution of COTS components & Discontinued components - Legal issues ((chain of) licensing, open-source,…) & Standards
Outline Bridging the gap Defining, Matching, Ranking, and Selecting COTS Components in the CARE/SA Process Capturing Requirements (FR & NFR) & Architecture Components Matching, Ranking, and Selecting COTS Components
Bridging the Gap: COTS Components Capabilities System Under Development (SUD) Requirements SUD Goal Exact match G - j G - i Transformed SUG Goal Transformed Component G - j1’ G - i1’ Transformed SUG Goal Transformed Component G - i1’’ G - j1’’ G - i is an agent's goal Another exact match Transformed SUG Goal G - k G - j2’ How do we bridge the gap systematically?
Defining Goals; Matching, Ranking, and Selecting COTS Components in the CARE/SA Process Define Goals create a System Goal Model using scenarios Select Components Based on ranking, select set of COTS components Match Goals search for COTS components with goals that match SUG soals (functional & non-functional) Negotiate Changes Rank Components Perform a gap analysis to rank COTS components using the NFR Framework What do we represent and where ?
Architecture Components Capturing Requirements (FRs & NFRs) & Architecture Components Component Repository (Foreign Goals, Specifications, …) System Under Development (Native Goals, Requirements, …) in SUD Product Repository Customer Manager End User Development Manager Requirements Engineer Component Repository … External System ++ (NFR) Softgoal2 Softgoal3 HardGoal1 … Component 2 (whitebox) … System Requirement Architectural Subsystem System Requirement Architectural Subsystem Software Requirement … SUD Artifacts Software Requirement Component 1 (blackbox) Legend Agent Mapping System Goals to Component Goals Mapping System, Software Requirements to Component Specification Softgoal Hardgoal Requirement Architecture Subsystem
Matching, Ranking, and Selecting COTS Components. With a non-functional candidate goal COTS Architecture to (other) COTS NFR SUD NFR to COTS NFR COTS NFRs to (other) SUD NFRs SUD Product COTS Component SUD Product COTS Component SUD Product Model Repository COTS Component Repository Model Repository Repository Model Repository Repo sitory C j … C … C … … … … R … R A R A … … … … NFR NFR j NFR k NFR i i i Legend Softgoal (non - functional) Candidate softgoal COTS Component Possib le Match Hardgoak Candidate Hardgoal And Decomposition C Component, A Architecture, R Requirement, FR Functional requirement, NFR Non-Functional Req.
Matching, Ranking, and Selecting COTS Components. With a functional candidate goal COTS Architecture to COTS NFR SUD FR to COTS FR COTS NFRs to (other) SUD NFRs COTS Component SUD Product COTS Component SUD Product COTS Component SUD Product Repository Model Repository j Model Repository Repository Repository Model Repository i C C … C … … … … … … R R A R A … … … FR NFR FR i NFR FR i i i Legend Softgoal (non - functional) Candidate softgoal COTS Component Possib le Match Hardgoak Candidate Hardgoal And Decomposition C Component, A Architecture, R Requirement, FR Functional requirement, NFR Non-Functional Req.
Preliminary Softgoal Interdependency Graph and COTS Component Repository part of the CARE/SA knowledge base - populated for a DLS before the Goals of the SUD are matched, ranked and selected wrt the Goals of the components). COTS Component Repository SUD Product Model Repository Java Authentication & Authorization Service C … Secure Good Performance Easy to Use Interface … Search theCatalog - … Requirements R A Architecture … Configurable Interface Variety of Non - functional Requirements Functional Requirements Interface Options Encryption NFR FR PC platform Role Based Tivoli C PDA Protect C Touch Screen Interface Access Control Novice Configuration GUI C Authentication Audio/Video … Security, communication, multimedia, compressi on, etc. components Expert Configuration User Interface
Results of Matching, Ranking, and Selecting COTS components part of the CARE/SA knowledge base - populated for a DLS after the Goals of the SUD are matched, ranked and selected wrt the Goals of the components). COTS Component Repository SUD Product Model Repository Java Authentication & Authorization Service … Secure Good Performance Easy to Use Interface … C Search theCatalog - … R A Configurable Interface + Variety of Tivoli C + Encryption Interface Options PC platform C + PDA Protect R A + Role Based Access Control + Novice Configuration Touch Screen Interface R A GUI Authentication … + Audio/Video Expert Configuration Security, communication, multimedia, compression, etc. components - - User Interface + Inadequte: {PDA Protect} Potentially good-enough: {JAAS, Tivoli}
Conclusions Contributions Systematic methodology for using COTS components in developing software architecture COTS components as aggregates of FRs, NFRs, and architectures Requirements-driven matching, ranking and selection Future Work More matching, ranking and selection heuristics Definition of meta-model (in relation to the UML) Web-based tool support