[용어 및 질문 모음]
# 1강
- 소프트웨어의 특성 : 비가시성 / 요구사항, 주변환경에 따른 지속적 변화
- 소프트웨어 위기 : 소프트웨어 수요의 증가추세를 공급이 따라가지 못함
- 소프트웨어 개발 연관 역할
1) 고객 (개발 필요성,비용,의뢰)
2) 사용자 (사용자측면 요구사항 제공)
3) 개발자 (주어진 시간,비용내 제공된 요구사항 기반으로 개발)
+ 소프트웨어 = 컴퓨터 프로그램 + 관련 기록문서
+ 작동경로에 따른 소프트웨어 분류 : 독립형/내장형/실시간형/네트워크형
+ 소프트웨어 개발단계 : 요구사항 분석 -> 설계 -> 구현 -> 테스트
+ 소프트웨어 공학의 분야 생략
# 2강
- 프로세스 : 주어진 목적위해 수행되는 일련의 절차
- 소프트웨어 (개발) 프로세스 : 개발절차 + 관련된 인력, 방법, 도구 통합 기술 / 각 절차에서 산출물이 나온다.
- 소프트웨어 개발 생명주기 : 소프트웨어 개발 방법에 대한 추상적 표현 / 순차적, 병렬적 단계로 구성
- 소프트웨어 개발 생명주기의 종류
1) 주먹구구식 개발 모델
2)폭포수 : 순차적, 전형적개발
3)원형 : 점진적 개발
4)나선형 : 2+3+위험분석
- 소프트웨어 개발 방법론
: 소프트웨어 개발 생명주기 내 각 단계에서의 수행방법과 활동들을 구체적으로 정의
- 소프트웨어 개발 방법론의 종류
1) UP : 객체지향 SW개발 방법론 / 반복적, 점진적 개발법 / 사이클반복하며 릴리즈 계속 산출(버젼)
2) XE : 산출물보다 개발에 치중 / 여러번 반복후 릴리즈 산출 / 고객과 상주
3) 마르미
- 소프트웨어 개발 목표 : 정해진 기간 내, 주어진 예산 이용해 사용자가 원하는 좋은 품질로 개발하는것.
# 3강
- 소프트웨어 프로젝트 실패요인 : 관리자와 개발자의 잘못된 통념 / 필요지식, 의지 부족
- 프로젝트 성공위해서는 잘못된 통념 바로잡고, 이미 입증된 방안(PMBOK, ISO, CMMI등)을 지침서로 활용해야한다.
- 소프트웨어 프로젝트 관리 : 주어진 기간과 최소의 비용으로 고객이 만족하는 소프트웨어를 제공하기 위한 여러 활동
- 프로젝트 관리 대상 : 계획관리 / 품질관리 / 리스크관리
- 프로젝트 관리 구성단계 : 프로젝트 계획 수립 -> 실행 -> 통제 -> 종료 (프로젝트 관리 계실통종)
+ PMBOK에서 프로젝트 : 유일한 제품이나 서비스를 만들기 위해 수행되어야할 일시적 행동
+ PMBOK에서 프로젝트 구성요소 : 목표 / 기간 / 비용 / 관리자 / 참여자 / 기술
+ 소프트웨어 프로젝트 프로세스 : 제품구상 -> 소프트웨어 제안요청서 배포(RFP) -> 제안서 제출 -> 제안서 심사 -> 계약서 작성 -> 프로젝트 시작~종료
+ 소프트웨어 프로젝트 성공요소 : 비용 / 일정 / 품질 (이것들의 합의점 찾아야된다)
+ 프로제트 관리 영역(PMBOK) 생략
+ 프로젝트 성공 돕는 지침서 : 1)CMMI 2)ISO
+ CMMI : SEI에서 개발한 조직 프로세스 성숙도에 따라 점진적 개선 제시 기준
+ CMMI 단계 : 1단계) 계획X, 통제X, 예측X
2단계) 기본적 프로세스 관리 프로세스 존재 , 사용
3단계) 조직차원 표준 프로세스가 존재 / 전담팀 존재
4단계) : 정량적 프로세스 측정, 통제
5단계) : 프로세스 개선 연구
# 4강
- 프로젝트 요구사항을 정확히 명세해야하는 이유
: 제품 전체적 파악을 통해 의사소통 시간 절약 가능
: 상세 요구사항 사항 알아야 비용 산정이 가능, 이를 기반으로 계획 수립도 가능
- 기능적 요구사항과 비기능적 요구사항의 차이점
1) 기능적 요구사항 : 제품을 구현하기 위한 기능적 특성 (저장기능, 편집기능 등)
2) 비기능적 요구사항 : 제품의 품질등의 기준을 만족하기 위한 특성 (성능, 보안 ,신뢰도등)
- 요구사항 개발 단계 : 요구사항 수립 -> 분석 -> 명세 -> 검증 (요구사항 수분명검)
- SRS : 요구사항 명세서(명세단계에서 도출) : 모두에게 공통 목표 제시 / 개발자와 고객 공통으로 보는 문서
- 유스케이스 다이어그램을 작성하는 이유 : 사용자 관점에서 바라보는 기능을 그려 이해를 도움 => 고객, 개발자간 이거 보며 의견조율가능.
- 유스케이스 다이어그램 표현 절차 : 액터 식별 -> 유스케이스 식별 -> 관계 정의
+ 요구사항 분석 방법 : 유스케이스 모델링 -> 기술서 작성 -> 기능/비기능 분류 -> 요구사항 명세서 작성
# 5강
- 프로젝트 계획 수립시 제일먼저 해야하는거 : 프로젝트 규모 파악
- 프로젝트 개발비용 산정시 결정에 영향주는 요소 : 규모, 공수(Effort), 비용 (개발비용 규공비)
- 소프트웨어 개발 비용 : X , 개발 기간 Y.
- 소프트웨어 산정 방법, 모형
1) 경험적 방법
- 델파이 기법 : 노력과 시간에 대한 수식을 경험적으로 유도해 예측 : 충분한 경험, 스킬 없으면 정확성 감소
2) 크기중심 방법
- LOC, COCOMO : 코드의 라인수로 측정 : 개발 초기에는 소스 코드 라인수 예측이 어렵고, 개발 언어 / 저,고평가 에 따라 값이 변동
3) 기능중심 방법
- 기능점수 : 사용자 중심의 기능 크기로 결정
- 기능점수 산정 방식의 7단계 프로세스 생략
- 일정 계획에 사용되는 대표적인 차트, 이에대한 기술
1) 퍼트차트 : 프로젝트 구성하는 여러 작업 관계, 흐름을 그래프로 표현 (병행가능, 작업간 상호의존성, 진행경로파악 가능)
2) 간트차트 : 프로젝트 일정, 예산 및 자원계획등을 목적으로 사용될수 있는 프로젝트 제어 기법 (막대형태, 시작종료일 분명 ,작업간 의존성 안보여줌)
- EVM(Earned Value Management)
: 프로젝트가 계획대로 진행되고 있는지 점검하는 법
: 프로젝트 일정, 비용, 완료된 작업량을 비용화해 계획대비 실적을 비교, 평가해 성과와 진행률 정량적으로 관리
+ 프로젝트 계획서 : 프로젝트 참여자 모두가 프로젝트 진행하며 참조하는 프로젝트의 중심 문서 / 모든 작업을 테스크와 액티비티로 나누고 분배.
# 주기적 통제 기본
+ 프로젝트 팀 구성 : 1) 2단계구조 : 소규모 프로젝트에 적합 / 팀장의 능력에 성패 달림
2) 계층적구조 : 큰 프로젝트 / 단계별 보고체계 / 의사소통 경로 줄임
3) 민주적 팀구성
+ WBS : 대표적 스케쥴링 방식
+ 톱다운 방식 : 하향식 상위단계에서 쪼개 하위단계로 내려오며 세분화
+ 작업 패키지 : 최하위단 작업 / 작업 원가와 일정 신뢰할정도로 산정 가능 최소단위. / 각 마다 산출물 나와야됨.
+ 프로젝트 목표 달성위해 계획과 통제 항상 함께 다뤄짐
# 6강
- 리스크의 현실화 : 문제
- 프로젝트 성공에 위헙이 되는 불안요소 파악하는 활동 : 리스크 관리
- 리스크 식별위해 활동되는 방법 : 브레인스토밍, 조사, 인터뷰 등
- 리스크 우선순위 선정 이유 : 모든 리스크에 대응하기에 프로젝트 자원의 제약 존재
- 리스크의 영향을 최소화하기 위해 식별된 리스크에 대해 대처하기 위한 수단 : 리스크 대처 방안
[표현 예시]
1. 유스케이스 다이어그램
2. LOC, COCOMO 산정방식
3. 기능점수 산정방식
4. 퍼트차트
5. 간트차트
6. EVM
'기타 > [소프트웨어 공학]' 카테고리의 다른 글
소프트웨어 공학 7-2장. UML 설계 (1) | 2019.10.27 |
---|---|
소프트웨어 공학 7장. 설계 및 구현 (0) | 2019.05.01 |
6장. 리스크 관리 (0) | 2019.04.17 |
5장. 프로젝트 계획 및 통제 (0) | 2019.04.10 |
4장. 요구사항 개발 및 관리 (0) | 2019.04.03 |