본문 바로가기
TechNote/소프트웨어 공학(SW)

004. 소프트웨어 아키

by 도지웅 2022. 9. 29.
반응형

1. 시스템의 청사진, 소프트웨어 아키텍처

가. 소프트웨어 아키텍처의 정의

  • SW 구성요소들의 기능과 요소들 사이의 상호작용 및 관계를 다루는 기술 명세서
  • 프로그램 및 시스템의 컴포넌트, 컴포넌트들 간의 상호관계의 구조이며, 이들을 설계하고 전개하기 위한 지침과 원리

나. 소프트웨어 아키텍처의 정의

  • stakeholder간의 관점 조율을 통한 시스템 최적화 및 통일된 의사소통
  • 요구사항들 간의 개념상의 충돌 조정
  • 시스템 분석의 명확성과, 표준화를 통해 유연하고 신속한 추가/변경으로 비즈니스요구를 실현함

다. 소프트웨어 아키텍처의 필요성

구분 필요성 내용
고객측면 의사소통 이해관계자 이해도 증진 및 의사소통
고객측면의사결정 초기 중요한 의사결정
개발측면 재사용 재사용 촉진(표준화, 좋은 구조/경험)
개발측면진화성 추가/변경의 용이성
개발측면시스템분석 시스템 명시화


2. 소프트웨어 아키텍처 프레임워크 – IEEE 1471

가. 주요 구성요소

구성요소 내용
이해관계자 SW개발에 관계된 모든 사람과 조직
관심사 각 이해관계자들의 요구사항
View 시스템을 바라보는 다양한 관점
Patten(Style) 반복되는 문제의 해결 방법을 제공
관계 요소들 간의 상호 작용 미 ㅊ관계
  • 아키텍처 프레임워크는 유연하고 확장성 는 아키텍쳐를 개발하기 위한 틀

나. 소프트웨어 아키텍처 개발 프로세스

프로세스 세 부 내 용 CSF
현황분석 - 시스템 요구사항, 비즈니스 목적, 개발조직 / 전문가의 경험 식별 및 도출 추적성 부여
아키텍쳐
프레임워크
- 정보 시스템을 바라보는 이해 당사자의 관점과 VIEW POINT를 반영한 표준 프레임워크 도출 통일된
관점 적용
품질요소
식별
- 시스템, 비즈니스, 아키텍처 관점의 품질요소
- 신뢰성, 기능성, 민첩성, 개념적 일관성 등
요소별 배타성 확인
품질요소
우선순위 식별
- 품질시나리오 도출 Utility Tree 활용한 품질요소별 우선순위 가시화
- 사용자와의 공조가 중요
품질 특성고려
관점정의 - 소프트웨어 개발과 관련된 이해당사자별 주요 관심사항 도출 시각화
아키텍처
스타일
- 기 개발된 관점별 아키텍처 스타일을 시스템 환경에 맞게 선택 시스템 특성 고려
평가,선택 - 선택된 아키텍처 후보를 평가하고 최종 선택 ATAM분석
테일러링 - 시스템 특성에 맞게 아키텍처를 조정 사용자승인

다. 설계 방법론

종류 설명
ABD
(Architecture Based Design)
☞ 카네기 멜론대학 SEI 개발
1. 기능분할
- 아키텍처 스타일 선택
- 템플릿 정제
- 기능 검증
- 동시성 뷰 생성
- 배치뷰 생성
- 품질 시나리오 검증
- 제약사항 검증
ADD
(Attribute Driven Design)
1. 분해 모듈 선택
- 선택한 모듈 분해 정제
- 아키텍처 동인결정
- 아키텍처 스타일 선택
- 모듈 실체화 기능 할당
- 하위 모듈의 인터페이스 정의
- 유스케이스와 품질요소를 정제하고 검증해서 하위모듈의 제약사항으로 변환
- 모듈을 분해할 필요 없을때까지 반복

 

3. 소프트웨어 아키텍쳐 뷰와 스타일

가. 시나리오 기반의 4+1 View

  • 특정뷰가 모든 시스템을 설명하긴 어려움
  • 하나의 시나리오에 담긴 요구사항 구현을 위해 4개의 뷰가 함께 참여하고 영향을 줌

나. 아키텍처 스타일

구분 설명
시스템
구성

저장소 구조 서브시스템들이 단일 중앙저장소에 자료를 접근, 변경
MVC 구조 모델, 뷰, 제어구조라는 세가지 서브시스템으로 구성
C/S 구조 서버는 클라이언트라 불리는 서브시스템에 서비스 제공
계층 구조 시스템이 계층적으로 분할, 하위 시스템이 제공하는 서비스를 상위 층의 시스템이 사용
모듈분해
스타일

기능지향
파이프라이닝
서브시스템이 입력데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업의 반복
객체지향 서브 시스템이 서로 통신하는 객체들로 구성
제어스타일
중앙 집중 한 서브시스템이 전체 시스템제어
이벤트기반 각 서브시스템이 외부 이벤트에 반응

다. 일반적인 소프트웨어 아키텍처 설계

  • 아키텍처 요구사항 파악 -> 참조아키텍처 준비 -> 아키텍처 모델링 -> 아키텍처 프로토타이핑 -> 아키텍처 배포


4. 소프트웨어 아키텍처 개발 시 고려사항 및 효율적 실무활용방안

가. 소프트웨어 아키텍처 개발 시 고려사항

관점 구분 고려사항
분석관점 현황분석 - 시스템 요구사항/비즈니스 목적 고려한 분석
분석관점프레임워크 - 재사용 표준을 위한 일관된 관점으로 개발
개발관점 대안결정 - 아키텍처 스타일 평가 체크리스트 활용 필요
개발관점테일러링 - 테일러링 표준을 정의하고 활용지침 마련 필요

나. 효울적 실무 활용 방안

  • 품질 특성 기반으로 품질향상이 되도록
  • 효과적인 의사소통을 위한 베이스라인 관리 및 추적성 보장
  • 기술변화에 유연하게 대응할 수 있는 수단으로 활용

 

5. 업무순환 아키텍처 비즈니스 사이클(ABC:Architecture business cycle)

가. 정의

  • 아키텍처, 기술, 비즈니스, 사회환경에 영향을 주고 받는 사이클 관계

나. 소프트웨어 프로세스와 아키텍처 비즈니스 사이클

아키텍처 활동 내용
사업적 요소 창출 비즈니스 요구사항 반영
요구사항 이해 기능적 요구사항 도출, 품질 속성
아키텍처 수집 통합, 가능한 수집
아키텍처 의사소통 명확한 문서화 작업
아키텍처 분석 제작한 아키텍처 평가
아키텍처 기반 개발 외부 구조와 인터페이스
아키텍처 준수 확인 아키텍처 실제 적용 여부 확인

 

 

 

 

반응형

댓글