상 | 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 |