2015 SINVAS USER CONFERENCE
- SPL/SSPL을 통한 임베디드 소프트웨어 개발방안
(임베디드 소프트웨어 개발을 위한 최적화 방안)
ENKISOFT : http://www.enkisoft.co.kr/
SINVAS : http://www.sinvas.com/
FACEBOOK : https://www.facebook.com/enkisoft2001
TWITTER : https://twitter.com/enkisoft2001
4. 3
SPL Engineering의 이해 및 핵심활동
특정 도메인에 속한 여러 시스템의 공통점 및 차이점을 분석하여,
공통적으로 사용 가능한 핵심 자산 (Core Asset)을 확보하고,
각 제품군 별로 아키텍처를 공유하며,
이 핵심 자산의 기반을 컴포넌트들을 조립함으로 원하는 시스템을 개발
하는 방식
SPL
Engineering
제품 라인
(공통성과 가변성 확보를 통한 재사용성 향상)
비즈니스 목표/
응용 도메인
아키텍처
컴포넌트
Products
공유
조립
적합
Core Asset
Development
Product
Development
Management
5. 핵심 자산 개발(Core Asset Development)
핵심 자산 개발(Core Asset Development)
일반적으로 도메인 공학(Domain Engineering)이라고도 불리며, 이 활동의 목적은 제품을 위한
생산 환경을 수립하는 것
아무것도 없는 상태에서 수행되는 것이 아니라 오히려 기존에 존재하는 제약과 자원의 상황
에 따르는 문맥(Context) 내에서 수행
중요한 네 가지 문맥 인자
제품 제약사항
생산 제약사항
생산 전략
기존 자산
핵심 자산 개발 활동 수행을 통해 생성
제품군 범위
핵심 자산 저장소
생산 계획 간의 연관 관계
4
Management
Product Constraints
Production Constraints
Production Strategy
Preexisting Assets
Core Asset
Development
Product Line Scope
Core Asset Base
Production Plans
Core Asset
Development
Product
Development
Management
6. 제품 개발(Product Development)
일반적으로 응용 공학(Application Engineering)이라고도 불리며, 핵심 자산을 재사
용하여 개별 제품을 개발하는 것
제품 개발 활동에서는 앞서 핵심 자산 개발 활동의 산출물로 생성된 제품 라인 범위, 핵
심 자산 저장소, 생산계획 뿐만 아니라 각 개별 제품의 요구사항에 의존하여 개별 제품
을 개발
개별 제품의 요구사항을 충족시키는 제품을 생산하기 위해 제품군 범위 내에서 생산 계
획에 따라 핵심 자산 저장소를 활용
또한 핵심 자산을 활용하는데 있어
마주한 어떤 문제 또는 부족함에
대하여 피드백을 제공
5
Products
Feedback
New Assets
Product Constraints
Production Description
ManagementManagement
Product
Development
Core Asset Base
Production Plan
Product Line Scope
Core Asset
Development
Product
Development
Management
7. 관리 (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)
Organization
Management
Domain Engineering Technical
Management
Application Engineering
Business Case
Management
Transition
Management
Operation
Management
Process
Management
Variability
Management
Support
Management
Domain
Requirement
Engineering
Domain
Design
Domain
Realization
Domain
Testing
Product Line
Scoping
Domain Asset Management
Application
Requirement
Engineering
Application
Design
Application
Realization
Application
Testing
Core Asset
Development
Product
Development
Management
9. SPL 통합개발 환경 구축
Application
Management
Application
Requirements
Engineering
Application
Design
Application
Realization
Application
Testing
Instantiation
Product
Management
Domain
Requirements
Engineering
Domain
Design
Domain
Realization
Domain
Testing
어플리케이션
개발 관리
어플리케이션
요구사항
관리
어플리케이션
설계
어플리케이션
구현
어플리케이션
테스트
Domain
Engineering
Application
Engineering
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
13. 플랫폼 아키텍처 설계 도구
다양한 무기체계와 방법론 적용을 위해 유연한 모델링
확장지원을 통해 향후 사용성을 높임
ERD (Database 설계)SysML(시스템 모델링)UML (시스템 설계)
12
14. 플랫폼 구현 및 시험도구
설계 모델을 기준으로 정의된 변환 규칙을 기반으로 원하는 형태의 코드를 생성함
StatechartDiagram
ActivityDiagram
SequenceDiagram
13
15. 플랫폼 구현 및 시험도구
Rule
SQL Injection
Resource Injection
Cross-site Scripting
Buffer overflow
…
User Defined
사용자 정의 Rule의 선택을 통해 최적의 정적 분석 기능 제공 주기적혹은 이벤트에의한 자동
테스트가가능하도록커맨드라인
테스트기능
커맨드라인테스트기능의
제공으로Jenkins를포함한 다양한
도구와의협업 활용 가능성 제공
14