B등급

1. 소프트웨어 생명 주기

 

소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것

대표적인 생명 주기 모형 : 폭포수, 프로토타입, 나선형, 애자일

 

폭포수 모형

각 단계를 확실히 매듭짓고 그 결과를 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론

전통적인, 고전적 생명주기 모형, 결과물 명확하게 산출

 

프로토 타입 

실제 개발될 소프트웨어 견본품, 최종 결과물 예측

 

나선형 모형(Spiral Model, 점진적 모형 ) ★★★

여러 번의 소프트웨어 개발 과정을 거쳐 점진적(조금씩 앞으로 )으로 완벽한 최종 소프트웨어를 개발하는 모형 

계획 수립 => 위험 분석 => 개발 및 검증 => 고객 평가

 

애자일 모형 ( 민첩한, 기민한 ) ★★★

시제품 끊임 없이 제작 사이클 반복, 능동적

요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발하는 모형 

폭포수(워터폴)와 대조적

대표적인 개발 모형

스크럼, XP, 칸반, Lean, 기능 중심 개발 ( FDD )★★★

 

애자일 개발 4가지 핵심★

개인과 상호작용, 실행되는 SW, 고객과 협업, 변화에 반응하는 것 => 더 가치를 둔다.

 

소프트웨어 공학 ( SE : 소프트웨어 엔지니어링 )★

소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문

소프트웨어 공학의 기본 원칙 

 1. 현대적인 프로그래밍 기술 지속적으로 적용

 2. 개발된 SW의 품질이 유지되도록 지속적으로 검증

 3. SW 개발 관련 사항 및 결과에 대한 명확한 기록을 유지

 

C등급

2. 스크럼 기법

팀이 중심이 되어 개발의 효율성을 높이는 기법

팀원들이 스스로 팀을 구성

 

스크럼팀

 - 제품 책임자 (PO: Product Owner)

요구사항이 담긴 백로그를 작성하는 주체, 이해관계자들 중 요구사항을 책임, 의사를 결정할 사람으로 선정

( 제품 백로그 ) : 제품 개발에 필요한 모든 요구사항을 우선순위에 따라 나열한 목록, 새로운 요구사항 업데이트 

 - 스크럼 마스터 ( SM ) 

스크럼 팀이 스크럼을 잘 수행할 수 있도록 가이드 역할을 수행

 - 개발팀 (DT: Development Team) 

제품 책임자와 스크럼 마스터를 제외한 모든 팀원 제품 개발을 수행

 

스크럼 개발 프로스세스 순서★★★

스프린트 계획 => 스프린트 => 일일 스크럼 회의 => 스프린트 검토 회의 => 스프린트 회고

 

 

B등급

3. XP( eXtreme Programming )

수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해

고객의 참여와 개발 과정의 반복을 극대화하여 생산성을 향상시키는 방법

 

릴리즈(몇 개의 요구사항이 적용되어 부분적으로 기능이 완료된 제품 )

가시성(대상을 확인할 수 있는 정도를 의미)

릴리즈의 기간을 짧게 반복하면서 고객의 요구사항 반영에 대한 가시성을 높인다.

 

XP의 5가지 핵심 ★★★

용기(Courage), 단순성, 의사소통, 피드백, 존중 (Respect) : 용단의 피존 

 

XP 개발 프로세스 ★★★

계획 => 진행(이터레이션,주기) => 승인 검사 => 출시(릴리즈)

 

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

 

XP의 주요 실천 방법

1. Pair Programming ( 짝 프로그래밍 ) : 다른 사람과 함께 프로그래밍 ★

2. Collective OwnerShip ( 공동 코드 소유 ) : 개발 코드에 대한 권한과 책임을 공동으로 소유함 ★

3. Test-Driven-Development( 테스트 주도 개발 ) : 개발자가 실제 코드 작성하기 전에 케이스를 먼저 작성 / 파악

4. Whole Team( 전체 팀) : 개발에 참여하는 모든 구성원들 각 역할에 대한 책임을 가져야 함

5. Coninuous Integration ( 계속적인 통합 ) : 모듈 단위로 나눠서 개발된 코드들은 하나의 작업 완료마다 통합됨★

6. 리팩토링 : 프로그램 기능의 변경 없이 시스템을 재구성함 ( 프로그램을 쉽게 이해, 수정 빠르게 개발하기 위함 )★

7. small Releases (소규모 릴리즈) : 릴리즈 기간을 짧게 반복함으로써 고객의 요구 변화에 신속히 대응

 

 

 

 

C등급

4. 개발 기술 환경 파악

 

개발하고자 하는 소프트웨어와 관련된 운영체제(OS), 데이터베이스 관리 시스템(DBMS), 미들웨어 등을 선정할 때

고려해야 할 사항을 기술하고, 오픈소스를 사용할 때 중의해야 할 내용을 제시한다.

 

운영체제 ( OS )

컴퓨터 시스템의 자원을 효율적으로 관리하며,

컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어

 

운영체제 관련 요구사항 식별 시 고려 사항

- 가용성

- 성능

- 기술 지원

- 주변 기기

- 구축 비용

 

데이터베이스 관리 시스템(DBMS)

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

DBMS 관련 요구사항 식별 시 고려 사항

- 가용성

- 성능

- 기술지원

- 상호 호환성

- 구축 비용

 

웹 애플리케이션 서버 

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

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

웹 애플리케이션 서버 관련 요구사항 식별 시 고려사항

- 가용성

- 성능

- 기술 지원

- 구축 비용

 

오픈 소스

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

오픈 소스 관련 요구사항 식별 시 고려사항

- 라이선스의 종류

- 사용자 수

- 기술의 지속 가능성

 

 

 

★A등급★

요구사항 정의

1. 요구사항

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

요구사항의 유형

- 기능 요구사항 (Functional)

- 비기능 요구사항 (Non - Functional)

 - 사용자 요구사항 (User)

 - 시스템 요구사항

 

2. 기능 요구사항 (Functional)

시스템이 무엇을 하는지, 어떤 기능을 하는지 등의 기능이나 수행과 관련된 요구사항

예) 금융 시스템은 조회, 인출, 입금, 송금의 기능이 있어야함

 

3. 비기능 요구사항 (Non - Functional)

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

시스템 장비 구성, 성능 요구사항, 인터페이스 요구사항, 데이터 구축하기 위해 필요한, 테스트, 보안, 품질 요구사항

프로젝트 관리 요구사항, 프로젝트 자원 요구사항

예)시스템의 처리량, 반응 시간 등의 성능, 차량 대여 시스템이 제공하는 모든 화면이 3초이내에 사용자에게 보여야 함

 

4. 사용자 요구사항

사용자 관점에서 본 시스템이 제공해야 할 요구사항, 친숙한 표현으로 이해하기 쉽게 작성 

 

5. 시스템 요구사항

개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항

전문적이고 기술적인 용어로 표현, 소프트웨어 요구사항이라고도 한다.

 

 

 

 

B등급

요구사항 개발 프로세스 ( 개발 순서 => 도분명확 )

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

개발 대상에 대한 요구사항을 체계적으로

도출(판단)하고 분석한 후 명세서에 정리한 다음 확인 및 검증하는 일련의 구조화된 활동

요구사항 개발 과정 : 청취, 분석과 중재, 관찰 및 모델 작성 

 

2. 요구사항 도출( 요구사항 수집 )

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

식별하고 이해하는 과정, 이해관계자 식별, 소프트웨어 개발 주기 (SDLC) 동안 지속적으로 반복

요구사항을 도출하는 주요 기법

- 청취와 인터뷰

- 설문

- 브레인스토밍 : 3인 이상이 자유롭게 의견을 교환하면서 독창적인 아이디어를 도출해 내는 방법

- 워크샵

- 프로토타이핑 : 설명을 위해 종이에 대략적인 순서나 형태를 그려 보여주는 것

- ★유스케이스 : 사용자의 요구사항을 기능 단위로 표현하는 것 

 

3. 요구사항 분석

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

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

서로 상충되는 요구사항이 있으면 이를 중재하는 과정 

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

- 자료 흐름도(DFD)

- 자료 사전(DD)

 

4. 요구사항 명세

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

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

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

 

5. 요구사항 확인( 요구사항 검증 )

개발 자원을 요구사항에 할당하기 전에 요구사항 명세서가 정확하고 완전하게 작성되었는지를 검토하는 활동

이해관계자들이 검토, 요구사항 관리 도구를 이용하여 요구사항 정의 문서들에 대해 형상관리(SCM)를 수행

 

6. 요구공학

무엇을 개발해야 하는지 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문

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

 

7. 요구사항 명세 기법

- 정형 명세 기법

수학적 원리, 모델 기반, 요구사항을 정확하고 간결하게 표현, 일관성이 있으므로 완전성 검증이 가능함

- 비정형 명세 기법

자연어를 기반으로 서술 또는 다이어그램으로 작성, 일관성이 떨어지고, 해석이 달라질 수 있음, 내용이 쉬움

 

 

 

 

B등급

요구사항 분석 

1. 요구사항 분석

소프트웨어 개발의 실제적인 첫 단계로, 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화하는 활동

 

2. 구조적 분석 기법

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

하향식 방법( 전체적인 수준에서 상세 수준까지 위에서 아래로 ) 을 사용하여 시스템을 세분화할 수 있다.

분석의 중복을 배제할 수 있다.

주요 구조적 분석 기법 도구

- 자료 흐름도(DFD)

- 자료 사전(DD)

- 소단위 명세서

- 개체 관계도(ERD)

- 상태 전이도(STD)

- 제어 명세서

 

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

요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형중심으로 기술하는 방법 

자료 흐름 그래프, 버블 차트라고도 한다. 자료 흐름과 처리를 중심으로 하는 구조적 분석 기법에 이용

 

자료 흐름도 기본 기호

프로세스( Process )  

자료를 변환시키는 시스템의 한 부분( 처리 과정 )을 나타내며 처리, 기능, 변환, 버블이라고도함

자료 저장소( Data Store )

시스템에서의 자료 저장소( 파일, 데이터베이스 )를 나타냄

단말( Terminator )

시스템과 교신하는 외부 객체로, 입력 데이터가 만들어지고 출력 데이터를 받음 

자료 흐름( Data Flow ) 

자료의 이동(흐름)이나 연관 관계를 나타냄

 

4. 자료 사전(DD; Data Dictionary )

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

데이터를 설명하는 데이터로, 데이터의 데이터 또는 메타 테이터라고도 한다.

 

자료 사전에서 사용되는 표기 기호

 

 

 

C등급

요구사항 분석 CASE와 HIPO

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

요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 도구 

 

대표적인 요구사항 분석용 CASE

SADT : 블록 다이어그램, SoftTech 사에서 개발

STEM = RSL/REVS : TRW 사가 실시간 처리 소프트웨어

PSL/PSA : 미시간 대학에서 개발

TAGS : 통합 자동화 도구

 

 

2. HIPO

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

 

HIPO Chart의 종류 

- 가시적 도표

- 총체적 도표

- 세부적 도표

 

 

 

 

 

 

 

 

 

 

+ Recent posts