명세기반 테스팅 기법 블랙박스 테스트 = 명세기반 테스트
 
토픽 이름() 명세기반 테스트(Specification-based Technique)
분류 SW > Test > 명세기반 테스트
키워드(암기) - 요구명세서, 기능중심, Data Driven, I/O Driven
- 동등분할, 경계값분석, 의사결정 테이블, 상태전이, 유즈케이스, 분류트리, 페어와이즈 테스트, 원인-결과 그래프 기법, 오류예측기법
암기법(해당경우) 불동경의상-유분페원오 (불교, 동경에 의상대사 가셨다)

 

기출문제

번호 문제 회차
1 테스트 설계 기법 중 명세기반 기법(Specification-based Technique) 대하여 설명하시오. 111.응용.3.3
2 소프트웨어의 명세기반기법(Specification-Based Technique)테스트와 구조기반기법 (Structure-Based Technique)테스트 방법을 나열하고 설명하시오. 83.관리.2.4
3 5. 명세기반테스트에 대해 설명하시오. 모의_2018.07.응용.3

 

I. 명세기반 테스트 개요

    1. 명세기반 테스트 정의
      1. S/W 내부 동작을 없는 상태에서 시스템 명세서를 기반으로 테스트케이스를 설계하여 S/W 목적하는 동작만을 인지하여 테스트하는 방식
  1. 명세 기반 기법의 특징
특징 설명
블랙박스테스트 시스템 내부를 참조하지 않고 테스트 수행
데이터 중심 입출력 데이터에 초점
테스트 케이스 도출 초기 테스트 설계 적용으로 테스트 케이스 도출 가능

 

II. 명세기반 테스트의 기법

 -- 블랙박스 테스트 기법과 동일

반응형

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

SW Architecture 평가  (0) 2024.04.01
ISO/IEC/IEEE 42010  (1) 2024.03.31
SW Architecture  (0) 2024.03.30
(외부)EPMO  (0) 2024.03.11
객체지향 설계의 원리  (0) 2024.03.10
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
(외부)EPMO [정의] - 다수의 IT 프로젝트를 기업 비즈니스전략과 정렬하고 프로젝트 별 기업 자원 투입, PMO 간 의견 조율 등을 수행하는 최상위 PMO
도입절차] 도입계획수립-PMO가동준비-PMO운영-PMO지속적개선
[PMO제도의 한계점] 예산부족, 예산편성기준 부재, 명확한 도입대상 기준부재,
PMO 도입 부정적인식, PMO 권한과 책임 애매함, 감리업체와 충돌
[PMO 선정기준] 수행인력, 업무계획, 수행실적, 품질 및 성과관리

[PMO유형] 기상대, 코치, 컨트롤타워
[PMO단계]
PMO사업추진(도입검토,발주및계약,착수)
PMO사업수행(본사업기획단계, 본사업집행단계, 본사업 사후관리단계)
PMO사업종료(PMO사업검사,PMO사업 산출물인수, PMO사업 추진실적제출)
토픽 이름() (외부)EPMO, 공공 PMO
분류 PM > (외부)EPMO, 공공 PMO
키워드(암기) PMO(Project Management Office)의 유형, 공공 PMO, EPMO
암기법(해당경우) [기집사] 기획, 집행, 사후관리

 

기출문제

번호 문제 회차
1 최근 정부에서는 공공기관의 전문성을 보완하고, 중소 소프트웨어 기업의 성공적인 사업 추진 품질확보를 위해 PMO(Project Management Officier) 제도를 추진하고 있다. 공공 정보화 사업에서의 PMO 제도 적용과 관련하여 다음에 대해 설명하시오.
. 프로젝트 단계별 PMO 도입시기에 따른 ,단점
. CDB 방법론을 활용한 정보화 사업에서 프로젝트 단계별 PMO 역할
. PMO 도입효과 기술사적 입장에서 PMO제도의 성공적인 도입 방안
관리 98

 

기업 전략에 기반을 둔 상시적, 포괄적 조직, EPMO 개념

    1. EPMO(Enterprise PMO) 정의
    2. EPMO 등장배경
  1. EPMO 개념 역할

  • 데이터를 저장함과 동시에 일정한 규칙에 의해 사용자 어플리케이션에 의해 처리될 수 있도록 함
  1. 기업 조직 내 EPMO 위치 역할

  1. EPMO PMO 비교

  1. 공공정보화 사업에서의 PMO 제도, 공공 PMO 개요

. 공공 PMO 정의

- 전자정부사업의 사업의 위험을 방지하고 품질을 향상시키기 위해 전자정부사업의 관리 감독 업무 일부 또는 전체를 전문가에게 위탁하는 제도

- 전자정부사업관리 위탁(PMO) 제도 도입(전자 정부법 64조의2)

 

. 공공정보화 사업에서의PMO 제도 등장배경

발주기관 측면 중소기업 측면
-정보화 사업 전문관리 인력공급 전문성 부족 보완
-PMO 도움을 받아 사업기획부터 사후관리까지 사업전반에 대한 품질향상
-체계적인 사업관리 방법론 경험, 노하우 부족을 보완
-사업관리 전문역량이 강화되며, PMO 관련 업체는 공공정보화 시장이 사업영역으로 확장

 

  1. 공공정보화 사업 PMO 제도 도입의 범위

법적 근거

구분 규정 및 대상

전자정부법
64조의2
- (전자정부사업관리의 위탁) 행정기관등의 장은 전자정부사업을 효율적으로
수행하기 위하여 다음 각 호의 어느 하나에 해당하는 사업에 대하여 관리ㆍ감독하는
 업무(이하 "전자정부사업관리" 한다) 전부 또는 일부를 전문지식과 기술능력을 갖춘 자에게 위탁할 수 있으며, 대상이 되는 전자정부사업의 구체적인 범위 및 전자정부사업관리를 수탁할 수 있는 자의 자격요건은 대통령령으로 정한다.

전자정부법
64조의3
- (전자정부사업관리자의 책무 ) 전자정부사업관리자가 전자정부사업관리업무를
수행할 때 계약을 위반하거나 고의나 과실로 발주자에게 손해를 발생시킨경우에는
  손해를 배상하여야 한다.

전자정부법
시행령
78조의2
- (관리ㆍ감독업무를 위탁할 수 있는 전자정부사업의 범위)
64조의21항에 따른 관리ㆍ감독 업무(이하 "전자정부사업관리"라 한
) 위탁할 있는 전자정부사업의 구체적인 범위는 다음 각 호와 같다.

전자정부법
시행령
78조의3
- (전자정부사업관리자의 자격요건) 64조의21항에 따라 전자정부사업관리를
 수탁할 있는 자의 자격요건은 다음 각 호와 같다.

전자정부법
시행령
78조의4
- (전자정부사업관리자의 선정기준) 중앙행정기관등의 장은 법 제64조의22항에
 따른 전자정부사업관리를 위탁받아 수행하는 자(이하 "전자정부사업관리자" 한다) 다음 호의 기준을 고려하여 평가한 선정하여야 한다.

전자정부법
시행령
78조의5
- (표준계약서) 행정자치부장관은 중앙행정기관등이 전자정부사업관리에 대한 위탁업무를 효율적으로 처리하기 위하여 필요하다고 인정하는 경우에는 표준계약서를 정하여 고시할 수 있다.

위탁규정 - (전자정부사업관리 위탁에 관한 규정) 위탁대상사업, 용역 대가 산정, 전자정부사업관리 수행 규정
- 「전자정부법」 64조의2, 같은 시행령 78조의2부터 제78조의4까지의
규정에서 위임한 사항과 전자정부사업관리의 위탁에 필요한 사항을 정함을 목적

위탁계약
특수조건
- (전자정부사업관리 위탁용역계약 특수조건) 전자정부사업관리 위탁용역계약 특수조건(이하 "위탁계약특수조건"이라 한다) 「전자정부법」제64조의2 따른 전자정부사업관리 위탁용역(이하 "위탁용역"이라 한다) 수행함에 있어 발주 기관과 위탁용역 수행자간에 이행해야 계약조건을 정함을 목적
도입 대상 대국민서비스 - 국민생활의 편의와 안전을 위해 필요한 정보시스템을 구축, 고도화하는 사업

공통행정
서비스
- 여러 행정기관 등이 공통적으로 사용하여 행정의 효율성에 영향을 미치는 정보시스템을 구축하거나 고도화하는 사업

통합·연계
사업
- 행정정보의 공동이용시스템 이상의 정보시스템이 통합·연계되어 고도의
사업관리 역량이 요구되는 사업

행정기관 등
의 장이 인정
하는 사업
- 해당 행정기관 등이 전자정부사업관리에 대한 경험 및 전문성 등이 부족하거나
필요 인력등이 충분하지 아니하여 위탁관리가 필요한 사업
- 밖에 전자정부사업의 중요도, 난이도 등이 대국민·공통행정서비스 및 통합·연계
 사업에 준하는 것으로서 전문적인 관리·감독이 필요하다고 인정되는 사업

- 전자정부사업에 대한 관리·감독 업무의 전부 또는 일부를 전문지식과 기술능력을 갖춘 자에게 위탁할 있도록 하는 PMO제도 도입

 

  1. 공공 정보화 사업 PMO 사업자 선정 기준 및 수행단계별 세부 업무

  . 공공 정보화 사업 PMO 선정기준

구분 선정기준 평가항목
수행인력 전자정부사업 또는 전자정부사업관리 수행경력 등 수행인력의 전문성
업무계획 사업의 이해도, 위탁용역 추진내용의 적절성, 사업관리기술지원인력투입 계획의 적절성등 사업계획의 구체성 및 실현가능성
수행실적 참여업체의 전자정부사업 또는 전자정부사업관리 수행실적 전자정부사업 등의 수행실적
품질 및 성과관리 위탁용역사업의 품질관리, 성과관리 지원 품질관리 지원체계
  • 발주기관은 사업의 특성을 고려하여 평가항목 등 선정기준을 조정하여 사용가능

 

  . 공공사업 PMO 수행단계별 세부 업무

수행단계 관리항목 세부업무
기획 단계 통합관리 1. 사업계획 수립 지원.
2. 사업대가 산정 지원
3. 제안요청서 작성 지원
4. 사업자 선정 기술협상 지원

성과관리 1. 사업목표 수립 지원
2. 세부 성과지표 목표치 수립 지원
집행 단계 통합관리 1. 사업착수 관련 계획의 검토, 조정
2. 사업 진행상황 모니터링,검토, 조정
3. 과업 변경영향 분석, 대안 제시
4. 설계·종료 단계 기능점수 적정성 검토
5. 사업의 검사·인수 지원
6. 단계별 교훈수집, 하자보수 계획 절차 검토·조정
7. 적용된 사업관리 절차 방법론의 지식화
8. 위험 쟁점 사항에 대한 지식화

이해 관계자
관리
1. 이해관계자 식별 영향도 분석
2. 이해관계자 의견 반영여부 점검 조치사항 지시

범위관리 1. 사업범위 검토 조정
2. 요구사항 분석내용의 점검 추적관리
3. 사업범위 변경통제

자원관리 1. 투입인력 계획의 적정성 검토 조정
2. 투입인력 계획의 준수여부 점검 조치사항 지시
3. 인력변경 적정성 점검 조치사항 지시

일정관리 1. 일정계획 검토 조정
2. 진척상황 점검 지연시 조치사항 지시
3. 일정변경 요청의 타당성 검토 대안제시

위험관리 1. 위험 관리계획 검토 조정
2. 위험사항 식별 분석
3. 위험 대응계획 검토 조정
4. 위험 대응상황 점검 조치사항 지시

품질관리 1. 품질 시험 관리계획 검토 조정
2. 방법론 검토 조정
3. 품질·시험 활동 점검 조치사항 지시

성과관리 1. 성과 관리계획 수립
2. 단계별 성과지표 평가

조달관리 1. 하도급 조달 계획 점검·조정
2. 하도급 조달 계획의 이행상황 점검,조치사항 지시

의사소통
관리
1. 의사소통 계획 검토 조정
2. 사업추진 상황 쟁점사항의 정기·비정기 보고
3. 발주기관의 의사결정 지원

변화관리 1. 변화관리 계획 검토 조정
2. 변화관리 계획의 이행여부 점검 조치사항 지시

보안관리 1. 보안 개인정보보호 관리계획 검토·조정
2. 보안 개인정보보호 관리계획 이행여부 점검, 조치사항 지시
사후관리
단계
통합관리 1. 정보시스템 안정화 지원
2. 위탁대상사업 위탁용역 산출물의 활용·관리 지원
3. 하자여부의 검토
4. 하자보수 이행 관리 지원

변화관리 1. 정보시스템 변화관리 지원
2. 교육 홍보 지원

성과관리 1. 성과지표 달성여부 평가
  1. 도입된 PMO 제도의 한계점 및 보완 방안

[참고] 공공 정보화 사업에서 프로젝트 단계별 PMO 역할 (CBO방법론 도입 )

단계 주요 활동 PMO 역할
요구정의 단계 - 고객의 요구사항 도출 정의
- 개발할 시스템의 비즈니스 도메인에 대한 이해
- 이터레이션 계획 수립
- 프로젝트 관리원칙 제공
- 체계적 보고체계 구축
분석단계 - 해당이터레이션에 대한 상세 계획 수립
- 개발할 시스템에서 제공해야 기능을 고객 관점에서 정의
- 핵심 기능에 대한 UI 프로토타이핑을 통해 고객에게서 검증
- 시스템의 기능을 구현할 내부 객체 식별 정의
- 시스템 내부 객체와 사용자와 시스템 간의 상호작용 체계를 정의하고 이들의 일관성 검증
- 요구 수집을 위한 의사소통 체계 구축 지원
- 산출물 표준 검토
- 요구사항 추적성 확보 방안 마련
설계단계 - 시스템에 구현될 화면 레이아웃 화면 간의 네비게이션(Navigation) 정의
- 데이터 모델링을 통한 DB 설계
- 컴포넌트 식별 기법을 사용한 컴포넌트 식별, 컴포넌트 상호작용 관계 정의
- 컴포넌트 내부 클래스 시퀀스 다이어그램 작성을 통해 객체의 속성 및 오퍼레이션과 객체 간 메시지 전달 흐름을 설계
- 산출물 검토를 통한 산출물 품질 확보
- 테스트 계획 검토 테스트 조직 구성 확인
구현단계 - 컴포넌트 프로그래밍
- 컴포넌트 테스트
- 컴포넌트 배포 운영
- 테스트 결과 확인
- 배포 품질수준 확보

 

반응형

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

명세기반 테스팅 기법  (0) 2024.03.30
SW Architecture  (0) 2024.03.30
객체지향 설계의 원리  (0) 2024.03.10
객체지향 프로그래밍 특징  (0) 2024.03.09
Architecture  (0) 2024.03.08
객체지향 설계의 원리 1. 단일책임의 원칙 ( SRP : Single Response Principle ) [응집도 향상]
- 시스템의 모든 객체는 하나의 책임만을 가지며, 객체가 제공하는 모든 서비스는 그 하나만의 책임만을 수행해야 한다는 설계 원칙
2. 개방 폐쇄 원칙 ( OCP : Open Closed Principle) [전략패턴]
- 확장에는 열려있고 수정에는 닫혀있어야 한다는 설계 원칙
- Open(클래스 수직관계), Close(클래스 수평관계)
3. 리스코프 치환의 원칙 (LSP :Liskov Substitution Principle)
- 부모 클래스의 객체들이 자식 클래스 사용되는 곳에 대체되야한다는 원칙
4. 인터페이스 분리의 원칙 (ISP : Interface Segregation Principle)
- 어떤 클래스가 다른 클래스에 종속될 때는 최소한의 인터페이스만을 사용해야 한다는 설계 원칙
5. 의존성 역전의 원칙(DIP/Dependency Inversion Principle)
- 높은 레벨의 모듈은 낮은 레벨의 모듈을 의존하면 안되서로 추상에 의존해야 한다는 설계 원칙
SOLID
토픽 이름 객체지향 설계의 원리
분류 소프트웨어 > 개발방법론 > 객체지향 설계의 원리
키워드(암기) 객체지향방법론, GoF Design Pattern ,  SOLID
SRP (Single Response Principle), OCP ( Open Closed Principle), LSP (Liskov Substitution Principle), ISP (Interface Segregation Principle), DIP (Dependency Inversion  Principle)
암기법(해당경우) SOLID

 

기출문제

번호 문제 회차
1 4. 소프트웨어 재사용성과 유지보수 향상을 위하여 객체지향 설계 5대 원칙을 적용하고 있다. 다음에 대하여 답하시오.
 . 의존성 역전 원칙(Dependency Inversion Principle) 설명하시오
 . 의존성 주입(Dependency Injection) 구현하는 3가지 방식을 설명하고 각 방식별 아래의 조건을 고려하여 구현 예시를 작성하시오
121..2
2 LSP(Liskov Substitution Priciple) 105..1.2
3 1. 객체지향 소프트웨어 설계에 많은 도움을 주는 GoF 디자인 패턴(Design Pattern)영역을 목적과 범위에 따라 분류하고, 분류별 특성을 설명하시오.
또한, 객체지향시스템에서 개발된 기능의 재사용을 위해 사용되는 대표적 기법인
화이트박스 재사용(White-box Reuse), 블랙박스 재사용(Black-box Reuse)
위임(Delegation) 패턴과 어떤 관계가 있는 설명하시오.
104..3.1
4 객체지향기법의 기본원칙을 기술하고, 구조적 기법과 차별화되는 개념을 설명하시오. 응용98.2
5 객체지향 언어로 알려진 C++ JAVA 대하여
클래스(class) 관점에서 차이점을 설명하시오
응용93.2
6 소프트웨어 개발방법론은 구조적방법론, 정보공학방법론, 객체지향방법론, 컴포넌트기반 방법론의 형태로 발전되어 왔다. 정보공학방법론의 특징과 의의를 타 방법론과 비교하여 설명하시오. 관리90.4

 

  1. 재사용성과 유지보수 향상을 위한, 객체지향 설계 5 원칙의 개요
  • 소프트웨어 개발 및 유지보수성 향상을 위한 설계관점의 기본원칙
  • 코드를 좀더 유지보수하기 쉽고, 유연하고, 확장하기 쉽게 만들기 위한 설계
  • 재 사용성, 유지 보수성, 이식성 통한 생산성 품질의 향상
  • 모형의 적합성: 현실 세계 인간의 사고 방식과 유사
  • 일관성, 추적성: 전체 공정에서 단계간의 전환과 변경이 자연스럽고 신속함

 

  1. 객체지향 설계 원칙 ( 5 원칙, SOLID )
구분 설명
정의 - 시스템의 모든 객체는 하나의 책임만을 가지며,
객체가 제공하는 모든 서비스는 그 하나만의 책임만을 수행해야 한다는 설계 원칙
특징 - 응집도 향상으로 유지보수성 향상
- 하나의 책임만을 수행하기 때문에 변화에 적응도 높음
- 이상의 책임을 가지면, 온전한 책임을 다할 있도록 분리
예시
예시 설명 -  (a) 단일책임 원칙을 따르지 않은 클래스로 메서드가
 DB관련 메서드들과 비즈니스 관련 메서드들로 구성되어 있음.
- 단일책임의 원칙을 지키기 위해 (b) 같이 각각의 책임을 갖는 개의 클래스로 분할

 

  1. 개방 폐쇄 원칙 ( OCP : Open Closed Principle)
구분 설명
정의 - 소프트웨어 Entity(classes, Modules, Function)
확장에는 열려있고 수정에는 닫혀있어야 한다는 설계 원칙

특징 - 기존 코드의 변경 없이 확장을 통한 코드의 변경을 허용
- 오버라이딩 - 상속을 의미하지만, 크게 유연석 확보 차원의 원리
- 기능의 상속이 아닌 설계의 유연성을 강조
Open(클래스 수직관계),   Close(클래스 수평관계)
- Strategy 패턴 : 인터페이스 변경은 어려우나 구현은 열려 있음

예시
예시 설명 - 원칙을 따르지 않고 설계 , 삼각형, 사각형, 원 등의 면적을 구하려면 (a) 같이 도형의 면적을 구하는 메서드가 하나의 클래스에 모두 존재하게 됨.
- 상속의 개념을 적용하여 (b) 같이 설계하면 클라이언트가 추상클래스에 의존하므로 구체클래스의 내부 변경에 영향을 받지 않음.

 

  1. 리스코프 치환의 원칙 (LSP :Liskov Substitution Principle)
구분 설명
정의 부모 클래스의 객체(타입과 매소드의 집합)들이 자식 클래스 사용되는 곳에 대체될 수 있어야 한다는 설계 원칙
that objects of a superclass shall be replaceable with objects of its subclasses without breaking the application.
특징 - 클래스의 생성 목적에 맞게 설계하기 때문에 /하위 클래스의 호환성 향상
- 하위 클래스는 상위 클래스의 책임을 넘지 않음
- 하위 클래스는 사용자의 요구 사항대로 설계됨.
예시
예시 설명 - LSP 위배하는 예제
- Introduce 상속한 DetailIntroduce 클래스가 함수 q 요구하는 행동을 하지 않고,
엉뚱한 소리를 하고 있음
- 위의 예는 error 클래스를 만들때 주로 나타날 있음
- 하위 클래스의 행동 또한 상위 클래스의 책임범위 내에서 생성되어야 함

 

  1. 인터페이스 분리의 원칙(ISP/Interface Segregation Principle)
구분 설명
정의 - 어떤 클래스가 다른 클래스에 종속될 때는 최소한의 인터페이스만을 사용해야 한다는 설계 원칙
특징 - 인터페이스의 단일 책임을 강조
- 하나의 인터페이스에 해당 인터페이스의 목적에 부합되지 않는 기능을 선언하지 않기 때문에 구현 클래스에서 불필요한 기능의 구현 방지
- 소스 레벨의 가독성 향상
예시
예시 설명 - 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안 된다는 것.
- 클래스는 사용자에게 꼭 필요한 메서드만 갖는 인터페이스를 제공
- 인터페이스 분리의 원칙은 (b)처럼 클라이언트에 맞는 인터페이스만 분리하여 사용

 

  1. 의존성 역전의 원칙(DIP/Dependancy Inversion Priciple)
구분 설명
정의 - 높은 레벨의 모듈은 낮은 레벨의 모듈을 의존하면 안되며 서로 추상에 의존해야 한다는 설계 원칙
- 클라이언트 변경 최소화를 위해 클라이언트는 구체 클래스가 아닌
인터페이스나 추상 클래스에 의존한다는 설계 원칙
특징 - 구현 클래스에 의존성이 제거하여 낮은 결함도 유지
- 추상화된 클래스에 의존하기 때문에 확장성이 높아져서 유지보수성 향상
예시
예시 설명 - 의존관계 역전의 원칙은 상속 개념을 적용할 때 (a) 같이 구체 클래스에서 상속을 받는 구조로  설계하지 말라는 , 이유는 구체 클래스는 추상 클래스(인터페이스)보다 변하기 쉽기 때문
- 의존 관계를 구체 클래스에서 추상 클래스로 바꾸면 향후 변경에 따른 영향을 최소화할 수 있고, 느슨한 결합도를 유지할 수 있다.
- (b)처럼 변화에 따른 충격에서 자유롭도록 추상 클래스를 만들고 그 추상 클래스와 상속 관계를 유지하도록 설계

 

  1. 객체 지향 설계의 향후 전망 및 실무 적용 시 고려 되어야 될 사항
측면 내용
방법 -소프트웨어 개발이 복잡, 다양해 짐으로 Prototype 개발하여 위험 요인 사전 제거 활동 필요
- 개발 환경의 보편성으로 유사 반복 내용에 대한 디자인 패턴 개발 적용 소프트웨어 시스템 관점으로 접근하고 있음
-개발의 생산성을 위해 Case도구 Repository 환경을 토대로 버전 형상 관리를 위한 자동화 추세
기술 -최근 프로그래밍 언어가 분산 객체 환경을 지원하는 서비스가 가능한 플랫폼 지원
-객체 지향 기술은 기업 비즈니스 또는 산업 차원에서 소프트웨어 재사용성을 높이기 위해 CBD 프로젝트가 활성화 전망임

 

  1. 객체 지향 기술 적용 시 고려 되어야 할 항목
항목 내용
프로젝트 착수 시 -프로젝트 착수 시에 객체지향은 재사용에 대한 규모 산정,
재사용 체계 구축에 대한 계획 수립 및  활용도 측면에서의 고려 필요
프로젝트 수행 시 -분석 / 설계 시에 클래스의 책임과 역할 분석을 위한
CRC (Candidate, Responsibility, Collaboration) 카드 작성
- 사용성을 극대화 하기 위한 Design Pattern 활용
유지보수 수행 시 - 사용 컴포넌트 관리와 프로세스(기능) 연계 관리가 필요
-컴포넌트의 조립으로 결합 컴포넌트 생성
반응형

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

SW Architecture  (0) 2024.03.30
(외부)EPMO  (0) 2024.03.11
객체지향 프로그래밍 특징  (0) 2024.03.09
Architecture  (0) 2024.03.08
번다운차트  (0) 2024.03.07
객체지향 프로그래밍 특징 [객체지향] 현실 세계에서 개체(Entity)를 속성(Attribute)과 메소드(Method)를 결합된 형태의 객체(Object)로 표현하는 개념
[구성요소] 클래스, 객체, 메소드, 인스턴스
[특징] 캡슐화, 추상화, 다형성, 정보은닉, 상속성

클객메인
캡추다정상
토픽 이름() 객체지향 프로그래밍 특징(캡슐화, 추상화, 다형성, 정보은닉, 상속성)
분류 SW > 개발방법론 > 객체지향 프로그래밍 특징
키워드(암기) 캡슐화, 추상화, 다형성, 정보은닉, 상속성
암기법(해당경우) 캡추다정상

 

기출문제

번호 문제 회차
1 5. 소프트웨어 설계에 있어서 중심이 되는 원리인 추상화, 정보은닉, 단계적 분해, 모듈화에 대하여 설명하시오. 118_관리_2
2 4. Information Hiding 114_컴시응_1
3 5. 객체 지향적 프로그래밍에서 재사용성을 구현하려면 클래스의 추상화(abstraction), 정보은폐(encapsulation) 및 정보의 상속(inheritance) 같은 개념이 필요하다. 이와 관련하여 클래스의 메소드는 어떤 방법으로 작성되어야 하는지 설명하시오. 90_조직응용_4교시
4 3. 다음의 문제에 대하여 설명하시오.
. 다형성의 개념
. 사례 기반한 Overloading Overriding 설명
. Overloading Overriding의 비교
모의_2017.04_응용_2
5 객체지향 프로그래밍에서 다형성 기법은 중요한 특징 중 하나이다. 다음 다형성에 대한 질문을 설명하시오.
. 다형성의 정의와 특징
. 다형성의 유형
. 다형성의 다이어그램과 코드
모의_2015.10_응용_2교시
6 객체지향 설계와 관련된 다음 질문에 답하시오.
. 다형성에 대하여 설명하시오.
. 객체지향 설계원칙 LSP(Liskov. Substitution Principle) 대하여 설명하시오.
. Strategy Pattern 대하여 설명하시오.
모의_2015.05_관리_2교시
7 객체지향 언어의 특징과 설계원칙을 기술하고, 구조적 기법과 차별화되는 개념을 설명하시오. 또한 private, public 접근 제어자(Access Modifier)를 사용하여 외부로부터 데이터를 보호하기 위한 정보은닉 방법을 실제 객체 지향 언어(JAVA) 간단히 구현하시오. 모의_2014.01_관리_2교시
8 객체지향 다형성과 상속성을 비교 설명하시오 모의_2013.10_통합_1교시
9 객체지향개념 중 다형성의 개념 및 구현기법에 대하여 설명하시오. 모의_2012.07_관리_1교시
10 6. 객체지향 프로그래밍에서 다형성(Polymorphism)에 대하여 설명하시오. 모의_2011.12_관리_1교시
11 Polymorphism 대하여 설명하시오. 모의_2009.12_조직_1교시
12 information hiding                                모의_2009.09_공통_1교시
13 10.Polymorphism 설명하시오. 모의_2009.08_관리_1교시

 

I. 객체지향(Object Oriented)의 개요

  . 객체지향의 정의

- 현실 세계에서 개체(Entity) 속성(Attribute) 메소드(Method) 결합된 형태의 객체(Object) 표현하는 개념

- 구현대상을 하나의 객체로 보고, 객체를 객체와 객체들 간의 관계로 모델링하는 방법

 

  . 객체(Object Oriented) 구성 구성요소

- Class간의 Relation, Object간의 상호작용은 메시지를 통해 이루어짐.

 

특징 설명
클래스
(Class)
-객체의 타입을 정의하는 템플릿
-여러 객체가 공통적으로 가지고 있는 속성과 메소드를 클래스로 정의하고 클래스에 의해 객체가 재 정의 되는 구조

객체
(Object)
-클래스의 인스턴스(실제로 메모리상에 할당된 것)
- 자신 고유의 데이터(Attribute)를 가지며 클래스에서 정의한 행위(Behavior) 수행
- 객체의 행위는 클래스에 정의된 행위에 대한 정의를 공유함으로써 메모리를 경제적으로 사용

메소드
(Method)
- 클래스로부터 생성된 객체를 사용하는 방법
- 객체에 명령을 내리는 메시지라 있음.
- 객체 간의 통신은 메시지를 통해 이루어 .
인스턴스
(Instance)
- 프로그램에서 클래스를 통해 만든 실제의 실행 객체, 프로그램의 실행 단계에서 나타냄.

 

II. 객체지향(Object Oriented) 프로그래밍의 특징(기법)

. 캡슐화(Encapsulation)

구분 상 세 내 용
정의 - 객체의 속성(Data Fields) 행위(메소드, Methods) 하나로 묶고, 실제 구현 내용 일부를 일부에 감추어 은닉하는 객체지향의 특성
- 객체 정보은닉의 확장 캡슐화
특징 - 클래스를 선언하고 클래스를 구성하는 객체에 대하여 public 선언 외부에서 사용가능, private 선언 불가
- 메시지 통해 접근
장점 - 소프트웨어의 유지보수 생산성 증대
- 재사용성이 높은 소프트웨어 개발
- 정보은닉으로부터 내부자료에 대한 일관성 유지
Code

. 추상화(Abstraction)

구분 상 세 내 용
정의 - 현실세계의 사실(물체 ) 객체로 공통적인 속성과 기능을 묶어 이름을 부여하는 기법
- 공통 성질을 추출하여 슈퍼클래스를 설정하는 특성
특징 객체지향 언어에서는 클래스를 이용함으로써 데이터와 프로세스를 함께 추상화의 구조에 넣어 보다 완벽한 추상화 실현
1) 기능 추상화(Method 부여): 클래스 메소드를 정의(obj.getName())
2) 데이터 추상화(Type 부여): 객체 클래스 자체를 테이터 타입으로 사용(String, Class)
3) 제어 추상화: 제어행위에 대한 개념화, 명령 이벤트(if, for, while)
장점 복잡한 프로그램을 간단하게 해줌
Code public class Clock{
    int hour;
    int minute;
    int second;
public void display(){
    //시간 출력
  }
}

. 다형성(Polymorphism)

구분 상 세 내 용
정의 - 같은 함수(Method) 이름으로, 여러 개의 메서드를 만들 있는 기법
특징 - 동적바인딩 : 프로그램이 실행되는 시점에 호출할 번지나 함수를 연결함
- 확장성 지원 : 수직적 확장성인 Overriding 수평적 확장인 Overloading 지원
- 재사용성 지원 : 기존에 구현된 부분은 동일하게 사용하고 필요한 부분만 수정하여 활용 가능
장점 - 확장성 : 기존 코드(부모 클래스) 수정하지 않고, 새로운 기능 새로운 클래스 추가 쉬움
- 유연성 : 실제 실행될 오퍼레이션이 실행 시에 결정. Dynamic Binding

   

- 오버라이딩과 오버로딩 특징

구분 오버라이딩(overriding) 오버로딩(overloading)
메소드 이름 같아야 함 같아야 함
파라미터 개수
자료형
같아야 함 달라야 함


같을 경우 자료형이 달라야 함
리턴 타입 같아야 함 상관없음
기타 상위 클래스에 메소드 존재 상위 클래스에 같은 이름의 메소드가 없어야 함

 

- 오버라이딩과 오버로딩 사례

구분 Overloading Overriding
개념 메소드의 이름은 같으나 인자의 타입 및 개수가 다른 경우, 동일 클래스의 동일 메소드로 매개변수 다르게 하여 정의하는 기법 상속관계에 있는 두 클래스 중 하위클래스에서 상위클래스의 메소드를 재정의하여 사용하는 기법
클래스
다이어그램
샘플코드

- Java에서는 가상(virtual) 따로 선언하지 않아도 되나 C++에서는 다형성을 구현하기 위해서는 상위 클래스에 멤버 메소드를 가상(virtual)으로 선언해야 .

 

. 정보은닉(Information Hiding)

구분 상 세 내 용
정의 - 캡슐화 방법으로 class 내부 정보를 은닉하고, 접근 제한의 단계를 두어 보안적인 구현 가능
- 클래스 내부에서 사용되는 변수(필드) 들을 private 이나 protected 등으로 선언해 줌으로, 자기 클래스, 혹은 자식 클래스 외에는 직접적으로 제어를 불가능하게 해주는 성질
- 복잡하거나 변경가능 한 부분을 캡슐 내부에 감추고 외부에는 추상화되고 변경가능성이 낮은 인터페이스만을 제공하는 객체지향의 원리
특징 - 복잡성 제거 : 외부에는 불필요한 내부적으로만 사용되는 부분을 감춰서 복잡성을 줄임
- Data 보호 : 외부로부터 데이터를 보호하기 위함
Code

- 접근제어자의 종류

. 상속성(Inheritance)

 

구분 상 세 내 용
정의 - 상속은 클래스에서만 통용되는 개념으로 미리 만들어 둔 클래스를 다시 이용하는 방법
특징 - 하위 클래스가 상위 클래스를 상속 받았을 때, 하위 클래스는 상위 클래스의 모든 권한 소유
- 상속을 받는 순간 현재의 클래스는 곧 상위 클래스에서 출발
- 단일 : 부모와 자식 클래스 간의 관계가 수퍼클래스와 서브클래스로 유지
- 다중 : 하나의 클래스가 하나 이상의 클래스로부터 상속
- 반복 : 같은 조부모 클래스로부터 상속 받은 부모 클래스로부터 상속
Code

    - C++에서는 콜론(:) 상속의 키워드로 사용하며, 자바에서는 extends라는 키워드를 사용

반응형

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

(외부)EPMO  (0) 2024.03.11
객체지향 설계의 원리  (0) 2024.03.10
Architecture  (0) 2024.03.08
번다운차트  (0) 2024.03.07
CI, CD  (0) 2024.03.06
84   Architecture [모노리식 아키텍처] 기존의 전통적인 웹 시스템 개발 스타일로, 하나의 애플리케이션 내에 모든 조직들이 들어 가 있는 구조
[마이크로 서비스 아키텍처] 대규모 웹 분산 환경에서 응용소프트웨어를 독립적으로 배치 가능한 서비스 조합으로 설계하는 아키텍처 스타일
조직구성 = 아키텍처  
토픽 이름 Architecture
분류 PM > Agile > Architecture
키워드(암기) 모놀리식, 마이크로서비스 아키텍처
암기법(해당경우)  

기출문제

번호 문제 회차
1 4. 최근 대규모의 소프트웨어 개발에 적용을 하기 위한 다양한 아키텍처가 사용되고 있다. 아래의 항목에 대해 설명하시오.
. 마이크로 서비스 아키텍처(Micro Service Architecture) 필요성과 개념
. 마이크로 서비스의 장단점
. 블루그린배포(Blue Green Deployment) 카나리아 배포(Carnary Deployment)


모의_2018.07.관리.3교시.4
2 7. 마이크로 서비스 아키텍처(Micro Service Architecture) 대하여 설명하시오. 모의_2017.01.관리.1교시.7

 

  1. 대용량 웹서비스를 위한 Agile Architecture 개요
구분 정의
모노리식
아키텍처
기존의 전통적인 웹 시스템 개발 스타일로, 하나의 애플리케이션 내에 모든 조직들이 들어 가 있는 구조
마이크로 서비스 아키텍처 대규모 웹 분산 환경에서 응용소프트웨어를 독립적으로 배치 가능한 서비스 조합으로 설계하는 아키텍처 스타일

 

  1. 모노리식 아키텍처, 마이크로 서비스 아키텍처 구성도 아키텍쳐 특성

  1. 모노리식 아키텍처, 마이크로 서비스 아키텍처 특성
구분 특성
모노리식
아키텍처
  1. 각 컴포넌트들은 상호 호출을 함수를 이용하는 call-by-reference 구조
  2. 전체 애플리케이션을 하나로 처리하기 때문에, 개발 툴 등에서 하나의 애플리케이션만 개발
  3. 배포 역시 간편하며 테스트도 하나의 애플리케이션만 수행하면 되기 때문에 편리
마이크로 서비스 아키텍처 서비스는 데이터에서부터 비즈니스 로직까지 독립적으로 상호 컴포넌트간의 의존성이 없이 개발된 컴포넌트(이를 버티컬 슬라이싱 / Vertical Slicing - 수직적 분할이라고 한다.)로 REST API와 같은 표준 인터페이스로 그 기능을 외부로 제공.

 

  1. 모노리식 아키텍처, 마이크로 서비스 아키텍처 비교
구분 모노리식 아키텍쳐 마이크로 서비스 아키텍처
데이터 저장관점 중앙 집중화된 하나의 통합
데이터베이스(보통 RDBMS) 사용
서비스 별로 별도의 데이터 베이스를 사용

서비스가 API에서부터 데이터 베이스까지 분리되는 수직
분할 원칙(Vertical Slicing)에 따라서 독립된 데이터 베이스 사용
컴포넌트 전체 애플리케이션을 재 컴파일하여 전체를 다시 통으로 재배포 변경이 있는 서비스 부분만 부분 배포
확장성 전체 서버의 수를 늘리거나 각 서버의 CPU수를 늘려줘야 함 부하를 많이 받는 서비스 컴포넌트만 가능
특징
작은 크기의 애플리케이션에서는 용이.

시스템 컴포넌트들이 서로 참조에 의한 호출 (call-by-reference)기반으로 타이트하게 연결
컴포넌트를 되도록이면 업무 단위로 잘게 자르는
fine grained(작은 덩어리)의 서비스를 지향.
단점
잦은 배포가 있는 시스템의 경우 불리.

컴포넌트 별로 기능/비기능적 특성에 맞춰서 다른 기술을 도입하고자 할 때 유연하지 않음.


특정 컴포넌트나 모듈에서의 성능 문제나 장애가 다른 컴포넌트에까지 영향.
서비스를 컴포넌트의 URL 수 증가.

API를 사용하는 클라이언트에서 서버간의 통신이나,
서버간의 API 통신의 경우 p2p(Point to Point)형태로
토폴로지가 복잡해지고 거미줄 모양의 서비스 컴포넌트간의 호출 구조는 향후 관리의 문제 발생 가능.

[추가 자료: Agile Architecture 배경적 지식]

1) Agile Architecture 개념

 - S/W 개발 , 상세함을 대체하면서 결과 verify 용이하게 있는 Architecture.

 - Agile Manifesto 6원칙에 기초하여 등장하게

2) Microservice 배경

 - Agile 적용된 조직Organization이 비대 또는, 시스템 Scale 커지면, Scrum of scrum/SAFe(Scaled Agile Framework) 의사소통 채널 시스템 Iteration(Sprint) 증가. 이는 Agile 사상에 벗어나는 고민에서 출발한 개념 (MicroserviceSOA 개념/등장배경에 견주어 설명하기도 )

 - 독립적인 적용이 가능한 unit으로 구성된 Microservice-based 시스템일 경우, 기능이 명확히 분리된 단위라서 상호 서비스 영향이 없기 때문에 빠르고 쉽게 적용이 가능, 장점이라고 얘기함

[그림해설] S/W 개발을 예로 들면, Microservices Agile 진행에서 하나의 구조적 단계로 볼 수 있다는 의미

[참고] Agile Working Group MSA

반응형

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

객체지향 설계의 원리  (0) 2024.03.10
객체지향 프로그래밍 특징  (0) 2024.03.09
번다운차트  (0) 2024.03.07
CI, CD  (0) 2024.03.06
Lean(린)  (1) 2024.03.05
82
출제예상 번다운차트 [정의] Agile 프로젝트기반 조직에서 점수(Story Point)를 산정하여 Sprint 계획대비 현재진행을 파악할 수 있는 차트
스토리포인트(Story Point) 산정, Sprint 진척률 가시화
-----
Burn down(소멸차트) 상세설명
기울기를 통하여 작업수행 속도 판단
Story Point 산정 및 담당 업무할당에 너무 많은 시간이 소요되면 진척에 역효과 발생. 적절한 이해관계자 들간의 범위 및 일정조율 중요.
Burn-dwon Chart, Burn-up Chart, 기능 차트
토픽 이름 번다운차트(Burn down)
분류 PM > Agile > 번다운차트
키워드(암기) 번업차트, 스토리포인트(Story Point), Sprint 진척률 가시화
암기법(해당경우) 번쓰 (번다운/스토리포인트/스프린트)

 

기출문제

번호 문제 회차
1 Burn-down chart EVM 비교하시오. 합숙.2014.7.26.1교시.3
2 11. Burn down chart 대하여 설명하시오. 모의.2011.01.1교시.11
3 Agile 프로세스가 국내에 많이 도입이 되고 있다. 프로젝트 관리자로서, 프로젝트마다 개별 개발방법론과 프로세스의 테일러링이 필요하다. 다음 질문에 대해 설명하시오.
. SW 획득가치기법인 EVM Burn Down Chart 비교하시오.
. 프로세스를 정의하고 7 원칙에 대해 5가지 이상 설명하시오. . Kanban 프로세스를 비교하시오.
2016.01.27() 5일차
2교시 7. 108회 대비
4 Burn-down chart EVM 비교하시오. 2014.07.28() 3일차 1교시 3. 104 대비

 

I. ScrumSprint 일정관리 도구, 번다운차트 개요.(서론)

- Agile 프로젝트기반 조직에서 점수(Story Point) 산정하여 Sprint 계획대비 현재진행을 파악할 있는 차트

- 스토리포인트(Story Point) 산정, Sprint 진척률 가시화

 

II. 개념도(구성도) 및 기술요소

. Burn down(소멸차트) 개념도

- 점수(User Point) 지정하여 Sprint 기간에 계획대비 완료한 현재의 진행을 가시화

. Burn down(소멸차트) 상세설명

구분 설명
가로축 시간 축으로 스프린트 반복 주기 날짜수
세로축 완료된 작업의 추정 일수(스토리 포인트로 표현)
계획 그래프 처음 계획을 세웠을 때 날짜로 남은 작업량 표현
실제 그래프 작업을 수행하면서 실제로 남은 작업량

- 기울기를 통하여 작업수행 속도 판단

- Story Point 산정 담당 업무할당에 너무 많은 시간이 소요되면 진척에 역효과 발생. 적절한 이해관계자들간의 범위 및 일정조율 중요.

 

III. Burn-Down ChartEVM 비교

[참고] EVMBurn Down Chart 프로젝트 적용 방안

반응형

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

객체지향 프로그래밍 특징  (0) 2024.03.09
Architecture  (0) 2024.03.08
CI, CD  (0) 2024.03.06
Lean(린)  (1) 2024.03.05
Kanban  (4) 2024.03.04
78
출제예상 CI, CD [CI의 정의]
- 개발자 별로 소스코드를 지속적/연속적 통합하여 자동화된 빌드, 테스트 및 배포 기능을 통하여 단기간에 고품질의 SW를 획득하는 기술 (형상관리 필수적용)
[CD의 정의]
변경된 요구사항에 대한 개발/통합/배포/테스트/릴리즈를 자동화함으로써 SW의 개발과 운영을 통합하여 DevOps를 지원하는 소프트웨어 연속적인 배포 출시 전략
CI, 자동화, 통합, 빌드, 배포, Jenkins 연속적 소스 머지, 연속 배포 CI : 소스파일을 실행파일(바이너리파일)로 컴파일, 테스트, 테스트서버에 배포까지 프로 세스(Build Tool)
토픽 이름 CI (Continuous Integration), CD (Continuous Delivery)
분류 PM > Agile > CI, CD
키워드(암기) 소스파일의 연속적인 통합(CI) 연속적 배포(CD)
CI : 소스코드의 통합/테스트/배포 자동화를 통한 고품질 SW 획득
CD : S/W 개발 운영 통합을 통한 DevOps 지원하는 연속적인 배포
암기법(해당경우)  

 

기출문제

번호 문제 회차
1 12. CI(Continuous Integration) 대해 설명하시오. 합숙_2019.04.관리.Day-5
2 4. CI(Continuous Integration) CD(Continuous Delivery) 설명하고, 이를 통한 SW 생산성 향상방안에 대해 제시하시오. 합숙_2018.08.공통.Day-5
3 1. 클라우드 환경 확산 따라 DevOps 중요성이 증가하고 있다. DevOps 구성요소에 대해서 설명하고, CD(Continuous Delivery) 개념과 절차에 대해서 설명하시오. 모의_2017.04.관리.4
4 다양한 요구 변화에 대한 품질을 확보하며 안정적인 시스템 운영을 위해 스타트업 기업 위주로 DevOps 사상을 도입하는 경우가 증가하고 있다. DevOps 부각 배경과 CI(Continuous Integration) 도구, 그리고 DevOps 적용 고려사항에 대해서 설명하시오. 모의_2016.04.관리.4
5 1. CI(Continuous Integration), CD(Continuous Delivery) 대해 설명하시오. 합숙_2014.07.공통.Day-3

 

I. SW 품질개선과 위험 완화를 위한 Agile Practice, CI (Continuous Integration)) 개요

. CI 정의

- 개발자 별로 소스코드를 지속적/연속적 통합하여 자동화된 빌드, 테스트 배포 기능을 통하여 단기간에

고품질의 SW 획득하는 기술 (형상관리 필수적용)

. CI 목적/필요성

필요성 내용
에러의 조기 발견 - 에러를 초기에 발견할 있어, 흔히 발생하는 일반적인 위험을 줄여줌
- 자주 통합할수록 에러가 발생하는 반경(소스Gap) 좁아짐
배포 용이성 확보 - 언제 어느 때라도 배포할 있는 소프트웨어를 생성
가시적 관리 및 자동화 - 프로젝트 가시성 향상, 반복적인 수작업 최소화

 

II. CI 개념도 기술요소

. CI 개념도

 

. CI 기술요소

구성요소 설명 CI 도구
버전관리 저장소 모든 프로젝트 파일의 중앙 저장소가 있어 팀원들의 작업을 전부 동기화 공간을 제공 - CVS
- Subversion
- GIT
지속적인 통합서버(CI시스템) 컴파일, 테스트, 릴리즈, 디플로이, 결과보고등의 작업을 통합적 자동화 SW - Hudson
- Jenkins
빌드스크립트 자동화된 절차를 위한 셀 스크립트(또는 배치파일) 작성(소트 코드 컴파일, 테스트 수행 등) - 스크립트
- 배치파일
Project Management Tool 빌드 결과를 모니터링하거나 자동적으로 피드백을 받을 수 있는 관리도구 - 이메일, UC
- 문자메시지
자동화된 테스트 결과를 스스로 확인하는 자동화된 테스트 - SonarQube

 

III. CI 위험요소와 프렉티스를 성공적 수행하기 위한 자동화 프로세스 Tools

소프트웨어 위험요소 CI 자동화 프로세스 CI 자동화 Tools
배포 가능한 SW 부재
빌드 실패
DB 동기화 실패
배포 실패
소스 컴파일 자동화
DB Script 테스트
릴리즈 자동화
Ant, Maven
뒤늦은 결함 발견
회귀테스트 부재
테스트 적용범위 부재
테스트 자동화 JUnit, TestNG, Selenium
프로젝트 가시성 부재 통합 결과 피드백 Hudson, CruiseControl
저품질 SW
코딩표준, 설계지침 위반
중복/복잡한 코드
코딩 표준, 설계 지침, 중복코드, 코드복잡도 검사 자동화 Checkstyle, PMD, JDepent, Findbugs

 

[CD(Continuous Delivery)]

I. SW 개발/운영 통합관리, DevOps 위한 CD(Continuous Delivery) 개요

 

 

- 변경된 요구사항에 대한 개발/통합/배포/테스트/릴리즈를 자동화함으로써 SW 개발과 운영을 통합하여 DevOps 지원하는 소프트웨어 연속적인 배포 출시 전략

II. CI CD 관계도

 

- Commit 코드를 CI를 수행하고 CD 수행하여 지속적인 Deploy 수행

 

[추가_2018.08.합숙풀이]

- 발전된 오픈소스를 통해 CI/CD 넘어서 DevOps 환경 구성가능

반응형

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

Architecture  (0) 2024.03.08
번다운차트  (0) 2024.03.07
Lean(린)  (1) 2024.03.05
Kanban  (4) 2024.03.04
XP  (0) 2024.03.03

+ Recent posts