안녕하십니까?

아키텍트 연합회 공동 의장 김정호입니다.

지난번 아키텍트 연합회 정회원 오프라인 세미나에서 Software Architecture Knowledge Map에 대한 논의가 있었습니다.

오프라인 모임에서 열딘 토론이 있었고 그 열딘 의견을 온라인에서도 해보자는 의견이 있었서 온라인에 핫 이슈로 위의 토론 내용을 올립니다.

토론 내용 
아래 정리된 Knowledge Map에 대해서 카테고리 별로 정회원 여러분들의 의견을 첨부해주십시오. 첨부된 의견은 정리하여 다음주 수요일 아키텍트 정기 모임에서 발표하겠습니다.

l Software Architect 역할 측면

                         i.         소프트웨어 아키텍트는 비즈니스 영역의 요구사항과 그것을 만족시키는 소프트웨어를 개발하는 중간단계에 위치하는 역할

                        ii.         소프트웨어 아키텍트는 기본적인 요구사항(기능, 비기능, 제약사항)을 이해하고 그에 해당하는 소프트웨어 구조를 설계. (그 구조를 가지고 요구사항을 만족할 수 있는지 확인하고 또 나아가 그 구조로 개발을 하면 어느 정도의 effort, time이 소비되는지 확인)

                       iii.         궁극적으로 요구사항을 만족시켜주는, 즉 고객을 만족시켜주면서 소프트웨어 개발 또한 책임지는 개발의 총괄 책임자 역할

l Software Architect가 알아야 할 지식 측면 (프로젝트 단계 별로 정리)

단계

주요사항

세부사항

분석

Requirement Analysis

 

객체지향 분석 설계

OOAD, CBD

Basic UML (UML 기반의 객체지향 분석/설계 방법)

Use case Analysis

설계

Architecture에 대한 이해

 

S/W 아키텍처 수립 방법론

아키텍처 패턴

아키텍처 설계 사례 연구

-  엔터프라이즈 아키텍처 설계 사례

-  임베디드 아키텍처 설계 사례

-  포탈 아키텍처 설계 사례 등

Architecture 평가

ATAM

Advanced UML & UML(2.0)의 이해

Class Diagram

Sequence Diagram

Statechart Diagram

Component Modeling

 

UML 모델링 툴

TAU, Rational Rose, Rhapsody

Design Pattern

 

구현

객체지향 프로그래밍 언어에 대한 이해

Java / C++, J2EE 기반 프로그래밍

개발 프레임워크

오픈 프레임워크

(Spring, Struts, iBatis, etc.)

Database System

Database system에 대한 이해

-서버용/임베디드용 DB

Distributed Parallel Systems

성능과 확장을 고려한 분산 서버 환경 구축

코드 분석 Tool

Static Analysis Tool

 -PREFast / FxCorp

Dynamic Analysis Tool

Coding Documentation Tool

Doxgen

빌드

빌드 자동화  Tool

Cruise Control

테스트

단위 테스트

xUnit (JUnit, Nunit )

통합 테스트

Team System (MS)

기반사항

Network

 

Security

 

Digital Video & Audio

Video, Audio Codec에 대한 이해

HCI (Human Computer Interface)

 

개발 방법론

RUP(Rational Unified Process)

Product Line

Extreme Programming

개발 지원툴

소스 버전 관리

CVS, ClearCase

이슈관리

ClearQuest

일정 관리

MS-Project

  

l Software Architect의 갖춰야할 비즈니스적인 능력 측면

                        i.         아키텍트가 되려면 숫자에 능해야 함. (돈이나 시간에 대한 이해)

1.     요구하는 기능을 구현하기 위해서 어떤 소프트웨어 구조가 좋고 그 구조는 적어도 얼마의 비용과 시간이 들어가야 한다는 수치를 제시할 수 있어야 함.

2.     소프트웨어 개발자 단가는 얼마이고 Weblogic 1 unit당 비용이 얼마이다. 인력 시장에서 c 개발자 5명을 구하기는 어려우므로

                       ii.         각 파트간의 이익(누가 얼마나 일을 적게 할 것인가?)에 대해서 잘 관찰하고 있어야 함

                       iii.         아키텍처 구성 요소를 이루고 있는 솔루션 제공 업체들과의 관계에는 어떤 역학이 존재하는 가? 고객과의 관계는 어떠한가?


l Software Architecture 본질 측면

단계

주요사항

세부사항

Architecture

Competence

아키텍트의 역할

프로젝트에서 아키텍트가 해야할 역할

아키텍트 조직 구성

조직 간의 효율적인 커뮤니케이션을 위한 아키텍트 조직 구성

아키텍처 재사용

아키텍처 지식이나 Asset을 유사한 프로젝트에서 재사용할 수 있도록 한 방법 들

아키텍처 기반의 비용 예측

아키텍처를 기반으로 개발해야할 요소들에 들어가는 인력이나 기간 산정

Architecture Conformance

아키텍처 기반의 개발 여부 체크

 

기 수립된 아키텍처 기반으로 개발이 진행되고 있는지 확인하고 이슈를 해결 하기 위한 효과적인 방법

Quality Attributes for Architecture

소프트웨어 품질 속성에 대한 이해

아키텍처를 작성하기 위해 필요한 품질 속성 연구

품질 속성 기반의 대안 아키텍처 선택

대안 아키텍처 평가를 위한 다양한 방법 (ATAM, CBAM)

Tool for Architecture

아키텍처를 지원하는 툴

품질 속성 기반의 아키텍처를 수립 지원 툴이나 아키텍처 수준에서 테스트가 가능한 툴 등