티스토리 뷰

2. 개발 기술 환경 정의

개발하고자 하는 응용소프트웨어와 관련된 운영체제, 데이터베이스관리시스템, 미들 웨어 등의 요구사항을 식별할 수 있다.
현행 시스템을 분석하여, 개발하고자 하는 응용소프트웨어가 이후 적용될 목표시스 템을 명확하고 구체적으로 기술할 수 있다.

1. 개발 기술 환경

개발 기술 환경을 정의할 때 고려할 사항을 [그림 1-6]과 같이 운영체제, DBMS, 미들웨어, 오픈 소스 순으로 살펴본다.

본 학습에서는 모든 미들웨어에 대하여 기술하지는 않으며 자주 사용되는 웹 애플리케이션 서버 (WAS: Web Application Server)를 선정할 경우 고려해야 할 사항에 대해서 기술하고, 오픈 소스 사용 시 주의해야 할 내용과 저작권 관련 정보를 제시한다.

1. 운영체제 주요 특징 및 고려 사항

1. 운영체제의 정의

운영체제(OS: Operating System)는 하드웨어와 소프트웨어 리소스를 관리하고 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 소프트웨어를 의미한다. 관련 사이트 참고 (https://en.wikipedia.org/wiki/Operating_system)

2. 운영체제의 종류 및 특징

주요 운영체제로는 마이크로소프트 윈도즈(Microsoft Windows), 유닉스(UNIX), 리눅스(Linux), 아이오에스(iOS), 안드로이드(Android) 등이 있다.

자바 가상 머신(JVM: Java Virtual Machine)은 다양한 하드웨어 및 운영체제에서 자바(Java) 언어로 작성된 애플리케이션을 수행하기 위한 사양(JVM Specification)의 구현체(Implementation)를 의미한다. 오라클(Oracle)이 자바(Java) 상표를 소유하고 있으며, 핫스팟(Hotspot) 구현체와 클래스 라이브러리(Class Library) 구현체를 배포하고 있다. 아이비엠(IBM)의 J9, 오라클(Oracle)의 JRockit(이전 BEA System 제공) 등 벤더별로 여러 자바 가상 머신(JVM: Java Virtual Machine) 구현체를 배포하고 있다. 관련 사이트 참고 (https://en.wikipedia.org/wiki/Java_virtual_machine)

3. 고려 사항

정보시스템 구축 시 운영체제 관련 요구사항을 식별할 때 고려해야 할 사항은 다음과 같다.

(가) 일반적으로 리눅스(Linux) 기반 시스템이 하드웨어 및 소프트웨어 소유 비용이 가장 적게 소요된다.
(나) 유지 및 관리 비용 측면에서는 윈도즈(Windows) 기반 시스템이 강점을 가진다.
(다) 안정적이고 신뢰할 수 있으며 대용량 처리를 위해서는 유닉스(UNIX) 기반 시스템이 선호되고 있다.
(라) 32bit 운영체제는 4GB 메모리까지 액세스 가능(사용자 메모리는 2GB)하지만, 64bit 운영체제에서는 4GB 이상의 메모리에 액세스 가능하며 구체적인 한계는 운영체제의 종류 및 버전에 따라 다양하다.
(마) 시스크(CISC: Complex Instruction Set Computer) 설계 방식이 적용된 인텔의 x86 아키텍처 기반 칩을 사용하고 있는 하드웨어는 윈도즈(Windows)나 리눅스(Linux)를 운영체제로 설치할 수 있으며, 리스크(RISC: Reduced Instruction Set Computer) 설계 방식이 적용된 칩들은 유닉스(UNIX) 운영체제를 설치한다.
(바) 에이치피(HP)와 인텔(Intel)이 협력해서 만든 아이테니엄 아키텍처(IA: Itanium Architecture)-64 칩은 여러 운영체제를 지원한다.
(사) 리스크(RISC) 설계 방식이 적용된 암(ARM) 칩은 스마트폰이나 태블릿에 주로 채용되고 있으며, 아이오에스(iOS), 안드로이드(Android) 등의 운영체제를 지원하고 있다. 관련 사이트 참고
(https://en.wikipedia.org/wiki/Complex_instruction_set_computing)

2. DBMS 주요 특징 및 고려 사항

1. DBMS의 정의

사용자, 다른 애플리케이션, 데이터베이스와 상호 작용하여 데이터를 저장하고 분석하기 위한 컴퓨터 소프트웨어 애플리케이션으로, 데이터베이스 생성, 조회, 변경 등의 관리가 주요 기능이다. 관련 사이트 참고(https://en.wikipedia.org/wiki/Database)

2. DBMS의 종류 및 특징

3. 고려 사항

정보시스템 구축 시 DBMS 관련 요구사항 식별을 위하여 고려할 사항은 아래 그림과 같다.

인 메모리 DB(In-memory DB)는 속도가 빠르지만 물리적인 메모리 용량 확장에 한계가 있다.

3. 미들웨어의 주요 특징 및 고려 사항

1. 미들웨어의 정의

운영체제와 소프트웨어 애플리케이션 사이에 위치하는 미들웨어(Middleware)는 소프트웨어 애플리케이션에게 운영체제가 제공하는 서비스를 추가 및 확장하여 제공하는 컴퓨터 소프트웨어를 말한다. (https://en.wikipedia.org/wiki/Middleware) 여기에서는 미들웨어 중 웹 애플리케이션 서버(WAS: Web Application Server)에 대해서 알아본다.

2. 웹 애플리케이션 서버(WAS: Web Application Server)의 정의

동적인 웹 사이트, 웹 애플리케이션, 웹 서비스의 개발을 지원하기 위하여 설계된 소프트웨어로서 데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한 라이브러리를 제공하고 있다. 관련 사이트 참고(https://en.wikipedia.org/wiki/Web_application_framework)

3. 웹 애플리케이션 서버(WAS: Web Application Server)의 종류 및 특징

4. 고려 사항

정보시스템 구축 시 웹 애플리케이션 서버(WAS: Web Application Server) 관련 요구사항 식별을 위하여 고려할 사항은 다음과 같다.

4. 오픈 소스 사용에 따른 고려 사항

1. 오픈 소스의 정의

오픈 소스(Open Source)는 소스 코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는 오픈 소스 라이선스를 만족하는 소프트웨어를 말한다. 관련 사이트 참고(https://ko.wikipedia.org/wiki/%EC%98%A4%ED%94%88_%EC%86%8C%EC%8A%A4_%EC%8 6%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)

2. 오픈 소스 사용 시 고려 사항

오픈 소스를 사용하는 경우에는 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려해야 한다. 라이선스의 종류 등 자세한 내용은 한국저작권위원회의 OLIS 사이트(https://www.olis.or.kr)를 참조한다. 어떠한 오픈 소스를 사용해야 라이선스의 문제가 없을지 판단이 어려운 경우에는 전자정부 표준 프레임워크에서 사용 중인 오픈 소스 소프트웨어를 참조할 수 있다. 관련 사이트 참고 (http://www.egovframe.go.kr/EgovOSS.jsp?menu=1&submenu=2&leftsub=3)

 

요구사항 확인하기

2-1 요구사항 정의

소프트웨어 공학기술의 요구사항 분석 기법을 활용하여 업무 분석가가 정의한 응용 소프트웨어의 요구사항을 확인할 수 있다.
업무 분석가가 분석한 요구사항에 대해 정의된 검증기준과 절차에 따라서 요구사항을 확인할 수 있다.

1. 요구공학 개요

요구공학(Requirements Engineering)이란 요구사항을 정의하고, 문서화하고, 관리하는 프로세스를 의미한다.
(https://en.wikipedia.org/wiki/Requirements_engineering)

1. 요구사항 개발 프로세스

소프트웨어공학 지식체계(SWEBOK: SoftWare Engineering Body of Knowledge)에서는 이 프로세스를 요구사항 도출(Elicitation), 분석(Analsysis), 명세(Specification), 확인(Validation)으로 구분하고 있다. (http://www.computer.org/web/swebok)

(1) 요구사항 도출(Requirement Elicitation)

(가) 요구사항 도출은 소프트웨어가 해결해야 할 문제를 이해하는 첫 번째 단계로서 요구사항이 어디에 있고, 어떻게 수집할 것인가와 관련되어 있다

(나) 이 단계에서 이해관계자(Stakeholder)가 식별되고, 개발 팀과 고객 사이의 관계가 만들어진다.

(다) 이 단계에서는 다양한 이해관계자와 효율적인 의사소통이 중요하다.

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

(가) 요구사항들 간 상충되는 것을 해결하고, 소프트웨어의 범위를 파악하며, 소프트웨어가 환경과 어떻게 상호 작용하는지 이해한다.

(나) 시스템 요구사항을 정제하여 소프트웨어 요구사항을 도출한다.

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

(가) 요구사항 명세란 체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 것을 의미한다.

(나) 시스템 정의, 시스템 요구사항, 소프트웨어 요구사항을 작성한다.

(4) 요구사항 확인(Requirement Validation)

(가) 분석가가 요구사항을 이해했는지 확인(Validation)이 필요하고, 요구사항 문서가 회사의 표준에 적합하고 이해 가능하며, 일관성이 있고, 완전한지 검증(Verification)하는 것이 중요하다

(나) 이해관계자들이 문서를 검토해야 하고, 요구사항 정의 문서들에 대해 형상 관리를 해야 하는데, 일반적으로 요구사항 관리 툴을 이용한다.

(다) 리소스가 요구사항에 할당되기 전에 문제를 파악하기 위하여 검증을 수행한다.

위와 같은 요구사항 개발 프로세스 중에서 요구사항 확인하기와 관련된 단계는 분석 및 검증 단계이므로, 필요 지식에서는 도출 및 명세 단계를 생략한 분석 및 검증 단계에 대해서만 기술하기로 한다

2. 요구사항 분석 기법

요구사항 분석을 통해 요구사항을 기술할 때에는 아래의 작업들이 가능하도록 충분하고 정확하게 기술하여야 한다.

- 요구사항의 확인(Validation)
- 요구사항 구현의 검증(Verification)
- 비용 추정

분석기법으로 요구사항 분류((Requirement Classification), 개념 모델링(Conceptual Modeling), 요구사항 할당((Requirement Allocation), 요구사항 협상((Requirement Negotiation), 정형 분석(Formal Analysis) 등이 있다

1. 요구사항 분류(Requirement Classification)

요구사항을 다음과 같은 기준으로 분류한다.

- 요구사항이 기능인지 비기능인지
- 요구사항이 하나 이상의 고수준 요구사항으로부터 유도된 것인지 또는 이해관계자나 다른 원천(Source)으로부터 직접 발생한 것인지
- 요구사항이 제품에 관한 것인지 프로세스에 관한 것인지
- 우선순위가 더 높은 것인지 여부
- 요구사항의 범위(요구사항이 소프트웨어에 미치는 영향의 범위)
- 요구사항이 소프트웨어 생명 주기 동안에 변경이 발생하는지 여부

2. 개념 모델링(Conceptual Modeling)

(1) 개념 모델의 역할

(가) 실세계 문제에 대한 모델링이 소프트웨어 요구사항 분석의 핵심이며, 모델은 문제가 발생하는 상황에 대한 이해를 증진시키고 해결책을 설명한다.

(나) 따라서 개념 모델은 문제 도메인의 엔터티(entity)들과 그들의 관계 및 종속성을 반영한다.

(2) 개념 모델의 종류와 표기법

(가) 유스케이스 다이어그램(Use Case Diagram), 데이터 흐름 모델(Data Flow Model), 상태 모델(State Model), 목표기반 모델(Goal-Based Model), 사용자 인터액션(User Interactions), 객체 모델(Object Model), 데이터 모델(Data Model) 등과 같은 다양한 모델을 작성할 수 있다.

(나) 대부분의 모델링 표기법은 UML(Unified Modeling Language)을 사용한다.

(3) UML 다이어그램의 사용

(가) 사용 시나리오를 나타내기 위하여 유스케이스 다이어그램이 많이 사용되고 있다.

(나) 구조 다이어그램(Structure Diagram)은 시스템의 정적 구조(Static Structure)와 다양한 추상화 및 구현 수준에서 시스템의 구성 요소, 구성 요소들간의 관계를 보여 준다.

(다) 행위 다이어그램(Behavior Diagram)은 시스템 내의 객체들의 동적인 행위(Dynamic Behavior)를 보여 주며, 시간의 변화에 따른 시스템의 연속된 변경을 설명해 준다.

3. 요구사항 할당(Requirement Allocation)

(1) 요구사항을 만족시키기 위한 아키텍처 구성 요소를 식별하는 것을 요구사항 할당이라 한다.

(2) 다른 구성 요소와 어떻게 상호 작용하는지 분석을 통하여 추가적인 요구사항을 발견할 수 있다.

4. 요구사항 협상(Requirement Negotiation)

(1) 두 명의 이해관계자가 서로 상충되는 내용을 요구하거나, 요구사항과 리소스, 기능과 비기능 요구사항들이 서로 상충되는 경우, 어느 한 쪽을 지지하기보다는 적절한 트레이드 오프 지점에서 합의가 중요하다.

(2) 요구사항에 우선순위를 부여하는 것은 중요한 요구사항을 필터링할 수 있으며, 요구사항들 간 상충되는 문제를 해결하는 데 사용될 수 있다.

5. 정형 분석(Formal Analysis)

(1) 형식적으로 정의된 시맨틱(Semantics)을 지닌 언어로 요구사항을 표현한다.

(2) 정확하고 명확하게 표현하여 오해를 최소화시킬 수 있다.

(3) 정형 분석(Formal Analysis)은 요구사항 분석의 마지막 단계에서 이루어진다.

요구사항 확인

분석가가 요구사항을 이해했는지 확인(Validation)하는 것이 필요하고, 요구사항 문서가 회사의 표준에 적합하고 이해 가능하고, 일관성이 있고, 완전한지 검증(Verification)하는 것이 중요하다. 이해관계자들이 문서를 검토해야 하고, 요구사항 정의 문서들에 대해 형상 관리를 해야 하는데 일반적으로 요구사항 관리 툴을 이용한다. 리소스가 요구사항에 할당되기 전에 문제를 파악하기 위하여 검증을 수행한다.

1. 요구사항 확인 기법

(1) 요구사항 검토(Requirement Reviews)

(가) 요구사항 검증의 가장 일반적인 방법으로, 여러 검토자들이 에러, 잘못된 가정, 불명확성, 표준과의 차이 등을 찾아내는 작업을 수행하며, 검토자그룹을 어떻게 구성하느냐가 중요하다.

(나) 예를 들어, 고객 중심 프로젝트에서는 검토자 그룹에 고객 대표자가 1명 이상 포함되어야 한다.

(다) 검토는 시스템 정의서(System Definition Document), 시스템 사양서(System Specification), 소프트웨어 요구사항 명세서(SRS: Software Requirements Specification Document)를 완성한 시점 등에서 이루어진다.

(2) 프로토타이핑(Prototyping)

(가) 프로토타이핑은 새로운 요구사항을 도출하기 위한 수단으로, 또한 소프트웨어 요구사항에 대해 소프트웨어 엔지니어가 해석한 것을 확인하기 위한 수단으로 많이 사용된다.

(나) 프로토타이핑의 장점은 분석가의 가정을 파악하고 잘못된 경우 유용한 피드백을 제공한다는 점, 사용자 인터페이스(User Interface)의 동적인 행위가 문서나 그래픽 모델보다 프로토타입으로 이해하기 쉬운 점, 요구사항의 가변성이 프로토타이핑 이후에 급격히 감소하는 점이다.

(다) 단점은 사용자의 관심이 핵심 기능에서 멀어지고 프로토타입의 디자인이나 품질문제로 집중될 수 있으며, 프로토타입 수행 비용이 발생한다는 것이다.

(라) 잘못된 요구사항을 만족시키기 위하여 자원을 낭비하는 것을 방지할 수 있다는 점에서 프로토타이핑을 긍정적으로 검토할 수 있다.

(3) 모델 검증(Model Verification)

(가) 분석단계에서 개발된 모델의 품질을 검증할 필요가 있다.

(나) 예를 들어, 객체 모델의 경우 객체들 사이의 존재하는 의사소통 경로(Communication Path)를 검증(Verify)하기 위하여 정적 분석(Static Analysis)을 수행하는 것이 유용하다.

(4) 인수 테스트(Acceptance Tests)

(가) 요구사항의 중요한 속성은 최종 제품이 요구사항을 만족시키는지 확인이 가능해야 한다는 것이다

(나) 각각의 요구사항을 어떻게 확인할 것인지에 대한 계획을 세워야 한다.

요구사항 검증 단계에서 사용되는 기법 이외에 요구사항 품질 검증을 위한 국내 표준을 활용하여 요구사항을 검증할 수 있다. 정보통신단체표준 TTAK.KO-11.0103 “소프트웨어 요구사항 품질 평가 항목”에서는 요구사항 명세의 품질을 객관적이고 정량적으로 평가하기 위한 기준으로 평가 항목을 제시하고 있다. 구체적인 품질 모델, 품질 특성, 품질 특성 평가 항목은 부록을 참조한다

출처 : NCS 학습 모듈 (LM2001020201_16v3)

'스마트웹 개발 > 요구사항 확인' 카테고리의 다른 글

01.현행 시스템 분석하기  (0) 2021.03.22
댓글
© 2018 webstoryboy