* 소프트웨어 생명 주기 ★★
1) 폭포수 모형(waterfall Model) ★
- 가장 오래되고 가장 폭넓게 사용된 고전적 생명 주기 모형
- 한 단계가 끝나야만 다음 단계로 넘어가는 선형 순차적 모형
- 단계별 정의 및 산출물이 명확
- 개발 중간에 요구사항의 변경이 용이하지 않음
- 타당성검토 -> 계획 -> 요구 분석 -> 설계 -> 구현(코딩) -> 테스트(검사) -> 유지보수
(분설구테유)
2) 프로토타입 모형 (Prototype Model, 원형모형) ★
- 견본(시제)품을 만들어 최종 결과물을 예측하는 모형
- 인터페이스 중점을 두어 개발
- 개발 중간에 요구사항의 변경이 용이
3) 나선형 모형 (Prototype Model, 원형모형) ★
- 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형
- 점진적 개발 과정 반복으로 요구사항 추가 가능
- 정밀하고 유지보수 과정 필요 없음
- 계획 및 정의 -> 위험 분석 -> 공학적 개발 -> 고객평가
4) 애자일 모형 (Agile Model) ★★
- 애자일은 민첩함, 기민함 의미
- 변화에 유연하게 대응
- 일정한 주기( Iteration, Sprint)를 반복하면서 개발과정 진행
- 절차와 도구보다 고객(개일)과의 소통에 초점을 맞춤
ex) XP(eXtreme Programming), 스크럼(Scrum), 칸반(Kanban), 크리스탈(Crystal), 린(LEAN)
+ 기능중심 개발
* 스크럼(Scrum) 기법 ★
- 팀원 스스로가 스크럼 팀 구성
- 개발 작업에 관한 모든 것을 스스로 해결해야함
- 스프린트는 2~4주 정도의 기간으로 진행
1) 제품 책임자(PO; Product Owner)★
- 요구사항이 담긴 백로그(Backlog)를 작성하는 주체
- 백로그에 대한 우선순위를 지정, 이해관계자들의 의견을 종합
2) 스크럼 마스터(SM; Scrum Master)
- 일일 스크럼 회의 주관
- 팀원들을 통제하는 것이 목표가 아님
3) 개발팀(DT; Development Team)
- 제품 책임자와 스크럼 마스터를 제외한 모든 팀원
- 최대 인원 7~8명
4) 스크럼 개발 프로세스
- 스프린트 계획 회의 -> 스프린트 -> 일일 스크럼 -> 스크럼 검토 회의 ->스프린트 회의
* XP 기법 ★★
1) XP(eXtreme Programming)의 핵심 가치 ★
- 용기(Courage)
- 단순성(Simplicity)
- 의사소통(Communication)
- 피드백(Feedback)
- 존중(Respect)
2) XP의 기본원리
- Whole Team (전체 팀)
- Small Releases (소규모 릴리즈)
- Test-Driven Delvelopment(테스트 주도 개발)
- Continuous Intergration(계속적인 통합)
- Collective Ownership(공동 소유권)
- Pair Programming(짝 프로그래밍)
- Design Improvement(디자인 개선) 또는 Refactoring(리팩토링)
* 개발 기술 환경 파악 ★
1) 운영체제(OS; Operating System)
- 하드웨어가 아닌 소프트웨어
# Windows, UNIX, Linux, Mac OS | iOS, Android 등등
- 가용성, 성능 | 기술 지원, 구축 비용, 주변 기기(고려사항)
2) 미들웨어 (Middleware)
- 운영체제와 응용 프로그램 사이에서 추가적인 서비스를 제공하는 소프트웨어
3) 데이터베이스 관리 시스템 (DBMS; Database Management System)
- 사용자와 데이터베이스(DB) 사이에서 정보를 생성하고 DB를 관리하는 소프트웨어
- 데이터베이스(DB)의 구성, 접근 방법, 유지관리에 대한 모든 책임을 짐
- JDBC(Java Database Connectivity, 자바), ODBC(Open Database Connectivity, 응용 프로그램)
- Oracle, MySQL, SQLite, MongoDB, Redis 등등
- 가용성, 성능 | 기술 지원, 구축비용, 상호 호환성(고려사항)
4) 웹 어플리케이션 서버(WAS; Web Application Server) ★
- 정적인 콘텐츠를 처리하는 웹 서버 (Web Server)와 반대됨
- 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어(=소프트웨어)
- 데이터 접근, 세션관리, 트랜잭션 관리 등을 위한 라이브러리를 제공
- Tomcat, JEUS, WebLogic, JBoss, Jetty, Resin 등등
- 가용성, 성능 | 기술지원, 구축비용 (고려사항)
5) 오픈 소스 (Open Source)
- 누구나 별다른 제한 없이 사용할 수 있도록 소스 코드를 무료로 사용할 수 있게 공개한 것
- 라이선스의 종류, 사용자 수, 기술의 지속 가능성(고려사항)
* 요구사항 정의 ★
1) 기능 요구사항
- 기능,입력, 출력, 저장, 수행 등등
2) 비기능 요구사항
- 성능, 품질, 제약사항, 호환성, 보안 등등
3) 요구사항 개발 프로세스 ★
- 도출(Elicitation)/추출 -> 분석(Analysis) -> 명세(Specification) -> 확인(Validation)/검증(Valification)
4) 요구사항 분석 기법 ★
- 요구사항 분류
- 개념 모델링(UML)
- 요구사항 할당
- 요구사항 협상
- 정형 분석
5) 요구사항 확인 기법 ★★
- 요구사항 검토
- 프로토타이핑
- 모델 검증
- 인수 테스트(알파 테스트, 베타 테스트)
* UML ★★★
1) UML(Unified Modeling Language)의 구성요소 ★
- 사물
- 관계
- 다이어그램
2) 사물(Things)
- 구조
- 행동
- 그룹
- 주해 {사물}
3) 관계(Relationships) ★★
- 연관(-)
- 집합 (◇)
- 포함 (◆)
- 일반화 (-▷)
- 의존( -->)
- 실체화 (--▷){관계}
4) 구조적, 정적 다이어그램(Diagram) ★★
- 클래스(Class)
- 객체(Object)
- 컴포넌트(Component)
- 배치(Deployment)
- 복합체 구조(Composite Structure)
- 패키지(Package){다이어그램(Diagram)}
5) 행위, 동적 다이어그램(Diagram) ★★
- 유스케이스(Use Case, 사용사례)
- 시퀸스(Sequence, 순차)
- 커뮤니케이션(Communication, 협업)
- 상태(State)
- 활동(Activity),
- 상호작용 개요(Interation Overview)
- 타이밍(Timing){다이어그램(Diagram)}
'정보처리기사' 카테고리의 다른 글
1과목 소프트웨어 설계(20문제) - 3 (0) | 2023.06.22 |
---|---|
형상관리(Software Configuration Management) (0) | 2023.05.12 |
워크스루, 인스펙션 (0) | 2023.05.12 |