[1] 요구사항 확인
(1) 소프트웨어 생명주기 (SDLC)
- 폭포수 모델 : 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어감, 선형 순차적 모형 (고전적 생명주기 모형)
- 프로토타이핑 모델 : 프로토타입을 구현해, 고객의 피드백을 반영
- 나선형 모델 : 위험을 최소화하기 위해 점진적으로 개발
- 반복형 모델 : 구축 대상을 나누어 병렬적으로 개바라 후 통합하거나, 반복적으로 개발
(2) 소프트웨어 개발방법론
- 구조적 방법론 : 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합 ( 나씨 - 슈나이더만 차트 사용(도형식, 제어 논리 구조, 명확한 식별))
- 정보공학 방법론 : 정보시스템 개발에 필요한 관리 절차와 작업 기반을 체계화
- 객체지향 방법론(CBD) : 컴포넌트를 조립해 하나의 새로운 응용 프로그램 작성 (생산성, 확장성, 재사용)
- 애자일 방법론 : 절차보다는 사람이 중심, 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템 개발
- 제품 계열 방법론 : 특정 체품에 적응하고 싶은 공통된 기능을 정의해 개발, 임베디드에 유용
(3) 일정관리 모델
- 주 공정법(CPM) : 여러 작업의 수행 순서가 얽혀 읽는 프로젝트의 일정 계산 (임계 경로는 가장 오래 걸리는 경로)
- PERT : 일의 순서를 계획적으로 정리하기 위한 수렴 기법, 비관치, 중간치, 낙관치의 3점 추정방식 이용
- 주 공정 연쇄법(CCPM) : 자원제약사항을 고려해 일정 작성
(4) 현행 시스템 파악
- 구성/기능/인터페이스 파악 -> 아키텍처 및 소프트웨어 구성 파악 -> 하드웨어 및 네트워크 구성 파악
(5) 소프트웨어 아키텍처
- 여러가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중 외부에 드러나는 특성, 그리고 구성요소 간의 관례를 표현하는 시스템의 구조나 구조체
(6) 소프트웨어 아키텍처 4+1 뷰
고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근방법- 유스케이스 뷰 : 유스케이스 또는 아키텍처 도출, 다른 뷰를 검증하는데 사용- 논리 뷰 : 시스템의 기능적인 요구사항- 프로세스 뷰 : 시스템 비기능적 요구사항- 구현 뷰 : 모듈의 구성을 보여줌- 배포 뷰 : 어떻게 배치되는가
(7) 소프트웨어 아키텍처 패턴 유형
- 계층화 패턴(Layered) : 서로 마주 보는 두 개의 계층 사이에서만 상호작용- 클라이언트 - 서버 패턴 : 하나의 서버와 다수의 클라이언트- 파이프 - 필터 패턴 : 데이터 스트림을 생성하고 처리하는 시스템에서 사용- 브로커 패턴 : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 원격 서비스 실행을 통해 상호작용이 가능
- MVC 패턴
- 모델 : 핵심 기능, 데이터 보관
- 뷰 : 사용자에게 정보 표시
- 컨트롤러 : 사용자로부터 요청 입력 받아 처리
(8) 소프트웨어 아키텍처 비용 평가 모델 종류
- SAAM : 변경 용이성, 기능에 집중
- ATAM : 아키텍처 품질 속성을 만족 시키는지 판단
- CBAM : 경제적 의사결정에 대한 요구를 충족하는지
- ADR : 응집도 평가 모델
- ARID : 특정 부분 품질 요소
(9) 디자인 패턴
SW설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
- 생성
- Builder : 복잡한 인스턴스를 조립해 만드는 구조
- Protype : 처음부터 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정해 사용하는 패턴
- Factory method : 상위 클래스에서 인터페이스 정의, 하위 클래스에서 인스턴스 생성
- Abstract factory : 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스 제공
- Singleton : 전역 변수 사용하지 않고 객체 하나만 생성, 그 객체는 어디서든지 참조할 수 있다.
- 구조
- Adapter : 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞추는 역할
- Bridge : 기능 계층과 구현 계층을 연결, 구현부에서 추상 계층 분리
- Composite : 객체들의 관례를 트리 구조로 구성
- Decorator : 기존에 구현되어 있는 클래스에 필요한 기능 추가해 나감
- Facade : 복잡한 시스템에 대한 단순한 인터페이스 제공, 시스템 구조에 대한 파악 쉽게
- Flyweight : 메모리 절약, '클래스의 경량화' 목적
- Proxy : 실체 객체에 대한 대리 객체
- 행위
- Mediator : 중간에 통제, 중재자
- Interpreter : 언어의 다양한 해석, 구문의 해석을 맡는 클래스 각각 작성
- Iterator : 컬렉션 구현 방법 누출 시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공
- Template Method : 상위 클래스-추상, 하위 클래스-구체
- Observer : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락
- State : 상태에 따라 다르게 처리할 수 있도록 행위 내용 변경
- Vistor : 클래스의 메서드가 각 클래스를 돌아다니면서 특정 작업 수행
- Command : 명령이 들어오면 그에 맞는 서브 클래스 선택되어 실행
- Stategy : 알고리즘 군 정의, 행위를 클래스로 캡슐화해 동적으로 행위 자유롭게 변환
- Memento : Undo(작업취소) 기능 개발
- Chain of Responsibility : 정적으로 어떤 기능에 대한 처리의 연결이 하드코딩 되어 있을 때, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결한 디자인
(10) 운영체제
컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스 담당
- 윈도즈 : 중/소규모 서버, 일반PC
- 유닉스 : 대용량 처리, 엔터프라이즈 급 서버
- 리눅스 : 중/대규모 서버 대상, 높은 보안성, 비용 가장 적음
- 안드로이드 : 리눅스 위에서 구동, 자바와 코틀린으로 작성
- IOS : 높은 보안성, 고성능
(11) 운영체제 현행 시스템 분석 고려사항
- 신뢰도, 성능, 기술 지원, 주변 기기, 구축 비용
(12) 미들웨어
응용 프로그램과 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 SW
WAS : 서버 계층에서 애플리케이션이 동작할 수 있는 환경 제공, 트랜잭션 처리, 이기종 시스템 연동
(13) 요구공학
- 사용자가 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 활동
- 도출
- 인터뷰 : 이해 관계자와 직접 대화
- 설문조사 : 설문지, 여론 조사
- 브레인스토밍 : 말을 꺼내기 쉬운 분위기로 만들어 비판 없이 수용할 수 있도록 하는 회의
- 델파이 기법 : 전문가의 경험적 지식을 통한 문제 해결 방법
- 롤 플레잉 : 여러 사람이 각자가 맡은 역을 연기
- 워크숍 : 단기간에 다양하고 전문적인 정보를 획득하고 공유
- 분석
- 청취 기술
- 인터뷰와 질문 기술
- 명세
- 비정형 명세 기법
- 자연어 기반
- 사용자와 개발자 이해 용이
- 명확성 및 검증 문제
- 정형 명세 기법
- 수학점 원리와 표기법, Z-스키마, Petri Nets
- 표현 간결, 명확성 및 검증 용이
- 기법 이해 어려움
- 비정형 명세 기법
- 확인 및 검증
- 정형 기술 검토
- 동료 검토 : 2~3명이 진행, 작성자가 명세서 설명하고 이해 관계자들이 설명을 들으면서 결함 발견
- 워크스루 : 검토자료를 회의 전에 배포해서 사전 검토한 후 짧은 시간 동안 회의 진행
- 인스펙션 : 저작자 외의 다른 전문가가 또는 팀이 검사하여 오류를 찾는 공식적 검토 방법
- 정형 기술 검토
(14) 요구사항
- 기능적 요구사항 : 시스템이 제공하는 기능, 서비스에 대한 요구사항 (시용자UI)
- 비기능적 요구사항 : 시스템이 수행하는 기능 이외의 사항 (백앤드)
'IT_STUDY > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 6. 서버 프로그램 구현 (0) | 2023.09.20 |
---|---|
[정보처리기사 실기] 5. 인터페이스 구현 (0) | 2023.09.12 |
[정보처리기사 실기] 4. 통합 구현 (0) | 2023.09.12 |
[정보처리기사 실기] 3. 데이터 입출력 구현 (0) | 2023.09.12 |
[정보처리기사 실기] 2. 화면 설계 (0) | 2023.09.12 |