본문 바로가기
2023-1/소프트웨어 설계

02 - Planning

by 철없는민물장어 2023. 4. 16.
728x90
반응형
  1. 계획 작업의 단계와 순서 이해
  2. 목표 설정과 타당성 분석
  3. 규모 산정
  4. 일정 계획
  5. 조직 구성

새로운 프로젝트를 시작할 때

비즈니스를 이해하고 목표를 정하는 것으로부터 출발.

 

유행하는 새로운 최신 기술(Buzz word)에 현혹될 수 있지만

활용, 목적 등을 명확하게 가지고 사용해야 함.

 

실제 IT project의 많은 실패사례들은

-분석 설계에 충분한 관심을 기울이지 않았음: 비즈니스 가치를 찾고 위험분석이 필요

-타당성 검증이 반드시 필요함: 기술적 측면, 경제적 측면, 조직적 측면

 

planning stage의 스텝

  1. 비즈니스 목표 설정
  2. 시스템 개발 요청 정의
  3. 타당성 분석
  4. 프로젝트 개발 일정과 비용 산정
  5. 일정 계획
  6. 조직 구성

2.1 비즈니스 목표 설정

전략적 계획(Strategic planning)

:장기적인 목표나 전략, 이를 위한 자원

 

전략적 계획의 대표 방법: SWOT 분석

Strength, Weakness, Opportunity, Threat 분석

 

Mission statement(미션 선언문)

기업이나 기관의 목적,비전, 가치를 선언

 

2.2 시스템 개발 요청 정의

시스템을 구축하여 얻을 비즈니스 가치를 발견했을 때 시작

 

프로젝트의 필요성을 제기

: 소프트웨어 시스템 개발을 요청하는 6가지 주요 요인은 아래와 같다

서비스 향상, 성능 개선, 신제품 또는 서비스 지원, 정보 중대, 제어력 강화, 비용 절감

 

2.3 Validity analysis

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

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

-ROI (Return on Investment): 투자의 의하여 얻는 수익률

-손익 분기점(Break Even Point): 프로젝트에 소요되는 비용을 회수하는데 걸리는 기간

-현재 가치(Net Present Value): 모든 비용과 수익을 현재의 가치로 환산

 

3. 조직적 타당성: 조직 운영에 얼마나 잘 융합될 수 있는가?

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

조직에서 진행 중인 운영에 얼마나 효과적으로 사용될 수 있는가?

 

2.4 Project size and cost estimation

프로젝트 수행에 필요한 작업이 어떤 것이고, 얼마나 걸릴 것인지 전체적인 규모 및 비용을 예측

 

Estimation의 다양한 방법들

  • Function point analysis (ISO/IEC 20926): 규모 산정
  • COCOMO: 비용 산정
  • Data-based estimaion: 비용 산정

Data-based estimation에는 아래와 같은 분석기법들이 있다.

-Least square regression(과거데이터를 이용)

-Analogy-based method(유사한 프로젝트 기반)

-AI-based method(인공지능 기반)

 

-Function point analysis(기능 점수 분석)

:소프트웨어가 갖는 기능(입력,출력,질의,인터페이스 등)을 점수로 환산.

시스템에 포함될 각 component의 개수를 기록하고 복잡도를 상,중,하로 분류

정해진 가중치를 곱하여 총합으로 계산.

이 총합은 보정 전 기능점수(UFP)이다.

여기서 프로젝트 문제의 복잡도를 계산하여 프로젝트 복잡도(APC)를 얻을 수 있고,

APC에 UFP를 곱하여 보정된 총 기능 점수(AFP)를 얻을 수 있다.

 

AFP는 LOC(lines of code)로 환산할 수 있는데,

언어마다 LOC값이 다르다. 대체로 C언어는 LOC가 130으로 높고 JAVA는 LOC가 55로 낮은 편.

 

장점: 

어떤 프로그래밍 언어를 사용하느냐에 좌우되지 않고 시스템 규모를 파악 가능

프로젝트를 진행하면서 시스템에 대해 보다 구체적으로 파악하게 된다면 상세한 지식을 이용하여 더 정확한 예측 가능

 

단점: 

계획 단계에서 시스템의 정확한 특성이 결정되지 않는 경우도 있어 예측이 어려움

 

 

-COCOMO 모델 활용

:공수(effort) 예측

공수==시스템의 크기와 단위시간당 작업량(생산성)을 곱한 것

duration과 다름

 

노력(man-month) = 1.4 * 천줄의 코드

 

정확한 예측을 위해

과거의 데이터 이용 및 분석이 필수적임.

범위를 나누어 예측하고, 상세한 수준에서 예측하는 것이 중요

 

2.5 일정 계획

Schedule

 

예측 이후에는 작업 계획을 수립함.

작업 계획은 프로젝트 전반에 걸쳐 성취하여야 할 모든 작업을 기록하고 추적할 일정을 의미.

-각 작업이 언제 완성되어야 하고 산출물이 어떤 것인지: WBS(Work Breakdown Structure)

-R&R (Roles and Responsibilities) 정립

 

2.6 조직 구성

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

예) 40 Man-month: 4명이 10개월

 

Mythical Man-month

늦은 프로젝트에 더 많은 인원을 투입하는 경우

의사 경로가 너무 많게 될 수 있음을 주의,

투입시에는 project history를 공부한 후 투입

 

보고 구조를 단순하게 하기 위해

8~10명의 작은 팀을 유지하는 것이 좋음

 

동기 부여

동기 부여를 위해 하지 말아야 할 것

  • 비현실적 일정
  • 열심히 일하는 것을 무시함
  • 형편없는 제품 만들기
  • 참여자 모두에게 같은 보상
  • 중요한 결정을 팀원 의사 묻지 않고 결정
  • 작업 환경 열악

갈등 해소

갈등을 최소화 하기 위한 팀 조직

  • 팀 소속감 고취(Team building)
  • 팀원의 역할을 분명히 정함
  • 행동 원칙이나 헌장 정하기

 


소프트웨어 관리시 고려해야 할 상충광계

 

시스템 규모(기능) - 시간(일정) - 자원(개발인력)

은 서로 trade-off 관계에 있기 때문에 잘 균형을 맞춰야 함

 

 

728x90
반응형

'2023-1 > 소프트웨어 설계' 카테고리의 다른 글

Structural Modeling  (0) 2023.06.16
Use case diagram 2  (0) 2023.06.16
04 - Use Case Diagram  (0) 2023.04.16
03 - UML  (0) 2023.04.16
01  (1) 2023.04.16

댓글