SW Architecture [정의] 프로그램/시스템 컴포넌트, 컴포넌트 간의 상호관계 구조이며 이들을 설계하기 위한 지침과 원리
[중요성] SW 프레임워크에 설계기반제공, SW 스타일을 제공
[구성요소] Architecture Description, 이해관계자, 관심사, 관점, View
[아키텍처 설계절차] 요참모프배
아키텍처 구파악
조 아키텍처 준비
아키텍처 델링
아키텍처 로토타이핑
아키텍처
[설계 원리]
할과 정복 - 세분화된 작은 시스템부터 개발(상향식)
상화 - 과정 추상화, 데이터 추상화, 제어 추상화
계적 분해 - 기능 세분화 후 점진적 구체화(하향식)
듈화 - 작업 단위화, 응집도 및 결합도
보은닉 - 모듈간 독립화, 인터페이스 통해 필요정보만 송수신
[소프트웨어 아키텍처 설계 시 고려사항]
기능 요구사항 - 시스템이 구현해야 하는 기능 요구사항에 대해 설계 단계에서 책임 할당
품질 속성 - 시스템 품질속성, 비즈니스 품질속성, 아키텍처 품질속성
제약사항 - 프로그래밍 언어, Legacy 재사용, H/W, COTS

요참모프배
분추단모정
토픽 이름 () SW Architecture
분류 SW > SW Architecture > SW Architecture
키워드(암기) IEEE 42010으로 통합구성요소, Mission, Stakeholder, Concerns, View, Viewpoint
암기법(해당경우)  

 

기출문제

번호 문제 회차
1 6. 아래와 같은 간단한 응용에 대한 소프트웨어 아키텍처를 작성하고자 한다. 다음 질문에 답하시오.
(1) C&C (Component & Connector, 프로세스 ) 작성할 가장 적당한 아키텍처 스타일을 제시하고 필요한 컴포넌트와 커넥터를 제시하시오.
(2) 위에서 제시한 아키텍처 스타일에 따라 아키텍처를 작성하시오.
(3) 응용에 대한 모듈 (논리 ) 작성을 위한 컴포넌트를 제시하고 아키텍처를 작성하시오.
92_관리_3
2 4. 소프트웨어 아키텍처의 중요성 및 품질속성을 시스템, 비즈니스, 아키텍처 관점으로 구분하여 설명하시오. 87_조직_3
3 6. 소프트웨어 아키텍처의 정의, 역할, 아키텍처 모델의 중요성을 설명하고, 여러 가지 아키텍처 스타일을 설명하시오. 86_관리_3
4 6. A기관 차세대통합정보시스템 구축 사업에서는 웹서비스 방식으로 모든 서비스를 제공할 계획이다. 고객 제안요청서에서는 CBD (Component Based Development)방법론으로 구축을 요구하고 있으나, 현재 개발업체 입장은 과제해결에 요구되는 가지 기존 소프트웨어 컴포넌트 구매가 필요하고, 나머지는 EJB(Enterprise Java Beans)환경으로 개발을 고려하고 있다. 고객과의 이견차이를 좁히기 위한 적합한 응용소프트웨어 아키텍처 구현방안을 다음사항을 기준으로 설명하시오.
1) 개발 방법론(팩키지+CBD) 적용방안을 제시하시오.
2) 응용 소프트웨어 아키텍처 구성방안을 기술하시오.
3) 기성 소프트웨어 컴포넌트와 신규개발 컴포넌트간 인터페이스 방안 설명.
83_관리_4
5 소프트웨어 아키텍처(Software Architecture) 정의 하시오. 세가지 주요요소를 중심으로 기술하시오. UML 4+1View, 프레임워크(FW 모델들), 스타일 81_관리_1
6 1. 소프트웨어 아키텍처(Software Architecture) 정의 하시오. 세가지 주요요소를 중심으로 기술하시오. 81_응용_2
7 2.  CBD 방법론을 적용하여 프로젝트를 수행하려고 한다. 컴포넌트 정의에 앞서 소프트웨어 아키텍처에 대해 정의하고자 한다.
   . 소프트웨어 아키텍처 단계의 목적(작업완료기준) 기술하시오.
   . 수행내용을 기술하시오.
   . 고려할 사항 등에 대하여 기술하시오.
80_관리_4
8 1. 소프트웨어 아키텍처 품질 속성 시나리오의 개념 및 구성요소를 설명하고 소프트웨어 아키텍처 품질 속성 시나리오 중에서 신뢰성, 보안성, 유지보수성에 대한 시나리오를 설명하시오. 모의_2019.07_응용_3
9 5. 소프트웨어 아키텍처 패턴의 개념과 종류를 설명하고, layer, Broker, MVC 패턴의 /단점에 대해 설명하시오. 모의_2018.01_응용_2
10 5. 아키텍처를 이해관계자들이 원하는 수준으로 품질 속성을 달성하기 위해서 소프트웨어 아키텍처 품질 속성 시나리오를 작성하고자 한다. 아키텍처 품질 속성 시나리오의 개념 구성요소를 설명하고 소프트웨어 아키텍처 품질 속성 시나리오 중에서 가용성, 변경 용이성, 수행 성능에 대한 시나리오를 설명하시오. 모의_2017.12_관리_3
11 4. 소프트웨어 아키텍처란 소프트웨어 시스템의 구성을 위한 중대한 결정사항들이라 할 수 있다. 소프트웨어 아키텍처에 대한 다음 질문에 답하시오.
. 품질속성 시나리오
. 아키텍처 설계 전술
. 아키텍처 스타일
모의_2017.04_관리_3

 

I. 소프트웨어 컴포넌트와 인터페이스 간의 상호관계 구조, 소프트웨어 아키텍처의 개요

. 소프트웨어 아키텍처(Software Architecture) 정의

- 프로그램/시스템 컴포넌트, 컴포넌트 간의 상호관계 구조이며 이들을 설계하기 위한 지침과 원리

- 소프트웨어 컴포넌트들과 외부적으로 보여지는 특성, 그들의 상호 관계들로 구성되는 해당 시스템의 구조

 

. 소프트웨어 아키텍처의 등장배경

SW 목적, 기능의 다양성 증가 Software Architecture 활용 품질 및
생산성
향상
분할과 통합 과정 복잡도 증가



품질 고려한 체계적 설계 필요



 - 이해관계자(Stakeholder)간에 관점 조율, 우선순위 결정과 요구 사항들 Trade off 분석 통한 시스템 최적화

 - 요구사항 조화 충돌 조정 (성능: 정보보호, 유지보수성: 안정성, 개발단가:투자단가 )

 

. 소프트웨어 아키텍처의 특징

구분 특징 내용
비즈니스
측면
변화 민첩성 - Agility(민첩성) 통한 RTE 구현, 적시성.
- 다양한 비즈니스 요구사항의 민첩한 대응 처리

비용 절감 - 소프트웨어 재사용, 자산화 통한 개발비 절감

표준화 - 재사용 가능한 산업별 표준화 지원
기술적
측면
의사소통 수단 - 이해관계자들 원활한 의사소통 수단

간략성 - 소프트웨어 복잡성 증가에 따른 해결 대안

관점(Aspect)모형 - 이해관계자들 관심사에 대한 모형 제시

 

II. SW 아키텍처 프레임워크 구성요소

. SW 아키텍처 프레임워크의 주요 구성요소

요소 내용
Architecture
Description
(AD)
- 아키텍처를 기록하기 위한 산출물들
- 하나의 AD System 대한 관심사를 나타내는 관심사(Concern) 관련, 이에 대응하는 하나 이상의 Stakeholder 연관됨
이해관계자
(Stakeholder)
- 소프트웨어 시스템 개발에 관련된 모든 사람과 조직을 의미
- 고객, 최종 사용자, 개발자, 프로젝트관리자, 유지보수자, 마케팅담당자 등을 포함.
관심사
(Concerns)
- 동일한 시스템에 대해 각 이해관계자들이 가지는 서로 다른 의견과 목표.
() 사용자 입장: 기본적인 기능 + 신뢰성/보안/사용성 요구//유지보수자 입장: 유지보수 용이성//개발자 입장: 적은 비용과 인력으로 개발 가능해야
관점
(Viewpoint)
- 서로 다른 역할이나 책임으로 시스템이나 산출물들에 대한 이해관계자들의 관점.
- Viewpoint View 구성하기 위한 규칙 정의하는 패턴. 각각의 View 1:1로 대응.
View - 이해관계자들과 이들이 가지는 생각이나 견해로부터 전체 시스템을 표현.

 

. SW 아키텍처 프레임워크 (ISO/IEC/IEEE 42010 최종, IEEE 1471 개념적)

à SW 토픽 044_ISO_IEC_IEEE42010(IEEE1471) 참고

 

III. SW 소프트웨어 아키텍처 프로세스(절차도)

 

 

IV. 소프트웨어 아키텍처 정방향 분석과 역방향 분석

. 소프트웨어 아키텍처 정방향 분석

구분 세부항목 설명
개념 의사 결정
상세 설계
- 프로젝트 초반에 요구사항 명세서 활용해 분석하고 의사 결정
- 위험요소, 품질, 비기능 요구사항 등을 분석해 시스템 설계
특징 일관성 유지 위험 예방 - SW 외적(요구사항) 완결성, 내적(개발방향) 완결성 추구
- 적합성 여부 분석하고 수정/보완해 위험 최소화 목적
기법 ATAM
CBAM
ADR
ARID
- 아키텍처가 특정 품질 목표 충족 여부, 목표 충돌(Trade-off) 분석
- ATAM 기법의 부족한 경제성 평가해 보완한 방법
- 아키텍처 구성 요소 응집도 평가하는 방법
- ATAM 기법과 ADR 기법 혼합하여 특정 부분에 대한 품질 요소 평가

- 산출물 없이 요구사항 기반으로 프로젝트 초반에 아키텍처 분석 실시할 때 정방향 분석 수행

 

. 소프트웨어 아키텍처 역방향 분석

구분 세부 항목 설명
개념 역공학 시스템 통합 - 기존 산출물(코드, 설계서)에서 정보 추출해 아키텍처 분석
- 기존 시스템(Legacy) 분석, 도축하여 기본 아키텍처 분석 수행
특징 품질 관리 이해도 향상 - 구성 요소 복잡도 최소화하여 유지 보수 용이하도록 지원
- 소프트웨어 시스템 구성에 대한 이해도 증대
기법 지표 분석
관계 분석
시각화 분석
- 산출물(코드 )에서 추출한 정보 기반으로 정량적 수치 평가
- 컴포넌트 관계 추출해 관계적 문제점(영향력, 상호참조) 평가
- 지표/관계 기법 결과를 시각화하여 다각도로 분석하는 방법

- 기존 시스템(Legacy)이 있는 경우 역방향 분석 이용해 기본 아키텍처 분석, 도출한 수행

- 아키텍처 분석 활동은 비용 절감, 사전 문제 발견, 요구사항 검증, 설계 품질을 향상시킬 있는 활동

반응형

'정보관리기술사 > 소프트웨어공학' 카테고리의 다른 글

ISO/IEC/IEEE 42010  (1) 2024.03.31
명세기반 테스팅 기법  (0) 2024.03.30
(외부)EPMO  (0) 2024.03.11
객체지향 설계의 원리  (0) 2024.03.10
객체지향 프로그래밍 특징  (0) 2024.03.09

+ Recent posts