본문 바로가기

IT/정보처리기사

[시나공 토막강의] 04-09강 정리

4강. 현행 시스템 파악 : 구기인 아(랐)쏘 하네

 

1단계

 - 시스템 구성 파악 : 기간 업무, 지원 업무

 - 시스템 기능 파악 : 주요 기능, 하부 기능, 세부 기능, 계층형

 - 시스템 인터페이스 파악 : 데이터의 종류, 형식, 프로토콜, 연계 유형, 주기

 

2단계

 - 아키텍처 구성 파악 : 계층별 구성도

 - 소프트웨어 구성 파악 : 제품명, 용도, 라이선스 적용 방식, 라이선스 수

 

3단계

 - 하드웨어 구성 파악 : 서버의 주요 사양, 수량, 이중화 적용 여부

 - 네트워크 구성 파악 : 서버의 위치, 서버간의 네트워크 연결 방식, 구성도

 

 

5강. 개발 기술 환경 파악

 - 개발하고자 하는 소프트웨어 관련 운영체제(OS), 데이터베이스 관리 시스템(DBMS), 미들웨어 선정 시 고려할 사항 기술, 오픈 소스 사용 시 주의할 내용 제시

 

 1. 운영체제(OS, Operating System)

 - 운영체제는 컴퓨터 시스템 자원을 효율적으로 관리, 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어

 - 사용자와 하드웨어간의 인터페이스로 동작하는 시스템 소프트웨어의 일종

 - 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경 제공

 - 운영체제 관련 요구사항 식별 시 고려사항 : 가용성, 성능, 기술 지원, 주변 기기, 구축 비용

 

 2. 데이터베이스 관리 시스템(DBMS, DataBase Management System)

 - 사용자와 데이터베이스 사이에서 요구에 따른 정보 생성, 데이터를 관리하는 소프트웨어

 - 데이터의 종속성과 중복성 문제 해결을 위해 제안된 시스템

 - 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리

 - DBMS 관련 요구사항 식별 시 고려사항 : 가용성, 성능, 기술 지원, 상호 호환성, 구축 비용

 

 3. 웹 애플리케이션 서버(WAS; Web Application Server)

 - 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어

 - 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리를 제공

 - 주로 데이터베이스 서버와 연동해서 사용

 - 웹 애플리케이션 서버 관련 요구사항 식별 시 고려사항 : 가용성, 성능, 기술 지원, 구축 비용

 

 4. 오픈 소스(Open Source)

 - 누구나 별다른 제한 없이 사용할 수 있도록 소스 코드를 공개한 소프트웨어

 - 오픈 소스 라이선스를 만족함

 - 오픈 소스 관련 요구사항 식별 시 고려사항 : 라이선스의 종류, 사용자 수, 기술의 지속 가능성

 

 

6강. 요구사항 정의

 - 소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 운영에 필요한 제약조건

 - 개발이나 유지 보수 과정에서 필요한 기준과 근거를 제공

 - 개발에 참여하는 이해관계자들간의 원활한 의사소통에 도움

 - 요구사항의 유형 : 기능, 비기능, 사용자, 시스템 요구사항

 

 1. 기능 요구사항(Functional requirements)

 - 시스템의 기능이나 수행과 관련된 요구사항

  ex) 입력, 출력, 저장, 연산, 반드시 수행, 사용자가 원하는 기능

 

 2. 비기능 요구사항(Non-functional requirements)

 - 품질이나 제약사항과 관련된 요구사항

  ex) 시스템 장비 구성, 성능, 인터페이스, 데이터 구축, 테스트, 보안, 품질, 제약, 관리, 자원 요구사항

 

 3. 사용자 요구사항(User requirements)

 - 사용자 관점에서 시스템이 제공해야 할 요구사항

 - 사용자를 위한 것, 친숙한 표현, 이해하기 쉽게 작성

 

 4. 시스템 요구사항(System requirements)

 - 개발자 관점에서 시스템이 제공해야 할 요구사항

 - 전문적이고 기술적인 용어로 표현, 소프트웨어 요구사항

 

 

7강. 요구사항 개발 프로세스

 - 요구사항을 체계적으로 도출하고 분석하여 명세서에 정리한 후 확인 및 검증하는 일련의 활동

 - 타당성 조사(Feasibility Study)가 선행되어야 함, 요구공학의 한 요소

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

 

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

 - 시스템 개발에 관련된 사람들이 의견 교환을 통해 어떻게 요구사항을 수집할지 식별하고 이해하능 과정

 - 개발자와 고객 사이의 관계가 형성, 이해관계자가 식별됨 

 - 소프트웨어 개발 생명 주기(SDLC) 동안 지속적으로 반복됨

 - 주요 기법 : 청취와 인터뷰, 설문, 브레인스토밍, 워크샵, 프로토타이핑, 유스케이스

 

2. 요구사항 분석(Requirement Analysis)

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

 - 요구사항의 타당성을 조사하고 비용과 일정에 대한 제약을 설정

 - 상충되는 요구사항을 중재하는 과정

 - 사용되는 대표적인 도구 : 자료 흐름도(DFD), 자료 사전(DD)

 

3. 요구사항 명세(Requirement Specification)

 - 분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 것

 - 기능 요구사항은 빠짐없이 기술, 비기능 요구사항은 필요한 것만 기술

 - 구체적인 명세를 위해 소단위 명세어(Mini-Spec)가 사용될 수 있음

 1) 정형 명세 기법

  - 수학적 원리 기반, 모델 기반

  - 수학적 기호, 정형화된 표기법 -> 사용자가 이해하기 어려움

  - 정확, 간결, 결과의 일관성 -> 완전성 검증 가능

 2) 비정형 명세 기법

  - 상태/기능/객체 중심

  - 자연어 기반, 다이어그램으로 작성 -> 이해 쉬움, 의사소통 용이

  - 결과가 일관적이지 않음 -> 해석 달라짐

 

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

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

 - 이해관계자들이 검토해야 함

 - 요구사항 관리 도구를 이용하여 정의 문서들에 대해 형상 관리(SCM)를 수행함

 

5. 요구공학(Requirements Engineering)

 - 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문

 - 요구사항 변경의 원인과 처리 방법을 이해하고 관리 프로세스의 품질을 개선하여 소프트웨어 프로젝트 실패를 최소화하하는 것이 목표

 

 

8강. 요구사항 분석(Requirement Analysis)

 - 소프트웨어 개발의 실제적인 첫 단계, 요구사항을 이해하고 문서화하는 활동

 - 요구의 타당성을 조사, 비용과 일정에 대한 제약 설정

 - 요구를 정확하게 추출하여 목표를 정함

 

1. 구조적 분석 기법

 - 자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법

 - 도형 중심의 분석용 도구와 분석 절차 이용, 하향식 방법 -> 시스템 세분화, 분석 중복 배제

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

 

 1) 자료 흐름도(DFD; Data Flow Diagram)

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

  - 자료 흐름 그래프, 버블 차트

  - 기본 기호 :

   - 프로세스(Process) : 처리 과정 / 글자를 둘러싸는 원, 둥근 사각형

   - 자료 흐름(Data Flow) : 자료의 이동(흐름)이나 연관관계 / 화살표

   - 자료 저장소(Data Store) : 파일, 데이터베이스 / 글자 위아래 작대기, 둘러싼 칸

   - 단말(Terminator) : 시스템과 교신하는 외부 객체 / 각진 사각형

 

 2) 자료 사전(DD; Data Dictionary)

  - 자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것

  - 데이터의 데이터, 메타 데이터(Meta Data)

  - 기본 기호 :

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

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

   ( ) : 자료의 생략(Optional)

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

   { } : 자료의 반복(Iteration of), {}n : 아래는 최소 n번, 위에는 최대 n번

  * * : 자료의 설명, 주석(Comment)

 

 

9강. 요구사항 분석 CASE와 HIPO

 

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

 - 요구사항을 자동으로 분석, 분석 명세서를 기술

 

 1) SADT : 시스템 정의, 요구사항 분석, 설계를 위한 도구, SoftTech 사에서 개발, 블록 다이어그램 채택

 2) SREM = RSL/REVS : TRW 사가 개발, RSL(언어)과 REVS(처리기구) 사용

 3) PSL/PSA : PSL(언어)과 PSA (처리기구)사용, 미시간 대학에서 개발

 4) TAGS : 시스템 공학 방법 응용에 대한 자동 접근법, 개발 주기 전 과정에 이용 가능한 통합 도구

 

2. HIPO(Hierarchy Input Process Output)

 - 시스템 실행 과정인 입력.처리.출력의 기능을 표현한 것

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

 - 기호, 도표 이용 -> 이해 용이

 - HIPO Chart : 시스템의 기능을 여러 개의 고유 모듈로 분할하여 이들간의 인터페이스를 계층구조로 표현한 것

  ex) 가시적 도표(Visual Table of Contents, 도식 목차), 총체적 도표(Overview Diagram, 개요 도표), 세부적 도표(Detail Diagram, 상세 도표)