1. 요구사항 확인

소프트웨어 생명주기

사소통, 순성, 기, 중, 드백

고객과 함께 2주 정도의 반복 개발을 하고, 테스트와 우선 개발이 특징

프로젝트를 30일마다 동작 가능한 제품을 제공하는 스플린트로 분리

매일 15분 정도 회의를 한다.

요구사항 정의

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

시스템, 사용자, 개발자 등 시스템 개발에 관련된 사람들이 서로 의견을 교환하여 요구사항을 어떻게 수집할 것인지를 식별하고 이해하는 과정

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

청취와 인터뷰

설문

브레인스토밍(Brain Storming) – 3인 이상이 자유롭게 의견을 교환하면서 아이디어를 도출해 내는 방법

워크샵

프로토타이핑

유스케이스(Use Case)

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

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

요구사항 분석에 사용되는 대표적인 도구

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

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

요구사항 분석

시스템의 구성요소인 프로세스와 프로세스 간 데이터 흐름을 표현하는 주요 도구

구조적 분석 기법에 사용

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

데이터를 설명하는 데이터로, 메타 데이터(Meta Data)라고도 한다.

=  자료의 정의 : ~로 구성되어 있다. ( is composed of )

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

( ) 자료의 생략 : 생략 가능한 자료 ( Optional )

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

{ } 자료의 반복 ( Iteration of )

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

UML ( Unified Modeling Language )

UML ( Unified Modeling Language )

컴퓨터 애플리케이션을 모델링 할 수 있는 통합 언어이다. 구성요소로는 사물(Things), 관계(Relationship), 다이어그램(Diagram)으로 이루어져 있다.

특징 – 가시화 언어, 명세화 언어, 구축 언어, 문서화 언어

사물(Things)

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

관계(Relationships)

사물과 사물 사이의 연관성을 표현하는 것

관계의 종류

연관 관계

집합 관계

포함 관계

일반화 관계

의존 관계

실체화 관계

UML Diagram

클래스 다이어그램 (Class Diagram) – 시스템의 클래스와 이들 간의 관계를 표현

객체 다이어그램 (Object Diagram) – 시스템 내의 객체와 이들 간의 관계를 표현, 럼바우(Rumbaugh) 객체지향 분석 기법에서 객체 모델링에 활용

컴포넌트 다이어그램 (Component Diagram) – 시스템의 물리적 구조, 즉 컴포넌트와 그 상호작용을 표현, (구현 단계에서 사용)

배치 다이어그램 (Deployment Diagram) – 시스템의 물리적 배치와 구성요소들 간의 관계를 표현, (구현 단계에서 사용)

복합체 구조 다이어그램 (Complex Diagram) – 시스템 내의 복합 구조를 표현

패키지 다이어그램 (Package Diagram) – 시스템의 패키지와 이들 간의 관계를 표현

유스 케이스 다이어그램 (UseCase Diagram) – 시스템의 기능과 사용자 간의 상호작용을 표현

순차 다이어그램 (Sequence Diagram) – 객체 간의 상호작용을 시간 순서에 따라 표현

커뮤니케이션 다이어그램 (Communication Diagram) – 객체 간의 상호작용과 통신을 표현

상태 다이어그램 (State Diagram) – 객체의 생명주기 동안의 상태 변화를 표현

활동 다이어그램 (Activity Diagram) – 시스템의 프로세스 또는 워크플로우를 표현

상호작용 다이어그램 (Interaction Diagram) – 시스템의 상호작용을 하나의 고수준 워크플로우로 표현

타이밍 다이어그램 (Timing Diagram) – 객체의 행동과 시간에 따른 상호작용을 표현

유스케이스(Use Case) 다이어그램

사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현

외부 요소와 시스템 간의 상호 작용을 확인할 수 있다.

사용자의 요구사항을 분석하기 위한 도구로 사용

시스템의 범위를 파악할 수 있다.

구성요소

시스템(System) / 시스템 범위(System Scope) – 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현

액터(Actor) – 시스템과 상호작용을 하는 모든 외부 요소 (사람이나 외부 시스템을 의미)

유스케이스(Use Case) – 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스나 기능을 표현

관계(Relationship) – 포함(Include) 관계, 확장(Extend) 관계, 일반화(Generalization) 관계

활동(Activity) 다이어그램

사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현한 것

하나의 유스케이스 안에서 혹은 유스케이스 사이에 발생하는 복잡한 처리의 흐름을 명확하게 표현할 수 있다.

구성요소

클래스(Class) 다이어그램

클래스와 클래스가 자신을 가지는 속성, 클래스 사이의 관계를 표현한 것

순차(Sequence) 다이어그램

시스템이나 객체들이 메시지를 주고 받으며 상호 작용하는 과정을 그림으로 표현한 것

구성요소

액터(Actor)

객체(Object)

생명선(Lifeline)

실행 상자(Active Box)

메시지(Message)

객체 소멸

프레임(Frame) – 다이어그램 전체 또는 일부를 묶어 표현한 것

커뮤니케이션(Communication) 다이어그램

시스템이나 객체들이 메시지를 주고 받으며 상호 작용하는 과정과 객체들 간의 연관을 그림으로 표현한 것

구성요소

액터(Actor)

객체(Object)

링크(LInk)

메시지(Message)

상태(State) 다이어그램

객체들 사이에 발생하는 이벤트에 의한 객체들의 상태 변화를 그림으로 표현한 것

패키지(Package) 다이어그램 

유스케이스나 클래스 등의 요소들을 그룹화한 패키지 간의 의존 관계를 표현한 것

소프트웨어 개발 방법론

소프트웨어 공학 ( Software Engineering )

소프트웨어 위기를 극복하고 품질 높은 소프트웨어를 효율적으로 개발하기 위한 학문

소프트웨어 개발에 적용되는 방법, 도구, 이론을 포괄적으로 다룬다.

소프트웨어 공학의 3R

완성된 소프트웨어를 기반으로 하여 역공학, 재공학, 재사용을 통해 소프트웨어의 생산성을 극대화하는 기법

역공학 (Reverse Engineering)

이미 개발된 시스템을 분석하여 요구 분석서, 설계서 등의 문서를 추출하는 작업

기존 시스템의 자료와 정보를 설계 수준으로 분석해 유지보수성을 향상시킨다.

이러한 정보를 저장소(Repository)에 보관하여 CASE 도구의 사용을 용이하게 한다.

재공학 (Re-Engineering)

재사용 (Reuse)

이미 개발된 소프트웨어의 전체 또는 일부를 다시 사용하는 것을 의미한다.

재사용 범위 – 함수와 객체 재사용/ 컴포넌트 재사용 / 애플리케이션 재사용

유지보수의 생산성을 통해 소프트웨어의 위기를 해결하기 위한 방법

예방 유지보수(Preventive Maintenance)를 통한 소프트웨어 위기 해결

Case(Computer Aided Software Engineering)

소프트웨어 개발 과정에서 사용되는 요구분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것

소프트웨어 개발 단계

계획 (Planning)

개발할 내용의 명확한 정의

개발할 범위 결정

시스템 특성을 이해하여 비용 및 기간 예측

요구사항 분석 (Requirements Analysis)

소프트웨어의 기능, 제약조건, 목표 정의

요구사항의 정확한 이해 및 유도

불필요한 요구사항에 대한 협상 및 조율

요구사항의 적합성 검토 및 미래 예측

현재 실행 환경 분석

설계 – DFD ( DD, Mini-Spec ), ERD

시스템의 동작 방식 정의

요구사항 분석을 바탕으로 이력자료, 처리내용, 출력자료 등 정의

시스템 구조 / 프로그램 / 사용자 인터페이스 설

구현 (Development) – IDE 도구, 형상관리 도구

프로그래밍 언어를 사용하여 프로그램 작성

코딩, 디버깅, 단위 테스트 진행

테스트 (Test)

단위 – 통합 – 시스템 – 인수 테스트

소프트웨어가 요구사항을 만족하는지 검사

유지보수 (Maintenance)

수정 – 향상 – 적응 – 예방 보수

사용 중 발견된 문제 수정, 새로운 기능 추가

소프트웨어의 지속적 개선

Loading

Leave a Reply

Your email address will not be published. Required fields are marked *