요구사항분석
소프트웨어 개발 방법론
HIPO : 하향식 소프트웨어 개발 문서화 도구
V모델 : 폭포수 모델에 시스템 검증과 테스트 작업을 강조한 모델
소프트웨어 재사용 : 다시 새롭게 개발
소프트웨어 재공학 : 성능을 향상
역공학 : 재발견하거나 다시 만들어내는 작업
소프트웨어 생명주기 : 시스템 요구분석 유지보수까지 절차 (SDLC)
생명주기 종류
폭포수 모델 : 단계 마무리 후 다음 단계
프로토타이핑 : 프로토타입으로 구현
나선형 : 점진적으로 개발
반복적 : 대상을 나누어 병렬적, 반복적 개발
소프트웨어 개발 방법론: 소프트웨어 개발의 시작부터 폐기까지 전과정 형상화
소프트웨어 개발 방법론 종류
구조적 방법론: 기능에 따라 나누고 통합(나씨-슈나이더만(논리의기술 도형표현방법))
정보공학 방법론: 개발에 필요한 관리 절차와 작업 기법을 체계화
객체 지향 방법론: 객체를 기본으로 개발
컴포넌트 기반 방법론: 컴포넌트를 조립해 응용 프로그램 개발
애자일 방법론: 사람이 중심 신속 변화 유연
제품 계열 방법론: 특정 제품에 적응하고 싶은 기능을 개발 , 임베디드
애자일 방법론
xp: 의사소통, 즉각적 피드백 방법론
스크럼 : 정해진 시간에 개발
린 : 낭비를 제거 품질을 향상 (낭비제거,품질 내재화,지식창출,늦은확정,빠른인도,사람존중,전체최적화)
개발 기술 환경 분석
미들웨어 : 운영체제와 소프트웨어 애플리케이션 사이에 위치
오픈 소스 라이선스 : 소스코드가 공개
- GNU (유닉스 공짜) : GNU GPLv3 : 2007.6 소프트웨어 특허에 대처하는것을 정의
BSD : 아무나 개작할 수 있고 수정한 것을 배포할 수 있다.
DBMS 구축 조건 : 성능 가용성 기술지원 상호호환성 구축비용
요구사항 확인
요구공학 : 요구가 반영된 시스템을 위한 도출 분석 명세 확인
SWEBOK : 소프트웨어 공학 지식 체계
요구공학 프로세스 : 도출 -> 분석 -> 명세 -> 확인 및 검증
요구사항 도출 : 브레인스토밍 , JAD회의(결합응용설계) , 프로토타이핑 , 델파이 : 전문가
요구사항 분석 (기출 2021-1)
기능적 요구사항 : 입력에대해 시스템의 반응
기능성 완전성 일관성
비기능적 요구사항: 시스템 구축 품질
신뢰성 사용성 제약사항 유지보수성 등
요구사항 관리
CMMi : 미국 카네기 멜런 대학 단체에서 소프트웨어의 운영 성숙도 능력 확인 (초기 , 관리, 정의, 정량적 관리 , 최적화)
요구사항 관리 프로세스 : 협상 -> 베이스라인 -> 변경관리 -> 확인 및 검증
요구사항 협상 : 정형분석 : 구문과 형식적으로 정의된 의미를 지닌 언어로 요구사항 표현
요구사항 베이스라인
요구사항 변경관리 : 변경통제위원회(CCB)
요구사항 확인 -> 확인 : 사용자의 시각에서 사용자의 요구사항 확인 검증 : 개발자의 시각에서 명세서대로 개발이 되었는지
인수테스트 : 사용자 관점에서 요구사항 충족 여부 알파 : 개발자 관점 베타 : 사용자가 테스트
모델 품질 검증 : 정적분석 , 동적분석 , 요구사항 검토
테스트레벨 : 개발 - 설계 - 기능명세분석 - 요구사항분석 단위테스트 - 통합 - 시스템 - 인수
요구사항 분석 모델
구조적 분석 모델 : 하향식 , 자료흐름도
객체 지향 분석 모델 : UML
요구사항 분석 모델 검증
소프트웨어 개발 자동화 도구 CASE : 요구사항을 자동 분석 및 명세서 기술 도구
형상관리 : 소프트웨어 통제, 변경 상태를 기록하고 보관하는 일련의 작업
개념모델림
UML : 럼바우 객체 지향 분석 기법
객체모델링 : 객체를 다이어그램으로
동적 모델링 : 상태를 시간 흐름에따라
기능 모델링 : 자료흐름도를 이용하여 프로세스간 자료흐름
구조적 다이어그램 : 클래스 , 패키지 , 복합체구조, 객체 , 컴포넌트 , 배치 2020 4회
행위 다이어그램 : 유스케이스(사용자관점) , 활동(업무처리, 연산) , 콜라보레이션(순차와같으면 구조적인면) , 상태머신(객체의 생명주기) , 순차(시간 흐름에 따른 객체상호작용) , 통신(객체관계) , 상호작용개요(상호작용 제어흐름) , 타이밍(상태변화, 시간제약)
UML : 연관 , 의존 , 일반화, 집합, 포함 ,실체화관계
객체지향분석: 사용자의 요구사항을 모든 클래스(객체), 속성 연산 관계 정의
객체지향분석 방법론:
OOSE: 유사케이스를 모델의 근간으로
OMT: 그래픽 표기법으로 소프트웨어 구성요소를 모델링 , 럼바우기법
객체 모델 -> 동적 모델 -> 기능 모델
객체 모델 : 객체관계정의 ER, 객체 다이어그램
동적 모델: 시간의 흐름에 따라 상태다이어그램
기능 모델: 자료흐름을 중심 자료흐름도
디자인패턴
디자인 패턴
목적 (기출)
생성: 객체 인스턴스 생성, 클래스정의 캡슐화
구조: 클래스나 객체의 조합
행위: 클래스나 객체들의 상호작용
범위
클래스: 상속, 컴파일타임에 정적
객체 : 런타임에 동적\
생성 디자인 패턴
Factory Method : 생성할 객체의 클래스를 국한하지 않고 객체를 생성, 서브클래스로 구분해 캡슐화
Singleton (Pattern) : 한 클래스에 한 객체만 존재하도록 제한
Prototype (Pattern) : 기존 객체를 복제함으로써 객체를 생성
추상 팩토리(Abstract Factory) : 구제적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
Builder : 작게 분리된 인스턴스를 조립하듯 조립하여 객체 생성
구조 디자인 패턴 컴퍼지트(Composite) :여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라이언트에서 구별 없이 다루게 해주는 패턴
데커레이터(Decorator) : 객체의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주는 패턴
adapter : 호환성있게 클래스를 개조
Bridge : 기능과 구현 연결 추상과 분리
Facade : 건물의정면 , 퍼사드 객체를 통해서만 관계
Flyweight : 인스턴스를 가능하다면 공유
Proxy : 메모리 대용량 , 네트워크연결
행위 디자인 패턴 옵서버(Observer) : 한 객체의 상태 변화에 따라 다른 객체의 상태도 연동되도록 일대다 객체 의존 관계를 구성하는 패턴
스테이트(State) : 객체의 상태에 따라 객체의 행위 내용을 변경해주는 패턴
스트래티지(Strategy) : 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴
템플릿 메서드(Template Method) :어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하 는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴
커맨드(Command) : 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스 를 설계하는 패턴
visitor : 새로운 오퍼레이션정의
chain of responsibility : 결합도를 없애고 객체고리를 따라 요청
interpreter : 문법에 대한 표현 정의
lterator : 순차적으로 접근 제공
Mediator 상호작용을 객체로 캡슐화
Memento 객체 내부 상태를 객체화
요구사항 확인 및 검증단계의 주요 기법
형상관리
정형 기술 검토 활용
동료검토 : 명세서를 보고 결함
워크 스루 : 짧은 시간동안 회의 리뷰를 통해 검출 문서화
인스펙션: 다른 팀이 검사하여 오류
프로토타이핑 활용 : 프로토타입을 통해
모델검증 : 분석단계에서 모델의 품질 검증
테스트 케이스 및 테스트를 통한 확인 : 각각의 요구사항을 어떻게 할것인가
CASE도구 활용 검증 : CASE도구활용
베이스라인 검증 : 베이스라인을 통해
요구사항 추적표 : 요구사항 정의서를 기준으로
비용산정 모형
하향식 산정 : 전문가
델파이 기법: 전문가의 경험을 통해
상향식 산정: 필요한 기능에따라 비용산정
코드 라인수: 원시코드 낙관,중관,비관 예측치
Man Month: 한사람이 1개월동안 할수 있는 양 ( 코드수 % 개발자월평균 ) % 개발자 수 (기출)
COCOMO 모형: 보햄, 프로그램의 규모에 따라
조직형 : 5만이하
반 분리형 : 30만이하
임베디드형 30만이상
푸트남모형 : 단계별 요구할 인력의 분포 가정
기능점수모형: 기능을 증대시키는 요인별로 가중치로 비용산정
비용산정 자동화 추정도구
SLIM : Rayleigh-Norden곡선과 Putnam예측 모델을 기초로한 도구
ESTIMACS: 다양한 프로젝트, 개인별요소 수용하도록 FP모형 기초
일정관리 모델: 프로젝트가 일정 기한내에 완료될수 있도록 관리모델
주 공정법 : 여러 작업의 수행 순서가 얽혀있는 프로젝트의 일정 계산방법
주공정: 프로젝트 시작부터 종료까지 가장 긴 시간
PERT : 일의 순서 계획적 정리(비관 중간 낙관)
중요 연쇄 프로젝트 관리 : 주 공정 연쇄법으로 자원제약사항을 고려
현행 시스템 분석
현행 시스템 파악 : 어떤 기술을 사용하고 있는가?
현행 시스템 파악 절차 : 구성/기능/인터페이스파악 -> 아키텍처 및 소프트웨어 구성파악 -> 하드웨어 및 네트워크 구성 파악
소프트웨어 아키텍처 : 소프트웨어의 구성요소 특징 관계 표현하는 구조
소프트웨어 아키텍처 4+1뷰 : 고객의 요구사항을 4가지 관점에서보는 소프트웨어적인 접근방법
유스케이스 뷰: 유스케이스, 아키텍처 도출 다른 뷰 검증
논리 뷰 : 시스템의 기능적인 요구사항
프로세스 뷰 : 시스템의 비기능적인 속성(자원 효율성, 병행실행, 비동기, 이벤트처리)
구현 뷰: 정적인 소프트웨어 모듈, 컴포넌트 구조 의존성
배포 뷰 : 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가
소프트웨어 아키텍처 패턴 유형
계층화 패턴 : 시스템의 계층으로
클라이언트 서버 패턴 : 서버와 클라이언트
파이프 필터 패턴 : 데이터 스트림을 생성하고 처리하는 시스템에서만 사용, 재사용성 확장 용이
브로커 패턴 : 분리된 컴포넌트들로 이루어진 분산시스템사용 , 각 컴포넌트들 원격 실행
모델 뷰 컨트롤러 패턴 : 컴포넌트로 분리
모델: 핵심기능 데이터보관
뷰 : 사용자에게 정보표시
컨트롤러: 사용자로부터 요청을 받음
소프트웨어 아키텍처 비용 평가 모델 종류
SAAM : 변경 용이성, 기능성 경험이없는 조직에서 사용가능
ATAM: 아키텍처 품질 속성을 만족시키는지
CBAM: ATAM바탕 경제적 의사결정에 대한 요구 충족
ADR : 응집도 평가모델
ARID : 특정부분에 대한 품질요소
OSI 계층 (기출)
응용계층 : 사용자와 네트워크간
표현계층 : 데이터 형식 설정 암복호화
세션 계층: 연결 접속 및 동기 제어
전송 계층 : 신뢰성 통신보장 흐름제어 혼잡제어
네트워크 계층 : 단말간 데이터 전송
데이터링크 계층 : 인접 시스템 데이터 전송 전송오류
물리 계층 : 0과 1 전기적 신호 변환
DBMS : 데이터와 관련된 응용 프로그램
미들웨어 : 분산 컴퓨팅에서 프로그램간 통신 소프트웨어
WAS : (웹 어플리케이션 서버) 서버 계층 트랜잭션, 연동
'IT 관련 > 정보처리기사' 카테고리의 다른 글
2022 2회정보처리기사 실기 chatper 8 SQL(빈도자주) (0) | 2022.04.28 |
---|---|
2022 2회 정보처리기사 실기 chapter5 인터페이스 구현 (0) | 2022.04.28 |
2022 2회 정보처리기사 실기 chapter 3 통합구현 (0) | 2022.04.28 |
2022 2회 정보처리기사 실기 chapter2 데이터입출력구현 (빈도자주) (0) | 2022.04.28 |
2022 2회 정보처리기사 실기 chapter6 화면설계 (0) | 2022.04.27 |