| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- JS
- JavaScript
- security
- 리액트
- spring boot
- Redux
- spring boot security
- 백엔드
- TS
- Node.js
- 스프링부트
- Front-End
- frontend
- 정보처리기사
- React
- 자바스크립트
- 웹개발자
- TypeScript
- 큐넷
- VUE
- 프론트엔드
- 수제비
- useState
- 타입스크립트
- JWT
- 정보처리기사 실기
- Authentication
- 백엔드개발자
- It
- spring
- Today
- Total
솔적솔적
정보 처리 기사 실기 01. 요구 사항 확인(정리) + 간단 요약 본문
01. 소프트웨어 개발 방법론1. 소프트웨어 개발방법론2. 비용산정, 일정관리 모형 |
02. 현행 시스템 분석1. 현행 시스템 파악2. 개발 기술 환경 정의 |
03. 요구사항 확인1. 요구사항2. 요구사항의 시스템화 타당성 분석 |
01. 분석 모델 확인하기1. 분석 모델 검증2. 분석 모델의 시스템화 타당성 분석 |
01. 소프트웨어 개발 방법론
[1] 소프트웨어 개발방법론
(1) 소프트웨어 생명주기 모델
[1] SDLC; Software Development Life Cycle ) 모델 개념
- 소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차이다.
- 시스템이 개발될 때부터 운용과 유지보수를 거쳐 생애를 마칠 때까지 어떠한 순서를 밟는지에 대한 작업 프로세스를
모델화한 것이다.
[2] 소프트웨어 생명주기 모델 프로세스
소프트웨어 생명주기 모델 프로세스
요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
| 1. 요구사항 분석 | - 多 이해관계자의 상충할 수 있는 사항을고려해 신제품 or 변경된 제품에 부합하는 요구와 조건을 결정하는 단계 - 개발할 소프트웨어의 기능과 제약조건, 목표 등을 소프트웨어 사용자와 함께 명확히 정의하는 단계 |
- 기능 요구사항 - 비기능 요구사항 |
| 2. 설계 | - 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계 | - 시스템 구조 설계 - 프로그램 설계 - 사용자 인터페이스 설계 |
| 3. 구현 | - 설계 단계에서 논리적으로 결정한 문제 해결 방법을 특정 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계 - 프로그래밍 언어 선택, 스타일 , 순서 등을 결정하는 단계 |
- 인터페이스 개발 - 자료 구조 개발 - 오류 처리 |
| 4. 테스트 | - 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 검사하고 평가하는 단계 | - 단위 테스트 - 통합 테스트 - 시스템 테스트 - 인수 테스트 |
| 5. 유지보수 | 시스템이 인수되고 설치된 후 일어나는 모든 활동 | - 예방, 완전, 교정, 적응 , 유지보수 |
[3] 소프트웨어 생명주기 모델 종류
소프트웨어 생명주기 모델종류로는 폭포수 모델, 프로토타이핑 모델, 나선형모델, 반복적 모델이 있다.
소프트웨어 생명주기 모델 종류
| 폭포수 모델 (waterfall Model) | - 소프트웨어 개발 시 각 단계를확실히 마무리 지은 후 다음 단계로 넘어가는 모델 - 가장 오래된 모델 - 선형 순차적 모형으로 고전적 생명주기 모형 - 모형의 적용 경험, 성공 사례 많음 - 단계별 정의와 산출물이 명확 - 요구사항 변경이 어려움 |
| 프로토타이핑 모델 (Prototyping Model) | - 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델 - 발주자나 개발자 모두에게 공동의 참조 모델을 제공 - 프로토 타입은 구현 단계의 구현 골격 |
| 나선형 모델 (Spiral Model) | - 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델 - 절차 : 계획 및 정의 → 위험 분석 → 개발 → 고객 평가 |
| 반복적 모델 (Literation Model) | - 구축 대상을 나누어 병렬적으로 개발 후 통합 or 반복적으로 개발하여 점증 완성시키는 SDLC 모델 - 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델 |
소프트웨어 생명주기 모델 간 비교
| 구분 | 폭포수 모델 | 프로토타이핑 모델 | 나선형 모델 | 반복적 모델 |
| 절차도 | 요구사항 분석 ↓ 설계 ↓ 구현 ↓ 테스트 |
요구사항 분석 ↓ 프로토타입 개발 ↓ 프로토타입 평가 ↓ 구현 ↓ 테스트 |
계획 및 정의 ↓ 위험분석 ↓ 개발 ↓ 고객평가 |
개발 대상 ↓ 분석 → 설계 → 구현 분석 → 설계 → 구현 분석 → 설계 → 구현 |
| 특징 | 순차적 접근 | 프로토타입 개발 | 위험분석, 반복개발 | 증분방식으로 병행 개발 |
| 장점 | 이해가 용이, 관리 편함 | 요구분석 용이, 타당성, 검증 가능 |
위험성 감소, 변경에 유연한 대처 |
병행 개발로 인한 일정 단축 가능 |
| 단점 | 요구사항 변경 어려움 | 프로토타입 폐기에 따른 비용 증가 |
단계 반복에 따른 관리 어려움 |
병행 개발에 따른 관리 비용 중가 |
(2) 소프트웨어 개발 방법론
[1] 소프트웨어 개발 방법론(Software Development Methodology) 개념
- 소프트웨어 개발방법론이란? 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 철차, 기법이다.
- 소프트웨어를 하나의 생명체로 간주하고 소프트웨어 개발의 시작부터 시스템을 사용하지 않은 과정까지의 전 과정을 현상화한 방법론이다.
[2] 소프트웨어 개발 방법론 종류
소프트웨어 개발방법론 종류로는
| 구조적 | 정보공학 | 객체지향 | 컴포넌트기반방법론 | 애자일 | 제품 계열 |
방법론이 있다.
소프트웨어 개발방법론 종류
| 종류 - 방법론 | 설명 |
| 1. 구조적 (Structued Development) |
- 전체 시스템을 기능에 따라 나누어 개발, 이를 통합하는 분할과 정복 접근 방식의 방법론 - 프로세스 중심의 하향식 방법론 - 구조적 프로그래밍 표현을 위해 나씨-슈나이더만(Nassi-Shneidrman) 차트사용 나씨- 슈나이더만 차트 특징 : - 논리기줄에 중점둔 도형식 표현방법 - 연속, 선택, 다중선택, 반복 등의 제어 논리 구조로 표현 - 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는데 적합 |
| 2. 정보공학 방법론 (Information Engineering) |
- 정보 시스템 개발에 필요한 관리 절차, 작업 기법을 체계화한 방법론 - 개발주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론 |
| 3. 객체지향 방법론 (Object-Oriented Development)) |
- '객체' 라는 기본 단위로 시스템을분석 및 설계하는 방법론 - 복잡한현실 세계를 사람이 이해하는 방식으로 시스템에 적용하는 방법론 |
| 4. 컴포넌트 기반 방법론 (CBD : Component Based Development) |
- 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론 - 개발 기간 단축으로 인한 생산성 향상 - 새로운 기능 추가 쉬움(확장성) - 소프트웨어 재사용이 가능 |
| 5. 애자일 방법론 (Agile Development) |
- 절차보단 사람이 중심되어 변화에 유연, 신속대응, 효율적으로 시스템을 개발할수 있는 신속 적응적 경량 개발 방법론 - 애자일은 개발 과정의 어려움을 극복하기 위해 적극적으로 모색한 방법론 |
| 6. 제품 계열 방법론 (Product Line Development) |
- 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론 - 임베디드 소프트웨어를 작성하는데 유용한 방법론 - 영역 공학과 응용 공학으로 구분 영역공학 : 영역 분석, 영역 설계 , 핵심 자산을 구현하는 영역 응용공학 : 제품 요구분석, 제품 설계, 제품을 구현하는 영역 |
[3] 애자일(Agile)
1. 애자일 방법론의 개념
- 절차보다 사람이 중심, 변화에 유연, 신속 대응, 효율적으로 시스템 개발할 수 있는 신속 적응적 경량 개발방법론
- 개발 기간 짧고 신속, 폭포수 모형과 대비되는 방법론
- 즉시 피드백받아 유동적으로 개발
2. 애자일 방법론 등장 배경
기존 개발방법론의 한계를 극복하기 위해 등장
등장배경 :
- 소프트웨어 개발 환경의 변화(개발 트랜드가 모바일 환경으로 변화), 시장 적시성과 잦은 배포의 중요성 부각
- 기존 개발 방법론의 한계 : 전통적 방법론은 문서 및 절차 위주로 변화대응에 신속하지않았음
빠른 적응, 효율적 개발의 필요성 증가
3. 애자일 방법론의 유형
<대표적>
XP, 린, 스트럼(SCRUM) 등
애자일 방법론의 유형
| 종류 | 내용 |
| XP (eXtreme Programming) |
- 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론 - 1~3주의 반복(lteration) - 5가지 가치와 12개의 실천 항목 존재 - 가치 : 용기, 단순성, 의사소통, 피드백, 존중 - XP의 12가지 기본원리 1. 짝 프로그래밍 : 개발자 둘이 짝으로 코딩 2. 공동 코드 소유 : 시스템에 있는 코드 누구든 수정가능 3. 지속적인 통합 : 매일 여러 번씩 SW 통합, 빌드 must 4. 계획 세우기 : 고객 요구 가치 정의, 개발자 필요한 것 등 5. 작은 릴리즈 : 작은 시스템 먼저 만들고 , 짧은 단위로 업뎃 6. 메타포어 : 공통적 이름체계, 시스템 서술서 통해 고객 <=>개발자 의사소통 원활목표 7. 간단한 디자인 : 현재의 요구사항에 적합한 가장 단순한 시스템을 설계 8. 테스트 기반 개발 : 작성해야할 프로그램 테스트 먼저 수행, 이 테스트를 통과할 수 있게 실제 프로그램의코드를 작성하는 원리 9 . 리팩토링 : 프로그램의 기능 안 바꾸고 중복제거, 단순화위해 재구성한다는 원리 10. 40시간 작업 : 피곤으로 인해 실수 않도록 일주일에 40시간이상을 일하지 말아야한다는 원리 11. 고객 상주 : 개발자들의 질문에 즉각 대답해 줄 수 있는 고객을 프로젝트에 풀타임으로 상주시켜야한다는 원래 12. 코드 표준 : 효과적인 공동 작업을위해서는 모든 코드에 대한 코딩 표준을 정의해야한다는 원래 |
| 스크린(SCRUM) | - 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝 관리 중심 방법론 ------------------------------------------------------------------- - 백로그 - 스프린트 - 스크럼 미팅 - 스크럼 마스터 - 스프린트 회고 - 번 다운 차트 |
| 린(LEAN) | - 도요타의 린 시스템 품질 기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질 향상시키는 방법론 - JIT(Just In Time) , 칸반(Kanban) 보드 사용 7가지 원칙 : 낭비 제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화 |
4. 애자일과 전통적 방법론 비교
| 비교대상 | 애자일 방법론 | 전통적 방법론 |
| 계획수립 | 유동적 범위 설정 | 확정적 범위 설정 |
| 업무수행 | 팀 중심업무 수행 | 관리자 주도적명령과 통제, 개인 단위로 업무 수행 |
| 개발/검증 | 반복 주기 단위로 SW 개발 검증 | 분석 / 설계/ 구현 / 테스트 순차적 수행 |
| 팀관리 | 업무 몰입, 팀 평가 | 경쟁, 개별 평가 |
| 문서화 | 문서화보다는 코드를 강조 | 상세한 문서화 강조 |
| 성공요소 | 고객 가치 전달 | 계획/일정 준수 |
| 유형 | XP, 스크럼, 린 | 폭포수, 프로토타입, 나선형 |
[2] 비용산정, 일정관리 모형
(1) 비용산정 모형
[1] 비용산정 모형 개념
소프트웨어규모파악을 통한 투입자원, 소요시간을 파악해 실행 가능한 계속을 수립하기 위해 비용을 산정하는 방식
[2] 비용산정 모형 분류하향식 산정방법과 상향식 산정방법이 있다.
비용산정 모형 분류
| 분류 | 설명 | 종류 |
| 하향식 산정방법 | 경험이 많은 전문가에게 비용 산정을 의뢰, 여러 전문가와 조정자를 통해 산정하는 방식 | - 전문가 판단 - 델파이 기법 |
| 상향식 산정방법 | 세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식 | - 코드 라인 수(Loc) - Man Month - COCOMO 모형 - 푸트남 모형 - 기능점수(FP)모형 |
[3] 비용산정 모형 종류
1. LoC모형
- 소프트웨어 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정해 여측치를 구하고
이를 이용하여 비용을 산정하는 방식
- 측정이 쉽고 이해하기 쉬워 많이 사용한다.
- 예측치를 이용하여 생산성, 노력, 개발 기간 등의 비용을 산정
2. Man Month 모형
한 사람이 1개월 동안 할 수 잇는 일의 양을 기준으로 프로젝트 비용을 산정하는 방식
3. COCOMO 모형
- 보헴이 제안한 모형, 프로그램 규모에 따라 비용을 산정하는 방식
- 비용산정 결과는 프로젝트를 완성하는 데 필요한 노력으로 산정한다.
- 비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용
- 규모에 따라 유형이 조직형(=기본형, 단순형), 반 분리형, 임베디드형으로 나뉜다.
COCOMO의 소프트웨어 개발 유형
| 유형 | 설명 |
| 조직형 | |
| 반분리형 | |
| 임베디드형 |
4.푸트남 모형
- 푸트남 모형은 SW개발 주기의 단계별로 요구할 인력의 분포를 가정하는 방식
- 푸트남이 제안하는 것으로 생명주기 예측 모형이라고한다.
- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.
5. 기능점수 모형
- 기능 점수 모형은 요구 기능을 증가시키는인자별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능의 점수를 계산하여 비용을 산정하는 방식
- 경험을 바탕ㅇ으로 단순, 보통, 복잡한 정도에 따라 가중치를 부여한다.
기능점수가중치 부여
(2) 일정관리 모델
[1] 일정관리 모델 개념
일정관리 모델은 프로젝트가 일정 기한 내에 적절하게 완료될수 있도록 관리하는 모델
[2] 일정관리 모델 종류
| 모델 | 설명 |
| 주 공정법 | - 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법 - 모든 자원 제약사항을 배제한 상태로 프로젝트의 시작과 끝을 나타내는 노드(Node)와 노드 간의 연결을 통해 공정을 계산하기 위한 액티비티 표기법 |
| PERT | 일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법 |
| 중요 연쇄 프로젝트 관리 | 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법 |
[출저] 수제비2021...! 정보처리기사 실기
'정보처리기사' 카테고리의 다른 글
| 정보처리기사 실기 08단원 - 서버 프로그램 구현 (0) | 2022.02.20 |
|---|---|
| 정보처리기사 실기 07단원 - SQL 응용 (0) | 2022.02.17 |
| 정보처리기사 실기 3단원 논리 데이터 저장소 확인(정리) + 간단 요약 (0) | 2022.01.23 |
| 정보 처리 기사 실기 2단원 UI 설계(정리) + 간단 요약 (5) | 2022.01.22 |