IBM Software Symposium 2006 RAS 기반의 Rational 솔루션을 이용한 소프트웨어 재사용에 대한 사례연구 IBM Rational Software Joseph Hwang
Agenda 재사용에 대한 기업의 전략 기술적용 전략과 단계 관련 핵심 기술 2
Agenda 재사용에 대한 기업의 전략 핵심 경쟁력 CTO와 실무진의 요구사항 Needs, Best Practices, Best Solution 해결해야 할 문제점과 도전과제들 기술적용 전략과 단계 관련 핵심 기술 3
우리회사의 핵심 경쟁력? Confidential 우리 회사는 자동차 부품에 관련된 전자, 전기 부품을 생산하는 글로벌 선두기업으로 혁신적인 전략으로 세계시장을 리드하고 있습니다. <중략> 현재 우리 회사의 경영진은 소프트웨어의 생산 효율성과 품질에 대해 많은 관심과 우려를 가지고 있습니다. 우리는 다음과 같은 소프트웨어와 하드웨어의 문제점을 해결하기 위해 <중략> 임베디드 SW 크기와 복잡도 증가에 따른 비즈니스의 영향 품질관리의 문제와 통합, 테스트 작업의 지나친 시간의 손실 많은 공급업체가 공급한 많은 컴포넌트 간의 통합과 호환성 문제 경쟁시장에서의 선점적 출시 압박해결을 위한 생산성 수없이 많은 Embedded SW, HW의 환경변화에 대한 유연한 대응 A group of us at the former Rational Software Corporation sat down to write a paper on the issues of developing solutions using a service-oriented architecture (SOA) style, 1 and a lot has happened since then. One of the problems we faced was that Rational Software had a set of modeling tools, but no IDE to actually develop the service implementations we modeled. Well, with the acquisition of Rational by IBM, we now have a world-class IDE in the form of the WebSphere Studio Application Developer (now Rational Application Developer, or RAD). We also faced the problem that a lot of thinking around SOA was immature, and much was hype-driven -- a problem we recognized in the paper. Since IBM's platform support for SOA has matured considerably and our developer tools have increased their capabilities for developing services in a flexible and rapid manner, we decided to revisit the notions of service design that we outlined in that earlier paper. The asset-based development process has been applied to Company IT, started in 2003. This has produced a 30% productivity improvement in their application development projects that have used it. Company IT applied some of the techniques described in the pilot project we are proposing. The specific items Company IT has done will be identified throughout these charts. Company IT conducted a pilot project for about 5 months before rolling out to other projects. In recent months Company IT has rolled out their assets and process across all their application development projects. They are now taking new measurements across the company. Anticipated benefits for Company IT from reuse strategy Increased productivity Improved quality Motivations for Company IT to pursue a reuse Similar reference architecture for all projects strategy Improved maintainability due to better separation of concerns Developers start from scratch each Better time consistency and traceability between specifications and code. Analysis and design models are Improved not consistent portability with code. Quality by really designing the system - Not only code hacking Architecture of current applications often makes it hard and difficult to perform changes for new business requirements 4
CTO와 실무진의 요구사항 잦은 요구사항 변경에 대한 유연한 대응 Well Defined 아키텍처 중심의 구조확립 HW와 SW의 통합관리 Governance 절대적 필요성 SW 포트폴리오 (비용, 시간, 품질) 관리의 필요성 자동화 도구에 의한 생산성과 편리성 지원; 문서화 등 관리목적 중심의 부가적 작업 최소화 기존코드 활용의 최적화 기술 습득 기간의 최소화 부가가치 있는 최신의 표준기술의 학습 측정과 평가 숙련된 SW 개발인원 부족의 해소 5
니즈, Best Practices, Best Solution 고객의 니즈 임베디드 SW의 복잡성 증가 SW 통합의 문제성 수 많은 임베디드 SW / HW Best Practices 비주얼 모델링 컴포넌트 아키텍처 Best Solution 컴포넌트 기반 아키텍처 아키텍처의 필요성 잦은 요구사항 변경에 대응 HW와 SW의 통합관리부재 재사용 HW와 SW의 통합관리 재사용 솔루션 Governance 절대적 필요성 SW 관리(비용, 시간, 품질) 요구사항의 관리 HW와 SW의 통합관리 6
해결해야 할 문제점과 도전과제들 제대로 된 아키텍처만 구성하는데도 3년 이상이 걸렸다. 컴포넌트 기반 아키텍처가 과연 우리 도메인 (테크니컬 부분, 금융, 공공 등)에 적합할까? Componentization? 정의는? 어떻게 관리하고 배포하는가? 임베디드 환경에서 HW와 SW 과연 어떻게 통합할 것인가? 재사용, 소스 복사해서 쓰면 안 되는 것 인가? 과연 아키텍처, SW와 HW의 통합, 재사용 이러한 솔루션을 리드할 신뢰할 수 있는 Guru가 존재할까? 7
Agenda 재사용에 대한 기업의 전략 기술적용 전략과 단계 단계별 접근 전략 HW와 SW의 통합관리 재사용 시스템 시스템간통합또는연계 관련 핵심 기술 8
단계별 접근 전략 HW와 SW의 통합관리 HW부품과 관련 SW의 유기적 연계 HW정보와 SW의 형상관리 기반 구현전략과 Governance 엔지니어링 데이터 관리 관련 데이터의 통합관리와 유기적 연동 메타 데이터 또는 기반플랫폼을 통한 유저 인터페이스의 일원화 구현전략과 Governance 재사용 시스템 컴포넌트 기반 래퍼런스 아키텍처의 구성 Componentization 구현전략과 Governance 9
HW와 SW의 통합관리 マーケティング 営 業 顧 客 要 求 管 理 営 業 設 計 技 術 要 素 技 術 HW 開 発 Project Management System( 進 捗 工 数 費 用 など ) 製 品 T Project Manager 組 み 込 み 最 終 評 価 段 階 SW 系 の 新 しい 要 求 HWデザイン T-SW002の リリース 報 告 Confidential Properties ソ フ ト 開 発 Source Code Code A Code B Code C Rev 1.0 Rev 1.0 Rev 1.0 製 品 T SW Leader すべてEC (Engineering Change) により 管 理 Release Code 製 品 レベル プロジェクトの 組 織 的 な 管 理 ソフトウェアの 構 成 および テスト バージョン 管 理 プロジェクト 管 理 プロジェクトデータ Code 変 更 追 C 跡 root root Rev 1.0の data vendor ProjectA Client 変 Server 更 要 SWバグ 発 生 vendorx vendorn GUI Comm vproja Releasename: Code A 1.2 Code B 1.1 Code 統 C 合 管 1.1 理 製 品 BOM 構 築 verify complete T-SW002の close 適 用 による os2r5 EC No A002 User Access EC No A003 製 品 TのBOM 再 構 築 製 品 Tの 品 番 製 品 Tの 品 番 T-SW001の 品 番 A 1.1 T-SW002の 品 番 S/Wのモジュール 構 成 はCMVCの 中 で B 1.1 別 の 管 理 者 管 理 基 盤 され 部 品 の 問 品 番 題 管 理 変 更 管 理 もCMVC 基 盤 部 品 の 品 番 の 中 C 1.0 メカ で 部 行 品 の われる 品 番 メカ 部 品 の 品 番 ドキュメント オーナー 変 更 S/W 製 品 仕 全 様 体 書 に1つの の に品 番 部 品 番 号 が 振 られ 製 品 製 仕 様 書 の 品 番 品 の 部 品 表 に 拾 われる 機 能 的 な 影 響 があり 管 理 が 必 要 な 場 合 には 部 品 に 設 計 変 更 をかけるか 部 品 番 号 を 替 えて 区 別 できるようにする Dbase コンフィグレーション 管 理 ファイル 変 更 管 理 Check Out Edit 変 更 追 跡 Check In 10 CMVC CMVC ファイル 変 更 と 問 題 / 設 計 情 報 の T-SW002 での 製 品 T バージョン 管 理 テスト プロジェクト 開 発 管 理 問 題 / 設 計 変 更 管 理 Defect/Feature open working Tr ack approve fix integrate commit test 管 理 者 Level working integr ate commit complete 問 題 の 数 バージョンアップ 仕 様 設 計 の 追 加 / 変 更 問 題 の 発 生 変 更 要 求 問 題 報 告 が 登 録 されたことの 通 知 変 更 承 認 変 更 依 頼 90 80 70 60 50 40 30 20 10 0 open 問 題 報 告 状 況 12/02 11/25 11/18 11/11 11/04 10/28 10/21 10/14 10/07 09/30 09/23 09/16 09/09 09/02 08/26 08/19 08/12 08/05 07/29 07/22 07/15 07/08 07/01 06/24 06/17 06/10 06/03 05/27 05/20 05/13 05/06 04/29 04/22 04/15 04/08 04/01 03/25 03/18 03/11 03/04 02/25 02/18 02/11 02/04 01/28 01/21 01/14 01/07 テスター working 確 認 週 変 更 が 終 了 したことの 通 知 close verify 確 認 依 頼 ファイル 変 更 開 発 者 1 2 3 4 チェックアウト チェックイン 問 題 報 告 の 例 DB2 UDB CMVCサーバー
재사용 시스템 WAP Browser Real Time OS <<Interface>> RAS Service CPU Asset Consumption Pages Java Asset Portal View + Download + Register + Subscribe Facet Search & Navigate Package & Submit << EAR Component >> Library Meta Data Repository Adapter Info/Content MMS LCD Controller Application Application Reporting EAR Asset Portal Common component Asset Consumer / Submitter Asset Librarian / Manager Asset Administrator Java Platform Review & Approval Java Virtual Machine AMSB End Point Listener Windowing Asset M Management System S Service B Bus us : Binding, : Meditation, Messaging, Event Adapter Build Drive & <<Interface>> Device Driver Security Service << EAR Component >> GPIO Modem Audio Authorization Engine Policy decision PT Policy decision PT XACML request SW Componentization Java Asset Operation Pages Metering & Billing AMSB Consumer Invoker Policy decision PT Policy data Source Code XACML store SW Componentization Policy& Architecture <<Interface>> User Mgmt Service << EAR Component >> User M anagement User Profile User + Group + Org User Subscription Asset Admin Pages Asset User & Admin Access Control Portal User Asset & System Access Admin Control Asset System Admin Access Policy Mgmt Asset Policy Management <<Interface>> Source Configuration Mgmt Service << EAR Component >> Service Config Mgmt EAR- 예시 Asset Packager Asset Packager Comments Asset Production Rating - Asset definition Metering - Asset packaging Direct Tracking Requirement Tracking 예시 IF Desktop Tooling <<Interface>> Usage Service << EAR Component >> Utility Service Billing EAR- IF Workbench Confidential Properties Cell Phone - Part Cell Phone RTOS and Driver Device Driver LCD Controller GPIO Modem Audio Native Application Browser Browser WAP Browser Opera Browser Open wave MMS Java VM Windowing System Java Java Platform Asset Managing - ABD process - Asset repository Cell phone UI (DUET) Embedded Customization Layer Java VM Application Layer Streaming Layer + OSGi (SMF) (WCTME) Connection Middleware Linux/VxWorks/iTRON Device Driver Layer Motherboard CPU MPEG Audio Memory Network SecurityChip Camera phone UI (DUET) Customization Layer Application Application?Data For?Browser Mgmt Security Connection Telephone?PIM?Device? CM Middleware?Camera Mgmt? DRM Base Band Telephone Linux / Symbian / itron Network Device Driver Layer Motherboard CPU CPU Memory MPEG Audio Security Network Asset Consuming <<deploy>> <<deploy>> Cell Phone feature <<Use>> Common component Source code Device Convergence Brand new device <<deploy>> Camera phone feature <<deploy>> LCD Device Controller <<Use>> Container Document RTOS Hardware : RAM (Rational Asset Manager) 11
시스템간 통합 또는 연계 12
Agenda 재사용에 대한 기업의 전략 기술적용 전략과 단계 관련 핵심 기술 RAS (Reusable Asset Specification) Reference Architecture Componentization Automation (RSA and RSD) ABD (Asset-based Development) Reuse Governance Model Approach Reuse 13
Reusable Asset Specification (RAS) A standard way to package assets Describes the structure and nature of asset meta data Reduces the friction on development transactions Thru standard, consistent packaging Each asset is described using these sections Classification Solution Usage Related Assets Asset Name Desc State Ver Profile Classification Descriptors: Name/Value pairs Context Domain, Development, Test, Deployment, and so on Solution Artifacts Usage Usage Instructions & Activities Filling Variability Points Related Assets Association, Aggregation, Dependency, Parent Asset Overview Requirements Models, Code, Tests Documents variability point Asset Artifact Problem Solution Artifact Artifact with rules/instructions for usage for one or more contexts for one or more contexts 14
Reference Architecture Componentization 예시 Integration / Customization Services for Each Client End Product DVD Recorder UI (DUET) Customization Layer Application Layer Streaming Layer Connection Middleware Embedded Java VM + OSGi (SMF) (WCTME) DB2e Database Linux/VxWorks/iTRON Enhanced Filesystem Device Driver Layer Motherboard CPU MPEG Audio Memory Network SecurityChip Digital TV UI (DUET) Embedded Customization Layer Java VM Application Layer Streaming Layer + OSGi (SMF) (WCTME) Connection Middleware Linux/VxWorks/iTRON Device Driver Layer Motherboard CPU MPEG Audio Memory Network SecurityChip User Interface Multimedia Car Navi UI (DUET) Customization Layer Vehicles Connection Linux Network Connection Device Driver Layer Motherboard CPU CPU CPU CPU Memory MPEG Audio Security Network Application For Telephone Base Band Telephone Network CPU Camera phone Application Browser PIM Camera UI (DUET) Customization Layer Data Mgmt Device Mgmt Security CM DRM Linux / Symbian / itron Device Driver Layer Motherboard CPU Connection Middleware Memory MPEG Audio Security Network DCE Value-added Components (UI Framework, ) Device Level Middleware (OS, SW Stacks) HW Platforms (CPU, Chipset, IP Macros) shorter time-to-market development efficiency w/ reduced customization Common Building Block Package 15
SPX Component Model Reference Architecture Consumability Offering Common Component A software asset that is the fundamental building block of componentization, it is the smallest unit of managed sharing Specifies one or more capabilities that identify the common component s functionality Specifies dependencies on other common components, assemblies, and offerings A software asset that is an aggregation of other software assets Combines commonly used capabilities by aggregating other assemblies, common components, and offerings Assembly Assembly Assembly Specifies the packaging and lifecycle relationship among the software assets it aggregates A software asset that is an aggregation of other software assets and is customer facing Common Component Common Component Common Component Customer visible attributes such as offering installable features, product IDs, license information, documentation, etc Capability Offering Specifies the packaging and lifecycle relationship among the software assets it aggregates SPX Component Model Reference Architecture * SPX: Software Platform extension Capability An abstract representation of the functionality A capability can be provided by one or more software assets and is usually needed by one or more assets A capability is global in scope; not tied to an asset or implementation 16
Component Business Model (CBM) Using a component business model approach enables to analyze your business form many viewpoints Suggest focus areas for maximizing return on investment Understand where there are gaps, overextensions and duplications in systems and organization 17
How to make a RAS? RSA or RSD System development partners Wind River Application Analyzer Automatic anti-pattern and pattern detection Architectural discovery, analysis, metrics, and stability reporting Implementation level architectural rules Reusable Asset Browser Browse and import assets from a repository Report Generation HTML and XML based data extraction and reporting Extensive printing Model traceability reporting and custom queries 18 IBM Rational Software Modeler Interface to CM tools Visual compare/merge Lifecycle Integrations Package model and Document generation with SoDA development for RTOS integrated with ClearCase and ClearQuest through Eclipse development artifacts into a RAS bundle Reusable Asset Browser Sample ClearCase UML-to-code LT transforms for EJB, Java, and C++ Selective language to UML harvesting Lifecycle Integrations Drag-and-drop association of RequisitePro requirements with models Wind River Workbench Development Suite leading Eclipse-based IDE for C/C++ device EmbeddedPlus DOORKeeper Telelogic DOORS integration for RSD / RSM / RSA Pattern/Transformation Authoring Systems Modeling and Simulation Toolkit (SMST) (beta Jan 31) add-in to RSD / RSM / RSA that supports OMG SysML standard and model simulation/execution of UML 2.0 and SysML Report Generation Pathfinder Solutions Pattern/Transform Authoring Sample UML-to-code transforms for EJB, Java, and C++ Selective language to UML harvesting Pattern content Pattern/Transform authoring framework and services IBM Rational Software UML 2.0 Modeling PathMate - High-performance, Architect configurable C / C++ / Java for embedded platforms based on RSD / RSM / RSA UML 2.0 Models and OMG MDA standards Java Structural Analysis ClearCase LT JSF, SDO, Struts Java GUI editor Web diagram editor Site designer Web Services development tools Database editing tools EGL EJB development tools UML code editors for EJB, Java, and Data Static Analysis Runtime Analysis Component test automation Portal/Portlet development tools UML 2.0 Modeling UML 2.0 Diagrams for Class, Communication, Component, Composite Structure, Deployment, Activity, Sequence, State, and Use Case UML Profile Editor OCL Support Automatic diagram generation Extensive open API Java-based scripting for extensibility leveraging the Eclipse JDT Coverity Prevent Automates detection of defects for C / C++ software as developers write code UML Language Transforms Extend Enables developers to detect custom defect C/C++ editors types and build in management C / C++ Compiler and debugger integration Galorath Software Modeler UML code editors SEER-SEM Software project estimation from RSD / RSM use-case models WSAD v6 C/C++ Development Tools PTC WindChill ClearCase Application integration Developer manage all aspects of product data (mechanical, electrical and software) efficiently among development teams and projects Flashline RUP Configuration for SW Architects Flashline Eclipse Adapter for the IBM Software Development Platform asset registry LogicLibrary Logidex V 3.5.1.2 asset reuse form RSD
Asset-based Development (ABD) (Re)using requirements, design, construction, test, and deployment assets to leverage software investments in packaged, existing, and new applications Delivered by: Program Management Process RUP Tooling IBM Software Development Platform Standards UML, MDA, RAS, Middleware Assets Artifacts, components Asset Production Feedback Asset Consumption Candidate Asset Asset Identification Asset Management Feedback 19
Reuse Governance Model Reuse Governance Model 20
How to approach Reuse Draft Assessment Phase Construct Process Phase 보강 예정 Implement Process Phase Measure Phase & Lucasfilm Ltd. 21
22
발표자 프로필 부서 : IBM Rational Software 이름 : 황원하 직함 : 차장 연락처 : hwangj@kr.ibm.com 011-898-6919 23