1. 소프트웨어 생명주기
- Software Life Cycle
소프트웨어 개발 방법론의 바탕이 되는것.
정의, 운용, 유지보수 등의 과정을 단계별로 나눈것.
폭포수 모형, 프로토타입 모형, 나선형 모형, 애자일 모형이 있다.
- 폭포수 모형(Waterfall Model)
- 프로토타입 모형(Prototype Model, 원형 모형)
원형모형.
유저-시스템사이의 인터페이스에 중점을 둔 시제품 제작.
이미 구현된 코드는 추후 골격 코드로 이용.(챗바퀴처럼 수정만)
- 나선형 모형(Spiral Model, 점진적 모형)
보헴(Boehm)이 제안.
위험 관리 최소화를 목적. 피드백이 주기적으로 이루어짐.(눈덩이 처럼 점점 커짐)
- 에자일 모형(Agile Model)
요구사항 적용 용이. 일정주기(Sprint 또는 Iteration) 반복.
(예 : Scrum, XP, Kanban, Lean, Crystal, ASD, FDD, DSDM, DAD등).
(cf.)
폭포수 모형 | 애자일 모형 | |
새로운 요구 반영 | X | 지속적 |
고객과 의사소통 | 적음 | 지속적 |
테스트 | 마지막 1회 | 반복 주기가 끝날 때 마다 |
개발 중심 | 계획 & 메뉴얼 | 고객 |
2. 소프트웨어 생명주기
- 팀 구성 및 협력
- 제품 책임자(PO), 스크럼 마스터(SM), 개발팀(DT)로 구성
1) PO : 백로그(우선 순위) 작성
2) SM : 팀 리더
3) DT : PO, SM외의 모든 인원, 스토리(서술형 요구사항) 작성가능
- 백로그 : 우선 순위가 적용된 요구사항 목록
- 스프린트 계획 회의 : 요구사항 Task단위로 분할
- 스프린트 : 실제 개발 과정. 할일, 진행중, 완료로 표현
- 일일 스크럼 회의 : 매일 15분 정도 회의. 남은 작업시간은 소멸차트로 확인. SM은 장애요소 해결 노력.
- 스프린트 검토 회의 : 1주 1시간내 진행. PO의 개선사항 피드백
- 스프린트 회고 : 스프린트 종료시점 or 일정주기로 수행
3. XP기법
- 핵심가치 : 의사소통, 단순성, 용기, 존중, 피드백
4. 현행 시스템 파악
- 파악절차
1) 시스템 구성, 기능, 인터페이스 파악
2) 아키텍쳐, S/W 구성파악
3) H/W, Network파악
- 시스템 구성 파악 : 기간업무, 지원업무 파악 후 기술
- 시스템 기능 파악 : 주요기능, 하부기능, 세부기능 : 계층형으로 표현
- 시스템 인터페이스 파악 : 단위 시스템간의 Data 종류, Type, Protocol, Connection, 주기 등
- 아키텍쳐 구성 파악 : 기간업무 수행 단계에 따른 사용 기술 요소들 : 계층형을 확인
- S/W 구성 파악 : 단위업무시스템별, S/W제품명, 용도, 라이센스 수, 라이센스 적용방식 등
- H/W 구성 파악 : 서버 사양, 수량, 이중화 적용여부등 명시
- Network 구성 파악 : 서버 위치, 네트워크 연결 방식 : 구성도로 표현
5. 개발 기술 환경 파악
- 개발 기술 환경의 정의 : OS, DBMS, 미들웨어등 기술
- 운영체제 (OS) : PC사용의 S/W적 환경
- OS관련 요구사항 식별시 고려사항
1) 가용성 : 사용 편의성
2) 성능 : 동시 작업
3) 기술지원 : A/S
4) 주변기기 : 타 기기와 호환성
5) 구축비용 : TCO(Total Cost of Ownership)
- DBMS : DataBase 구성, 접근방법, 유지관리 등 모두 관리
- DBMS 관련 요구사항 식별시 고려사항
1) 가용성 : 사용 편의성
2) 성능 : 동시 작업
3) 기술지원 : A/S
4) 상호 호환성 : 설치 가능 운영체제와 호환여부
5) 구축비용 : TCO(Total Cost of Ownership)
- 웹어플리케이션서버(WAS) : DB서버와 연동사용 / Data접근, 세션관리, 트렌젝션관리등 라이브러리 제공
- WAS관련 요구사항 식별시 고려사항
1) 가용성 : 사용 편의성
2) 성능 : 동시 작업
3) 기술지원 : A/S
4) 구축비용 : TCO(Total Cost of Ownership)
- 오픈소스 사용에 따른 고려사항 : 라이센스 종류, 사용자 수, 기술의 지속가능성 등 고려
6. 요구사항 정의
- 개념, 특징 : 필요한 기준 & 근거 제공, S/W 전반적 내용 내포 : 의사소통 원할
- 유형
1) 기능 요구사항
ㅁ 시스템이 어떤 작동?, 어떤 기능 수행?
ㅁ 입출력시 포함되야 하는 것? 어떤 data 사용 or 저장?
ㅁ 반드시 수행해야 하는 기능
ㅁ 사용자가 요구하는 기능
2) 비기능 요구사항
ㅁ 장비 구성요소(S/W, H/W, Network등 시스템 장비 구성)
ㅁ 성능 요구사항 : 처리속도 & 시간 / 처리량 / 동적, 정적 적용량
ㅁ SI, UI의 요구사항
ㅁ 데이터 요구사항 : 초기자료, 보안적용 자료등 데이터 구축 요구사항
ㅁ 품질 요구사항 : 가용성, 정합성, 상호 호환성 등 품질에 대한 필요한 사항
ㅁ 제약사항 : 시스템 설계, 표준, 법·제도 등 제약조건
ㅁ 프로젝트 관리 요구사항
ㅁ 프로젝트 지원 요구사항
3) 사용자 요구사항
ㅁ 사용자관점 시스템에 요구하는 요구사항
ㅁ 사용자에게 친숙한 표현으로 작성
4) 시스템 요구사항
ㅁ 개발자 관점에서 시스템 -> 사용자 & 다른 시스템 제공
ㅁ 사용자 요구사항보다는 전문적, 기술적 용어 표현
ㅁ S/W 요구사항이라고도 함
- 요구사항 개발 프로세서 : '도출→분석→명세→확인'의 과정
- 요구사항 도출
1) 효율적 의사소통 필요
2) SDLC동안 지속적 반복
3) 인터뷰, 설문, 브레인스토밍, 워크샵, 프로토타입, 유스케이스등
- 요구사항 분석 : 요구사항중 명확X, 이해X인 부분 걸러내는 과정
- 요구사항 명세 : 기능 요구사항 반드시 전부 작성, 비기능 요구사항 필요한 부분만 명확히 작성
- 요구사항 확인 : 개발자원 할당전 요구사항 명세서 정확 & 완전 한지 검토
7. 요구사항 분석 기법
- 요구사항 분류, 개념 모델링, 요구사항 할당, 요구사항 협상, 정형분석등이 있다.
- 요구사항 분류 : 기능, 비기능 / 우선순위 / 개발할 제품 / 개발과정 등으로 분류하는 것
- 개념 모델링 : 현실 세계의 상황을 단순화 → 개념적 표현 모델
- 요구사항 할당 : 요구사항을 만족시키기 위한 구성요소 식별
- 요구사항 협상 : 요구사항이 충돌하는 경우, 우선순위를 작성하여 해결
- 정형분석 : 요구사항을 수학적으로 표현
8. 요구사항 확인 기법
- 자원 배정전 문제파악을 위한 검증 수행
- 요구사항 검토 : 시스템 정의서, 시스템 사양서, 소프트웨어 요구사항 명세서 완성 시점에 검토 수행
- 프로토타이핑
1) 프로토타입 제작후 개발중 지속적 요구사항 반영하여 재작성
2) 장점 : 빠른 개발, 지속적 보완 & 피드백 => 발전된 개발품
3) 단점 : 핵심보다 프로토타입 제작에 관심 집중 가능성이 있다. 반복적 제작이 야기하는 비용에 대한 부담도 있다.
- 모델 검증 : 분석도구를 이용한 정적 분석수행이 유용 (cf)직접수행 : 동적 분석)
- 인수테스트 : 각각 요구사항 확인 방법 고려
9. UML(Unified Modeling Language)
- 개요
1) 시스템 구조 : 6개의 구조 다이어그램
2) 시스템 동작 : 7개의 행위 다이어그램
3) 구성 요소 : 사물, 관계, 다이어그램등 있음
- 사물(Things)
1) 구조사물 : 시스템의 개념적, 물리적 요소 표현
2) 행동사물 : 시간과 공간에 따른 요소들의 행위 표현
3) 그룹사물 : 요소들을 그룹으로 묶어서 표현
4) 주해사물 : 부가적인 설명이나 제약조건 등을 표현
- 관계
1) 연관 관계 : 2개 이상의 사물이 서로 관련
ㅁ 사물사이 : 실선 연결, 방향성 : 화살표
ㅁ 양방향 관계 : 실선 표현
ㅁ 다중도 : 1 / n / 0..1 / 0..* 또는 * / 1..* / n..* / n..m
2) 집합관계 : Part ------◇ whole (실선으로 그려야함)
3) 포함관계 : Part ------◆ whole (실선으로 그려야함)
4) 일반화관계 : 하위 ------▷ 상위 (실선으로 그려야함) / 일반적 개념 : 상위(부모) , 구체적 개념 : 하위(자식)
5) 의존관계 : 영향을 주는 것(이용자) ------> 영향을 받는 것(제공자) / 연관 이 있으나 필요에 의한 영향인 경우
6) 실체화관계 : 사물 ------▷ 행위(:기능, 인터페이스)
- 다이어그램
1) 사물과 관계를 도형으로 표현
2) 정적 모델링 : 구조적 다이어그램 / 동적 모델링 : 행위 다이어그램
3) 구조적 다이어그램 : 클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램, 배치 다이어그램,
복합체 다이어그램, 패키지 다이어그램
4) 행위 다이어그램 : 유스케이스 다이어그램, 시퀀스 다이어그램, 커뮤니케이션 다이어그램, 상태 다이어그램,
활동 다이어그램, 상호작용 개요 다이어그램, 타이밍 다이어그램
'자격증 > 정처기' 카테고리의 다른 글
정보처리기사 합격 후기 (3) | 2022.07.10 |
---|---|
1과목 소프트웨어 설계_3 (0) | 2020.07.11 |
1과목 소프트웨어 설계_2 (0) | 2020.07.06 |
2020 정보처리기사 필기 정리 (0) | 2020.07.05 |
정처기 3차 준비 (2) | 2020.07.03 |