본문 바로가기

정보 처리 기사 필기/1. 소프트웨어 설계

1-2 요구 사항 확인 - 요구 사항 정의

반응형

요구 사항 정의

 

기능적 모델링(기능(행위) 관점) 
구조적 분석기법
- 시스템이 어떠한 기능(행위)을 수행하는가의 관점에서 시스템을 설명하는 기법
- 유형 : 데이터 흐름도(DFD), 자료 사전(DD), 소단위 명세서(Mini-Spec)
자료(데이터) 모델링(자료 관점) 
정보 공학적 방법
- 시스템에 사용되는 자료를 찾아내고, 자료의 구성, 자료들 사이의 관계와 연관성을 규명하여 시스템의 자료구조를 포착하는 기법
- 유형 : ER 모델링
동적 모델링(동적 관점)
- 시간의 변화에 따른 시스템의 동작과 제어에 초첨을 두어 설명하는 기법
- 유형 : 유스케이스 다이어그램(Usecase Diagram), 상태 변화도(=상태 모델)(STD, State Transition Diagram)

 

 

 

요구 공학

 

개념
  • 시스템 요구사항 문서를 생성, 검증, 관리하기 위해 수행되는 구조화된 활동의 집합
  • 요구사항 획득, 분석, 요구 명세서, 검증 및 요구사항 변경 관리 등에 대한 전반적인 활동과 관리 체계적, 반복적으로 수행
요구사항 개발 프로세스 도출(Elicitation)->분석(analytsis)->명세(specification)->확인(validation)
도출
  • 요구사항 출처, 수집 방법 파악
  • 의사소통 중요
  • 도출 기법: 인터뷰, 스토리 텔링, 프로토 타이핑, 워크숍, 벤치 마킹
분석
  • 요구사항 타당성 조사
  • 소프트웨어 범위 파악, 개발 비용/일정 제약 설정
  • 요구사항 분석, 정의, 문서화
  • 분석 기법: DFD, DD, Mini-Spec, ERD, UML
명세
  • 검토, 평가, 승인 가능한 문서 작성
  • 정형 명세기법
    • 수학적 원리/표기법 이용 서술
    • 비정형에 비해 간결
    • 종류: VDM, Z, CSP, CSS
  • 비정형 명세기법
    • 자연어 기반 서술
    • 종류: FSM, Decision Table, E-R, SADT
  • 명세서 작성 원칙
    • 명확성
    • 완전성
    • 검증 가능성
    • 일관성
    • 수정 용이성
    • 추적 가능성
    • 개발 후 이용성
확인
  • 분석가의 이해도 확인
  • 명세서의 표준 적합성, 일관성 검증

 

 

요구사항 도출 기법

 

  • 사용자 그룹 인터뷰
  • 이해관계자 설문 조사
  • 문헌 조사
  • 프로토타이핑
  • 스토리텔링
  • 분석과 중재 기술
  • 관찰과 모델 작성 기술
  • 요구사항 도출 세부 활동
페르소나 정의 잠재적 사용자의 다양한 목적과 관찰된 행동 패턴을 응집시켜 놓은 가상의 사용자 정의        
콘셉트 모델 정의 여러 가지 추상적 콘셉트들 사이의 관계 보여주는 다이어그램 정의
사용자 요구사항 정의 리서치 및 페르소나 결과물 토대로 요구사항 도출하고 우선순위 정함
UI 컨셉션 정리된 요구사항 구체화하는 단계로 화면 디자인 단계 전에 대표 화면 설계를 진행하는 단계

 

 

 

구조적 분석

 

원리

추상화 원칙 특정 대상에 대한 실체로부터 분리된 개념이나 관점으로 특정 대상 간소히 표현
정형화 원칙 특정 대상을 수학적 알고리즘과 같이 연구할 수 있도록 하여 생각, 명령 자동화시킬 수 있는 근거 제공
분할 정복의 개념 규모가 큰 시스템을 작게 분할하면 더 쉽게 이해 가능
계층적 구조의 개념 여러 개의 작은 독립적 모듈을 어떻게 배치하는 것이 좋을 것인가의 문제

 

도구

자료 흐름도
(DFD: Data Flow Diagram)
  • 처리 거쳐 변환될 때마다 새로운 명칭 부여
  • 자료 흐름도의 최하위 처리(process)는 소단위 명세서 가짐
  • Process가 출력 자료 산출하기 위해서는 필요 자료 반드시 입력
  • 한페이지 단위로 작성
자료 사전
(DD: Data Dictionary)
  • 목적: 조직에 속해 있는 다른 사람들에게 특정한 자료 용어가 무엇을 의미하는지 알려주기 위해, 용어의 정의를 조정하고 취합하고 문서로 명확히 함
  • 정의: 자료 요소, 자료 요소들으 ᅟᅵ집합, 자료의 흐름, 자료 저장소의 의미, 그들간의 관계, 값, 범위, 단위들을 구체적으로 명시하는 사전
소단위 명세서
(Mini-spec)
 
UML
  • 기본 구성 요소(사관다)
    • 사물(thing)
    • 관계(relationship)
    • 다이어그램(Diagram)

 

DFD
DD

 

 

요구 사항 분석 과정

 

요구사항 분류
  • 기능적 요구사항
    • 시스템이 수행해야 하는 행위 구체화
    • 입력/출력/데이터베이스/통신 기능 등
  • 비기능적 요구사항
    • 시스템이 가져야 하는 기능 이외의 요구사항
개념 모델링
  • 요구사항 분석
  • 문제 발생 상황에의 이해 증진, 해결책 설명
요구사항 할당
  • 구성 요소 식별 후 업무에 맞게 할당
요구 사항 협상
  • 이해관계자 간 의견 다를 때 협상 필요
정형 분석
  • 형식적, 정의된 의미 지닌 언어로 표현하여 오해 최소화

 

 

 

요구사항 확인 과정

 

  • 요구사항 검토
  • 프로토타이핑
  • 모델 검증인수 테스트

 

요구사항 검증 과정

 

  • 요구사항 검증
  • 요구사항 검증 절차
    • 요구사항 검토 계획 수립
    • 요구사항 명세서 검토와 오류 수정
    • 요구사항 베이스 라인 설정

 

 

요구사항 검증 방법

 

요구사항 검토

Peer Review(동료 검토)
  • 2~3명 정도의 검토 담당자가 수행하는 검토
  • 다수의 이해관계자에게 요구사항 명세서 작성자가 명세서 설명
  • 이해관계자들이 설명을 들으며 결함 발견하는 형태
Walk Through
  • 검토 자료 회의 전에 배포하여 사전 검토 후 짧은 시간동안 회의 진행
  • 소프트웨어 개발 단계마다 실시하는 비정형 검토 회의
  • 오류 조기 검출 후 문서화
Inspection
  • 개발에 미참여한 다른 전문가에 의해 오류 찾아내는 공식적 검토 방법
  • 품질 높이는 방법
프로토타입
  • 주요 기능/일부분 임시 개발하여 이해관계자나 고객 대상으로 시연하며 요구사항 검증
리펙토링
  • 오류 제거하고 새로운 기능 추가가 아닌 결과 변경 없이 프로그램 소스의 구조 재조정
  • 가독성 높이고 유지보수 편하게 함

 

 

CASE(Computer Aided Software Engineering)

개념
  • 개발 시점부터 요구 분석, 설계, 개발, 유지보수에 이르기까지 생명 주기 전반 지원/개발 지원하는 자동화 도구 혹은 방법론의 결합
  • 소프트웨어 개발 과정 일부 또는 전체 자동화 도구
  • 표준화된 개발 환경 구축 및 문서 자동화 기능 제공
  • 작업 과정 및 데이터 공유 통해 작업자 간의 커뮤니케이션 증대
  • 객체 지향 시스템뿐 아니라 구조적 시스템 포함해 모든 분야에 적용
  • 분산된 환경에서 다양한 이해관계자 공동 작업 가능
  • 테스트 연계 및 결함 관리 등의 기능 제공으로 시스템 구축 업무 효율적 수행
  • 자동화된 일관성 분석 제공하는 CASE 도구 활용
원천 기술
  • 구조적 기법: 하향식, 기능식 분해 방법을 이용하여 시스템 요구 정의하는 모델링 기법
  • 프로토 타이핑 기술: 시제품 형태의 SW 단기간에 제작하여 사용자에게 제시함으로써 요구사항에 대한 빠른 확정과 개발 진행할 수 있는 기술
  • 자동 프로그래밍 기술: 설계한 내용 기초로 프로그램 자동 생성하는 기술
  • 정보 저장소 기술: SW 개발동안 모아진 정보 보관하여 관리하는 기술
  • 분산 처리 기술: CASE 도구가 client/server 환경에서 제공되어 다수의 사용자가 CASE 도구와 개발 정보 공동 사용하게 하기 위해 분산 환경에서의 처리 기술
분류
  • 상위(Upper) CASE
    • 요구 분석, 설계 지원
    • 모델 사이 모순 검사 기능
    • 모델 오류 검증 기능
    • 자료 흐름도 작성 기능
  • 하위(Lower) CASE
    • 코드 작성(구현), 검사 지원
    • 원시 코드 생성 기능
  • 통합(Total) CASE
    • 개발 주기의 전 과정 지원
4가지 구성 요소
  • 상위부: 원하는 결과 얻기 위한 명령 입력 부분
  • 중위부: 입력된 결과 처리 부분
  • 후위부: 처리된 결과 출력 부분
  • 다중 정보: 다양한 정보를 체계적으로 저장하고 있는 DB 부분
특징
  • Tool 가격 비싸나 개발 기간, 인력 감소로 전체 개발 비용 절감
  • 분석가의 지원 필요
  • 수정 용이, 정확요구
  • 유지 보수, 생산성, 재 사용성, 품질 향상
  • 그래픽, 다양한 소프트웨어 개발 모형 지원
  • CASE 툴 간의 호환성 없음
  • 요구 사항 변경 사항 추적, 분석 및 관리
  • 표준 준수 여부 확인
  • 분산된 환경에서 다양한 이해관계자 공동 작업
  • 테스트 연계 및 결함 관리 등의 기능 제공
  • 시스템 구축 업무 효율적 수행
  • 컴파일러나 인터프리터와 같은 언어 번역 프로그램 지원하지 않음

 

 

 

요구사항 관리

 

  • 요구사항 협상
  • 요구사항 기준선
  • 요구사항 변경 관리
  • 요구사항 확인

 

 

요구사항 관리 도구 필요성

 

  • 요구사항 변경으로 인한 비용 편익 분석
  • 요구사항 변경의 추적
  • 요구사항 변경에 따른 영향 평가

 

 

요구사항 분석 자동화 도구(CASE)

 

SADT
(Structure Analysis & Design Technique)
  • softTech사에서 개발된 것으로 구조적 요구 분석위해 블록 다이어그램 채택한 자동화 도구
PSL/PSA
(Program Statement Language/Program Statement Analysis)
  • 미시간 대학이 ISDOS 프로젝트에서 개발한 요구 분석용 자동화 도구
SREM
(Software Requirement Engineering Methodology)
  • TRW사가 미 국방성의 의뢰로 개발한 실시간 시스템용 요구 분석 자동화 도구
TAGS
(technology for Automated Generation of Systems)
  • 시스템 공학 방법 응용에 대한 자동 접근법으로 IORL 언어를 사용해 개발 주기 전과정에 이용 가능

 

 

요구 사항의 기술적 타당성 검토

 

  • 성능 및 용량 산정의 적정성
  • 시스템 간 상호 운용성
  • IT 시장 성숙도 및 트렌드 부합성
  • 기술적 위험 분석
    • 복잡성
    • 검증 여부
    • 의존성

 

 

 

 

 

 

Reference

https://book.naver.com/bookdb/book_detail.naver?bid=17134434 

 

이기적 정보처리기사 필기 기본서

- 기초부터 탄탄히 잡아주는 영진닷컴의 이기적 수험서!영진닷컴이 자랑하는 수험서 브랜드 ‘이기적’ 시리즈는 쉽고 풍부한 내용으로 기초부터 튼튼하게 쌓아주는 합격의 동반자입니다. 기

book.naver.com

 

 

 

 

반응형