자격증/정보처리기사 실기
[요구사항확인] 1. SW 개발 방법론
염두리안
2023. 8. 31. 23:11
728x90
반응형
주요 키워드 |
소프트웨어 개발 방법론 / 애자일 / XP / 스크럼 / 린 / 객체 지향 분석 방법론 / 프로젝트 관리 / Loc 모형 / Man Month 모형 |
SW 개발 방법론(★★★)
- SW 생명주기(SDLC) 모델 : 시스템의 요구분석 ~ 유지보수 전 공정을 체계화한 절차
- SW 생명주기 모델 프로세스
- 요구사항 분석 - 요구, 조건을 결정하는 단계 / 기능&비기능 요구사항
- 설계 - 수행 방법을 논리적으로 결정 / 시스템 구조&프로그램&사용자 인터페이스 설계
- 구현 - 실제 프로그램 작성 단계 / 인터페이스&자료구조 개발, 오류처리
- 테스트 - 검사하고 평가 / 단위&통합&시스템&인수 테스트
- 유지보수 - 시스템이 인수된 후 일어나는 모든 활동 / 예방, 완전, 교정, 적응 유지보수
- SW 모델 종류
- 폭포수 모델 - 가장 오래됨 / 확실히 마무리된 후 다음 단계 진행 / 선평 순차적 모형(생명주기 모형) / 요구사항 변경 어렵 / 타당성 검토 → 계획 → 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
- 프로토타이핑 모델 - 프로토타입으로 구현, 고객 피드백 반영
- 나선형 모델 - 위험 최소화 위해 점진적으로 개발 / 계획, 정의 → 위험 분석 → 개발 → 고객평가
- 반복적 모델 - 개발 후 통합 or 반복적 개발
- SW 개발 방법론 종류
- 구조적 방법론 - 전체 시스템을 기능에 따라 개발, 이를 통합한은 분할&정복 접근 방식 / 프로세스 중심의 하향식 방법론 / 나씨-슈나이더만 차트 사용
- 나씨-슈나이더만 차트 특) 도형식 표현 방법 / 제어 논리 구조로 표현
- 정보공학 방법론 - 정보시스템 개발에 필요한 관리 절치, 작업 기법을 체계화한 방법론 / 대형 프로젝트 수행
- 객체지향 방법론 - '객체'가 기본 단위 / 복잡한 현실 세계를 사람이 이해하는 방식으로 시스템 적용 / 객체, 클래스, 메시지 사용
- 컴포넌트 기반 방법론 - 컴포넌트 조립해 하나의 응용 프로그램 작성 / 생산성, 확장성, 재사용성 굿~!
- 애자일 방법론 - 절차보단 사람 중심 / 개발 과정의 어려움 극복 위해 적극적으로 모색한 방법론
- 제품 계열 방법론 - 공통된 기능 정의 / 임베디드 SW 작성시 유용 / 영역 공학, 응용 공학으로 구분
- 구조적 방법론 - 전체 시스템을 기능에 따라 개발, 이를 통합한은 분할&정복 접근 방식 / 프로세스 중심의 하향식 방법론 / 나씨-슈나이더만 차트 사용
- 애자일 - 절차보단 사람 중심... 변화에 유연&신속히 적응 / 개발기간 짧고, 폭포수 모형에 대비되는 방법론 / 즉시 피드백
- XP - 1~3주 반복 개발주기 / 5가지 가치 - 용기, 단순성, 의사소통, 피드백, 존중 / 12가지 기본원리 - 짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 계획 세우기, 작은 릴리즈, 메타포어, 간단한 디자인, 테스트 기반 개발, 리팩토링, 40시간 작업, 고객 상주, 코드 표준
- 스크럼 - 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론 / 백로그(요구사항), 스프린트, 스크럼 미팅, 스크럼 마스터, 스프린트 회고(일정주기로 시행), 번 다운 차트(그래픽적으로 표현한 차트)
- 린 - 낭비 요소 제거해 품질 향상 / 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화
비교 대상 | 애자일 | 전통적 방법론 |
계획수립 | 유동적 범위 설정 | 확정적 범위 설정 |
업무수행 | 팀 중심 업무 수행 | 관리자 주도적 명령과 통제 개인 단위로 업무 수행 |
개발/검증 | 반복 주기 단위로 SW 개발, 검증 | 분석, 설계, 구현, 테스트를 순차적으로 수행 |
팀관리 | 업무 몰입, 팀 평가 | 경쟁, 개별 평가 |
문서화 | 문서화보단 코드 강조 | 상세한 문서화 |
성공요소 | 고객 가치 전달 | 계획, 일정 준수 |
유형 | XP, 스크럼, 린 | 폭포수, 프로토타입, 나선형 |
- 객체 지향 분석 방법론
- 객체 지향 - 실세계의 개체를 속성, 메서드가 결합한 형태의 객체로 표현하는 기법
- 구성요소 - 클래스(하나의 공통된 특성 표현) / 객체(식별 가능한 대상... 메모리에 할당) / 메서드(객체 사용 방법) / 메세지(상호작용 하기 위한 수단) / 인스턴스(실형 객체... 실제 메모리상에 할당) / 속성(단위별로 정의)
- 객체지향 기법
- 캡슐화(Encapsulation) - 결합도 ↓, 재사용성 용이 / 인터페이스 단순화 / 정보 은닉과 관계 깊음 / 오류의 파급 효과 적음
- 상속성(Inheritance) - 재정의 없이 물려 사용
- 다형성(Polymorphism) - 하나의 메시지에 대해 고요한 방법으로 응답할 수 있는 능력
- 오버로딩 - 같은 이름의 메서드를 여러 개 가지는 기법
- 오버라이딩 - 일반 메서드의 구현을 하위 클래스에서 무시하고 재정의
- 추상화(Abstraction) - 공통 성직을 추출해 추상 클래스 설정 / 과정 추상화, 자료 추상화, 제어 추상화 있음
- 정보은닉(Information Hiding) - 메서드 숨기고 공개 인터페이스 통해서만 접근 가능케 하는 코드 보안 기술 / 모듈 사잉의 독립성 유지하는 데 도움 줌
- 관계성 (Relationship) - 데이터를 참조하는 관계를 나타내는 기법 / 연관화, 집단화, 분류화, 일반화, 특수화
- 객체 지향 설계 원칙(SOLID)
- 단일 책임의 원칙 - 하나의 클래스는 하나의 목적을 위해 생성
- 개방 폐쇄 원칙 - SW 구성요소는 확장에는 열려있고, 변경에는 닫혀있어야 함
- 리스코프 치환의 원칙 - 서브타입은 어디서나 자신의 기반 타입으로 교체할 수 있어야 한다는 원칙
- 인터페이스 분리 원칙 - 한 클래스는 자신이 사용하지 않는 인터페이스는 구현 X
- 의존성 역전의 원칙 - 실제 사용 관계는 안 바뀌고 추상을 매개로 메시지를 주고 받음으로써 관계를 최대한 느슨하게 만드는 원칙
- 객체 지향 분석의 개념 - 요구사항 분석해 요구된 문제와 관련된 모든 클래스(객체), 속성과 연산, 관계 정의해 모델링
- 객체 지향 분석 방법론 종류
- OOSE(야콥슨) - 유스케이스를 모든 모델의 근간으로 활용하는 방법론 / 분석, 설계, 구현으로 구성 / 기능적 요구사항 중심
- OMT(럼바우) - 그래픽 표기법 / 객체(정보) 모델링(객체 다이어그램 활용해 표현) → 동적 모델링(시간 흐름에 따라... 상태 다이어그램 활용해 표현) → 기능 모델링(자료 흐름도(DFD) 활용해 표현)
- OOD(부치) - 설계 문서화 강조해 다이어그램 중심으로 개발 / 분석, 설계 분리 불가능
- 코드-요든 - ER 다이어그램 상요해 객체 행위 모델링
- 워프-브록 - 분석, 설계 간 구분 X / 고객 명세서 평가해 설계 작업까지 연속적으로 수행하는 분석 방법
- 기능 모델링 주요 기법
- 데이터 흐름도(DFD) - 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림 / 자료 흐름 그래프 or 버블 차트라고 함 / 구조적 분석 기법에 이용 / 데이터 흐름 중심 / 제어의 흐름 중요 X / 시간 흐름을 명확히 표현 X
- 자료 사전(DD) - 자료 요소, 자료 요소들의 집합, 자료의 흐름, 자료 저장소의 의미와 그들 간의 관계, 관계 값, 범위, 단위들을 구체적으로 명시하는 사전 / 각 용어가 뭘 의미하는지 알려주기 위함 / 어떤 자료의 흐름도 사전 자료 사전에 정의되어 있어야 함
프로젝트 관리(★★★)
- 프로젝트 관리 - 최소 비용으로 사용자 만족시키는 시스템 개발 위한 전반적 활용 / SW 생명주기 전 과정에 걸쳐 진행
- 관리 대상 - 계획 관리 / 품질 관리 / 범위 관리
- 관리 3대 요소 - 사람(인적 자원) / 문제(사용자 입장에서 문제 분석해 인식) / 프로세스(전체적인 작업 계획 및 구조)
- 비용산정 모형 - SW 규모파악을 통한 투입자원, 소요시간 파악해 실행 가능한 계획 수립하기 위한 비용 산정 방식
- 분류
- 하향식 산정 방법) 경험 많은 전문가에게 비용 산정 의뢰 / 전문가 판단, 델파이 기법(전문가 합의법)
- 상향식 선정 방법) 세부적인 요구사항과 기능에 따라 필요한 비용 계산 방식 / 코드 라인 수(Loc) / Man Month / COCOMO 모형 / 푸트남 모형 / 기능점수(FP) 모형
- 종류
- Loc(Lines of Codes) 모형 : (낙관치 + 4*중간치 + 비관치) / 6
- 비관치 - 가장 많이 측정된 코드라인 수 / 중간치 - 측정된 모든 코드 라인 수의 평균 / 낙관치 - 가장 적게 측정된 코드라인의 수
- Man Month 모형 : 한 사람이 1개월 동안 할 수 있는 기준으로 비용 산정
- Man Month = (Loc) / (프로그래머의 월간 생산성)
- 프로젝트 기간 = (Man Month) / (프로젝트 인력)
- COCOMO 모형 : 보헴이 제안... 프로그램 규모에 따라 비용 산정 / 노력(Man-Month)로 산정
- 조직형 : 기관 내부 / 계산용, 비즈니스 자료 처리 개발에 적용 / 5만 라인 이하 SW 개발
- 반 분리형 : 단순형, 임베디드형의 중간 / 트랜잭션 처리 시스템, DB 관리 시스템, 컴파일러, 인터프리터와 같은 유틸 개발에 적용 / 30만 라인 이하
- 임베디드형 : 초대형 규모 / 토랜잭션 처리 시스템, OS, 실시간 처리 시스템 등의 시스템 프로그램 개발 / 30만 라인 이상
- 푸트남 모형 : 개발주기의 단계별로 요구할 인력의 분포를 가정 / 생명주기 예측 모형
- 기능점수 모형 = 총 기능 점수 * [0.65 + (0.1 * 총 영향도)]
- Loc(Lines of Codes) 모형 : (낙관치 + 4*중간치 + 비관치) / 6
- 일정 관리 모델 - 프로젝트가 일정 기한 내 적절히 완료될 수 있도록 관리
- 종류
- 주 공정법 - 수행 순서가 얽혀있는 프로젝트의 일정을 계산하는 기법 / 시작 ~ 종료 가장 긴 시간이 걸리는 경로
- PERT - 일의 순서를 계획적으로 정리하기 위한 수렴 기법 / 비관, 중간, 낙관치의 3점 추점방식으로 통해 일정 관리
- 중요 연쇄 프로젝트 관리 - 주 공정 연쇄법 / 자원제약사항 고려해 일정을 작성하는 기법
- 종류
- 위험 관리 - 내재된 위험 요소 인식, 영향 분석해 관리하는 활동
- 종류 - 알려진 위험, 예측 가능한 위험, 예측 불가능한 위험
- 대응 전략 - 회피(원천적으로 제거) / 전가(책임 3자에게 넘김) / 완화(가능성, 영향력 감소) / 수용(받아들임)
- 분류
728x90
반응형