1. 요구 분석에 사용하는 세 가지 측면의 모델링 방법을 나열하고 각각의 차이와 표현 방법을 설명하라.

 

기능적 모델 = 사용자와 환경의 관점

정적 모델링 = 클래스 구조의 관점

동적 모델링 = 시스템의 동작과 내부요소의 관점

 

2. 기능적 요구와 비기능적 요구의 차이를 설명하라. 또한 인터넷 쇼핑몰의 기능적 요구와 비기능적 요구 사항이 될 수 있는 것을 다섯 가지씩 사례를 들어보라.

 

기능적 요구 = 시스템이 처리해야 할 것들

비기능적 요구 = 시스템이 작동되면서 가져야 할 특성

 

3. 요구 결정을 위하여 주의하여야 할 점은 무엇인가? 나열하고 설명하라. 

 

사용자와 엔지니어가 정보를 나누고 이해

 

4. 비즈니스 프로세스 분석을 하는 이유를 설명하고 세 가지 작업 단계를 각각 설명하라.

 

사용자에게 그들의 진정한 니즈를 발견하도록 도와주기 위한 도구.

 

5. 사무실에 사용하는 전구가 자주 나간다고 할 때 이에 대한 근본 원인 분석을 하고 이를 그림으로 그쳐 표현하라.

 

전구가 자주 나감

1)불량 전구    2)전압의 부족    3)부적절한 사용

운송 단계 , 제조 단계                    

 

6. 학교의 수강 신청 과정의 비즈니스 프로세스를 그림으로 정의하라. 개선점이 없는지 찾아보고 있다면 수정하라.

 

7. 요구 취합이 성공하기 위한 팁을 세 가지 이상 들고 설명하라.

1)파생 효과    2)참여자 결정    3)감사하다는 의미 전하기

 

8.요구 취합을 위한 질문을 작성하고 있다. 세 가지 질문 유형을 나열하고 각 사례를 들어 언제 그러한 유형을 사용하는 것이 좋은지 설명하라.

폐쇄형:특별한 정보를 얻고 싶을 때

개방형:사용자에게 무리할 여지를 주기 위해

유도형:이전 질문에서 좀 더 깊은 정보를 얻고 싶을 때

 

9. JAD 회의는 어떤 과정으로 준비하고 진행하는지 설명하라. JAD 회의는 어떤 경우에 사용하는 것이 좋은가?

참여자 선정 →JAD회의 설계 → JAD 회의 준비 →실시 → 후속 조치

 

사용자로부터 정보를 취합할 때 유용

요구 분석 과정

 

=현재 시스템에서 새로운 시스템로 옮겨 가는 과정

 

요구 정의(기능적, 비기능적) -> 요구 추출(요구 취합) -> 요구 정리(모델링) -> 요구 검토

 

*모델링 : 실체를 축약하여 표현하는 작업

1)기능적 모델링 : 사용자와 환경이라는 관점의 모델

2)정적 모델링 : 클래스의 구조의 관점

3)시스템의 동작과 내부요소의 상호작용 관점

 

분석 단계는 시스템에 대한 자세한 제안을 사용자, 관리자, 관련자가 참석한 회의에서 발표함으로써 끝난다.(=워크스루)

->승인된다면 설계 단계로 넘어간다.

 

요구를 결정하는 단계는 쉽게 변경 가능. (프로토타이핑 or 애자일 방법론 효과적)

 

요구 = 사용자의 니즈에 초점

 

기능적 요구와 비 기능적 요구

기능적 요구 : 시스템이 수행해야 할 처리나 가져야 할 정보와 밀접

비 기능적 요구 : 시스템이 작동되면서 가져야 할 특성들(운용, 성능, 보안, 정책)

 

요구의 목적

1. 프로세스 모델이나 데이터 모델 등을 작성하는 데 필요한 정보를 제공

2. 시스템의 범위 정한다.

 

 

요구 결정

:사용자와 엔지니어가 정보를 나누고 이해

 

요구 분석 3단계

현재 상황을 이해 -> 개선할 점을 파악 -> 새 시스템의 요구를 정의

*현재 시스템과 미래 시스템과 관련이 없다면 as-is 단계 생략 가능.

 

비즈니스 프로세스 분석 기법

:사용자가 그들의 진정한 니즈를 발견하도록 분석가에게 도움을 주는 도구

:요구 분석 3단계를 통하여 사용자에게 시스템의 비전이 개발되도록 도와준다.

 

비즈니스 프로세스 자동화

: 범위가 한정된 비즈니스 프로세스의 문제를 해결하기 위한 기법

1)문제 분석 : 사용자나 관리자에게 직접 문제점이 무엇인지 묻는 것2)근본 원인 분석 : 문제의 원인이 될 만한 것들을 나열, 근본 원인 찾는 것.

 

비즈니스 프로세스 개선

:조직의 운영하는 방법을 적당히 바꾸는 것

1)기간 분석 : 프로세스를 수행하는 데 걸리는 시간을 조사하여 허비하는 시간을 줄이는 것

2)작업 비용 분석 : 프로세스나 작업이 소요되는 시간보다는 비용을 조사하는 것

 

비즈니스 프로세스 리엔지니어링

: 현재의 비즈니스 방법을 없애고 새롭게 바꾸는 것

1)성과 분석 : 고객에게 제공하는 근본 결과를 이해

2)기술 분석 : 새로운 적용 기술을 찾고 평가

3)작업 제거 :작업 삭제로 인해 어떤 영향이 있는지 분석

 

 

요구 취합 팁 3가지

1) 요구 취합 과정에서 파생 효과를 얻을 수 있음(신뢰도, 지지자)

2) 누가 참여할 것인지 결정(중요한 자료원, 중요한 관련자)

3) 참여해 준 것에 대한 경의를 표하는 것

 

5가지 요구 취합 방법

인터뷰 , JAD 회의, 설문, 서류 분석, 관찰

 

1)인터뷰

 

인터뷰 대상 선정->질문 작성->인터뷰 준비->인터뷰 실시->후속 조치

 

-인터뷰 대상 선정 : 성명, 직위, 인터뷰 목적, 일시

 

-질문 작성

패쇄형 질문 : 분석가가 정확한 정보를 찾을 때 사용

자유 대답형 : 대상자에게 마무리할 수 있는 여지를 주는 것

유도형 질문 : 바로 전에 대화한 것을 더 깊이 알기 위한 것

 

-후속 조치 : 인터뷰 보고서를 인터뷰 상대에게 보내 검토하여 명확히 하게 하고 고칠 수 있는 게하는 것.

 

2)JAD 회의

=프로젝트 팀, 사용자, 관리자 등이 협력하여 시스템의 요구를 찾도록 도와주는 방법(사용자로부터 정보를 취합하는데 효과적)

=브레인 스토밍 아이디어 회의 : 아이디어에 대한 자신의 의견을 말하지 않음.

 

참여자 선정->회의 설계->회의 준비->회의 실시->후속 조치

 

-회의 설계 : JAD 에서는 패쇄형 질문을 잘 하지 않음(과도한 토론이 일어나버려서)

 

3)설문

= 광범위한 사용자로부터 의견이 필요할 때

 

4)서류 분석

=현재 시스템을 이해하기 위한 것으로 사용한 적이 없는 문서는 제외, 변경, 개선할 필요성을 찾아내야 한다.

 

5)관찰

=작업 과정을 지켜보면서 현재 시스템에 관한 정보 수집

(메모, 촬영)

 

요구 문서화 : 사용자와 엔지니어가 같이 볼 수 있어야 함

-포함될 내용

-제목, 버전 번호, 수정 이력

-문제와 시스템 개요

-배경 지식과 환경

-기능적 요구

-비기능적 요구

-인수 테스트를 위한 기준

 

 

요구 분석서 검토

-투자효과

-명확하고 통일된 표현

-문서의 일관성있는 작성

-현재 당면한 문제의 해결

-실현 가능성

-검증 가능성

-식별 이름

-좋은 품질 유도

1.왜 많은 프로젝트가 이해할 수 없는 납기일을 정하게 되는가? 프로젝트 관리자는 이해할 수 없는 요구에 어떻게 반응하여야 할까?

분석과정에서 제대로 일정을 짜지 못하였기 때문에

프로젝트 관리자는 적절하지 못하다는 이유를 잘 설명하고 다시 조정해야 한다.

 

2.SWOT 분석이란 무엇이며 어떤 경우에 사용하는가?

 

답: 전략적 계획(=기관의 장기적인 목표나 전략, 그리고 이를 위한 자원들을 찾는 과정)을 수립할 때 유용하다.

 

기관의 강점, 약점, 기회, 위험을 파악하는 것.

S : 주된 강점은 무엇인가?

W : 주된 약점은 무엇이고 어떻게 극복할 수 있는가?

O : 주요 기회는 무엇인가?

T : 우리가 당면한 위기는 무엇인가?

 

3.경영 목표란 무엇이며 경영 목표와 IT프로젝트 선정과의 관계를 설명하라.

 

목적, 비전, 가치를 근거로 만들어진 미션 선언문을 목표로 하는 것.

 

기관이 정해 놓은 목표는 IT나 다른 자원을 지원받아 이루어간다.

 

4.프로젝트가 선정되기까지의 과정에 대하여 설명하라.

 

시스템 개발 요청서(=개발의 필요성과 예상되는 가치를 공식으로 문서로 요청한 것) →

프로젝트 선정을 위한 공식 위원회 소집 →

 

5.시스템 개발을 요청하는 여섯 가지 주된 요인은 무엇인가? 나열하고 각각을 설명하라.

 

서비스 향상 : 가치 있는 서비스를 제공하여 고객 만족도를 높이는 것

신제품 또는 서비스 지원 : 새로운 수준의 IT지원을 요청하는 것

성능 개선 : 시스템이 성능에 대한 요구를 만족하지 못할 경우

정보 증대 : 시스템이 기업의 변경된 정보에 대한 수요를 잘 지원하지 못하는 경우

제어력 강화 : 시스템이 효과적인 제어력을 가지기 위하여

비용절감 : 현재 사용하는 시스템이 유지 및 운용하는데 드는 비용의 절감을 위해

 

6.시스템 개발 요청서의 내용과 필요성에 대하여 설명하라

 

프로젝트 스폰서 : 프로젝트를 착수시키며 프로젝트의 주된 계약자

비즈니스 필요성 : 프로젝트를 수행하는 이유를 표현하기 위해

비즈니스 요구 : 시스템이 제공해야 하는 기능과 성능을 보여주기 위해

비즈니스 가치 : 시스템이 생산하는 가치를 보여주기 위해

제한 사항 : 시스템 구현과 관련된 제한 조건

 

7.프로젝트 타당성을 평가하는 다양한 방법들에 대하여 나열하고 설명하라.

 

기술적 타당성 : 시스템을 설계하고 개발하여 설치할 수 있는지 프로젝트의 기술적인 타당성을 평가하는 것.

 

1) 사용자와 분석가가 응용 분야에 익숙한지

2) 기술에 익숙한지

3) 프로젝트 크기

4) 이미 존재하는 기술과 새 시스템 사이의 호환성

 

조직 측면의 타당성 : 시스템이 완성된 후 사용자에게 얼마나 잘 받아들여질 것인가, 또한 조직에서 진행 중인 운영에 얼마나 잘 융합될 수 잇는가를 평가한다.

 

1)프로젝트의 목표와 비즈니스 목표를 얼마나 잘 맞추었는지 이해하는 것(=전략적 정렬)

2)새 시스템에 영향을 주거나 받을 수 있는 프로젝트 관련자들에 대한 분석

 

경제적 타당성 : 프로젝트와 관련된 재정적인 위험을 파악하는 작업 (=비용 수익 분석)

 

비용수익 요소 파악 → 비용수익 금액 파악 → 연도별 수익 계산 → 프로젝트 경제적 가치 계산

 

 

 

 

프로젝트란?

=비즈니스 가치를 창조하는 시스템을 만드는 처음부터 마지막까지의 작업 집합

 

계획 단계의 작업 과정

Step 1: 비즈니스 목표의 설정

Step 2: 시스템 개발 요청 정의

Step 3: 타당성 분석

Step 4: 프로젝트 개발 일정과 비용 산정 

Step 5: 계획서 작성

 

Step1 : 비즈니스 목표의 설정

 

1)전략적 계획

-장기적인 큰 그림

-로드 맵

 

2)현재 상황을 잘 인식하고 미래에 대한 분명한 비전이 필요

 

3)SWOT 분석

S(Strengh/강점)

W(Weakness/약점)

O(Opportunity/기회)

T(Threat/위험)

 

4)경영 목표

-미션 선언문

 

Step 2: 시스템 개발 요청 정의

 

1)프로젝트 선정

-시스템을 구축하여 얻을 비즈니스 가치를 발견했을 때 시작 - IT부서, 경영 조직, 사용자

-프로젝트 스폰서 - 경영진, 비즈니스 필요성 제기

-프로젝트의 필요성 - 서비스 향상, 성능 개선, 비용 절감, 제어력 강화, 정보 증대, 신제품 또는 서비스 지원

 

2)시스템 개발 요청

 

시스템 개발 요청서 : 시스템 구축의 필요성과 시스템이 제공할 것으로 예상하는 가치를 정리한 문서

 

들어가야 하는 요소

설 명 

예 

 프로젝트 스폰서

 프로젝트의 주된 계약자(경영 관리자)

 마케팅 담당 상무, IT 관리자 등 등

 비즈니스 필요성

 시스템을 가동시키니는 경영과 관련된 이유

 매출 증대, 제품 결함 억제, 시장 점유율 확대

 비즈니스 요구

 시스템이 제공할 비즈니스 능력

 정보를 온라인으로 접근, 고객의 정보를 취합, 제품 탐색

 비즈니스 가치

 시스템이 생산하는 가치

 시스템 교체로 비용 절감, 구매 비용 낮추어 비용 절감

 제한 사항

 시스템 관련된 이슈로 프로젝트 선정에 대한 결정

 시간적 제한 사항, 보안 수준의 자료

 

 

 

Step 3: 타당성 분석

 

1)기술적 타당성 : 개발할 수 있는가?

-응용 분야 & 기술 : 미숙할수록 위험↑

-프로젝트 크기 : 커질수록 위험↑

-호환성 : 많을수록 위험↑

 

2)경제적 타당성 : 개발하여야 하는가?

-개발 비용(개발팀 급여, 설치비, 컨설트 비용)

-운영 비용(하드웨어 소프트웨어 업그레이드, 라이센스, 통신비, 교육비)

-연간 이익(매출, 부품비,창고비)

-정성적 비용(눈에 보이지 않는 이익 = 브랜드 인지도 증가, 시장 점유율)

 

 

 

3)조직측면의 타당성 : 우리가 개발할 수 있는가? 참여할 수 있는가?

-시스템 완성 후 사용자에게 얼마나 잘 받아들여질 것인가?

-조직에서 진행 중인 운영에 얼마나 잘 융합될 수 있는가?

 

Step 4: 프로젝트 개발 일정과 비용 산정 

 

1)규모 산정

-프로젝트 관리에 영향을 많이 주는 요소중의 하나

-프로젝트 관리 균형 → 시간(일정), 비용(인력), 시스템 규모(기능) 

 

시간(일정)

-계획 단계에 걸린 기간으로 프로젝트 기간 예측

-산업계 평균 소요 기간 통계 이용

-기능 점수(=소프트웨어가 갖는 기능을 점수)로 환산하여 예측

step1) 프로그램 요소 파악(입력, 출력, 질의, 파일, 인터페이스)

 

 

 

step1.1) 프로젝트의 문제의 복잡도(분산 기능인지, 입출력이 있는지, 데이터 통신인지등 등..)가 다름을 적용해야 함.

보정된 프로젝트 복잡도(APC) = 0.65 + (0.01 × 7) = 0.72

보정된 총 기능 점수(TAFP) = 0.72(APC) × 338(TUFP) = 243

 

step1.2) 기능 점수로 규모 파악

통계 평균값 이용

 

 

기능점수 = 243

COBOL : 243 * 110 = 26730줄

Visual Basic : 7290줄

Excel : 2430줄~

 

step2) 노력 예측

-cocomo 모델

노력(인원-월) = 1.4 * 천 줄의 코드

ex)cobol : 1.4 * 26.73 = 37.42(인원-월)

 

step3) 소요 기간 예측

-cocomo 모델

소요 일정 = 3.0 * 인원-월*(1/3)

ex) 3.0 * 37.42*(1/3)

 

 

2)일정 계획

-작업 파악

-간트 차트 작성 : 프로젝트의 작업 계획을 그래프 형태로 표시(MS-project)

3)조직 구성

-프로젝트에 필요한 평균 인원 수 결정

ex) 40 Man - Month → 4명이 10개월

 

-Mythical Man-month

늦은 프로젝트에 더 많은 인원을 투입해도 빨리 끝나지 않음

의사 경로가 너무 많게 됨

-보고 구조를 단순하게

8명~ 10명의 작은 팀을 유지

 

 

 

 

 

 

 

  1. Mr.현 2017.10.06 18:56

    정리 감사합니다~!!

1. 소프트웨어 개발 프로젝트는 실패 사례가 많이 있다. 실패 사례들을 찾아보고 그 원인을 분석해 보라.

프 로 젝 트

내 용

실패 이유

의약품유통종합정보시스템(보건복지부)

의약품 유통관련 비리가 계속 되어 그 비용을 중개하는 정보 시스템

제도적, 법적 준비가 되지 않는 상태에서 개발 시작하니 아무도 이용하려 들지 않음

퍼스트 에너지

고객에게 전력을 공급하는 곳에서 경보 시스템

유지보수를 제대로 이행하지 못함

등급 시스템(닉슨 미디어 리서치)

등급 시스템을 클라이언트 서버 구조로 변환해 보다 정확한 데이터를 제공하는 것

일정관리와 외주관리

 

 

2. 시스템 분석과 설계 작업은 무엇인지 설명하고 얼마나 중요한 일인지 비유로 설명하라.

 

시스템 분석 : 고객의 니즈가 무엇인지 정확히 파악하는 것

시스템 설계 : 분석한 니즈를 어떻게 구현할 것인지 파악하는 것

 

예시)

분석 오류 : 자기소개서에 본인의 가장 큰 성취경험을 쓰라는 질문에 그냥 겪었던 경험을 쓴 경우

 

설계 오류 : 운동을 처음 하는 사람이 하는 방법을 몰라 아무운동이나 하다가 다치는 경우

 

3. 시스템 분석가가 소프트웨어 시스템을 완성하기 위하여 협력해야 하는 사람들을 나열하고 어떤 측면에서 어떻게 협력하는지 기술하라

 

개발의 입장 : 1) 기술지식을 통한 정확한 문서작성

2) 소화 가능한 일정

3) 아키텍처 정의

요구의 입장 :1) 요구 사항을 수집 및 분석

2) 요구에 대한 해결방안 제시

3) 예산 내에서 개발

 

 

4. 시스템이라고 불리기 위하여 갖추어야 할 네 가지 성질을 나열하고 각각 설명하라.

 

1) 서브시스템 : 관련있는 예하시스템으로 구성

 

2) 기능적 분할 : 각각의 기능을 수행할 수 있는 예하시스템

 

3) 시스템 경계 : 어떤 시스템이라도 주변 환경과 구분할 수 있는 경계가 있음

 

4) 자동화 경계 : 시스템이 자동화된 부분과 수동 작업 부분을 나누는 경계가 있음

 

5. 시스템을 개발하는 과정을 건축하는 과정과 비교하고 각 단계에 하여야 할 작업과 결과물이 어떻게 다른지 설명하라.

 

시스템 개발 과정 : 계획 -> 분석 -> 설계 -> 구축 -> 설치 -> 유지보수

건축 과정 : 계획 -> 분석 -> 설계 -> 구축

 

 

시스템 개발

건축

계 획

요구자의 문제 정의

타당성 분석

작업 계획 수립

팀 조직 수립

프로젝트 관리 계획

프로젝트 계획서

 

건축추의 문제 정의

사업성 및 규모 검토

일정 검토

예산 검토

프로젝트 스케줄

분 석

요구자와 소통

구체적인 의사 반영

시스템의 목표 도출

요구 분석 명세서

건축주와 소통

구체적인 의사 반영

대지 평가

스페이스 프로그램

설 계

소프트웨어 내부 구조 및 자료 구조 설계

설계서

건물 종합 계획 수립

공사비 목표 설정(자재)

시공단계

실시설계도서

구 축

시스템 구축(코딩 작업)

시스템

건축

건축물 검토

완전한 건축물

설 치

개발된 시스템 적용

테스팅

클라이언트 플랫폼에 설치

시스템 운영

없음

유지보수

오류 수정, 기능 업그레이드, 요구 사항의 변경

없음

 

 

 

 

6. 프로세스 중심 방법론과 데이터 중심 방법론, 객체지향 방법론을 비교하고 차이점을 설명하라.

프로세스 중심 방법론

:전체적인 논리 흐름을 중심으로 맞추어 나가는 방법

 

데이터 중심 방법론

:사용할 데이터를 중심으로 구현하는 방법

객체지향 방법론

:현실 세계를 표현하는 객체를 중심으로 구현하는 방법

 

 

7. 쓰고 버리는 프로토타이핑 방법과 익스트림 프로그래밍을 비교하여 차이점을 설명하라.

쓰고 버리는 프로토타이핑 방법

-완성까지 애자일 모형 완성 기간보다 오래 걸릴 수 있다.

-필요에 의해서 프로토타입을 만들고 피드백을 받는다.

 

 

익스트림 프로그래밍

-완성까지 기간이 짧다.

-정기적으로 피드백을 받는다.

-쓰고 버리는 프로토타이핑 방법보다 더 요구에 적절한 결과를 낸다.

  1. 2017.10.18 17:30

    비밀댓글입니다

+ Recent posts