현행 시스템 파악 절차
1단계
시스템 구성 파악
시스템 기능 파악
시스템 인터페이스 파악
2단계
아키텍처 구성 파악
소프트웨어 구성 파악
3단계
하드웨어 구성 파악
네트워크 구성 파악
개발 기술 환경
운영체제(OS)
컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어
운영체제 관련 요구사항 식별 시 고려사항
가용성, 성능, 기술 지원, 주변 기기, 구축 비용
데이터베이스 관리 시스템(DBMS)
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어
DBMS 관련 요구사항 식별 시 고려사항
가용성, 성능, 기술 지원, 상호 호환성, 구축 비용
웹 애플리케이션 서버(WAS)
동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어
WAS 관련 요구사항 식별 시 고려사항
가용성, 성능, 기술 지원, 구축 비용
오픈 소스(Open Source)
누구나 별다른 제한 없이 사용할 수 있도록 소스 코드를 공개한 것
오픈 소스 사용에 따른 고려사항
라이선스의 종류, 사용자 수, 기술의 지속 가능성
요구사항 유형
기능 요구사항
시스템이 갖춰야할 필수적인 기능에 대한 요구사항
비기능 요구사항
필수 기능 외에 품질이나 제약사항에 관한 요구사항
사용자 요구사항
사용자 관점에 서 본 시스템이 제공해야 할 요구사항
시스템 요구사항
개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항
요구사항 개발 프로세스
요구사항 도출
요구사항이 어디에 있는지, 어떻게 수집할 것인지를 식별하고 이해해하는 과벙
주요 기법 - 인터뷰, 설문, 브레인 스토밍, 워크샵, 프로토타이핑, 유스케이스
요구사항 분석
요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정
요구사항 명세
요구사항을 체계적으로 분석한 후 승인될 수 있도록 문서화하는 것
요구사항 확인
요구사항 명세서가 정확하고 완전하게 작성되었는지를 검토하는 활동
요구사항 분석 기법
요구사항 분류
요구사항을 명확히 확인할 수 있도록 분류
개념 모델링
현실세계의 상황을 단순화하여 개념적으로 표현한 것을 모델이라 하며, 이러한 모델을 만드는 과정을 모델링이라고 함
개념 모델 종류 - 유스케이스 다이어그램, 데이터 흐름 모델, 상태 모델, 목표기반 모델, 사용자 인터액션, 객체 모델, 데이터 모델 등
요구사항 할당
요구사항을 만족시키기 위한 구성요소를 식별하는 것
요구사항 협상
요구사항이 서로 충돌될 경우 이를 적절히 해결하는 과정
정형 분석
구문과 의미를 갖는 정형화된 언어를 이용해 요구사항을 수학적 기호로 표현한 후 이를 분석하는 과정
*자료 흐름도(DFD; Data Flow Diagram)
요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법
구성 요소
프로세스: 자료를 변환시키는 시스템의 한 부분(처리 과정)을 나타냄
자료 흐름: 자료의 이동(흐름)이나 연관관계를 나타냄
자료 저장소: 시스템에서의 자료 저장소(파일, 데이터베이스)를 나타냄
단말: 시스템과 교신하는 외부 개체로, 입력 데이터가 만들어지고 출력 데이터를 받음(정보의 생산자와 소비자)
요구사항 확인 기법
요구사항 검토
문서화된 요구사항을 훑어보면서 확인하는 것
프로토타이핑
초기 도출된 요구사항을 토대로 프로토타입을 만든 후 지속적으로 프로토타입을 재작성하는 과정
모델 검증
요구사항 분석 단계에서 개발된 모델이 요구사항을 충족시키는지 검증하는 것
인수 테스트
사용자가 실제로 사용될 환경에서 요구사항들이 모두 충족되는지 사용자 입장에서 확인하는 과정
UML
개념
시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
UML의 구성요소
·사물
모델을 구성하는 가장 중요한 기본 요소로, 다이어그램 안에서 관계가 형성될 수 있는 대상들
구조 사물: 시스템의 개념적, 물리적 요소를 표현
행동 사물: 시간과 공간에 따른 요소들의 행위를 표현
그룹 사물: 요소들을 그룹으로 묶어서 표현
주해 사물: 부가적인 설명이나 제약조건 등을 표현
·관계
사물과 사물 사이의 연관성을 표현하는 것
연관 관계: 2개 이상의 사물이 서로 관련되어 있음을 표현함
집합 관계: 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현함
포함 관계: 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현함
일반화 관계: 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현함
의존 관계: 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현함
실체화 관계: 사물이 할 수 있거나 해야 하는 기능으로 서로를 그룹화 할 수 있는 관계를 표현함
·다이어그램
사물과 관계를 도형으로 표현한 것
다이어그램 종류
유스케이스 다이어그램
사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점(View)에서 표현한 것
구성 요소
시스템 범위: 시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현
액터: 시스템과 상호작용을 하는 모든 외부 요소로, 사람이나 외부 시스템을 의미
유스케이스: 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스 또는 기능을 표현한 것
관계: 액터와 유스케이스, 유스케이스와 유스케이스 사이에서 나타날 수 있으며, 포함 관계, 확장 관계, 일반화 관계의 3종류가 있음
활동 다이어그램
자료 흐름도와 유사한 것으로, 사용자의 관점(View)에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현한 것
구성 요소
액션/액티비티: 액션은 더 이상 분해할 수 없는 단일 작업, 액티비티는 몇 개의 액션으로 분리될 수 있는 작업
시작 노드: 액션이나 액티비티가 시작됨을 의미
종료 노드: 액티비티 안의 모든 흐름이 종료됨을 의미
조건(판단) 노드: 조건에 따라 제어의 흐름이 분리됨을 표현
병합 노드: 여러 경로의 흐름이 하나로 합쳐짐을 표현
포크(Fork) 노드: 액티비티의 흐름이 분리되어 수행됨을 표현
조인(Join) 노드: 분리되어 수행되던 액티비티의 흐름이 다시 합쳐짐을 표현
스윔레인: 액티비티 수행을 담당하는 주체를 구분
클래스 다이어그램
시스템을 구성하는 클래스, 클래스의 특성인 속성과 오퍼레이션, 속성과 오퍼레이션에 대한 제약조건, 클래스 사이의 관계를 표현한 것
구성 요소
클래스: 각각의 객체들이 갖는 속성과 오퍼레이션(동작)을 표현
제약조건: 속성에 입력될 값에 대한 제약조건이나 오퍼레이션 수행 전후에 지정해야 할 조건이 있다면 이를 적음
관계: 클래스와 클래스 사이의 연관성을 표현
시퀀스 다이어그램
시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호 작용하는 과정을 그림을 표현한 것
구성 요소
액터: 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템
객체: 메시지를 주고받는 주체
라이프라인: 객체가 메모리에 존재하는 기간으로, 객체 아래쪽에 점선을 그어 표현
활성 상자: 객체가 메시지를 주고받으며 구동되고 있음을 라이프라인 상에 겹쳐 직사각형 형태로 표현
메시지: 객체가 상호 작용을 위해 주고받는 메시지
객체 소멸: 라이프라인 상에서 객체 소멸 표시를 만나면 해당 객체는 더 이상 메모리에 존재하지 않음을 의미
프레임: 다이어그램의 전체 또는 일부를 묶어 표현
커뮤니케이션 다이어그램
시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데, 메시지뿐만 아니라 객체들 간의 연관까지 표현한 것
구성 요소
액터: 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템
객체: 메시지를 주고받는 주체
링크: 객체들 간의 관계를 표현하는 데 사용
메시지: 객체가 상호 작용을 위해 주고받는 메시지
상태 다이어그램
하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현한 것
구성 요소
상태: 객체의 상태를 표현
이벤트: 조건, 외부 신호, 시간의 흐름 등 상태에 변화를 주는 현상
상태 전환: 상태 사이의 흐름, 변화를 화살표로 표현
프레임: 상태 다이어그램의 범위를 표현
'정보처리기사' 카테고리의 다른 글
정보처리기사 실기 - 데이터 입·출력 구현 (0) | 2021.04.05 |
---|