관리 메뉴

코딩두의 포트폴리오

[실기] 1장. 요구사항 확인 본문

정보처리기사

[실기] 1장. 요구사항 확인

코딩두 2025. 9. 30. 23:00

 

001(B) 소프트웨어 생명 주기

폭포수 모형 - 이전 단계로 돌아갈 수 X

프로토타입 모형 - 견본품

나선형 모형 - 점진적 개발, 보헴 (계획 - 분석 - 개발 - 평가)

에자일 모형 - 일정한 주기 반복 (<-> 폭포수 모형)

소프트웨어 공학 - SW 위기 극복하기 위한 방안

 

002(B) 스크럼 기법

스크럼 팀 - 제품 책임자, 스크럼 마스터, 개발팀

스크럼 개발 프로세스 (스프린트 계획 회의 - 스프린트 - 일일 스크럼 회의 - 스프린트 검토 회의 - 스프린트 회고)

 

003(B) XP 기법

XP 개발 프로세스 (계획 - 진행 - 검사 - 릴리즈)

XP 주요 실천 방법

- Pair Programming(짝 프로그래밍): 함께 프로그래밍, 공동 책임

- Collective OwnerShip(공동 코드 소유): 권한, 책임 공동 소유

- Continuous Integration: 모듈 단위, 지속적 통합

- Refactoring(리펙토링): 프로그램 기능 변경 없이 시스템 재구성 (목적: 프로그램 쉽게 이해, 수정해 빠른 개발 위함)

 

004(D) 개발 기술 환경 파악

 

005(B) 요구사항 정의

기능 요구사항: 기능, 수행과 관련된 요구사항

비기능 요구사항: 품질, 제약사항과 관련된 요구사항

 

006(B) 요구사항 개발 프로세스

요구사항 개발 프로세스 - 출석명확(도출 - 분석 - 명세 - 확인)

요구사항 명세 기법 - 정형 명세 기법(수학적 원리, 표기법 어려움) / 비정형 명세 기법(자연어, 이해 쉬움)

 

007(A) 요구사항 분석

요구사항 분석: 개발 대상에 대한 사용자의 요구사항을 이해, 문서화하는 활동

구조적 분석 기법: 자료의 흐름, 처리 중심

자료 흐름도: 자료의 흐름, 변환 과정, 기능을 도형 중심으로 기술

[자료 흐름도 기본 기호]

자료 사전(메타 데이터): 자료 흐름도에 있는 자료를 더 자세히 정의 및 기록

자료의 정의(=): ~로 구성되어 있다

자료의 연결(+): 그리고

자료의 생략(()): 생략 가능한 자료

자료의 선택([]): 또는

자료의 반복({})

 

008(C) 요구사항 분석 CASE와 HIPO

 

009(B) UML(Unified Modeling Language)

UML: 시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 대표적 객체지향 모델링 언어

- 사물, 관계, 다이어그램

사물: 다이어그램 안에서 관계가 형성될 수 있는 대상들 (구조, 행동, 그룹, 주해)

 

010(A) UML - 관계(Relationship)

관계: 사물과 사물 사이의 연관성

연관(Association) 관계: 2개 이상의 사물이 서로 관련되어 있는 관계

집합(Aggregation) 관계: 하나의 사물이 다른 사물에 포함되어 있는 관계

포함(Composition) 관계: 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계

일반화(Generalization) 관계: 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계

의존(Dependency) 관계: 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계

실체화(Realization) 관계: 사물이 할 수 있거나 해야 하는 기능으로, 서로를 그룹화 할 수 있는 관계

 

011(A) UML - 다이어그램

다이어그램: 사물관 관계를 도형으로 표현

구조적 다이어그램 종류 (정적 모델링)

클래스 다이어그램 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현
객체(object) 다이어그램 클래스에 속한 객체, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
럼바우 객체지향 분석 기법에서 객체 모델링에 활용
컴포넌트 다이어그램 실제 구현 모듈인 컴포넌트 간의 관계 or 인터페이스 표현
구현 단계에서 사용
배치(Deployment) 다이어그램 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
패키지 다이어그램 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현

 

행위 다이어그램 종류 (동적 모델링)

유스케이스 다이어그램 사용자의 요구를 분석, 기능 모델링 작업에 사용
사용자(Actor), 사용 사례(Use Case)로 구성
순차(Sequence) 다이어그램 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현
상태(State) 다이어그램 하나의 객체가 상태 변화 or 상호 작용에 따라 상태가 어떻게 변화하는지를 표현
럼바우 객체지향 분석 기법에서 동적 모델링에 활용
활동(Activity) 다이어그램 객체의 처리 로직 or 조건에 따른 처리의 흐름을 순서에 따라 표현

 

스테레오 타입(Stereotype): UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하는 것

<<include>> 포함 관계
<<extends>> 확장 관계
<<interface>> 인터페이스 정의
<<exception>> 예외 정의
<<constructor>> 생성자 역할 수행

 

012(C) 유스케이스(Use Case) 다이어그램

 

013(D) 활동(Activity) 다이어그램

 

014(B) 클래스(Class) 다이어그램

클래스 다이어그램: 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현한 것

클래스 객채들이 갖는 속성, 오퍼레이션을 표현한 것 / 3개의 구획(이름, 속성, 오퍼레이션)으로 표기
속성: 클래스의 상태나 정보 표현 / 오퍼레이션(=함수=메소드): 클래스가 수행할 수 있는 동작
제약조건 수행 전후에 지정해야 할 조건
클래스 안에 제약조건 기술 시 중괄호 { } 이용
관계 클래스와 클래스 사이의 연관성 표현

 

015(C) 순차(Sequence) 다이어그램

 

016(D) 커뮤니케이션(Communication) 다이어그램

 

017(D) 상태(State) 다이어그램

 

018(A) 패키지(Package) 다이어그램

패키지 다이어그램: 요소들을 그룹화한 패키지 간의 의존 관계를 표현한 것

구성요소

패키지 객체들을 그룹화한 것
단순 표기법: 패키지 안에 패키지 이름만 표현 / 확장 표기법: 패키지 안에 요소까지 표현
객체 패키지에 포함될 수 있는 다양한 요소들
의존 관계 점선 화살표료 연결 (패키지와 패키지, 패키지와 객체 간)
<<import>>: 패키지에 포함된 객체들을 직접 가져와서 이용
<<access>>: 인터페이스를 통해 패키지 내의 객체에 접근하여 이용

 

019(C) 소프트웨어 개발 방법론

 

020(B) S/W 공학의 발전적 추세

소프트웨어 재사용: 이미 개발되어 인정받은 SW를 다른 SW 개발이나 유지에 사용

- 합성 중심: 블록 끼우기 / 생성 중심: 명세를 구체화(패턴 구성 방법)

소프트웨어 재공학: 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 성능을 향상시키는 것

CASE: SW 개발 과정에서 사용되는 과정 전체 또는 일부를 컴퓨터와 전용 SW 도구를 사용하여 자동화

 

021(D) 비용 산정 기법 - 하향식

 

022(B) 비용 산정 기법 - 상향식

LOC 기법: SW 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정

 

023(A) 수학적 산정 기법

수학적 산정 기법: 상향식 비용 산정 기법으로, 경험적 추정 모형, 실험적 추정 모형이라고도 함

COCOMO 모형: LOC(원시 코드 라인 수)에 의한 비용 산정 기법

COCOMO SW 개발 유형

조직형(Organic) 중,소규모의 SW / 5만 라인 이하의 SW 개발 / 응용 SW 개발에 적합
반분리형(Semi-Detached) 조직형,내장형의 중간 / 30만 라인 이하의 SW 개발 / 유틸리티 개발에 적합
내장형(Embedded) 초대형 규모 / 30만 라인 이상의 SW 개발 / 시스템 프로그램 개발에 적합

 

Putnam 모형: SW 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상하는 모형

기능 점수(FP) 모형: SW 기능을 증대시키는 요인별 가중치를 합산하여 총 기능 점수 산출

비용 산정 자동화 추정 도구 - SLIM: Rayleigh-Norden 곡선, Putnam 예측 모델을 기초로 하여 개발

 

024(B) 프로젝트 일정 계획

PERT(프로그램 평가 및 검토 기술): 전체 작업의 상호 관계를 표시하는 네트워크 

CPM(임계 경로 기법): 작업을 나열하고 작업에 필요한 소요 시간을 예측하는 데 사용하는 기법

(노드:작업, 간선:작업 사이의 전후 의존 관계)

간트 차트: 작업 일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표

 

025(C) 소프트에어 개발 방법론 결정

 

026(B) 소프트웨어 개발 표준

ISO/IEC 12207: ISO에서 만든 표준 SW 생명 주기 프로세스

CMMI: SW 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델

(프로세스 성숙도 = 초기 -> 관리 -> 정의 -> 정량적 관리 -> 최적화)

SPICE: SW 품질 및 생산성 향상을 위해 SW 프로세스를 평가 및 개선하는 국제 표준

(프로스세 수행 능력 단계 = 불완전 -> 수행 -> 관리 -> 확립 -> 예측 -> 최적화)

 

027(D) 소프트웨어 개발 방법론 테일러링

 

028(B) 소프트웨어 개발 프레임워크

SW 개발 프레임워크: SW 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 제공해주는 반제품 형태의 SW 시스템

(반제품: 원료를 가공하여 만든 중간 제품)

SW 개발 프레임워크 특성

모듈화(Modularity) 캡슐화를 통해 모듈화를 강화, 유지 보수가 용이
재사용성(Reusability) 재사용 가능한 모듈들을 제공
확장성(Extensibility) 다형성을 통한 인터페이스 확장