1. 소프트웨어 개발 방법론
- 소프트웨어 생명주기(SDLC) 모델 : 시스템 개발 생애 작업 프로세스 모델화
- 모델 프로세스
- 요구사항 분석 : 개발할 소프트웨어의 기능, 제약 조건, 목표, 사용자를 명확하게 정의-> 기능/비기능 요구사항
- 설계 : 정의한 기능의 수행 바법을 논리적으로 결정 : 시스템 구조/프로그램/사용자 인터페이스 설계
- 구현 : 문제 해결 방법을 특정 프로그래밍 언어를 사용해 작성 -> 인터페이스/자료 구조 개발, 오류 처리
- 테스트 : 시스템이 요구를 만적하는지 평가 -> 단위/통합/시스템/인수 테스트
- 유지 보수 : 시스템이 인수되고 설치된 후 일어나는 모든행동 -> 예방/완전/교정/적응 유지보수
- SDLC 종류
- 폭포수 모델(Waterfall Model) : 각 단계를 확실히 마무리 지은 후 다음 단계로 넘어가는 모델
- 프로토타이핑 모델(Prototyping Model) : 고객이 요구한 주요 기능을 프로토타입으로 구현 후 피드백 반영
- 나선형 모델(Spiral Model) : 위험을 최소화 하기 위해 점진적으로 개발
- 반복적 모델(Iteration Model) : 구축 대상을 나누어 병렬적으로개발 후 통합 하거나, 반복적으로 개발
- 소프트웨어 개발 방법론 : 소프트웨어 개발 전 과정에 적용할 수 있는 구체적인 방법이나 도구
- 소프트웨어 개발 방법론 종류
- 구조적 방법론 : 분할과 정복 접근 방식의 하향식 방법론. 나씨-슈나이더만 차트 사용
- 정보공학 방법론 : 개발주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론
- 객체 지향 방법론 : '객체'라는 기본 단위로 시스템을 분석 및 설계
- 컴포넌트 기반 방법론 : 컴포넌트를 조립해 하나의 새로운 프로그램을 작성
- 애자일 방법론 : 사람이 중심이 되어 변화에 유연하고 신속하게 적응하는 방법론
- 제품 계열 방법론 : 임베디드 소프트웨어를 작성하는 데 유용한 방법론
- 나씨-슈나이더만 차트 : 논리의 기술에 중점을 둔 도형식 표현 방법
- 애자일(Agile) 방법론 유형
- XP : 의사소통 개선과 즉각적 피드백
- 5가지 가치 :용기, 단순성, 의사소통, 피드백, 존중
- 12가지 기본원리 : 짝 프로그래밍(Pair Programming), 공동코드 소유(Collective Ownership), 지속적인 통합(CI), 계획 세우기(Planning Process), 작은 릴리즈(Small Release), 메타포어(Metaphor), 간단한 디자인(Simple Design), 테스트 기반 개발(TDD), 리팩토링(Refactoring), 40시간 작업(40-Hour Work), 고객 상주(On site Customer), 코드 표준(Coding Standard)
- SCRUM : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 방법론
- 주요 용어 : 백로그, 스프린트, 스크럼 미팅, 스트럼 마스터, 스프린트 회고, 번 다운 차트, 속도, 린
- XP : 의사소통 개선과 즉각적 피드백
- 객체 지향 분석 방법론
- 구성요소
- Class : 변수와 매서드를 정의하는 틀
- Object : 물리적, 추상적으로 자신과 다른 것을 식별할 수 있는 대상
- Method : 클래스로부터 생성된 객체를 사용하는 방법
- Message : 객체에게 행위를 하도록 지시하는 방법
- Instance : 클래스를 통해 만든 실제 메모리상에 할당된 객체
- Property : 객체들이 가지고 있는 데이터 값들을 단위별로 정의
- 객체 지향 기법
- 캡슐화(Encapsulation) : 필요한 인터페이스만밖으로 드러내는 기법. 결합도가 낮아지고 재사용이 용이
- 상속성(Inheritance) : 상위 클래스의 속성과 메서드를 재정의 없이 물려받아 사용하는 기법
- 다형성(Polymorphism) : 상솟받은 하위 객체들이 다른 형태로 이용될 수 있는 성질(오버로딩, 오버라이딩)
- 추상화(Abstaction) : 공통 설질을 추출하여 추상 클래스를 설정하는기법
- 정보 은닉(Information Hiding) : 공개 인터페이스를 통해서만 접근이 가능하게 하는 코드 보안 기술
- 관계성(Relationshop) : 데이터를 참조하는 관계를 나타내는 기법(연관화, 집단화, 분류화, 일반화, 특수화)
- 오버로딩 : 매개변수의 유형과 개수를 다르게
- 오버라이딩 : 메서드를 재정의
- 객체 지향 설계 원칙(SOLID)
- 단일 책임의 원칙(SRP) : 하나의 클래스는 하나의 목적을 위해서 생성
- 개발 폐쇄 원칙(OCP) : 소프트웨어 구성요소는 확장에는 열려있고, 변경에는 닫혀있어야 함
- 리스코프 치환의 원칙(LSP) : 하위 클래스는 자신의 상위 클래스로 교체할 수 있어야 함
- 인터페이스 분리의 원칙(ISP) : 자신이 사용하지 않는 인터페이스는 구현하지 말아야 함
- 의존성 역전의 원칙(DIP) : 추상을 매개로 메시지를주고 받음으로써 관계를 최대한 느슨하게 만드는 원칙
- 객체 지향 분석(OOA) : 사용자의 요구사항을 분석해 관련된 구성요소를 정의하여 모델링하는 기법
- 객체 지향 분석 방법론 종류
- OOSE(야콥슨) : 유스케이에 의한 접근 방법
- OMT(럼바우) : 그래픽 표기법을 이용해 구성요소 모델링. 객체 -> 동적 -> 기능 모델링 진행
- OOD(부치) : 설계 문서화를 강조하여 다이어그램 중심으로 개발
- 코드-요든 : E-R 다이어그램을 사용하여 객체의 행위 모델링
- 워프-브록 : 고객 명세서를 평가해 설계 작업까지 연속적으로 수행
- 구성요소
2. 프로젝트 관리
- 프로젝트 관리 :주어진 기간 내에 최ㅗ의 비용으로 사용자를 만족시키는 시스템 개발 활동
- 프로젝트 관리 대상
- 계획 관리 : 프로젝트 계획, 비용산정, 일정 계획, 조직 계획
- 품질 관리 : 품질 통제 및 품질 보증
- 범위 관리 : 모든 요구사항이 포함되었는지 보장하고, 필요한 작업만 수행되도록 관리
- 프로젝트 관리 3대 요소 : 사람, 문제, 프로세스
- 비용산정 모형 : 실행 가능한 계획 수립을 위해 비용을 산정하는 방식
- 비용산정 모형 분류
- 하향식 산정 방법 : 경험이 많은 전문가에게 의뢰
- 전문가 감정 기법
- 델파이 기법 : 전문가 집단의 의견을 반복적으로 수집하고 조율
- 상향식 산정 기법 : 세부적인 요구사항과 기능에 따라 비용 계산
- LOC 모형 : 코드 라인 수의 낙관치, 비관치, 예측치를 구하고 비용 산정
- Man Month(M/M) 모형 : 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 비용 산정
- COCOMO 모형 : 보헴이 제안한 모형으로 프로그램 규모에 따라 비용 산정(조직형 -> 반 분리형 -> 임베디드형)
- Putnam 모형 : 시간에 따른 함수 Rayleigh-Norden 곡선의 노력 분포도를 기초로 예측
- 기능점수(FP) 모형 : 기능 증가 인자멸로 가중치를 부여 후 합산하여 비용 산정
- 하향식 산정 방법 : 경험이 많은 전문가에게 의뢰
- 일정 관리 모델 : 프로젝트가 일정 기간 내에 완료될 수 있도록 관리하는 모델
- 일정 관리 모델 종류
- 주 공정법(CPM) : 노드와 노드 간 열결을 통해 공정을 계산, 가장 긴 시간이 임계 경로가 된다.
- PERT : 비관치, 중간치, 낙관치의 3점 추정 방식을 통해 일정을 관리하는 기법
- 중요 연쇄 프로젝트 관리(CCPM) : 주 공정 연쇄법으로 자원 제약사항을 고려하여 일정 작성
- 간트 차트 : 업무별 일정을 그래픽으로 표시한 바 형태의 차트
- 위험 관리 : 프로젝트에 내제된 위험 요소를 인식하고 그 영향을 분석하여 관리
- 위험 종류
- 알려진 위험 : 프로젝트 계획서, 기술적 환경, 정보 등에 의해 발견될 수 있는 위험
- 예측 가능한 위험 : 과거 경험으로부터 예측할 수 있는 위험
- 예측 불가능한 위험 : 사전 예측이 어려운 위험
- 위험 대응 전략
- 회피(Avoidance) : 발생 가능성을 원천적으로 제거
- 전가(Transference) : 위험에 대한 책임을 제 3자에게 넘기는 전략
- 완화(Mitigation) : 위험 발생 가능성을 감소시키거나 영향력을 감소시키는 전략
- 수용(Acceptance) : 위험을 그대로 받아들이는 전략
'개인 스터디 > 정리' 카테고리의 다른 글
[정보처리기사 실기] 3. UI 요구사항 확인 (0) | 2025.04.06 |
---|---|
[정보처리기사 실기] 2. 현행 시스템 분석 (0) | 2025.04.03 |
Do it 웹사이트 따라 만들기 - 구글 API로 Contact Us 폼 처리하기 (1) | 2024.01.28 |
Do it 웹사이트 따라 만들기 -Contact Us 페이지 만들기 (0) | 2024.01.27 |
Do it 웹사이트 따라 만들기 - FAQ 페이지 만들기 (1) | 2024.01.26 |