정보처리기사 정보처리기사요약 요구사항분석 소프트웨어생명주기 폭포수모델 나선형모델 애자일 폭포수모델
소프트웨어 개발 방법론
소프트웨어 개발 방법론 

-
소프트웨어 생명주기 모델
-
개념: 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차
-
프로세스: 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
분설구테유 -
종류: 폭포수 모델, 프로토타이핑 모델, 나선형 모델, 반복적 모델
폭프나반-
나선형 모델 절차: 계획 및 정의 → 위험 분석 → 개발 → 고객 평가
계위개고
-
나선형 모델 절차: 계획 및 정의 → 위험 분석 → 개발 → 고객 평가
-
-
소프트웨어 개발 방법론
-
개념: 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법
-
종류: 구조적 방법론, 정보공학 방법론, 객체 지향 방법론, 컴포넌트 기반 방법론, 애자일 방법론, 제품 계열 방법론
구정객컴애제 -
애자일: 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하며 개발
XP 5가지 가치 용기, 단순성, 의사소통, 피드백, 존중 12가지 기본원리 짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 계획 세우기, 작은 릴리즈, 메타포어, 간단한 디자인, 테스트 기반 개발, 리팩토링, 40시간 작업, 고객 상주, 코드 표준 스크럼 백로그 제품과 프로젝트에 대한 요구사항 스프린트 2~4주의 짧은 개발 기간 스크럼 미팅 매일 15분정도 미팅, To Do List 작성 스크럼 마스터 프로젝트 리더 스프린트 회고 스프린트 주기를 되돌아 봄, 규칙 준수 및 개선점 확인 번 다운 차트 남아있는 백로그 대비 시간을 차트로 표현 린 7가지 원칙 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화 용단의피존낭품지확인사전 -
-
객체 지향 분석 방법론
-
개념: 사용자의 요구사항을 분석하여 관련된 클래스, 속성과 연산, 관계를 정의하여 모델링
-
종류: OOSE(야콥슨, 유스케이스에 의한 접근), OMT(럼바우, 객체 모델링 → 동적 모델링 → 기능 모델링), OOD(부치, 문서화 강조)
객동기
-
현행 시스템 분석
비용산정, 일정관리 모형 

-
비용산정 모형
-
개념: 소프트웨어 규모파악을 통한 투입자원, 소요시간 파악하여 비용을 산정
-
분류: 하향식(전문가 판단, 델파이), 상향식(LoC, M/M, COCOMO, 푸트남, 기능점수 모형)
-
델파이 기법: 전문가의 경험적 지식을 통한 문제 해결 및 미래 예측
-
LoC 모형: (낙관치 + (4 * 중간치) + 비관치) / 6 = 예측치
-
Man Month 모형: LoC / 프로그래머의 월간 생산성 = M/M
-
COCOMO 모형: 보헴이 제안, M/M로 산정, 조직형, 반 분리형, 임베디드형
-
푸트남 모형: 개발주기의 단계별로 요구할 인력의 분포를 가정, Rayleigh-Norden 곡선의 노력 분포도를 기초로 산정
-
기능점수 모형: 요구 기능을 증가시키는 인자별로 가중치 부여
-
-
-
일정관리 모델
-
개념: 프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리
-
종류: 주 공정법(CPM, 프로젝트의 시작과 끝을 나타내는 노드 간 연결을 통해 계산), PERT(일의 순서를 계획적으로 정리), 중요 연쇄 프로젝트 관리
-
현행 시스템 파악 

-
현행 시스템 파악
-
개념: 현행 시스템의 하위 시스템, 제공 기능, 연계 정보를 파악하는 활동
-
절차: 구성/기능/인터페이스 파악 → 아키텍처 및 소프트웨어 구성 파악 → 하드웨어 및 네트워크 구성 파악
구기인 아소 하네
-
-
소프트웨어 아키텍처
-
개념: 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중 외부에 드러나는 특성 그리고 관계를 표현하는 시스템의 구조체이다.
-
4+1 뷰
유논프구배-
유스케이스 뷰: 다른 뷰를 검증하는 데 사용
-
논리 뷰: 기능적인 요구사항을 설명
-
프로세스 뷰: 비기능적인 속성을 표현한 뷰
-
구현 뷰: 모듈의 구성을 보여줌
-
배포 뷰: 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가
-
-
패턴: 계층화 패턴, 클라이언트-서버 패턴, 파이프-필터 패턴, 브로커 패턴, 모델-뷰-컨트롤러 패턴
-
비용 평가 모델: SAAM(변경 용이성, 기능성 집중, 경험 없는 조직), ATAM(아키텍처 품질 속성 만족), CBAM(비용 평가 모델), ADR(응집도 평가 모델), ARID(특정 부분에 대한 품질요소 집중)
SACAA
-
-
디자인 패턴
-
개념: 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
-
구성요소: 패턴의 이름, 문제 및 배경, 솔루션, 사례, 결과, 샘플 코드
패문솔사결샘 -
유형: 생성(빌더, 프로토타입, 팩토리 메소드, 추상 팩토리, 싱글톤), 구조(브릿지, 데코레이터, 퍼사이드, 플라이 웨이트, 프록시, 컴포지트, 어댑터), 행위(미디에이터, 인터프리터, 이터레이터, 템플릿, 옵저버, 스테이트, 비지터, 커맨드, 스테이트, 메멘토, 체인 오브 리스판서빌러티)
추빌팩프싱어브컴데퍼플프미인이 템옵스 비커스 메체
-
-
현행 시스템 분석서 작성 및 검토
-
분석 산출물의 종류: 정보시스템 구성 현황, 정보시스템 기능 구성도, 인터페이스 현황, 현행 시스템 아키텍처 구성도, 소프트웨어 구성도, 하드웨어 구성도, 네트워크 구성도
현기인 아소하네
-
분석 산출물의 종류: 정보시스템 구성 현황, 정보시스템 기능 구성도, 인터페이스 현황, 현행 시스템 아키텍처 구성도, 소프트웨어 구성도, 하드웨어 구성도, 네트워크 구성도
개발 기술 환경 정의 

-
개발 기술 환경 현행 시스템 분석
-
운영체제 현행 시스템 분석 시 고려 사항: 신뢰성, 성능, 기술 지원, 구축 비용, 주변 기기
신성기구주 -
DBMS 현행 시스템 분석 시 고려 사항: 가용성, 성능, 기술 지원, 구축 비용, 상호 호환성
가성기구호 -
미들웨어 현행 시스템 분석 시 고려 사항: 가용성, 성능, 기술 지원, 구축 비용
가성기구 -
오픈 소스 현행 시스템 분석 시 고려 사항: 라이센스, 사용자 수, 기술의 지속 가능
라사지
-
요구사항 확인
요구사항 

-
요구사항
-
요구공학의 개념: 사용자의 요구가 반영된 시스템을 개발하기 위해 사용자의 요구사항에 대한 도출, 분석, 명세, 확인하는 구조화된 활동이다.
-
분류: 기능적 요구사항, 비기능적 요구사항
-
-
요구공학 프로세스
-
프로세스: 도출 → 분석 → 명세 → 확인 및 검증
도분명확-
도출 단계 주요 기법: 인터뷰, 브레인스토밍, 델파이 기법, 롤 플레잉, 워크숍, 설문 조사
-
분석 단계 주요 절차: 요구사항 분류 → 개념 모델링 생성 및 분석 → 요구사항 할당 → 요구사항 협상 → 정형 분석
-
명세 단계 주요 기법: 비정형 명세 기법, 정형 명세 기법
👉 명세 원리 및 검증 항목: 명확성, 완전성, 검증 가능성, 일관성, 수정 용이성, 추적 용이성, 개발 후 이용성
명완검 일수 추개 -
확인 및 검증 단계의 주요 기법: 정형 기술 검토(동료 검토, 워크 스루, 인스펙션 동워인), 상세 정형 기술 검토 기법(관리 리뷰, 기술 리뷰, 인스펙션, 워크 스루, 감사
관기 인워감)
-
-
관리 단계: 요구사항 협상 → 요구사항 기준선 설정(형상 관리) → 요구사항 변경관리(형상통제 위원회) → 요구사항 확인 및 검증
-
형상 관리: 소프트웨어 생명주기 동안 변경사항을 체계적으로 관리하여 품질을 향상시키는 활동
-
형상통제 위원회: 형상 관리에 대한 주요 방침을 결정, 산출물 검토, 단계별 의사결정을 수행
-
-
요구사항의 시스템화 타당성 분석
- 요구사항의 기술적 타당성 검토: 성능 및 용량 산정의 적정성, 시스템 간 상호 운용성, IT 시장 성숙도 및 트렌드 부합성, 기술적 위험 분석의 4단계를 거친다.
분석 모델 확인하기
분석 모델 검증
- 방법: 유스케이스 모델 검증, 개념 수준의 분석 클래스 검증, 분석 클래스 검증
분석 모델의 시스템화 타당성 분석
-
분석 모델의 기술적 타당성 검토
- 항목: 성능 및 용량 산정의 적정성, 시스템 간 상호 운용성, IT 시장 성숙도 및 트렌드 부합성, 기술적 위험 분석
-
분석 모델의 시스템화 타당성 분석 프로세스
- 타당성 검토의견 컬럼 추가 → 타당성 검토의견 작성 → 타당성 분석 결과 검증 → 타당성 분석 결과 확인 및 배포/공유
주요 용어: 리치 클라이언트, 씬 클라이언트, SSO, 프로파일, 페르소나, 총 소유 비용, 데이터 흐름도, 자료 사전, 콤보 박스, Aggregation(집합 관계), 디스크 스트라이핑, 시멘틱 웹, 온톨로지, 텍스트 마이닝, 슈퍼타입, 서브타입, 커넥션 풀, JDBC, API, 소켓, 데이터 군집화, REST, 느슨한 결합, XSLT, 행 순서 함수, 그룹 내 비율 함수, MS-SDL, 시드, 경쟁 조건, 디피 헬만(암호키 교환), Seven Touchpoints, 고유 식별정보, 민감 정보, NAT