2016 SINVAS DAY - 프레임워크 기반 운영 시스템 설계 모델 현행화 방안

31
Always Your Business Partner

Transcript of 2016 SINVAS DAY - 프레임워크 기반 운영 시스템 설계 모델 현행화 방안

Always Your Business Partner

1

현행 정보시스템 운영의 문제점

• SW공학체계에 따른 시스템 운영 프로세스 미흡

요구사항에서 테스팅까지의 일련의 통합관리 부재

현행화 및 수시적 피드백이 불가능한 산출물 관리

• 유지보수 인력 중심의 상황 별 대처

유지보수 인력의 능력과 경험에 의존

투입시간 대비 SLA(Service Level Agreement )평가

• 통합적인 SW 자원, 소스, 형상관리 등의 미흡

요구사항에서 테스트까지의 일련의 정보 부재

단순 형상관리를 통한 소스 및 빌드관리 체계

인력중심의유지보수

SW공학적프로세스미흡

통합정보관리의

미흡

2

통합 플랫폼 기반의 정보시스템 운영

3

4

기존 방법의 문제점

• 소스 레벨의 패키지 단위로 생성 -> 지나치게 단편화

• 또는 전체를 한 다이어그램으로 표시 -> 지나치게 거대

• 관심 영역과 맞지 않은 scope로 다이어그램이 생성됨

• 클래스 간 연관 (Association) 이 표시되지 않거나 실제 바인딩되는 정보와 다름

기존 방법의 문제점

• 대상 메써드 구현부 내의 코드만 역공학하므로, 실제 객체간의 상호작용을 정확하게 파악하기 힘듬

• 불필요한 메시지로 인해 다이어그램이 지나치게 복잡해짐

5

6

기존 방법의 문제점

7

SINVAS의 접근법

Application

• Inversion of control• Basic behavior• Extensibility

Framework

패턴 규칙 자동화

8

SINVAS의 접근법

9

SINVAS의 접근법 - 설계모델

login

dao

service

impl

controller

login

dao

service

impl

controller

10

SINVAS의 접근법 - 설계모델

url = "/doLogin.do"

sqlID = "LoginDAO.selectLoginUserInfo"

11

SINVAS의 접근법 - 설계모델

12

SINVAS의 접근법 - 설계모델

13

SINVAS의 접근법 - 설계모델

Field + Getter/Setter = Property

14

SINVAS의 접근법 - 설계모델

15

SINVAS의 접근법 - 설계모델

16

SINVAS의 접근법 - 설계모델

17

SINVAS의 접근법 - 설계모델

18

SINVAS의 접근법 - 설계모델

javax.servlet.*

org.springframework.*

*VO/get*

*VO/set*

19

SINVAS의 접근법 - 설계모델

RequestMapping URL

forwarding URL

Return type / value

20

SINVAS의 접근법 - 설계모델

21

현행화를 위한 실험적 접근법들

화면 간 이동

requestController

Client

View

forward

/login.do

<a href="/signUp.do">고객 계정 신청</a>

새로운 request

response

22

현행화를 위한 실험적 접근법들

화면 이동 정보

• 메뉴 A

• 메뉴 A-1

• 메뉴 A-2

• 메뉴 B Activity Diagram-화면흐름

@RequestMapping UseCase Action

Action

Action

Action

23

현행화를 위한 실험적 접근법들

AOP pointcut : @RequestMapping 메써드 실행 시

기능/업무별 런타임에 어떤 요청이 수행되는지 기록

상품 관리 계정 등록 제품 문의

로깅

보안

트랜잭션

페이지 이동 기록

Core Concerns

Cro

sscu

ttin

g C

on

cern

s

within(@org.springframework.stereotype.Controller *) && @annotation(requestMapping)&& execution(* *(..))

분석도구

구분 기준

24

현행화를 위한 실험적 접근법들

화면 이동 정보

기능/업무/Menu

or

화면 흐름 (시나리오) 시퀀스 다이어그램 클래스 다이어그램

Trace

25

현행화를 위한 실험적 접근법들

UI diagram 자동화

크롤링

• ---• ---• ---• ---

Wireframe or UI Diagram

분석, 생성

Page Navigation Diagram

UML – UseCase ScenarioREQ – Requirement

활용

26

현행화를 위한 실험적 접근법들

Any IDEA?

정보시스템 현행화 절차

기 구축된 시스템 분석을 통한 설계 정보 생성과 분석 모델과의 연계를 통해 시스템 운영 기반 구축

시스템과 관련된 모든 정보는 통합 저장소에 탑재되어 관리

역 공학

Use Case 도출

SequenceDiagram 생성

화면 매핑

기타 정보 매핑

27

정보시스템 현행화 절차

소스코드로부터 프레임 워크 기반의 역 공학을 통한 설계정보 도출 단계

프레임워크 기반의 소스코드 역 공학을 통해서 설계정보를 최대한 도출할 수 있도록 설계하고 구현하는 단계

Source Code(based eGovFrame)

역 공학규칙 수립/구현

프레임워크 아키텍처 및 개발 요소 분석역 공학 대상 파일 분석(Source Code, Configuration File, etc…)역 공학 대상 선정역 공학 결과물 정의(Class Diagram, Sequence Diagram. Statechart Diagram, etc…)역 공학 프로그램 제작, 프로그램 테스트, 역 공학 기능 배포

역 공학을 통해서 도출된 정보에서 Use Case를 도출할 수 있도록 설계하고 구현하는 단계

역 공학을 통해서 도출된 정보에서 Use Case를 도출할 수 있도록 설계하고 구현하는 단계

Use Case Diagram 작성Actor/Use Case 도출

시스템 사용자 및 이해당사자를 Actor 후보 도출시스템 기능을 세분화하여 Use Case 후보 도출도출된 Actor와 Use Case의 관계를 수립관계 수립을 통해 Actor 와 Use Case정립Use Case Diagram 작성Actor, Use Case 간의 관계를 기반으로 체계 수립

역 공학

Use Case 도출

SequenceDiagram 생성

화면 매핑

기타 정보 매핑

28

정보시스템 현행화 절차

역 공학을 통해서 도출된 정보와 Use Case 도출 후 분석된 화면을 맵핑하는 단계

역 공학을 통해서 도출된 정보와 Use Case 도출 후 분석된 화면을 맵핑하는 단계

Use Case Use Case 명세서Flow of Event 작성기

Use Case 명세Trigger, Brief Description, Pre-Condition, Post-Condition, Flow of Event 작성

Flow of Event 작성시 연관된 화면을 도출도출된 Use Case와 연관된 화면을 역공학을 통해 도출된

화면으로 매핑, Use Case부터 설계모델까지의 추적성 확보

역 공학을 통해서 도출된 정보에서 Use Case를 도출할 수 있도록 설계하고 구현하는 단계

Use Case를 기준으로 기능과 관련된 Sequence Diagram을 소스코드를 분석하여 정보 추출을 통해 작성

역 공학

Use Case 도출

SequenceDiagram 생성

화면 매핑

기타 정보 매핑

Operation 매핑

역 공학을통해생성

29

30