도서 내용 중 중요하다 여겨지는 것만 작성합니다
영리목적이 아닌 공유목적입니다
출처 : 2023 시나공 정보처리기사 실기 (저자: 김정준, 강윤석, 김용갑, 김우경 | 출판사: 길벗)
'기출문제는 시나공 저자(알앤디)가 복원한 것임'
제가 이미 잘 알고 있는 것은 적지 않습니다
해당 포스팅을 참고하여 학습하셔도 좋지만
교재를 구매하여 문제를 풀며 학습하시는 것을 추천드립니다
소프트웨어 생명 주기
소프트웨어 개발 방법론의 바탕이 되는 것으로, 소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것
폭포수 모형 | 각 단계를 확실히 하고 다음 단계로 넘어가는 개발 방법론 |
프로토 타입 모형 | 견본품을 만들어 최종 결과물을 예측하는 모형 |
나선형 모형 | 여러 번의 과정을 거쳐 점진적으로 개발하는 모형 보헴이 제안 계획 수립 -> 위험 분석 -> 개발 및 검증 -> 고객 평가 반복 |
애자일 모형 | 일정한 주기를 반복하면서 개발하는 모형 ex) 스크럼, XP, 칸반, Lean, 기능 중심 개발(FDD) |
소프트웨어공학 : 소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문
XP
핵심 가치
- 의사소통
- 단순성
- 용기
- 존중
- 피드백
주요 실천 방법
- Pair Programming (짝 프로그래밍)
- Collective Ownership (공동 코드 소유)
- Test-Driven Development (테스트 주도 개발)
- Whole Team (전체 팀)
- Continuous Integration (계속적인 통합)
- Refactoring (리팩토링) : 프로그램을 쉽게 이해하고 쉽게 수정하여 빠르게 개발할 수 있도록 하기 위해 기능의 변경 없이 시스템을 재구성한다.
- Small Releases (소규모 릴리즈)
요구사항
소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건
- 기능 요구사항
- 비기능 요구사항
- 사용자 요구사항
- 시스템 요구사항
도출 -> 분석 -> 명세 -> 확인
- 도출 : 식별하고 이해하는 과정 ex) 브레인스토밍, 워크샵, 프로토타이핑, 유스케이스 등
- 분석 : 걸러내는 과정, 소프트웨어 개발의 실제적인 첫 단계 ex) 자료 흐름도 (DFD), 자료 사전 (DD)
- 명세 : 분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 것 ex) 소단위 명세서
- 확인 : 검토하는 활동
요구공학 : 요구사항 프로세스를 연구하는 학문
정형 명세 기법 | 비정형 명세 기법 | |
작성 방법 | 수학적 기호, 정형화된 표기법 | 자연어 |
특징 | 이해하기 어려움 | 이해하기 쉬움 |
종류 | VDM, Z, Petri-net, CSP | FSM, Decision Table, ER모델링, SADT |
구조적 분석 기법
자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법
ex) 자료 흐름도 (DFD), 자료 사전 (DD), 소단위 명세서, 개체 관계도 (ERD), 상태 전이도(STD), 제어 명세서
자료 흐름도 (자료 흐름 그래프, 버블 차트)
프로세스 | 원 |
자료 흐름 | 화살표 |
자료 저장소 | ㅡ ㅡ |
단말 | 사각형 |
요구사항 분석용 CASE (자동화 도구)
소프트웨어 개발 과정에서 사용되는 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
ex) SADT : SoftTech 사에서 개발, SREM, PSL/PSA, TAGS
HIPO
시스템 실행 과정인 입력, 처리, 출력의 기능을 표현한 것
하향식 소프트웨어 개발을 위한 문서화 도구
종류 : 가시적 도표, 총체적 도표, 세부적 도표
UML
시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
구성 요소
- 사물
- 관계
- 다이어그램
사물의 종류
- 구조 사물 : 시스템의 개념적, 물리적 요소를 표현
- 행동 사물 : 시간과 공간에 따른 요소들의 행위를 표현
- 그룹 사물 : 요소들을 그룹으로 묶어서 표현
- 주해 사물 : 부가적인 설명이나 제약조건 등을 표현
관계의 종류
연관 관계 (Assorication) | 2개 이상의 사물이 서로 관련되어 있는 관계 | 사람 1ㅡ>1 집 |
집합 관계 (Aggregation) | 하나의 사물이 다른 사물에 포함되어 있는 관계 | 컴퓨터 ◇ㅡ 프린터 |
포함 관계 (Composition) | 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계 | 문 ◆ㅡ 키 |
일반화 관계 (Generalization) | 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계 | 커피 ◁ㅡ 아메리카노 |
의존 관계 (Dependency) | 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계 | 등급 -----> 할인율 |
실체화 관계 (Realization) | 할 수 있거나 해야 하는 기능으로, 서로를 그룹화 할 수 있는 관계 | 날 수 있다 ◁----- 새 |
다이어그램의 종류
1. 구조적 다이어그램
클래스 다이어그램 | 구성 : 클래스, 제약조건, 관계 클래스의 구성 요소 : 이름, 속성, 오퍼레이션 표현 가능한 관계 : 연관, 포함, 일반화, 의존 연관 클래스 : 연관 관계에 있는 두 클래스에 추가적으로 표현 |
객체 다이어그램 | 럼바우 객체지향 분석 기법에서 객체 모델링에 활용 |
컴포넌트 다이어그램 | 구현단계에서 사용 |
배치 다이어그램 | 구현단계에서 사용 |
복합체 구조 다이어그램 | |
패키지 다이어그램 | 구성 요소 : 패키지, 객체, 의존 관계 |
2. 행위 다이어그램
유스케이스 다이어그램 | 사용자의 요구를 분석하는 것 기능 모델링 작업에 사용 시스템/시스템 범위, 액터, 유스케이스, 관계 표현 가능한 관계 : 포함(-->), 확장(<--), 일반화(◁ㅡ) |
순차 다이어그램 | 메시지를 표현 동적 모델링 구성 요소 : 액터, 객체, 생명선, 실행 상자, 메시지, 객체 소멸, 프레임 |
커뮤니케이션 다이어그램 | 메시지와 연관 관계를 표현 동적 모델링 |
상태 다이어그램 | 동적 모델링 |
활동 다이어그램 | 처리의 흐름을 순서대로 표현 기능 모델링 작업에 사용 자료 흐름도와 유사 |
상호작용 개요 다이어그램 | 제어 흐름을 표현 |
타이밍 다이어그램 | 시간 제약을 명시적으로 표현 |
스테레오 타임 <<>> : UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하는 것
소프트웨어 개발 방법론
구조적 방법론 | 사용자 요구사항을 파악하여 문서화하는 처리 중심 방법론 1960년대까지 가장 많이 사용, 분할과 정복 원리 타당섬 검토 -> 계획 -> 요구사항 -> 설계 -> 구현 -> 시험 -> 운용/유지보수 |
정보공학 방법론 | 자료 중심 방법론 |
객체지향 방법론 | 객체를 조립해서 구현 |
컴포넌트 기반 방법론 | 컴포넌트를 조합하여 구현 |
제품 계열 방법론 | 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발 |
애자일 방법론 |
소프트웨어 재사용
이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것
- 합성 중심 : 블록을 만들어서 끼워 맞춰 소프트웨어를 완성
- 생성 중심 : 추상화 명세를 구체화하여 완성
소프트웨어 재공학
기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것
수학적 산정 기법 (상향식)
<ㅡ> 하향식 비용 산정 기법 : 과거 유사 경험 바탕 ex) 전문가 감정 기법, 델파이 기법
1. COCOMO 모형
LOC에 의한 비용 산정 기법
보헴이 제안
COCOMO 모델의 3가지 프로젝트
- 조직형 (organic) : 5만 라인 이하
- 반분리형 (semi-detacked) : 30만 라인 이하
- 내장형 (embedded) : 30만 라인 이상
COCOMO 모델의 종류
- 기본형
- 중간형
- 발전형
LOC 기법
노력 (인월) | 개발 기간 X 투입 인원 LOC / 1인당 월평균 생산 코드 라인 수 |
개발 비용 | 노력 (인월) X 단위 비용 (1인당 월평균 인건비) |
개발 기간 | 노력 (인월) / 투입 인원 |
생산성 | LOC / 노력 (인월) |
2. Putnam 모형
소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상하는 모형
Rayleigh-Norden 곡선의 노력분포도를 기초로 한다.
ex) SLIM
3. 기능 점수(FP) 모형
소프트웨어 기능을 증대시키는 요인별 기능 점수를 구하여 비용을 산정하는 기법
프로젝트 일정 계획
PERT | 전체 작업의 상호 관계를 표시 노드와 간선 비관치, 기대치, 낙관치 |
CPM | 작업을 나열하고 작업에 필요한 소요 기간 예측 노드와 간선 임계 경로 : 소요 시간이 가장 긴 경로 |
간트 차트 | 막대 도표 |
소프트웨어 개발 표준
1. ISO/IEC 12207
- 기본 생명 주기 프로세스
- 자원 생명 주기 프로세스
- 조직 생명 주기 프로세스
2. CMMI
성숙도 평가 모델
- 초기
- 관리
- 정의
- 정량적 관리
- 최적화
3. SPICE
공식 명칭은 ISO/IEC 15504
- 고객-공급자 프로세스
- 공학 프로세스
- 지원 프로세스
- 관리 프로세스
- 조직 프로세스
- 불완전 단계
- 수행 단계
- 관리 단계
- 확립 단계
- 예측 단계
- 최적화 단계
소프트웨어 개발 프레임워크의 특성
- 모듈화
- 재사용성
- 확장성
- 제어의 역흐름
번외) 오답 노트
Q1.
다음은 현행 시스템을 파악하는 과정에서 수행하는 작업들을 그룹별로 묶어 놓은 것이다. 그룹을 작업 순서대로 나열하시오.
<보기>
A : 아키텍처 구성 파악, 소프트웨어 구성 파악
B : 하드웨어 구성 파악, 네트워크 구성 파악
C : 시스템 구성 현황 파악, 시스템 기능 파악, 시스템 인터페이스 현황 파악
A1. C ㅡ> B ㅡ> A
Q2.
다음에 제시된 요구사항을 기능 요구사항과 비기능 요구사항으로 구분하여 기호(ㄱ ~ ㄹ)로 쓰시오.
ㄱ. 항공편, 탑승객, 예약을 입력하는 방법을 결정해야 한다.
ㄴ. 티켓과 리포트에 어떤 정보를 표시할지 결정해야 한다.
ㄷ. 여행사와 고객이 데이터베이스에 접근할 때 어떤 정보를 얻을 수 있는지 결정해야 한다.
ㄹ. 자주 탑승하는 고객을 서비스하기 위해 시스템을 확장할 수 있도록 설계해야 한다.
A2. 기능 요구사항 : ㄱ, ㄴ, ㄷ ㄱ은 입력 기능, ㄴ과 ㄷ은 출력 기능
비기능 요구사항 : ㄹ ㄹ은 확장성에 대한 것
Q3.
HIPO Chart는 시스템의 기능을 여러 개의 고유 모듈로 분할하여 이들 간의 인터페이스를 계층 구조로 표현한 것이다. HIPO Chart 종류 3가지를 쓰시오.
A3. 가시적 도표, 총체적 도표, 세부적 도표
Q4.
다음은 정보공학 개발 방법론의 수행 절차를 나열한 것이다. 괄호에 들어갈 알맞은 답을 쓰시오.
정보 전략 계획 수립 단계 |
( ) 단계 |
( ) 단계 |
업무 시스템 구축 단계 |
A4. 업무 영역 분석, 업무 시스템 설계
Q5.
다음은 SPICE의 프로세스 수행 능력 단계를 순서대로 나열한 것이다. 괄호에 들어갈 알맞은 단계를 쓰시오.
불완전 | ( ) | 관리 | ( ) | ( ) | 최적화 |
A5. 수행, 확립, 예측
Q6.
소프트웨어 개발 표준 중 SPICE(소프트웨어 처리 개선 및 능력 평가 기준)의 개념을 간략히 서술하시오.
A6. 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
Q7.
다음 표는 SPICE의 5개 프로세스 범주를 설명한 것이다. 괄호(1, 2)에 들어갈 알맞은 범주를 쓰시오.
범주 | 특징 |
고객-공급자 프로세스 |
- 소프트웨어를 개발하여 고객에게 전달하는 것을 지원하고, 소프트웨어의 정확한 운용 및 사용을 위한 프로세스로 구성된다. - 구성 요소는 인수, 공급, 요구 도출, 운영이고, 프로세스 수는 10개이다. |
( 1 ) | - 시스템과 소프트웨어 제품의 명세화, 구현, 유지보수를 하는데 사용되는 프로세스로 구성된다. - 구성 요소는 개발, 소프트웨어 유지보수이고, 프로세스 수는 9개이다. |
( 2 ) | - 소프트웨어 생명 주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성된다. - 구성 요소는 문서화, 형상, 품질 보증, 검증 등이고, 프로세스 수는 8개이다. |
관리 프로세스 |
- 소프트웨어 생명 주기에서 프로젝트 관리자에 의해 사용되는 프로세스로 구성된다. - 구성 요소는 관리, 프로젝트 관리, 품질 및 위험 관리이고, 프로세스 수는 4개이다. |
조직 프로세스 |
- 조직의 업무 목적 수립과 조직의 업무 목표 달성을 위한 프로세스로 구성된다. - 구성 요소는 조직 배치, 인력 관리, 측정 도구 등이고, 프로세스 수는 9개이다. |
A7. 공학 프로세스, 지원 프로세스
'Computer Science (CS) > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 9. 소프트웨어 개발 보안 구축 (0) | 2023.03.19 |
---|---|
[정보처리기사 실기] 8. SQL 응용 (0) | 2023.03.18 |
[정보처리기사 실기] 5. 인터페이스 구현 (0) | 2023.03.16 |
[정보처리기사 실기] 4. 서버 프로그램 구현 (0) | 2023.03.16 |
[정보처리기사 실기] 2. 데이터 입출력 구현 (0) | 2023.03.11 |