No img

요구사항 확인


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

- SW를 개발하기 위해 정의하고 운용 유지보수 등의 과정을 각 단계별로 나눈 것

 

1. 폭포수 모델(Waterfall Model)

- 이전 단계를 확실히 마무리하고 다음 단계로 진행하는 개발 방법론(선형 순차적 모델)

- 타당성 검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 시험 -> 유지/보수

 

2. 프로토 타입 모델(Prototype Model)

- 요구 사항을 정확히 파악하기 위해 실제 개발된 sw에 대한 시제품을 만들어 최종 결과물을 예측하는 모델

- 사용자와 시스템 사이 인터페이스에 중점

- ( 요구사항 수집 - 빠른 설계 - 프로토타입 구축 - 평가 - 조정 - 구현) 단계를 반복

 

3. 나선형 모델(Spiral Model)

- 폭포수 모형과 프로토타입 모형 장점에 위험 분석 기능을 추가

- 여러 번의 개발 과정을 거쳐 점진적으로 완벽한 최종 SW 개발

- SW를 개발하면서  발생할 수 있는 위험을 관리하고 최소화

- (계획 - 위험 분석 - 개발 - 평가) 단계를 반복

 

4. 애자일 모형

- 고객과 소통에 초점을 맞춘 모든 방법론

- 스프린트 또는 이터레이션이라 불리는 짧은 개발 주기를 반복

- 요구사항에 우선순위를 부여하여 개발 진행

- 애자일 기반 모형: 스크럼(Scrum), XP(eXtreme Programming), 칸반(Kanban), Lean, 크리스탈, ASD 등

 

+) 애자일 개발 4가지 핵심 가치

1. 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.

2. 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.

3. 계약 협상보다는 고객과 협업에 더 가치를 둔다.

4. 계획을 따르기 보다는 변화에 반응하는 것에 더 가치를 둔다.

 

 

스크럼(Scrum) 기법

- 팀이 중심이 되어 개발 효율을 높임.

 

구성 요소

제품 책임자(PO, Product Owner)

- 개발될 제품에 대한 이해도가 높고 요구사항을 책임지고 의사결정할 사람

- 개발 의뢰자나 사용자가 담당

- 이해 관계자들의 의견을 종합하여 제품에 대한 요구사항 작성

- 백로그 작성(팀원들은 백로그에 스토리 추가는 가능, 우선순위 지정은 책임자만 가능)

* 백로그: 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여한 목록

* 스토리: 백로그에 작성되는 요구사항

스크럼 마스터(SM, Scrum Master)

- 팀이 잘 수행할 수 있도록 객관적인 시각에서 조언

- 일일 스크럼 회의를 주관하여 진행 상황을 점검하고 개발과정에서 발생된 장애 요소를 공론화하여 처리

개발팀(DT, Development Team)

- PO와 SM을 제외한 모든 팀원

 

개발 프로세스

1. 제품 백로그(Product Backlog)

- 모든 요구사항을 우선순위에 따라 나열한 목록

- 사용된 스토리를 기반으로 전체 일정 계획(릴리즈 계획)을 수립

- 새롭게 도출되는 요구사항으로 인해 지속적 업데이트

 

2. 스프린트 계획회의(Sprint Planning Metting)

- 이번 스프린트에서 수행할 작업을 대상으로 단기 일정 수립

- 처리할 요구사항을 개발자들이 나눠 작업할 수 있도록 테스크라는 작업 단위로 나눠 개발자 별로 수행할 작업 목록인 스프린트 백로그(Sprint Backlog) 작성

 

3. 스프린트(Sprint)

- 실제 개발 작업 진행

- 스프린트 백로그 테스크 대상으로 작업 시간, 양을 추정 후 할당

- 할당 된 테스크는 할 일, 진행 중, 완료의 상태로 표현

 

4. 일일 스크럼 회의(Daily Scrum Meeting)

- 모든 팀원이 매일 약속된 시간에 진행 상황을 점검

- 스크럼 마스터는 장애 요소를 해결할 수 있도록 도와준다

- 남은 작업 시간은 소멸 차트에 표시

 

5. 스프린트 검토 회의(Sprint Review)

- 사용자가 포함된 참석자 앞에서 테스트 수행

 

6. 스프린트 회고(Sprint Retrospective)

- 정해놓은 규칙 준수 여부 확인, 개선할 부분 점검 및 수행

 

 

XP(eXtreme Programming) 기법

- 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법

- 5대 핵심가치: 의사소통, 단순성, 용기, 존중, 피드백

 

개발 프로세스

사용자 스토리(User Story)

- 고객의 요구사항을 간단한 시나리오로 표현

릴리즈 계획 수립(Release Planning)

- 몇 개의 스토리가 적용되어 부분적 혹은 전체적으로 기능이 완료된 제품을 제공하는 것에 대한 계획 수립

스파이크(Spike)

- 요구사항의 신뢰성을 높이고 기술 문제에 대한 위험을 감소시키기 위해 별도로 만드는 프로그램

- 처리할 문제 외 다른 조건은 모두 무시하고 작성

주기(Iteration)

- 하나의 릴리즈를 더 세분화 한 단위

승인 검사(Acceptance Test)

- 하나의 이터레이션 안에서 계획된 릴리즈 단위의 부분 완료 제품이 구현되면 수행하는 테스트

소규모 릴리즈(Small Release)

- 고객의 반응을 기능별로 확인, 유연하게 대응 가능

 

주요 실천 방법

- pair programming: 다른 사람과 함께 프로그래밍

- test-driven development: 실제 코드 작성 전 테스트 케이스를 작성

- whole team: 개발에 참여하는 모든 구성원은 각기 역할이 있고 책임을 다해야 함

- continuous integration: 모듈 단위 개발 코드는 하나의 작업 마무리 시 지속적으로 통합

- design improvement/refactoring: 기능 변경 없이 시스템 재구성

- small release

 

 

현행 시스템 파악 절차

- 1단계: 시스템 구성 파악, 시스템 기능 파악, 시스템 인터페이스 파악

- 2단계: 아키텍처 구성 파악, SW 구성 파악

- 3단계: HW 구성 파악, 네트워크 구성 파악

 

 

개발 기술 환경 파악(요구사항 식별 시 고려사항)

- 운영체제(os): 가용성, 성능, 기술지원, 주변기기, 구축 비용

- 데이터베이스 관리 시스템(DBMS): 가용성, 성능, 기술 지원, 상호 호환성, 구축 비용

- 웹 어플리케이션 서버(WAS): 가용성, 성능, 기술 지원, 구축비용

 

 

요구사항

- SW가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건

 

유형

- 기술 기준: 기능/비기능 요구사항

- 기술 관점 및 대상의 범위 기준: 사용자/시스템(개발자 관점) 요구사항

+) 비기능 요구사항: 시스템 장비 구성, 성능, 인터페이스, 데이터, 테스트, 보안, 품질, 제약 사항, 프로젝트 관리, 프로젝트 지원 등

 

개발 프로세스

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

- 요구사항이 어디에 있고 어떻게 수집할지 식별하고 이해하는 과정

- 주요 기법: 브레인 스토밍, 프로토타이핑, 유스케이스

 

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

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

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

 

3. 요구사항 명세(Requirement Specification, 요구사항 문서화)

- 요구사항을 체계적으로 분석한 후 승인될 수 있도록 문서화

- 소프트웨어 요구사항 명세서: SW가 반드시 제공할 기능, 특징 등

 

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

- 개발 자원을 할당 전 명세서 검토

- 이해관계자가 검토

 

 

분석 기법

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

- 명확히 확인할 수 있는 정해진 기준으로 분류

- 기능/비기능, 제품/과정, 우선순위 등으로 분류

 

2. 개념모델링(Requirement Modeling)

- *모델을 만드는 과정

- 개체와 개체 간 관계 및 종속성 반영

- 주로 UML(Unified Modeling Language)을 사용

*모델: 현실 세계의 상황을 단순화하여 개념적으로 표현

 

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

- 요구사항을 만족시키기 위한 구성 요소를 식별

 

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

- 요구사항이 충돌될 경우 해결하는 과정

 

5. 정형 분석(Formal Analysis)

- 구문과 의미를 갖는 정형화된 언어를 이용해 요구사항을 수학적 기호로 표현한 후 분석하는 과정

 

 

UML(Unified Modeling Language)

- 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링 언어

- 사물, 관계, 다이어그램 등으로 구성

 

사물(Things)

- 모델을 구성하는 가장 중요한 기본 요소

- 다이어그램 안에서 관계가 형성될 수 있는 대상들을 의미

- 구조 사물: 시스템 개념적, 물리적 요소를 표현 / 클래스, 유즈케이스, 컴포넌트, 노드

- 행동 사물: 시간과 공간에 따른 요소들의 행위 표현 / 상호 작용, 상태 머신

- 그룹 사물: 요소들을 그룹으로 묶어 표현 / 패키지

- 주해 사물: 부가적 설명이나 제약조건 등을 표현 / 노트

 

관계(Relationship)

- 사물과 사물 사이의 연관성을 표현

- 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계, 실체화 관계

 

다이어그램(Diagram)

- 사물과 관계를 도형으로 표현

- 정적 모델링은 주로 구조적 다이어그램으로 동적 모델링은 주로 행위 다이어그램으로 표현

- 구조적 다이어그램: 클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램, 배치 다이어그램, 복합체 구조 다이어그램, 패키지 다이어그램

- 행위 다이어그램: 유즈케이스, 시퀀스 다이어그램, 커뮤니케이션 다이어그램, 스테이트 다이어그램, 액티비티 다이어그램, 상호작용 개요 다이어그램, 타이밍 다이어그램

 

 

 

화면 설계


사용자 인터페이스(User Interface)

- 사용자와 시스템 간의 상호작용을 도와주는 장치 또는 SW

- 기본 원칙: 직관성, 유연성, 학습성, 유효성

- 설계 지침: 사용자 중심, 일관성, 단순성, 결과 예측 가능, 가시성, 표준화, 접근성, 명확성, 오류 발생 해결

- CLI(Command Line Interface): 명령어 출력이 텍스트 형태

  GUI(Graphical User Interface): 아이콘이나 메뉴를 마우스로 선택

  NUI(Natural User Interface): 사용자의 말이나 행동으로 조작

 

 

UI 표준 및 지침

- UI 표준 및 지침을 토대로 웹 3요소(웹 표준, 웹 접근성, 웹 호환성)가 고려되었는지 확인한다.

 

한국형 웹 콘텐츠 접근성 지침(KWCAG)

- 장애인과 비장애인이 동등하게 접근할 수 있는 웹 콘텐츠 제작의 방법 제시

- 인식의 용이성: 대체 텍스트, 멀티미디어 대체 수단, 명료성

- 운용의 용이성: 키보드 접근성, 충분한 시간 제공, 광과민성 발작 예방, 쉬운 *네비게이션

- 이해의 용이성: 가독성, 예측 가능성, 콘텐츠의 논리성, 입력 도움

- 견고성: 문법 준수, 접근성

* 네비게이션: 사용자가 사이트에서 원하는 정보를 빠르게 찾도록 도와주는 장치

 

전자정보 웹 표준 준수 지침

- 정부기관의 홈페이지 구축 시 반영해야 할 최소한의 규약

- 내용 문법 준수, 내용과 표현의 분리, 동작의 기술 중립성 보장, 플러그인의 호환성, 콘텐츠의 보편적 표현, 운영체제에 독립적인 콘텐츠 제공, 부가 기능의 호환성 확보, 다양한 프로그램 제공

 

 

UI 설계 도구

- 사용자의 요구사항에 맞게 UI의 화면 구조나 화면 배치 등을 설계할 때 사용하는 도구

- 와이어프레임, 목업, 스토리보드, 프로토타입, 유즈케이스 등

 

 

UI 요구사항 확인

- 목표 정의 -> 활동 사항 정의 -> UI 요구사항 작성

 

1. 목표 정의

- 사용자들을 대상으로 인터뷰를 진행 후 사용자들의 의견이 수렴된 비즈니스 요구사항을 정의

 

2. 활동 사항 정의

- 조사한 요구사항을 토대로 할 일 정의

 

3. UI 요구사항 작성

- 요구사항 요소 확인 -> 정황 시나리오 작성 -> 요구사항 작성

- 정황 시나리오 작성: 요구사항을 도출하기 위해 작성하는 것으로 사용자가 수행하는 방법을 순차적으로 묘사

 

 

품질 요구사항

- SW 기능, 성능, 만족도 등 SW에 대한 요구사항이 얼마나 충족하는가를 나타내는 SW 특성의 총체

- ISO/IEC 9126:  SW 품질 특성(기능성, 신뢰성, 사용성, 효율성, 유지 보수성, 이식성)과 평가를 위한 표준 지침.

 

 

UI 프로토타입 제작 및 검토

- 사용자 요구사항을 기반으로 실제 동작하는 것처럼 만든 동적인 형태의 모형

- 최대한 간단하게 제작(일부 핵심 기능 제공)

- 실제 사용자를 대상으로 테스트

- 장점: 사용자 설득 및 이해 용이, 요구사항 점검을 통한 혼선 예방, 사전 오류 검출 가능

- 단점: 반복적인 개선 및 보완 작업으로 인한 작업 시간 증가, 필요 이상으로 자원 소모, 중요 작업 생략 가능

- 종류: 페이퍼 프로토타입, 디지털 프로토타입

- 제작 단계: 요구사항 분석 -> 핵심 기능 중점 개발 -> *(사용자 테스트 -> 프로토 타입 기반 수정 및 합의)

* (사용자 테스트 -> 프로토 타입 기반 수정 및 합의) 단계를 사용자가 승인할 때까지 반복한다.

 

 

UI 설계서

- 사용자 요구사항을 바탕으로 UI 설계를 구체화 해 작성하는 문서

- 표지 작성 -> 개정 이력 작성 -> 요구사항 정의서 작성 -> 시스템 구조 작성 -> 사이트 맵 작성 -> 프로세스 정의서 작성 -> 화면 설계

 

 

HCI(Human Computer Interaction or Interface)

- 사람이 시스템을 보다 편리하고 안전하게 사용할 수 있도록 연구하고 개발하는 학문

UX(User Experience)

- 사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적인 경험

- 특징: 주관성, 정황성, 총체성

감성공학

- 제품이나 작업환경을 사용자의 감성에 맞도록 설계 제작

 

 

참고 자료


https://1d1cblog.tistory.com/141

https://powerdev.tistory.com/33

https://blog.naver.com/gluestuck/221814471561