본문 바로가기
NOTE/정보처리기사

[정보처리기사 실기] 노트 # 2 ( 요구사항 확인)

by KIMECK 2020. 7. 6.
반응형

| 요구사항 확인

 

 - 현행시스템 파악

  구성/기능/인터페이스 파악 → 아키텍처 및 소프트웨어 구성 파악 → 하드웨어 및 네트워크 구성파악

 

  - 요구사항 정의

     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) 대한 설명이다.

 

* 추상팩토리 : 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관·의존하는

                  객체들의 그룹으로 생성하여 추상적으로 표현한다.

* 빌더 : 작게 분리된 인스턴스를 건축 하듯이 조합하여 객체를 생성한다.

* 팩토리 메소드 : 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴이다.

* 프로토타입 : 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴이다.

* 싱글톤 : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 있지만, 여러 프로세스

동시에 참조할 수는 없다.

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글