본문 바로가기

정보처리기사

요구사항 확인

1. 소프트웨어 개발 방법론

 
 
(1) 소프트웨어 생명주기(SDLC; Software Development Life Cycle) 모델
- 시스템의 요구분석부터 설계, 구현, 테스트  유지보수까지 전 공정을 체계화한 절차 (요설구테유)
- 종류 (폭프나반)
- 폭포수 모델(Waterfall Model): 소프트웨어 개발시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델
- 프로토타이핑 모델(Prototyping Model): 고객이 요구한 주요 기능을 프로토타입으로 구현하고 고객의 피드백을 반영해 소프트웨어를 만들어가는 모델
- 나선형 모델(Spiral Model): 소프트웨어 개발시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델 (계위개고)
- 반복적 모델(Iteration Model): 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 모델
 
 
(2) 소프트웨어 개발 방법론(Software Development Methodology)
- 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법
- 종류: 구조적 방법론, 정보공학 방법론, 객체 지향 방법론, 컴포넌트 기반 방법론(CBD), 애자일 방법론, 제품 계열 방법론
 
 
(3) 애자일(Agile) 방법론
- 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론
- 종류: XP, 스크럼,
- XP 가치: 용기, 단순성, 의사소통, 피드백, 존중 (용단의피존)
- XP 원리: 짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 계획 세우기, 작은 릴리즈, 메타포어, 간단한 디자인, 테스트 기반 개발, 리팩토링, 40시간 작업, 고객 상주, 코드 표준
- 테스트 기반 개발(TDD): 작성해야 하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램 코드를 작성한다는 원리
- 리팩토링: 프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템 재구성한다는 원리
- 스크럼: 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리중심 방법론
- 린: 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론
 
 
(4) 객체 지향 분석 방법론
- 객체 지향 구성요소: 클래스, 객체, 메서드, 메시지, 인스턴스, 속성 (클객메 메인속)
- 객체 지향 기법: 캡슐화, 상속성, 다형성, 추상화, 정보 은닉, 관계성 (캡상다추정관)
- 객체 지향 설계 원칙(SOLID): 단일 책임의 원칙, 개방 폐쇄 원칙, 리스코프 치환의 원칙, 인터페이스 분리의 원칙, 의존성 역전의 원칙
- 종류: 야콥슨, 럼바우, 부치, 코드-요든, 워프-브록
- 럼바우 객체 지향 분석 절차: 객체 모델링(정보 모델링), 동적 모델링, 기능 모델링 (객동기)
- 기능 모델링 주요 기법: 데이터 흐름도(DFD; Data Flow Diagram), 자료 사전(DD; Data Dictionary)
 
 
(5) 프로젝트 관리
- 주어진 기간 내에 최소 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
- 프로젝트 관리 3대요소(3P): 사람(People), 문제(Problem), 프로세스(Process)
- 비용산정 모형: 소프트웨어 규모파악을 통한 투입자원, 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 방식
- 하향식: 전문가의 경험적 지식을 통한 비용 산정 방식(델파이 기법)
- 상향식: 요구사항과 기능에 따라 필요한 비용 산정 방식(LoC, Man Month, COCOMO, 푸트남, 기능점수)
- LoC(Lines of Code) 모형: 예측치=낙관치+4중간치+비관치/6
- Man Month 모형: (Man Month)=(LoC)/(프로그래머의 월간 생산성), (프로젝트 기간)=(Man Month)/(프로젝트 인력)
- COCOMO 모형: 조직형(Organic Model), 반 분리형(Semi-Detached Model), 임베디드형(Embedded Model)
- 일정관리 모델 종류: 주 공정법(CPM), PERT, 중요 연쇄 프로젝트 관리(CCPM)
- 위험 대응 전략: 회피(Avoidance), 전가(Transference), 완화(Mitigation), 수용(Acceptance)
 
 

2. 현행 시스템 분석

 
 
(1) 현행 시스템 파악
- 현행 시스템이 어떤 하위 시스템으로 구성되어 있고, 제공 기능 및 연계 정보는 무엇이며 어떤 기술 요소를 사용하는지를 파악하는 활동
- 절차: 시스템 구성/기능/인터페이스 파악→아키텍처/소프트웨어 구성 파악→하드웨어/네트워크 구성 파악
 
 
(2) 소프트웨어 아키텍처(Software Architecture)
- 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 구성요소 간 관계를 표현하는 시스템의 구조
- 4+1뷰: 유스케이스 뷰, 논리 뷰, 프로세스 뷰, 구현 뷰, 배포 뷰 (유논프구배)
- 패턴: 소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결 방식
- 유형: 계층화 패턴, 클라이언트-서버 패턴, 파이프-필터 패턴, 브로커 패턴, 모델-뷰-컨트롤러 패턴(MVC)
- MVC 패턴: 대화형 애플리케이션을 모델, , 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴
- 비용 평가 모델: SAAM, ATAM, CBAM, ADR, ARID (SACAA)
 
 
(3) 디자인 패턴(Design Pattern)
- 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다.
- 구성요소: 패턴 이름, 문제, 솔루션, 사례, 결과, 샘플 코드 (패문솔 사결샘)
- 목적에 따른 유형: 생성, 구조, 행위 (생구행)
- 생성 패턴: Builder, Prototype, Factory Method, Abstract Factory, Singleton (생빌 프로 팩앱싱)
- 구조 패턴: Bridge, Decorator, Facade, Flyweight, Proxy, Composite, Adapter (구 브데 퍼플 프록 컴 어)
- 행위 패턴: Mediator, Interpreter, Iterator, Template Method, Observer, State, Visitor, Command, Strategy, Memento, Chain of Responsibility
 
 
(4) 현행 시스템 분석
- 운영체제(OS; Operating System)
- 네트워크: 백본망, 라우터, 스위치, 게이트웨이, 방화벽

- OSI 7계층: 응용(Application), 표현(Presentation), 세션(Session), 전송(Transport), 네트워크(Network), 데이터 링크(Data Link), 물리(Physical)
- DBMS(Database Management System): 데이터베이스라는 데이터 집합을 만들고, 저장 및 관리할 수 있는 기능을 제공하는 응용 프로그램
- DBMS 현행 시스템 분석시 고려사항: 가용성, 성능, 상호 호환성, 기술 지원, 구축 비용 (가성호기구)
- 미들웨어(Middleware): 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어하는 소프트웨어
- WAS: 서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적 트랜잭션 처리와 관리, 다른 이기종 시스템과의 연동을 지원하는 서버
- 미들웨어 현행 시스템 분석시 고려사항: 가용성, 성능, 기술 지원, 구축 비용 (가성기구)
 
 

3. 요구사항 확인

 
 
(1) 요구사항
- 요구공학: 사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 활동
- 분류: 기능적 요구사항, 비기능적 요구사항
- 기능적 요구사항: 시스템이 제공하는 기능, 서비스에 대한 요구사항
- 비기능적 요구사항: 시스템이 수행하는 기능 이외의 사항, 제약사항에 관한 요구사항
- 요구사항 개발 프로세스: 도출, 분석, 명세, 확인 및 검증 (도분명확)
- 도출 단계 주요 기법: 인터뷰, 브레인스토밍, 델파이 기법, 롤 플레잉, 워크숍, 설문 조사
- 델파이 기법: 전문가의 경험적 지식을 통한 문제 해결 및 미래예측을 위한 방법
- 명세 단계 주요 기법: 비정형 명세 기법(자연어 기반으로 서술), 정형 명세 기법(수학적 원리와 표기법으로 서술)
- 명세 단계 산출물: 요구사항 명세서
- 요구사항을 이해했는지 확인(Validation)하고, 요구사항 문서가 회사의 표준에 적합하고 일관성이 있고 완전한지 검증(Verification)
- 정형 기술 검토: 동료 검토, 워크 스루, 인스펙션 (동워인)
- 인스펙션 절차: 계획→사전교육→준비→인스펙션 회의→수정→후속 조치
- 요구사항 관리 프로세스: 협상, 기준선 설정, 변경관리, 확인 및 검증
- 요구사항 개발 이후 프로그램 설계, 개발, 테스트 단계를 거치는 동안 요구사항이 기대에 부합되는지 확인
 
 
 

'정보처리기사' 카테고리의 다른 글

인터페이스 구현  (0) 2023.04.07
통합 구현  (0) 2023.04.06
데이터 입출력 구현  (0) 2023.04.05
화면 설계  (0) 2023.04.03
2023년 1회 정보처리기사 필기 합격  (0) 2023.03.21