06 / 06 추가
합격발표를 받았다!!!!
예상했던 결과긴 하지만 '합격'이라는 단어를 보니깐 또 새로운 느낌을 받았다.
2021년 1회 실기를 준비하면서 어렵거나 까먹을 것 같은 내용들 위주로 정리했던 내용들을 Section으로 나눠서 작성하며 공부할 예정이다.
- 소프트웨어를 개발하기 위한 각 과정을 단계별로 나눈 것을 말한다.
- 각 단계를 확실히 매듭짓고, 철저한 검토 후 다음 단계를 진행하는 방법론이다.
- 고전적 생명 주기 모형이라고도 불린다.
- 견본품을 만들어 최종 결과물을 예측 가능하다.
- 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 개발하는 모형이다.
- 폭포수 모형 + 프로토타입 모형 + 위험 분석 기능추가
- 계획 수립 -> 위험분석 -> 개발 및 검증 -> 고객 평가
- 요구사항 변화에 빠르고 유연하게 대처할 수 있도록 일정 주기를 반복하며 개발하는 모형이다.
- 고객과의 소통이 제일 중요하다.
- 스크럼, XP 등이 있다.
구성
- 제품 책임자 (PO) - 주로 백로그를 작성하며, 이해도가 높고 의사를 결정할 수 있는 사람이 담당한다.
- 스크럼 마스터 (SM) - 가이드 역할을 한다.
- 개발팀 (DT) - 둘을 제외한 나머지 인원이 담당한다.
순서
스프린트 계획 회의 -> 스프린트 -> 일일 스크럼 회의(남은 작업을 소멸 차트에 표시) -> 스프린트 검토 회의 -> 스프린트 회고
의사소통, 단순성, 용기, 존중, 피드백
- 릴리즈 계획 수립 : 개발 완료 시점에 대한 일정을 수립한다.
- 이터레이션 : 1 ~ 3주 정도 기간동안 개발을 진행한다.
- 승인 검사 (인수 테스트) : 하나의 이터레이션 안에서 수행한다.
- 소규모 릴리즈 : 요구사항에 대응하기 위해 릴리즈의 규모를 축소한다.
- 짝 프로그래밍 (Pair Programming) : 개발에 대한 책임을 공동으로 나눠 갖는다.
- 공동 코드 소유 (Collective OwnerShip) : 코드에 대한 권한 및 책임을 공동 소유한다.
- 테스트 주도 개발 : 테스트 케이스를 활용한다.
- Whole Team : 모든 구성원은 책임감을 가져야 한다.
- 계속적인 통합 (Continuous Integration) : 모듈 단위의 코드들은 지속적으로 통합된다.
웹 애플리케이션 서버 (WAS) - 동적인 콘텐츠를 처리 위한 미들웨어.
기능 요구사항 – 기능 or 수행과 관련된 요구사항.
비기능 요구사항 – 품질이나 제약사항등.
사용자 요구사항 – 사용자 관점에서 본 시스템이 제공해야 할 요구사항.
시스템 요구사항 – 사용자 요구사항의 반대이다.
도(출) -> 분(석) -> 명(세) -> 확(인)
도출 - 브레인 스토밍 설문 등. SDLC동안 지속 반복
분석 – 이해안되는 것들 거르기. 자료흐름도, 자료사전.
명세 – 요구사항을 문서화.
확인 – 명세서가 잘 작성되었는지 검토.
정형 명세 기법 -> 수학적 기호. 즉 간결 하지만 이해하기 어려움.
비정형 명세 기법 -> 자연어 기반. 이해는 쉽지만 간결X
구조적 분석 기법
자료 흐름도 (DFD) - 자료의 흐름 및 기능을 도형중심으로 기술. 프로세스, 자료흐름, 자료 저장소, 단말로 구성
자료 사전 (DD) - 자료 흐름도에 있는 자료를 정의하고 기록한 것.
= : ~ 로 구성되어 있다
- : 그리고(and)
() : 생략 가능한 자료
[ ] : 선택 (or)
{ } : 반복
CASE (자동화 도구) - 요구사항을 자동 분석하고, 분석 명세서르 기술하는 도구.
- SADT : SoftTech에서 만든 개발 도구.
- HIPO – 시스템 실행 과정인 입출력 기능을 표현한 것.
구성 요소
사물 (Things), 관계, 다이어그램
구조적 다이어그램
- 클래스 다이어그램
- 객체 다이어그램 : 럼바우에서 활용됨
- 컴포넌트 다이어그램
행위 다이어그램
- 유스케이스 다이어그램
- 시퀀스 다이어그램
- 상태 다이어그램 : 럼바우에서 활용됨
- 활동 다이어그램
스테레오 타입- <> , <>
구성 요소
- 시스템 / 시스템 범위 : 사각형
- 액터 (Actor) : 행위자
- 유스케이스 : 서비스나 기능
- 관계 : 관계 (include, extend)
- 구조적 방법론 – 사용자 요구사항을 파악해 문서화하는 처리 중심의 방법론
- 정보공학 방법론 – 계획, 분석, 설계 등 정형화된 기법들을 적용하는 자료 중심 방법론.
- 객체지향 방법론 – 객체들을 조립해서 소프트웨어를 구현.
- 컴포넌트 기반 방법론 – 컴포넌트를 조합해 만드는 방법론.
- 이미 개발돈 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용.
합성 중심 – 블록을 만들어 끼워 맞추는 방법.
생성 중심 – 추상화 -> 구체화해 만드는 방법
기존 시스템에 새로운 기능을 추가해 소프트웨어 성능 향상.
SLC 전 단계를 연결하는 자동화 도구.
전문가 감정 기법 – 경험 많은 두 명 이상의 전문가가 비용 산정.
델파이 기법 – 위에꺼에서 주관적 편견을 보완하기 위해 더 많은 전문가 초빙.
세부적인 작업 단위별 비용 산정. ex) LOC
상향식 기법에 속함.
- LOC에 의한 비용 산정 기법이다.
- 조직형 : 중 , 소규모의 SW. 5만 라인 이하.
- 반분리형 : 30만 라인 이하
- 내장형 : 30만 라인 이상. 초대형 규모 SW
- SLC 전 과정 동안에 사용될 노력의 분포를 예상하는 모형.
- Rayleigh ,Norden 곡선을 기초로 한다.
- 생명주기예측 모형 이라고도 불린다.
- SW 기능을 높여주는 요인별 기능점수를 구하고 비용을 산정.
SLIM – Putnam을 기초로 한 자동화 도구.
PERT – 전체 작업의 상호 관계를 표시하는 네트워크. CPM (임계 경로 기법) - 작업에 필요한 소요기간을 예측하는데 사용하는 기법. 간트차트 – 작업 일정을 막대 도표를 활용해 표시하는 일정표.
ISO/IEC 12207
- ISO에서 만든 표준 SLC 프로세스.
CMMI (시어머니가 가정의 화목함을 감시)
- SW 개발 조직의 업무 능력 및 성숙도를 평가하는 모델
- 초기 -> 관리 -> 정의 -> 정량적 관리 -> 최적화 (초관정정최)
SPICE
- 소프트웨어 품질 향상을 위해 평가 및 개선하는 국제 표준
- ISO/IEC15504
스프링 프레임워크 – 자바 플랫폼을 위한 프레임워크
전자정부 = 우리나라 공기업용
닷넷 프레임워크 – MicroSoft에서 만듬
프레임워크 특성
모듈화, 재사용성, 확장성, 제어의 역흐름