- 계획 작업의 단계와 순서 이해
- 목표 설정과 타당성 분석
- 규모 산정
- 일정 계획
- 조직 구성
새로운 프로젝트를 시작할 때
비즈니스를 이해하고 목표를 정하는 것으로부터 출발.
유행하는 새로운 최신 기술(Buzz word)에 현혹될 수 있지만
활용, 목적 등을 명확하게 가지고 사용해야 함.
실제 IT project의 많은 실패사례들은
-분석 설계에 충분한 관심을 기울이지 않았음: 비즈니스 가치를 찾고 위험분석이 필요
-타당성 검증이 반드시 필요함: 기술적 측면, 경제적 측면, 조직적 측면
planning stage의 스텝
- 비즈니스 목표 설정
- 시스템 개발 요청 정의
- 타당성 분석
- 프로젝트 개발 일정과 비용 산정
- 일정 계획
- 조직 구성
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 관계에 있기 때문에 잘 균형을 맞춰야 함
'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 |
댓글