34
JBoss User Group 대표 김병곤 ([email protected]) 소프트웨어 공학과 BPM의 만남: KALM (Korean Application Lifecycle Management)

[uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

JBoss User Group 대표

김 병 곤 ([email protected])

소프트웨어 공학과 BPM의 만남:KALM(Korean Application Lifecycle Management)

Page 2: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 3: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

JBoss Application Server 무료 교육

JBoss User Group 스터디 모임 운영

핚국자바개발자협의회(JCO) 활동

오픈소스 프로젝트 참여(KALM)

Page 4: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 5: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

1단계

• 개별 도구들의 집합

• 개별 도구의 기능에만 의존

2단계

• 도구와 통합

• 일관성 부여

3단계

• Knowledge Management

• Process Management

Page 7: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 8: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 9: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 11: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 12: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 13: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 14: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 15: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 16: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

“프로세스 중심”의 SW 품질 향상을 위핚개발 플랫폼

SOA/WOA 및 엔터프라이즈 2.0를 위핚Alfresco ECM, Liferay Enterprise Portal, Sakai LMS, Pentaho PI Platform을 통합

(OSS Mash-up by OSS)

Page 17: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

미리 만들어진 일련의 개발 프로세스를KALM이 제공해준다면???

Page 18: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

Static Analysis

Check Style (코딩 표준 검사)

PMD (소스코드의 문제점 검사)

DocCheck (JavaDoc 검사)

JDepend (Package 의존성 검사)

Documentation

JavaDoc Activity

APIviz Activity

JavaDoc에 UML Class Diagram을 자동으

로 넣어주는 JBoss Community Doclet

기타

Hudson Trigger Activity

Continuum Trigger Activity

Build

Ant Checkout Activity

Maven Checkout Activity

Maven Tagging Activity

Page 19: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

Custom Activity는 ALM 프로세스를 구현하기 위핚 uEngine 프로세스 엔진의 어댑터 컴포넌트

Custom Activity는 프로세스 디자인 환경에 Deploy 되어 IDE Tool에서 Activity Icon으로

Introspection 되어 실제 프로세스를 Composition 하는데 사용된다.

Process DesignerProcess Runtime Engine

Process Manager

Custom Activity

ActivityA

ActivityB

ActivityC

ActivityA

ActivityB

ActivityC

Composite Process

Custom Activity

Process Definition

ProcessDefinition

Custom Activity Development

ActivityA

ActivityB

ActivityC

Process Runtime 환경 프로세스 디자인 환경

KALM 개발 환경

DeployDeploy

KALM

ServiceA

ServiceB

ServiceC

Page 20: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 21: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 22: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

public class ContiuumTriggerActivity extends DefaultActivity {

private String url;

private String id;

private String password;

private String projectGroupName;

public ContiuumTriggerActivity() {

... 생략}

@Override

public void executeActivity(ProcessInstance instance) throws Exception {

URL url = new URL(getUrl() + "/xmlrpc");

ContinuumXmlRpcClient client = new ContinuumXmlRpcClient(url, getId(),

getPassword());

List<ProjectGroupSummary> pgs = client.getAllProjectGroups();

for (ProjectGroupSummary projectGroup : pgs) {

if (projectGroup.getName().equals(getProjectGroupName())) {

client.buildGroup(projectGroup.getId());

}

}

}

... 생략}

Page 23: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

VCS

Subversion

Branching, Backup

CVS

Tagging, Branching

Git

Documentation

FindBugs

Auriga Doclet / PDFDoclet

Change Log

DocBook

JUnit Report

기타

Unit/Integration Test

Hadoop/Pig Job

Oozie Hadoop Workflow Job

기타 등등

Build

Maven

Release, Assembly

Site Publishing

TeamCity Trigger

Quickbuild Trigger

Atlassian Bamboo Trigger

Page 24: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료
Page 25: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

커뮤니케이션

통합 및 빌드개발자들간 일관된 코딩 스타일의 부재

늦은 커밋으로 인핚 통합 빌드 문제 빌드 프로세스의 표준화 부재

문서화

사용자 친화적인 문서의 부재

오픈소스 프로젝트는 일반적으로 코딩 중심적

전문적인 문서 관리 담당자 부재

커미터의 업무 로드 인한

프로젝트 참여의 어려움

커미터간 지리적으로 떨어져 있어서

커뮤니케이션이 어려움

사용자와 커미터간 직/간접 형태의커뮤니케이션 문제

표준화된 릴리즈 관리 부재

Page 26: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

커뮤니케이션

통합 및 빌드일관된 코딩 스타일 유지를 위핚

IDE간 템플릿 제공

Continuous Integration 도입

문서화

Technical Writer전문적인 문서 관리 담당자가

전체 산출물을 관리

언제든지 코드를 작성할 수 있는

환경을 구축

주 채널은 메일링 리스트로 하고

일정 주기의 모임을 통한 의사 결정

메일링 리스트 또는 포럼 개설

표준화된 릴리즈 관리를 위핚

Maven 과 같은 관리 도구 도입

DocBook과 같은 표준화된산출물 작성 방법 필요

Page 27: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

Management Documentation

BPM Engine

Development

User Interface

Activity

Project Management

Issue Management

Release Management

API

Developer/User Manual

Process

WIKI

Page 28: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

2011

2010

2012

• EPF W/f 자동화EPF 결과물 ExportEPF 결과물 실행 연동

• 웹 2.0 기반 협업

• 모바일 지원

• Open UP 방법론 추가

• 프로세스기반 ALM

• 스크럼 방법론 프로세스 탑재

• 이클립스 연동

• EDM 통합(알프레스코)

• End-to-End Process지원

• ITIL/ITSM 프로세스지원

• 산업별 특화 프로세스 추가

Page 29: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

EPF Approach

Developers & Supporters

(출처: www.eclipse.org/epf/)

Project plantemplates

Lessons learnt from previous project and iteration

Content onmanaging

iterative development Corporate guidelineson compliance

Content on agile development

JUnit user guidance

Content on J2EE

Configure a cohesive process frameworkcustomized for my project needs

Create project plan templates for Enactment of process in the context of my project

Standardize representation and manage libraries of reusable Method Content

Develop and manage Processesfor performing projects

Process assetspatterns

Standard or reference processes

Guidance on serialized java beans

Configuration mgmtguidelines

Page 30: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

Eclipse EPF KALM

사용자 커뮤니티 √√√ √

방법론 테일러링 √

WBS기반 편집 √

워크플로우 자동화 √

이클립스 툴 연동 수준 √√√ √

프로세스 조회 √ √

프로세스 실행 모니터링 √

프로세스 분석 및 개선 √

EPF & KALM

상호보완 및 시너지 발생 !!!

Page 31: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

XMI-2-BPELConverter

EPF Composer

KALM Server

• Create reusable method content– Roles, tasks, artifacts, guidelines, examples, templates

• Create reusable process patterns– E.g. design, implement and test a scenario

• Create processes for different project types

• Create derivative method content and processes

• Upgrade to new baseline of method content and processes

테일러링된방법론 프로세스

(XMI)

실행가능 워크플로 프로세스

(BPEL)

To-do-list Automation OfficeTools

DocumentManagement

Page 32: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

http://www.k-alm.org 사이트에 접속

Page 33: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료

모집 범위

일반 사용자 문서화 프로세스모델링

Full Time 개발자(채용)

에반젤라이징

Page 34: [uengine.org-uEngine Day] 소프트웨어공학과 BPM의만남 KALM(Korean Application Lifecycle Management) 발표자료