본문 바로가기
자격증/정보처리기사 필기

정보처리기사 필기 요약 1과목 소프트웨어 설계 - 1장 요구사항 확인

by 리드민 2021. 7. 28.
반응형

정보처리기사 필기 요약 1과목 소프트웨어 설계 - 요구사항 확인

(1) 소프트웨어 생명 주기(Software Life Cycle)

소프트웨어를 개발하기 위해 정의하고 운용, 유지보수 등의 과정을 각 단계별로 나눈 것이다.

(2) 폭포수 모형(Waterfall Model)

가장 오래되고 전통적인 소프트웨어 생명 주기 모형 고전적 생명 주기 모형이라고도 한다.

한 단계가 끝나야만 다음 단계로 넘어갈 수 있는 선형 순차적 모형이다.

다음 단계를 수행하기 위한 결과물이 명확하게 산출

타당성 검토 -> 계획 -> 요구 분석 -> 설계 -> 구현(코딩) -> 시험(검사) -> 유지보수

(3) 프로토타입 모형(Prototype Model, 원형 모형)

실제 개발될 소프트웨어에 대한 견본(시제)품(Prototype)을 만들어 최종 결과물을 예측

(4) 나선형 모형(Spiral Model, 점진적 모형)

보헴이 제안 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형

점진적 모형

(5) 에자일 모형(Agile Model)

'민첩한', '기민한' 고객의 요구사항 변화에 유연하게 대응할수 있도록 일정한 주기를 반복

ex) 스크럼, XP, 칸반, Lean, 크리스탈, 기능 중심 개발

()애자일 선언(Agile Manifesto)

4가지 핵심가치

1. 개인과 상호작용에 더 가치를 둔다.

2. 실행되는 SW에 더 가치를 둔다.

3. 고객과 협업에 더 가치를 둔다.

4. 변화에 반응하는 것에 더 가치를 둔다.

 

SECTION 002

(2) 스크럼 개발 프로세스

1. 제품 백로그

2. 스프린트 계획 회의

3. 스프린트

4. 일일 스크럼 회의

5. 스프린트 검토 회의

6. 스프린트 회고

 

SECTION 003

(1) XP(eXtreme Programming)

XP의 5가지 핵심가치 : 의사소통(Communication), 단순성(Simplicity), 용기(Courage), 존중(Respect), 피드백(Feedback)

(2) XP 개발 프로세스

릴리즈 계획 수립(Release Planning)

몇 개의 스토리가 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것을 릴리즈라고 한다.

시점에 대한 일정을 수립한다.

소규모 릴리즈(Small Release)

릴리즈를 소규모로 하게 되면 고객의 반응을 기능별로 확인할 수 있다.

() XP의 주요 실천 방법(Practice)

Pair Programming(짝 프로그래밍) : 다른 사람과 함께 프로그래밍을 수행함으로서 개발에 대한 책임을 공동으로 나눠갖는 환경을 조성

Collective Ownership(공동 코드 소유) : 개발 코드에 대한 권한과 책임을 공동으로 소유

Continuous Integration(계속적인 통합) : 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합

Small Releases(소규모 릴리즈) : 고객의 요구 변화에 신속히 대응할 수 있다.

 

SECTION 004 현행 시스템 파악

1단계(시스템 구성 파악, 시스템 기능 파악, 시스템 인터페이스 파악) -> 2단계(아키텍처 구성 파악, 소프트웨어 구성 파악) -> 3단계(하드웨어 구성 파악, 네트워크 구성 파악)

 

SECTION 005 개발 기술 환경 파악

(4) 데이터베이스 관리 시스템(DBMS)

(5) DBMS 관련 요구사항 식별 시 고려사항

가용성

성능(대규모 데이터 처리 성능, 대용량 트랜잭션 처리 성능)

기술 지원

상호 호환성(JDBS, ODBC)

구축 비용

 

SECTION 006 요구사항 정의

(2) 요구사항의 유형

기능 요구사항 : 어떤 기능, 사용자가 시스템을 통해 제공받기를 원하는 기능

비기능 요구사항 : 시스템 장비 구성 요구, 처리 속도, 가용성(장애시 복구), 보안 요구사항(접근 요구사항), 품질 요구사항(호환성, 신뢰성, 이식성, 확장성, 보안성)

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

도출 -> 분석 -> 명세 -> 확인

(4) 요구사항 도출(Requirement Elicitation, 요구사항 수집)

인터뷰, 설문, 브레인스토밍(자유토의)

(5) 요구사항 분석(Requirement Analysis)

명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정

자료 흐름도(DFD-Data Flow Diagram), 자료 사전(DD)

(6) 요구사항 명세(Requirement Specification)

문서화하는 것을 의미한다.

명세서가 사용될 수 있다.

()

정형 명세 기법 : 수학적 원리 기반, 수학적 기호, 정확하고 간결하게 표현, 표기법이 어렵다 ex) Z

비정형 명세 기법 : 자연어를 기반 서술 또는 다이어그램으로 작성, 자연어, 일관성이 떨어지고 이해가 쉬어 의사소통이 용이함 ex) ER모델링

(7) 요구사항 확인(Requirement Validation, 요구사항 검증)

요구사항 명세서가 정확하고 완전하게 작성되었는지를 검토하는 활동

 

SECTION 007 요구사항 분석

(1) 요구사항 분석의 개요

분석

1. 요구의 타당성을 조사 2. 비용과 일정에 대한 정약을 설정

(2) 구조적 분석 기법

자료 흐름도(DFD), 자료 사전(DD), 소단위 명세서(Mini-Spec), 개체 관계도(ERD), 상태 전이도(STD)

(3) 자료 흐름도(DFD)

자료 흐름도(DFD; Data Flow Diagram) : 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술

자료의 흐름과 기능을 프로세스, 자료 흐름, 자료 저장소, 단말의 네가지 기본 기호로 표시

프로세스 : 원이나 둥근 사각형

자료 흐름 : 화살표 위에 자료의 이름을 기입

자료 저장소 : 도형 안에 자료 저장소 이름을 기입한다.

단말 : 입력 데이터가 만들어지고 출력 데이터를 받는다.

(4) 자료 사전

자료 사전(DD; Data Dictionary, 시스템 카탈로그) : 데이터를 설명하는 데이터를 메타 데이터라고 한다.

기호 의미
= 자료의 정의: ~로 구성되어 있다(is composed of)
+ 자료의 연결 : 그리고(and)
( ) 자료의 생략 : 생략 가능한 자료(Optional)
[ | ] 자료의 선택 : 또는(or)
{ } 자료의 반복 : Iteration of
* * 자료의 설명 : 주석(Comment)

 

SECTION 요구사항 분석 CASE와 HIPO

(1) 요구사항 분석을 위한 CASE(자동화 도구)

종류

SADT(Structured Analysis and Design Technique)

-SoftTech 사에서 개발한 것

(2) HIPO(Hierarchy Input Process Output)

햐향식 소프트웨어 개발을 위한 문서화 도구

개념적 포괄적 추상화 -> 구체적 Detail

 

SECTION UML(Unified Modeling Language)

(1) 객체지향 모델링 언어

Rumbaugh 등의 객체지향 방법론의 장점을 통합

구성요소에는 사물(Things), 관계(Relationships), 다이어그램(Diagram) 등이 있다.

() 의존(Dependency) 관계

서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현

() 실체화(Realization) 관계

기능으로 서로를 그룹화 할 수 있는 관계

(4) 다이어그램(Diagram)

가시화한 뷰(View)를 제공 의사소통에 도움을 준다.

정적 모델링에서는 주로 구조적 다이어그램을 사용, 동적 모델링에서는 주로 행위 다이어 그램을 사용

구조적 다이어그램
클래스 다이어그램 속성, 클래스 사이의 관계를 표현
객체 다이어그램 사물, 인스턴스를 객체와 객체 사이의 관계로 표현
컴포넌트 다이어그램 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스 표현
럼바우(Rumbaugh) 객체지향 분석 기법에서 객체 모델링에 활용
배치 다이어그램  
복합체 구조 다이어그램  
패키지 다이어그램  
행위(Behavioral) 다이어그램의 종류  
유스케이스 다이어그램(Use Case Diagram) 사용 사례(Use Case)
시퀸스 다이어그램(Sequence Diagram) 객체들이 주고받는 메시지를 표현
커뮤니케이션 다이어그램(Communication Diagram) 동작에 참여하는 객체들이 주고받는 메시지를 표현
상태 다이어그램(State Diagram) 상태가 어떻게 변화하는지를 표현
동적 모델링에 활용
활동 다이어그램(Activity Diagram) 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현

 

반응형