정보처리기사 실기 Part 1. 요구사항 확인 ( 현행시스템 분석 )
Section 1. 소프트웨어 공학
1. HIPO
- " 하향식 소프트웨어 개발을 위한 문서화 도구 및 기법 "
- 가시적 도표 - 총체적 도표 - 세부적 도표
- 구조도 - 개요 도표 (총괄 도표) - 상세도표
2. V 모델
- " 폭포수 모델에 검증과 테스트 작업을 강조한 모델 "
3. 소프트웨어 재사용 (Software Reusability)
- " 이미 개발되어 있는 소프트웨어의 전체 또는 일부분을 다시 사용하여 새로운 시스템을 개발하는 기법 "
4. 소프트웨어 재공학 (Software Reengineering)
- " 기존 시스템을 이용하고 새로운 기능을 추가하여 소프트웨어의 성능을 향상 시켜 보다 나은 시스템을 구축하는 기법 "
- 현재의 시스템을 변경하거나 재구조화(Restructuring)하는 것
- 소프트웨어 위기를 개발의 생산성이 아닌 유지보수의 생산성으로 해결
① 분석 (Analysis)
② 구성=재구축=개조 (Restructuring)
③ 역공학 (Reverse Engineering)
④ 이식 (Migration)
5. 역공학 (Reverse Engineering)
- " 소프트웨어의 분석 및 설계 정보를 재발견하거나 다시 추출하는 작업 "
Section 2. 소프트웨어 개발 방법론
1. 소프트웨어 개발 생명 주기 (SDLC)
- " 소프트웨어를 어떻게 개발할 것인지에 대한 개발 계획과 기본 골격을 표현 및 제공 "
- 타당섬 검사 - 계획 - 요구사항 분석 - 설계 - 구현 - 테스트 - 운영 및 유지보수 - 폐기
2. 폭포수 모델
- " Boehm이 제시한 선형순차적인 고전적(전통적인) 개발 모델로써 각 과정의 단계가 순차적으로 진행 "
3. 프로토 타입 모델 (프로토타이핑 모델)
- " 실제 개발될 시스템의 견본을 만들어 최종 결과물을 예측하는 모델"
4. 나선형 모델 (Spiral Model)
- " Boehm이 제시한 반복적인 작업을 수행하는 점증적 모델이며 위험분석 단계를 포함"
- 계획 수립 - 위험분석 - 공학적 개발 - 고객 평가
5. 애자일 (Agile) 방법론
- " 날렵한, 재빠른 의미와 같이 소프트웨어 개발 중 설계 변경에 신속히 대응하여 요구사항을 수용 "
- XP, SCRUM, Lean 등등
6. XP (eXtreme Programming)
- 1999년 Kent Beck, 요구사항 변동이 심한 경우, 예측성보다는 적응성
- 용기, 단순성, 의사소통, 피드백, 존중
① 짝 프로그래밍 (Pair Programming)
② 테스트 주도 개발 (Test Driven Development)
③ 지속적 통합 (Continous Intergration)
④ 소규모 릴리즈 (Small Release)
⑤ 공동 소유권 (Collective Code Ownership)
7. SCRUM
- 스크럼 회의 (매일 10-15분)
- Sprint 단위(30일)로 개발
8. 유지보수
- " 개발 후 발생하는 문제점을 수정하거나 새로운 기능을 추가하는 활동 "
Section 3. 현행 시스템 파악
1. 현행 시스템 파악
- 시스템 구성 파악 / 시스템 기능 파악 / 시스템 인터페이스 파악
- 아키텍처 파악 / 소프트웨어 구성 파악
- 하드웨어 파악 / 네트워크 구성 파악
2. 시스템 아키텍처
- " 시스템의 전체 구조 및 행위 그리고 행위 원리를 나타내며 시스템이 어떻게 작동하는지 설명하는 틀 "
Section 4. 개발 기술 환경 분석
1. 플랫폼
- " 응용 소프트웨어 프로그램을 구동시키는데 쓰이는 하드웨어와 시스템 소프트웨어의 결합을 뜻 함 "
2. 플랫폼 성능 특성 분석 항목
- 응답시간 (Reponsse time), 생산량 (Throughtput), 가용성 (Availability), 사용률 (Utilization)
3. 운영체제 (OS)
- " SW / HW 자원 관리 및 공통 서비스를 제공하여 사용자와의 인터페이스 기능을 수행하는 시스템 소프트웨어 "
4. DBMS
- " 응용 프로그램과 DB의 매개체 (중재자)로써 응용 프로그램이 DB를 공유 및 접근할 수 있도록 관리하는 소프트웨어 "
5. 미들웨어
- " 애플리케이션에 운영체제가 제공하는 서비스를 추가 및 확장하여 제공하는 SW "
- " 두 시스템 사이 (클라이언트와 서버 등) 간의 통신을 담당하는 소프트웨어 "
6. GNU (GNU's Not Unix)
- Unix의 상업화에 반발하여 무료 개발 및 배포하고 있는 Unix 호환 운영체제