정보처리기사 실기 대비_파트1
29 Jun 2023
정보처리기사 실기 대비
1. 요구사항 확인
Section05 개발 기술 환경 파악
- 개발 기술 환경 파악의 개요
- 소프트웨어 선정할 때 고려 사항 기술, 오픈 소스 사용 시 주의 내용 제시
- 운영체제(OS, Operation System)
- 컴퓨터 시스템 자원 효율적 관리
- 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경 제공
- 사용자와 하드웨어 간의 인터페이스
- 다른 응용 프로그램이 유용한 작업하도록 환경 제공
- 요구사항 식별 시 고려사항
- 가용성
- 성능
- 기술 지원
- 주변 기기
- 구축 비용
- 데이터베이스 관리 시스템(DBMS, DataBase Management System)
- 사용자와 데이터베이스 사이에서 사용자 요구 따라 정보 생성
- 데이터베이스를 관리해주는 소프트웨어
- 데이터 종속성, 중복성 문제 해결 위해 제안된 시스템
- 모든 응용 프로그램이 데이터베이스를 공용할 수 있도록 관리
- 요구사항 식별 시 고려사항
- 가용성
- 성능
- 기술 지원
- 상호 호환성
- 구축 비용
- 웹 애플리케이션 서버(WAS, Web Application Server)
- 사용자 요구 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어
- 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리 제공
- 데이터베이스 서버와 연동해서 사용
- 요구사항 식별 시 고려사항
- 가용성
- 성능
- 기술 지원
- 구축 비용
- 오픈 소스(Open Source)
- 누구나 별다른 제한 없이 사용할 수 있도록 소스 코드를 공개한 소프트웨어
- 오픈 소스 라이선스 만족한다
- 요구사항 식별 시 고려사항
- 라이선스 종류
- 사용자 수
- 기술의 지속 가능성
Section06 요구사항 정의
- 요구사항
- 소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명
- 운영되는데 필요한 제약 조건
- 이해관계자들 간의 의사소통 원활하게 하는 데 도움
- 유형
- 기능 요구사항
- 비기능 요수사항
- 사용자 요구사항
- 시스템 요구사항
- 기능 요구사항
- 기능이나 수행과 관련된 요구사항
- 시스템의 입력, 출력으로 무엇이 포함되어야 하는지
- 시스템이 어떤 데이터를 저장하거나 연산을 수행하야 하는지
- 시스템이 반드시 수행해야 하는 기능
- 사용자가 시스템을 통해 제공받기를 원하는 기능
- 비기능 요구사항
- 품질이나 제약사항과 관련된 요구사항
- 시스템 장비 구성 요구사항
- 성능
- 인터페이스
- 데이터를 구축하기 위해 필요한 요구사항
- 테스트
- 보안
- 품질 요구사항(가용성 정합성 상호호환성 대응성 이식성 확장성 보안성)
- 제약 사항
- 프로젝트 관리 요구사항
- 프로젝트 자원 요구사항
- 사용자 요구사항
- 사용자 관점에서 본 시스템이 제공해야 할 요구사항
- 사용자를 위한 것, 친숙한 표현
- 시스템 요구사항
- 개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항
- 전문적, 기술적 용어
- 소프트웨어 요구사항
Section07 요구사항 개발 프로세스
- 요구사항 개발 프로세스
- 요구 사항을 체계적으로 도출, 분석 후 명세서에 정리한 다음 확인 및 검증하는 일련의 구조화된 활동
- 타당성 조사가 선행되어야 함
- 요구사항 개발은 요구공학의 한 요소
- 도출 -> 분석 -> 명세 -> 확인
- 요구사항 도출(Requirment Elicitation)
- 시스템, 사용자, 개발자 등 시스템 개발에 관련된 사람들이 서로 의견 교환하여 요구사항을 어떻게 수집할 것인지 식별하고 이해하는 과정
- 이해관계자가 식별됨
- 소프트웨어 개발 생명 주기 동안 지속 반복
- 도출 주요 기법
- 인터뷰
- 설문
- 브레인스토밍
- 워크샵
- 프로토타이핑
- 유스케이스
- 요구사항 분석(Requirment Analysis)
- 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분 발견하고 걸러내기 위한 과정
- 타당성 조사
- 비용과 일정에 대한 제약 설정
- 상충되는 요구사항은 중재
- 도구
- 자료 흐름도(DFD)
- 자료 사전(DD)
- 요구사항 명세
- 분석된 요구사항 바탕으로 모델 작성하고 문서화하는 것
- 기능 요구사항 빠짐없이 기술
- 비기능은 필요한 것만
- 소단위 명세서 사용 가능
- 요구사항 확인
- 명세서가 정확하고 완전하게 작성되었는지를 검토하는 활동
- 이해 관계자들이 검토해야 함
- 형상 관리(SCM) 수행
- 요구공학
- 요구사항 정의, 분석 및 관리는 프로세스를 연구하는 학문
- 품질 개선, 실패 최소화 목표
- 요구사항 명세 기법
- 정형 명세 기법
- 수학적 원리 기반, 모델 기반
- 수학적 기호, 정형화된 표기법
- 요구사항 정확하고 간결하게 ㅍ현
- 일관성이 있어 완전성 검증 가능
- 표기법 어려워 이해 어려움
- VDM
- Z
- Petri-net
- CSP
- 비정형 명세 기법
- 상태/기능/객체 중심
- 일반 명사, 동사 등의 자연어 기반으로 서술, 다이어그램으로 작성
- 일관성 떨어지고, 해석이 달라질 수 있음
- 이해 쉬움
- FSM
- Decision Table
- ER모델링
- State Chart(SADT)
Section08 요구사항 분석
- 요구사항 분석
- 소프트웨어 개발의 실제적인 첫 단계. 사용자 요구사항 이해, 문서화
- 요구 타당성 조사, 비용과 일정에 대한 제약 설정
- 요구 정확하게 추출
- 목표 정하기
- 구조적 분석 기법
- 자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법
- 도형 중심의 분석용 도구, 분석 절차 이용. 사용자 요구 사항 파악, 문서화
- 하향식 방법으로 시스템 세분화
- 분석 중복 배제할 수 있음
- 주요 구조적 분석 기법 도구
- 자료 흐름도(DFD)
- 자료 사전(DD)
- 소단위 명세서(Mini-Spec.)
- 개체 관계도(ERD)
- 상태 전이도(STD)
- 제어 명세서
- 자료 흐름도(DFD: Data Flow Diagram)
- 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법
- 자료 흐름 그래프, 버블 차트라고도 함
- 자료 흐름과 처리를 중심으로 하는 구조적 분석 기법에 이용
- 자료 흐름도 기본 기호
- 프로세스(Process) : 자료를 변환시키는 시스템의 한 부분(처리 과정)을 나타내며 처리, 기능, 변환, 버블이라고도 함
- 자료 흐름(Data Flow) : 자료의 이동(흐름)이나 연관 관계를 나타냄
- 자료 저장소(Data Store) : 시스템에서의 자료 저장소(파일, 데이터베이스)를 나타냄
- 단말(Terminator) : 시스템과 교신하는 외부 개체로, 입력 데이터가 만들어지고 출력 데이터를 받음
- 자료 사전(DD: Data Dictionary)
- 자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것
- 데이터를 설명하는 데이터, 메타 데이터
- 표기 기호
- = 자료의 정의 : ~로 구성되어 있다
- ’+’ 자료의 연결 : 그리고
- () 자료의 생략
- [] 자료의 선택 : 또는
- {} 자료의 반복 : iteration of
- ** 자료의 설명 : 주석
Section09 요구사항 분석 CASE와 HIPO
- 요구사항 분석용 CASE(자동화 도구)
- 요구사항 자동 분석, 요구사항 분석 명세서를 기술하도록 개발된 도구
- 대표적인 요구사항 분석용 CASE
- SADT
- 시스템 정의 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위한 도구
- SoftTech 사에서 개발
- 구조적 요구 분석을 위해 블록 다이어그램을 채택한 자동화 도구
- SREM = RSL/REVS
- TRW 사가 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 할 목적으로 개발한 도구
- RSL과 REVS를 사용하는 자동화 도구
- PSL/PSA
- PSL, PSA를 사용하는 자동화 도구
- 미시간 대학에서 개발
- TAGS
- 시스템 공학 방법 응용에 대한 자동 접근 방법
- 개발 주기 전 과정에 이용할 수 있는 통합 자동화 도구
- HIPO(Hierarchy Input Process Output)
- 시스템의 분석 및 설계 또는 문서화에 사용되는 기법
- 시스템 실행 과정인 입력, 처리, 출력의 기능을 표현한 것
- 하향식 소프트웨어 개발을 위한 문서화 도구
- 기능과 자료의 의존 관계를 동시에 표현할 수 있음
- 기호, 도표 등을 사용하므로 보기 쉽고 이해하기도 쉬움
- 시스템의 기능을 여러 개의 고유 모듈로 분할하여 인터페이스 계층 구조로 표현한 것을 HIPO Chart라고 함
- HIPO Chart 종류
- 가시적 도표(Visual Table of Contents)
- 총체적 도표(Overview Diagram)
- 세부적 도표(Detail Diagram)
Section10 UML의 개요
- UML(Unified Modeling Language)
- 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링 언어
- Rumbaugh, Booch, Jacobson 등의 객체 지향 방법론의 장점을 통합
- OMG(Object Management Group)에서 표준으로 지정
- 구성 요소
- 사물
- 관계
- 다이어그램
- 사물(Things)
- 사물은 다이어그램 안에서 관계가 형성될 수 있는 대상들을 말함
- 모델을 구성하는 가장 중요한 기본 요소
- 종류
- 구조 사물
- 시스템의 개념적, 물리적 요소를 표현
- 클래스, 유스케이스, 컴포넌트, 노드 등
- 행동 사물
- 시간과 공간에 따른 요소들의 행위를 표현
- 상호작용, 상태 머신 등
- 그룹 사물
- 요소들을 그룹으로 묶어서 표현
- 패키지
- 주해 사물
- 부가적인 설명이나 제약조건 등 표현
- 노트