요구사항의 정의
소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 해단 설명과 정상적으로 운영되는데 필요한 제약조건 등을 나타낸다.
- 요구사항 유형
- 기능 요구사항(Functional requirement)
- 시스템이 무엇을 하는지, 어떤 기능을 하는지 등 사용자가 시스템을 통해 제공받기를 원하는 기능이나 시스템이 반드시 수행해야 하는 기능
- 비기능 요구사항(Non-Functional requirement)
- 품질이나 제약사항과 관련된 요구사항으로, 시스템의 장비 구성, 성능, 인터페이스, 테스트, 보안 등의 요구사항을 말한다.
- 사용자 요구사항
- 사용자 관점에서 본 시스템이 제공해야 할 요구사항
- 시스템 요구사항
- 개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항
- 기능 요구사항(Functional requirement)
- 소프트웨어 개발 방법론
- 소프트웨어 생명주기(SDLC)
- 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차
- 소프트웨어 생명 주기 모델 종류 [폭프나반]
- 폭포수 모델 : 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어간다.
- 프로토타이핑 모델 : 프로토타입을 구현해, 고객의 피드백을 반영하여 만들어간다.
- 나선형 모델 : 위험을 최소화하기 위해 점진적으로 개발한다.
나선형 모델 절차 [계위개고] : 계획 및 정의 / 위험분석 / 개발 / 고객 평가 - 반복적 모델 : 구축 대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발한다.
- 소프트웨어 개발방법론 종류
- 구조적 방법론 : 전체 시스템을 기능에 따라 나누어 개발하고 이를 통합한다. 나씨 슈나이더만 차트 사용
- 정보공학 방법론 : 정보시스템 개발에 필요한 관리 절차와 작업 기반을 체계화
- 객체지향 방법론 : 객체라는 기본 단위로 시스템 분석 및 설계
- 컴포넌트 기반 방법론(CBD) : 컴포넌트를 조립해 하나의 새로운 운용 프로그램 작성
- 애자일 방법론 : 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템 개발
- 제품 계열 방법론 : 특정 제품에 적용하고 싶은 공통된 기능을 정의해 개발, 임베디드
- 애자일 방법론의 유형
- XP : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
- SCRUM : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 방법론
- LEAN : 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해 낭비 요소를 제거하는 방법론
- XP의 5가지 가치
- 용기, 단순성, 의사소통, 존중, 피드백
- XP의 12가지 기본 원리
- 짝 프로그래밍 : 개발자 둘이서 짝으로 코딩하는 원리
- 지속적인 통합(CI) : 매일 여러 번씩 소프트웨어를 통합하고 빌드
- 메타포어 : 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자간의 의사소통을 원활하게 한다.
- 테스트 기반 개발(TDD) : 만들 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다.
- 리팩토링(Refactoring) : 프로그램의 기능은 바꾸지 않고 중복제거, 단순화 등을 위해 시스템 재구성을 한다.
- 델파이 기법
- 전문간의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 기법
- 비용 산정 모형 종류
- LoC 모형 : 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정해 예측치를 구해 비용을 산정
- Man Month 모형 : 한 사람이 1개월동안 할 수 있는 일의 양을 기준으로 프로젝트 비용 산정하는 방식
- COCOMO 모형 : 보햄이 제안, 프로그램 규모에 따른 비용 산정
- 조직형
- 반 분리형
- 임베디드형
- 푸트남 모형 : 개발주기의 단계별로 요구할 인력의 분포를 가정하는 방식, 생명주기 예측 모형
- 기능점수 모형 : 요구 기능에 따른 가중치 부여
- 일정관리 모델
- 주 공정법 : 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정 계산
- PERT : 일의 순서를 계획적으로 정리하기 위한 수렴 기법, 비관치, 중간치, 낙관치를 이용
- 주 공정 연쇄법 : 자원 제약사항을 고려해 일정 작성
- 현행 시스템 분석
- 현행 시스템 파악
- 구성/기능/인터페이스 파악 → 아키텍처 및 소프트웨어 구성 파악 → 하드웨어 및 네트워크 구성 파악
- 소프트웨어 아키텍처
- 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중 외부에 드러나는 특성, 그리고 구성요서 간의 관계를 표현하는 시스템의 구조나 구조체
- 소프트웨어 아키텍처 4+1 뷰 [유논프구배]
고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법
- 유스케이스 뷰 : 다른 뷰를 검증하는데 사용
- 논리 뷰 : 시스템의 기능적 요구사항 설명
- 프로세스 뷰 : 시스템의 비기능적 요구사항 설명
- 구현 뷰 : 모듈의 구성, 컴포넌트 구조, 의존성
- 배포 뷰 : 어떻게 배치되는가.
- 유스케이스
- 시스템 요구사항이자, 사용자의 입장에서 바라본 시스템의 기능
- 소프트웨어 아키텍처 패턴
- 소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결 방식
- 소프트웨어 아키텍처 패턴 유형
- 계층화 패턴 : 시스템을 계층으로 구분해 구성하는 패턴
- 클라이언트-서버 패턴 : 하나의 서버와 다수의 클라이언트로 구성된 패턴
- 파이프-필터 패턴 : 데이터 스트림을 생성하고 처리하는 시스템에서 사용
- 브로커 패턴 : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용, 각 컴포넌트들 원격 서비스 실행을 통해 상호작용 가능
- 모델-뷰-컨트롤러 패턴(MVC)
- 모델 : 핵심 기능과 데이터 보관
- 뷰 : 사용자에게 정보 표시
- 컨트롤러 : 사용자들로부터 요청 입력 받아 처리
- 소프트웨어 아키텍처 비용 평가 모델 종류 [SACAA]
- SAAM : 변경 용이성과 기능성에 집중, 경험이 없는 조직에서도 활용 가능
- ATAM : 아키텍처 품질 속성을 만족시키는지 판단
- CBAM : ATAM 바탕의 시스템, 경제적 의사결정에 대한 요구 충족
- ADR : 소프트웨어 아키텍처 구성요소 간 응집도 평가
- ARID : 전체 아키텍처가 아닌 특정 부분에 대한 품질요소에 집중
- 디자인 패턴
- 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
- 디자인 패턴 구성요소 [패문솔 사결샘]
- 패턴 이름
- 문제
- 솔루션
- 사례
- 결과
- 샘플코드
- 디자인 패턴 유형[생구행]
- 목적
- 생성 : 객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식 구조화, 캡슐화 수행
- 구조 : 클래스나 객체의 조합을 다루는 패턴
- 행위 : 클래스나 객체들이 상호작용 하는 방법과 역할 분담을 다루는 패턴
- 범위 : 클래스, 객체
- 목적
- 디자인 패턴 종류
- [생빌 프로 팩앱싱]
생성 패턴 : 빌더 / 프로토타입 / 팩토리 메서드 / 앱스트랙 팩토리 / 싱글톤 - [구 브데 퍼플 프록 컴 어]
구조 패턴 : 브리지 / 데코레이터 / 퍼사이드 / 플라이 웨이트 / 프록시 / 컴포지트 / 어댑터 - [행 미인이 템옵 스테 비커 스트 메체]
행위 패턴 : 미디에이터 / 인터프리터 / 이터레이터 / 템플릿 메서드/ 옵져버 / 스테이트/ 비지터 / 커맨드 / 스트레티지 / 메멘토 / 체인 오브 리스판서빌리티
- [생빌 프로 팩앱싱]
- 운영체제
- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스 담당
- 운영체제 종류
- 윈도우, 유닉스, 리눅스, 안드로이드, ios
- 미들웨어
- 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어
- 현행 시스템 파악
- 요구사항 확인
- 요구공학
- 사용자의 요구가 반영된 시스템을 개발하기 위해서 사용자의 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 활동
- 기능적 요구사항
- 시스템이 제공하는 기능, 서비스에 대한 요구사항(기능성, 완전성, 일관성)
- 비기능적 요구사항
- 시스템이 수행하는 기능 이외의 사항, 시스템 구축에 대한 제약사항에 관한 요구사항, 품질, 시스템 환경, 프로젝트 계획에 관한 요구사항
- 요구사항 도출 단계 주요 기법
- 인터뷰, 워크숍, 브레인스토밍, 설문조사
- 델파이 기법
- 롤플레잉
- 정형 기술 검토 동워인]
- 동료 검토
- 워크 스루
- 인스펙션
- 요구공학
- UML 구성요소 [사관다]
- 사물
구조 사물클래스, 유스케이스, 컴포넌트, 노드 등
시스템의 개념적 물리적 요소를 표현- 행동 사물
시간과 공간에 따른 요소들의 행위를 표현 - 그룹 사물
요소들을 그룹으로 묶어서 표현 - 주해 사물
부가적인 설명이나 제약조건 등을 표현
- 행동 사물
- 관계
- 연관 관계
- 집합 관계
- 의존 관계
- 실체화 관계
- 다이어그램
- 구조적 다이어그램 [클객 컴배 복패]
- 클래스 다이어그램
- 객체 다이어그램
- 컴포넌트 다이어그램
- 배치 다이어그램
- 복합체 구조 다이어그램
- 패키지 다이어그램
- 행위 다이어그램 [유시커 상활타]
- 유스케이스 다이어그램
- 시퀀스 다이어그램
- 커뮤니케이션 다이어그램
- 상태 다이어그램
- 활동 다이어그램
- 상호작용 개요 다이어그램
- 타이밍 다이어그램
- 구조적 다이어그램 [클객 컴배 복패]
- 사물
- 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어다.
- 유스케이스
- 클래스 다이어그램시스템을 구성하는 요소를 문서화하는 데 사용클래스, 제약조건, 관계 등으로 구성
- 코딩에 필요한 객체의 속성, 함수 등의 정보를 잘 표현하고 있어 시스템을 모델링 하는 데 자주 사용된다.
- 시스템을 구성하는 요소에 대해 이해할 수 있는 구조적 다이어그램
- UML/클래스 간의 관계 [연집복 일의실]
- 연관 관계
- 집합 관계 : 하나의 객체에 여러 개의 독립적인 객체들이 구성
- 복합 관계 : 영구적, 집합 관계보다 더 강한 관계
- 일반화 관계 : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현
- 의존 관계 : 하나의 클래스가 또 다른 클래스 사용
- 실체화
- UI 시나리오 문서의 작성 요건 [완일이가 추수]
- 완전성, 일관성, 이해성, 가독성, 추적 용이성, 수정 용이성
반응형
'Programming > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 애플리케이션 테스트 관리 요약 (0) | 2022.05.01 |
---|---|
[정보처리기사 실기] 화면 설계 요약 (0) | 2022.05.01 |
[정보처리기사 실기] 통합 구현 요약 (0) | 2022.05.01 |
[정보처리기사 실기] 서버 프로그램 구현 요약 (0) | 2022.05.01 |
[정보처리기사 실기] 데이터 입/출력 구현 요약 (0) | 2022.05.01 |
댓글