| 요구사항 확인
- 현행시스템 파악
구성/기능/인터페이스 파악 → 아키텍처 및 소프트웨어 구성 파악 → 하드웨어 및 네트워크 구성파악
- 요구사항 정의
SWEBOK : IEEE Computer Society 에서 Software Engineering 분야에서 지식을 정리한 체계
- 요구사항 개발 프로세스 상세
: 도출→ 분석 → 명세 → 확인
- 요구사항 도출 기법
: 핵심그룹, 심층워크숍, 인터뷰, 집단창의력기법, 설문지 및 설문조사,
사용자업무관찰기법, 프로토타입, 집단의사결정기법
- 요구사항 분석 기법
: 요구사항 분류 / 개념 모델링 / 요구사항 할당 / 요구사항 협상 / 정형 분석
- UML ( Undified Modeling Language )
: 소프트웨어 집약시스템의 시각적 모델을 만들기 위해 도안 표기법을 사용하고,
객체 관리를 위해 표준화 된 범용 모델링 언어이다.
- UML 특징
: 가시화 언어 / 명세화 언어 / 문서화 언어 / 구축 언어
- UML 4+1 View Model
: 고객 요구사항을 중심으로 설계자, 시스템 통합자, 개발자, 시스템 엔지니어 관점으로
SW Architecture를 구축하는 설계 방법이다 .
다양한 이해관계자들이 SW Architecture를 바라보는 Architecture View의 관점 간 관계를 정의한 사실상의 표준.
- UML 4+1 View Model 구성요소
: Use-case View / Logical View / Implementation View / Process View / Deployment View
- SRS
: 요구분석 단계의 요구사항과 스펙을 정리한 산출물 > SW 요구사항명세문서
- 요구사항 명세서의 평가 기준
: 정확성 / 명확성 / 완전성 / 일관성 / 중요성
- 요구사항 명세서 작성시 주의사항
: 이해성 / 상호성 / 기능정의 / 제약조건 / 테스트 기준 / 품질 측정
- 요구사항 확인 (검증)
: 요구사항 검토 / 프로토 타이핑 / 모델 검증 / 인수테스트
- 프로젝트 수행시 요구사항 보장을 위한 방안
: 상세요구사항(RFP) → 요구분석 → 분할발주 → 보증활동 →감리시행 →요구사항보장(RFP)
- 분석모델 검증
: 유스케이스 모델 검증 → 개념수준 분석 클래스 검증 → 분석클래스 검증
* 클래스 다이어그램 : 클래스와 클래스간 관계를 기술하는 다이어그램
| 기타 기출문제
| 다음이 설명하고 있는 소프트웨어 설계와 관련 용어
• 소프트웨어 개발 방법론의 바탕이 되는 것으로, 소프트웨어를 개발하기 위해 정의하고 운용, 유지보수
등의 과정을 각 단계별로 나눈 것이다.
• 소프트웨어 개발 단계와 각 단계별 주요 활동, 그리고 활동의 결과에 대한 산출물로 표현한다.
• 일반적으로 사용되는 모형에는 폭포수 모형, 프로토타입 모형, 나선형 모형, 애자일 모형 등이 있다.
> 소프트웨어 생명 주기(Software Life Cycle)
| 소프트웨어 개발 방법론과 관련하여 다음 설명에 해당하는 모형
• 소프트웨어 개발 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히 매듭짓고 그 결과를 철저하
게 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론이다.
• 소프트웨어 공학에서 가장 오래되고 가장 폭넓게 사용된 전통적인 소프트웨어 생명 주기 모형으로, 고
전적 생명 주기 모형이라고도 한다.
• 소프트웨어 개발 과정의 한 단계가 끝나야만 다음 단계로 넘어갈 수 있는 선형 순차적 모형이다.
> 폭포수 모형(Waterfall Model)
| 소프트웨어 개발 방법론 중 프로토타입 모형(Prototype Model)에 대해 간략히 서술
> 사용자의 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 시제품을 만들어 최종 결과
물을 예측하는 모형이다.
| 소프트웨어 개발 방법론과 관련하여 다음 설명에 해당하는 모형이 무엇인지 쓰시오.
• 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형으로, 보헴(Boehm)이 제안하였다.
• 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발하는 것이다.
• 소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 한다.
• 점진적으로 개발 과정이 반복되므로 누락되거나 추가된 요구사항을 첨가할 수 있고, 정밀하며, 유지보수
과정이 필요 없다.
답 : 나선형 모형(Spiral Model, 점진적 모형)
| 소프트웨어 생명 주기 모형에 대한 다음 설명에서 괄호에 들어갈 알맞은 용어를 한글 또는 영문
(Fullname 또는 약어)으로 쓰시오.
• () 모형은 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발과
정을 진행한다.
• 어느 특정 개발 방법론이 아니라 좋은 것을 빠르고 낭비 없게 만들기 위해 고객과의 소통에 초점을 맞
춘 방법론을 통칭한다.
• 각 개발주기에서는 고객이 요구사항에 우선순위를 부여하여 개발 작업을 진행한다.
• 소규모 프로젝트, 고도로 숙달된 개발자, 급변하는 요구사항에 적합하다.
답 : 애자일 모형(Agile Model)
| 다음이 설명하고 있는 용어를 쓰시오.
• 애자일 모형을 기반으로 하는 소프트웨어 개발 방법론이다.
• 럭비에서 반칙으로 경기가 중단된 경우 양 팀의 선수들이 럭비공을 가운데 두고 상대팀을 밀치기 위해
서로 대치해 있는 대형을 가리키는 말에서 유래한 것으로 팀이 중심이 되어 개발의 효율성을 높인다는
의미가 내포된 용어이다.
• 팀원 스스로가 팀을 구성(self-organizing)해야 하며, 개발 작업에 관한 모든 것을 스스로 해결
(cross-functional)하는 팀 위주의 개발 방법론이다.
답 : 스크럼(Scrum) 기법
| 애자일 기반의 개발 방법론과 관련하여 다음 설명에 해당하는 모형을 쓰시오.
• 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화
하여 개발 생산성을 향상시키는 모형이다.
• 짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극적인 참여를 통해 소프트웨어를 빠르게 개발하는 것
을 목적으로 한다.
• 릴리즈 테스트마다 고객을 직접 참여시킴으로써 요구한 기능이 제대로 작동하는지 고객이 직접 확인할
수 있다.
• 의사소통(Communication), 단순성(Simplicity), 용기(Courage), 존중(Respect), 피드백(Feedback)을 핵
심 가치로 삼는다.
답 : XP(eXtreme Programming) 기법
| 다음은 XP(eXtreme Programming) 개발 방법론의 주요 실천 방법(Practice)에 대한 설명이다. 괄호
(①, ②)에 들어갈 알맞은 실천 방법을 쓰시오.
실천 방법 : 내용
① : 다른 사람과 함께 프로그래밍을 수행함으로써 개발에 대한 책임을 공동으로
나눠 갖는 환경을 조성한다.
Test-Driven Development (테스트 주도 개발)
: 개발자가 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성하므로 자신이 무엇을 해야 할지를 정확히 파악한다.
/ 테스트가 지속적으로 진행될 수 있도록 자동화된 테스팅 도구(구조, 프레임워크)를 사용한다.
② : 개발에 참여하는 모든 구성원(고객 포함)들은 각자 자신의 역할이 있고 그 역할에 대한 책임을 가져야 한다.
Continuous Integration (계속적인 통합)
: 모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합된다.
Design Improvement (디자인 개선) 또는 Refactoring(리팩토링)
: 프로그램 기능의 변경 없이, 단순화, 유연성 강화 등을 통해 시스템을 재구성한다.
Small Releases (소규모 릴리즈) : 릴리즈 기간을 짧게 반복함으로써 고객의 요구 변화에 신속히 대응할 수 있다.
답
ㆍ① : Pair Programming(짝 프로그래밍)
ㆍ② : Whole Team(전체 팀)
| 다음이 설명하고 있는 용어를 영문(Fullname 또는 약어)으로 쓰시오.
• 소프트웨어의 품질 특성과 평가를 위한 국제 표준 지침이다.
• 주요 품질 특성은 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성이다.
• 소프트웨어의 품질에 대한 요구사항을 기술하거나 개발중인 또는 개발이 완료된 소프트웨어의 품질 평
가 등에 사용된다.
답 : ISO/IEC 9126
| 소프트웨어의 품질은 소프트웨어의 기능, 성능, 만족도 등 소프트웨어에 대한 요구사항이 얼마나
충족하는가를 나타내는 소프트웨어 특성의 총체이다. ISO/IEC 9126에서 정의하고 있는 6가지의 품질
답 : 신뢰성 , 효율성, 이식성, 기능성, 사용성, 유지보수성
| UI 설계서 작성 순서
1. UI 설계서 표지 : 다른 문서와 혼동되지 않도록 프로젝트명 또는 시스템명을 포함시켜 작성
2. UI 설계서 개정 이력 : UI 설계서가 수정될 때마다 어떤 부분이 어떻게 수정되었는지를 정리해 놓은 문서
3. UI 요구사항 정의서 : 사용자의 요구사항을 확인하고 정리한 문서로, 사용자 요구사항의 UI 적용 여부를
4. 시스템 구조 : UI 요구사항과 UI 프로토타입에 기초하여 전체 시스템의 구조를 설계한 것으로 사용자의 요
구사항이 어떻게 시스템에 적용되는지 알 수 있음
5. 사이트 맵(Site Map) : 사이트 맵은 시스템 구조를 바탕으로 사이트에 표시할 콘텐츠를 한 눈에 알아 볼
수 있도록 메뉴별로 구분하여 설계한 것
6. 프로세스(Process) 정의서 : 사용자 관점에서 사용자가 요구하는 프로세스들을 작업 진행 순서에 맞춰 정
리한 것으로 UI의 전체적인 흐름을 파악할 수 있음
7. 화면 설계 : UI 프로토타입과 UI 프로세스를 참고하여 필요한 화면을 페이지별로 설계한 것
문제 12
| UI 설계와 관련한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
•( )은 사용자가 시스템을 통해 원하는 목표를 얼마나 효과적으로 달성할 수 있는가에 대한 척도이다.
• UI의 주된 목적은 ()이 뛰어난 UI를 제작하는 것이다.
• ( ) 평가는 사용자 측면에서 복잡한 시스템을 얼마나 편리하게 사용할 수 있는지를 평가하는 것으
로, 시스템의 문제점을 찾아내고 개선 방향을 제시하기 위한 조사 과정이다.
• UI의 구조, 기능, 가치 등에 대해 사용자가 생각하는 사용자 모형과 시스템 설계자가 만들려고 하는 개
발자 모형 간의 차이를 최소화해야 () 이 뛰어난 설계를 할 수 있다.
답 : 유용성(Usability)
| 다음 설명에 해당하는 용어를 영문(Fullname 또는 약어)으로 쓰시오.
• 사람이 시스템을 보다 편리하고 안전하게 사용할 수 있도록 연구하고 개발하는 학문으로, 최종 목표는
시스템을 사용하는데 있어 최적의 사용자 경험(UX)을 만드는 것이다.
• 원래 사람과 컴퓨터의 상호작용을 연구해서 사람이 컴퓨터를 편리하게 사용하도록 만드는 학문이었으
나, 대상이 컴퓨터뿐만 아니라 서비스, 디지털 콘텐츠 등으로, 사람도 개인뿐만 아니라 사회나 집단으로
확대되었다.
답 : HCI(Human Computer Interaction/Interface)
문제 14
| 다음이 설명하고 있는 용어를 쓰시오.
• 제품이나 작업환경을 사용자의 감성에 알맞도록 설계 및 제작하는 기술로, 인문사회과학, 공학, 의학 등 여러 분야의 학문이 공존하는 종합과학이다.
• 인간의 삶을 편리하고 안전하며 쾌적하게 만들기 위해 생체계측 기술, 감각계측 기술, 센서, 인공지능, 생체제어 기술을 활용하여 인간의 감성을 구체적으로 제품 설계에 활용한다.
답 : 감성공학
| UI와 관련한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 영문(Fullname 또는 약어) 쓰시오.
• ( )는 사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적인 경험으로, 단순히 기능이나 절차상의 만족뿐만 아니라 사용자가 참여, 사용, 관찰하고, 상호 교감을 통해서 알 수 있는 가치 있는 경험을 말한다.
• ( )는 기술을 효용성 측면에서만 보는 것이 아니라 사용자의 삶의 질을 향상시키는 하나의 방향으로 보는 새로운 개념이다.
• UI가 사용성, 접근성, 편의성을 중시한다면 ( )는 이러한 UI를 통해 사용자가 느끼는 만족이나 감정을
중시한다.
• ( )의 특징은 다음과 같다.
주관성(Subjectivity) : 사람들의 개인적, 신체적, 인지적 특성에 따라 다르므로 주관적이다.
정황성(Contextuality) : 경험이 일어나는 상황 또는 주변 환경에 영향을 받는다.
총체성(Holistic) : 개인이 느끼는 총체적인 심리적, 감성적인 결과이다.
답 : UX(User Experience)
| 다음은 소프트웨어 아키텍처(Software Architecture)에 대한 설명이다.
소프트웨어 아키텍처는 소프트웨어의 골격이 되는 기본 구조이자, 소프트웨어를 구성하는 요소들 간의 관계
를 표현하는 시스템의 구조 또는 구조체이다.
* 모듈화 (Modularity) : 소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록
시스템의 기능들을 모듈 단위로 나누는 것이다.
* 추상화(Abstraction) : 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는 것이다.
* 단계적 분해 (Stepwise Refinement) : Niklaus Wirth에 의해 제안된 하향식 설계 전략으로, 문제를 상위의
중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법이다.
* 정보은닉 (Information Hiding) : 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나
변경하지 못하도록 하는 기법이다.
| 소프트웨어 설계 과정
: 설계 목표 설정 > 시스템 타입 설정 > 아키텍처 패턴 적용 > 서브시스템 구체화 > 검토
| 소프트웨어 설계와 관련된 다음 설명에 해당하는 용어를 한글 또는 영문(Fullname 또는 약어)으로
• 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미한다.
• 소프트웨어 시스템의 구조를 구성하기 위한 기본적인 윤곽을 제시한다.
• 서브시스템들과 그 역할이 정의되어 있으며, 서브시스템 사이의 관계와 여러 규칙·지침 등이 포함되어
있다.
답 : 아키텍처 패턴(Architecture Pattern)
문제 20
| 아키텍처 패턴에 대한 다음 설명에 해당하는 패턴을 한글 또는 영문(Fullname 또는 약어)으로 쓰시오.
• 시스템을 계층(Layer)으로 구분하여 구성하는 고전적인 방법 중의 하나이다.
• 각각의 서브시스템들이 계층 구조를 이루며, 상위 계층은 하위 계층에 대한 서비스 제공자가 되고, 하위
계층은 상위 계층의 클라이언트가 되는 패턴이다.
• 대표적인 모델로 OSI 참조 모델이 있다.
답 : 레이어 패턴(Layers Pattern)
| 아키텍처 패턴에 대한 다음 설명에 해당하는 패턴을 한글 또는 영문(Fullname 또는 약어)으로 쓰시오.
• 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴이다.
• 사용자가 클라이언트를 통해 서버에 요청하고 클라이언트가 응답을 받아 사용자에게 제공하는 방식으로
서비스를 제공한다.
답 : 클라이언트-서버 패턴(Client-Server Pattern)
문제 22
| 아키텍처 패턴에 대한 다음 설명에 해당하는 패턴을 한글 또는 영문(Fullname 또는 약어)으로 쓰시오.
• 데이터 스트림 절차의 각 단계를 필터 컴포넌트로 캡슐화하여 파이프를 통해 데이터를 전송하는 패턴이다.
• 컴포넌트는 재사용성이 좋고, 추가가 쉬워 확장이 용이하며, 재배치를 통해 다양한 처리 루틴을 구축하
는 것이 가능하다.
• 주로 데이터 변환, 버퍼링, 동기화 등에 사용된다.
답 : 파이프-필터 패턴(Pipe-Filter Pattern)
| 소프트웨어 설계와 관련된 다음 설명에 해당하는 용어를 쓰시오.
• 각 모듈의 세분화된 역할이나 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현
방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미한다.
• 재사용할 수 있는 기본형 코드들이 포함되어 있다.
• 1995년 GoF가 생성 패턴 5개, 구조 패턴 7개, 행위 패턴 11개, 총 23개의 패턴으로 정리한 것이 지금
까지도 소프트웨어 공학이나 현업에서 많이 사용되고 있다.
답 : 디자인 패턴(Design Pattern)
| 다음은 GoF의 디자인 패턴 중 생성 패턴(Creational Pattern)에 대한 설명이다.
* 추상팩토리 : 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관·의존하는
객체들의 그룹으로 생성하여 추상적으로 표현한다.
* 빌더 : 작게 분리된 인스턴스를 건축 하듯이 조합하여 객체를 생성한다.
* 팩토리 메소드 : 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴이다.
* 프로토타입 : 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴이다.
* 싱글톤 : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스
가 동시에 참조할 수는 없다.
'NOTE > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 노트 # 6 ( 인터페이스, 화면설계 ) (0) | 2020.07.19 |
---|---|
[정보처리기사 실기] 노트 # 5 ( 서버프로그램 구현 ) (0) | 2020.07.18 |
[정보처리기사 실기] 노트 # 4 ( 통합구현 ) (0) | 2020.07.18 |
노트 #1 - 정보시스템 구축관리 (0) | 2020.07.17 |
[정보처리기사 실기] 노트 # 3 ( 데이터 입출력 ) (0) | 2020.07.06 |
댓글