2015 sinvas user conference - spl/sspl을 통한 임베디드 소프트웨어 개발방안
TRANSCRIPT
Always Your Business Partner
1
SPL과 소프트웨어 공학의 이해
SW 규모및복잡성
민첩한시장적용
유연성과확장성
SW 융합제조라인
대량생산다변화
SW중심의생산체계
2
SPL (Software Product Line) 이란?
•생산되는제품의패밀리–제품군
•보유하고있는소프트웨어자산에서유사한소프트웨어시스템
의포트폴리오를생성하고
관리하는 공학적기술을지칭
•제품군의구성요소와구성요소의조합물을공통성과가변성
도출
SPL(Software
Product Line)
Product Line
Product Line
Architect
3
SPL Engineering의 이해 및 핵심활동
특정도메인에속한여러시스템의공통점및차이점을분석하여,
공통적으로사용가능한핵심자산 (Core Asset)을확보하고,
각제품군별로아키텍처를공유하며,
이핵심자산의기반을컴포넌트들을조립함으로원하는시스템을개발
하는방식
SPL Engineering
제품라인(공통성과 가변성확보를 통한재사용성향상)
비즈니스 목표/응용도메인
아키텍처
컴포넌트
Products공유
조립
적합
Core AssetDevelopment
ProductDevelopment
Management
핵심 자산 개발(Core Asset Development)
핵심 자산 개발(Core Asset Development)
일반적으로도메인공학(Domain Engineering)이라고도불리며, 이활동의목적은제품을위한생산환경을수립하는것
아무것도 없는 상태에서 수행되는 것이 아니라 오히려 기존에 존재하는 제약과자원의 상황에따르는 문맥(Context) 내에서 수행
중요한 네가지 문맥 인자
제품제약사항
생산제약사항
생산전략
기존자산
핵심자산개발활동수행을 통해 생성
제품군범위
핵심자산저장소
생산계획간의연관관계
4
Management
Product Constraints
Production Constraints
Production Strategy
Preexisting Assets
Core AssetDevelopment
Product Line Scope
Core Asset Base
Production Plans
Core AssetDevelopment
ProductDevelopment
Management
제품 개발(Product Development)
일반적으로응용공학(Application Engineering)이라고도불리며, 핵심자산을재사
용하여개별제품을개발하는것
제품개발활동에서는앞서핵심자산개발활동의산출물로생성된제품라인범위, 핵
심자산저장소, 생산계획뿐만아니라각개별제품의요구사항에의존하여개별제품
을개발
개별제품의요구사항을충족시키는제품을생산하기위해제품군범위내에서생산계
획에따라핵심자산저장소를활용
또한핵심자산을활용하는데있어
마주한어떤문제또는부족함에
대하여피드백을제공
5
ProductsFeedback
New AssetsProduct Constraints
Production Description
ManagementManagement
ProductDevelopment
Core Asset Base
Production Plan
Product Line Scope
Core AssetDevelopment
ProductDevelopment
Management
관리 (Management)
다양한수준에서성공적인 SW PLE 개발방법론을이끌기위한관리적인활동
기술적관리활동뿐만아니라조직적관리활동을포함
기술적 관리: 핵심 자산개발과 제품개발에 대한 관리
조직적 관리: 적절한 조직구조 정의및적당한 자원 분배에대한 관리
6
SW 엔지니어링 기술관리 조직관리
아키텍처정의 (Architecture Definition)
형상관리(Configuration Management)
비즈니스케이스작성(Building a Business Case)
아키텍처평가 (Architecture Evaluation)
데이터수집, 지표및추적(Data Collection, Metrics, and Tracking)
고객인터페이스관리(Customer Interface Management)
컴포넌트개발(Component Development)
개발/구매/발굴/커미션 분석(Make/Buy/Mine/Commission Analysis)
인수전력개발(Developing an Acquisition Strategy)
COTS 활용 (COTS Utilization) 프로세스정의 (Process Definition) 비용조달 (Funding)
기존자산발굴(Mining Existing Assets)
범위결정 (Scoping)착수및조직화(Launching and Institutionalizing)
요구공학(Requirements Engineering)
기술계획(Technical Planning) 시장분석 (Market Analysis)
SW 시스템통합 (SW System Integration)
기술위험관리(Technical Risk Management)
운영 (Operations)
테스팅 (Testing) 도구지원 (Tool Support) 조직계획 (Organizational Planning)
도메인분석 (Understanding Relevant Domain)
조직위험관리(Organizational Risk Management)
조직구성 (Structuring the Organization)
기술예측 (Technology Forecasting)
훈련 (Training)
활동 영역(Practice Area)에 포함된 29개의 활동(Practice)
OrganizationManagement
Domain Engineering Technical Management
Application Engineering
Business Case Management
Transition Management
Operation Management
ProcessManagement
Variability Management
Support Management
DomainRequirementEngineering
DomainDesign
DomainRealization
DomainTesting
Product LineScoping
Domain Asset Management
ApplicationRequirementEngineering
ApplicationDesign
ApplicationRealization
ApplicationTesting
Core AssetDevelopment
ProductDevelopment
Management
SPL 통합개발 환경 구축
7
SPL 통합개발 환경 구축
Application Management
Application Requirements
Engineering
Application Design
Application Realization
Application Testing
Instantiation
Product Management
Domain Requirements
Engineering
Domain Design
Domain Realization
Domain Testing
어플리케이션개발관리
어플리케이션요구사항관리
어플리케이션설계
어플리케이션구현
어플리케이션테스트
Dom
ain
Engin
eering
Applic
ation
Engin
eering
PLATFORM
PLATFORM
COM COM COM COM
Application #1
PLATFORM
COM COM
COM COM COM COM
PLATFORM
COM COM COM COM
COM COM COM COM
Application #2
Repository
Instantiation
Production
Application
SPL 프로세스관리도구
도메인분석도구
플랫폼아키텍처설계도구
플랫폼구현도구
플랫폼시험도구
플랫폼기반 SW 개발도구
플랫폼기반 SW 개발도구
플랫폼기반 SW 개발도구
8
SPL 프로세스 관리도구
프로세스
관리
가변성관리
자산
관리
지원관리
9
SPL 프로세스 관리도구
10
도메인분석 도구
역 공학(Reverse Code)
11
플랫폼 아키텍처 설계 도구
다양한무기체계와방법론적용을위해유연한모델링
확장지원을통해향후사용성을높임
ERD (Database설계)SysML(시스템모델링)UML (시스템설계)
12
플랫폼 구현 및 시험도구
설계모델을기준으로정의된변환규칙을기반으로원하는형태의코드를생성함
Statechart Diagram
Activity Diagram
Sequence Diagram
13
플랫폼 구현 및 시험도구
Rule
SQL Injection
Resource Injection
Cross-site Scripting
Buffer overflow
…
User Defined
사용자정의Rule의선택을통해최적의정적분석기능제공 주기적혹은이벤트에의한자동
테스트가가능하도록커맨드라인
테스트기능
커맨드라인테스트기능의
제공으로 Jenkins를포함한다양한
도구와의협업활용가능성제공
14
SW개발 도구 검증
15