속성은 객체가 가지고 있는 자료 값을 설명하고 행위는 클래스 안에서 적용할 연산이 나 변환을 기재한다. | 여러 개의 클래스에 적용할 수 있는 연산을 다중연산이라고 한다. 예를 들어서 연산 Point는 ASCII 파일, 2진수 파일, 디지털로 표현된 그래픽파일에 맞추어 여러 가지로 구 현할 수 있다. | 메소드는 한 개의 클래스상에서 연산의 구현을 수행한다. 하나의 연산을 실행하는 모 든 메소드는 동일한 변수와 결과로 계산되고 동일한 행위를 수행한다.
목차
Actor의 기술명세
actor 1. 관리자 usecase 1.1. 출입을 모니터링하고 컨트롤 1 카드분석기는 card reader로부터 데이터를 받는다. 2 카드분석기는 card data를 가지고 출입여부를 판독한다. 3 카드분석기는 monitor로 보고서를 작성한다. 4 관리자는 보고된 상황을 확인한다. 5 출입가능여부를 해당 card reader에게 알려준다. 6 카드분석기는 분석결과(출입가능여부, 출입시간, card data, 출입위치)를 DB에 저장한다. 7 순찰스케줄러는 DB의 데이터를 분석하여 보안요원의 순찰스케줄 리스트를 만든다. object : 카드분석기, card reader, 모니터, card data, DB, DB 데이터, 순찰스케줄러, 순찰 emergency(위급상황 : 화재 등)처리 위급상황처리기는 각 지역에 위치한 화재 및 연기관리자로부터 위급상황을 연락받는다. 위급상황처리기는 모니터로 보고하여 관리자에게 알려준다. 위급상황처리기는 alarmer에게 알려준다. alarmer는 해당정보(화재발생)를 울려 입주자에게 알려준다. 관리자는 화재 발생지역으로 보안요원을 파견한다. 위급상황처리기는 입주자들의 원활한 대피를 위하여 모든 문의 security를 해제하도록 card reader에게 연락한다. 관리자는 119에 신고한다.
프로젝트관리의 개요
소프트웨어 프로젝트관리는 ISO12207에서 정의한 소프트웨어 골격에 준해서 보면 생 명주기의 지원공정으로 소프트웨어의 요청, 공급, 개발, 운영 및 유지보수에 걸쳐서 수행드 활동이다. 팀조직의 프로세스지원을 받아서 실행되는 프로젝트 관리 모형은 계획과 실행, 비용관리, 개발 그리고 운영관리를 5가지 항목으로 나눈 영역에서 수행한다. 작업(task) 정의, 용어의 소프트웨어 프로젝트관리의 목적은 프로젝트관리자의 활동과 작업(task)정의 , 표준화 그리고 품질보증과 구성관리의 적용범위를 정하여 전략정보시스템과 겨 에 맞추어서 최대성과를 올릴 수 있도록 실행하는데 있다. 따라서 프로젝트관리의 : 활동은, · 계획 · 조직구성 ·스태핑(staffing) · 모니터링 ·컨트롤 · 프로젝트추진 등으로 나누어진다. 계획은 사업계획에 따라서 실행계획을 세우고, 주어진 예산과 전사 적인 목표에 맞추어 조직을 하고 기능에 적합하도록 인력을 배치하여 스태핑한다. 모니 터링은 스테프의 작업을 분석하여 기능부여와 일정관리를 하면서 그 결과에 따라서 조 정하는 컨트롤을 수행한다. 결과적으로 프로젝트를 일정과 예산에 맞추어 효과적으로 추진해 나가는 것이 프로젝트관리의 중요한 목적이다. | 프로젝트관리의 공정(process)은 소프트웨어의 모든 활동과 마찬가지로 다음과 같은 계층적 구조로 나누어서 실행한다.
- 활동(activity)
- 작업(task)
- 절차(procedure)
스케줄링 · 비용산정 · 자원할당 · 작업할당 · 책임부여 1. 작업과 공정의 리스크 평가 · 환경구축 프로젝트관리를 위한 공정은 계획, 작업실행 및 진도관리로 실행한다. 획은 경영목표, 전략 및 사업계획의 방향에 맞추어서 자원과 작업을 효과적으로 할 당하는 공정이다. 작업관리는 계층적으로 분류한 작업구조에 맞추어서 세운 계획을 실 행하고 컨트롤한다. 진도모니터링은 생산성과 품질의 최적한 조화를 맞추면서 세부된 공정에 따라서 feedback하면서 관리한다.
프로젝트계획
소프트웨어 프로젝트의 효율적인 관리를 위해서는 프로젝트의 전반적인 과정을 계획 하고 문제발생을 예상하여 그 해결책을 얼마나 준비하였는가에 달려 있다. 따라서 프로 젝트계획은 프로젝트를 착수했을 때 작성되어 프로젝트의 종결시까지 중요한 의미를 갖 는다. | 프로젝트계획은 성공시킬 수 있는 작업활동을 식별하고 그 활동별로 작업스케줄을 잡 아서 필요한 자원을 할당한다. 그리고 프로젝트수행에 필요한 자원을 할당한다. 또한 프 로젝트수행에 필요한 정치적, 경제적 그리고 인력의 특정적 요소를 고려한다. 계획 활동 에 필요한 인력은 요구양식이고, 프로젝트계획의 출력은 프로젝트계획서이다. 따라서 프로젝트계획의 활동은 다음과 같은 절차를 거친다. 효과적인 계획과 통제함으로써 프로젝트에 대한 현시점에서의 투입노력과 기간 및 비용분포자료를 얻을 수 있으며, 이 자료를 이용하여 프로젝트의 특성에 맞는 소프트웨어 비용예측을 조정할 수 있게 된다. | 효과적인 비용예측은 프로젝트를 원활히 수행하기 위해 필요한 자원을 규명해 주고 (예 : 요구분석과 설계를 위한 초기단계에서의 기간과 노력 등) 계획과 통제를 위해 기 본적으로 있어야 할 프로젝트의 과정과 활동에 대한 타당한 당위비용기준을 제공함으로 써 더 나은 프로젝트관리를 강화할 수 있게 한다.
프로젝트관리자 혹은 프로그램 매니저에게 소프트웨어 비용예측은 소프트웨어의 자체 개발시 혹은 영역기관에 개발의뢰 및 계약시 절대적으로 필요한 사항이다. 지금까지 소 프트웨어 프로젝트개발에서 공통적인 특징은 지나친 비용초과와 일정계획의 차질이었 다. 이러한 문제점은 소프트웨어개발 및 정비과정을 잘 이해하지 못했고 기술적인 면과 가용자원의 제한을 이해하지 못했으며 모델을 재조정할 수 있는 과거자료가 부족하였기 때문이다.소프트에어 개발비용분석은 다음과 같은 절차를 통해 산출할 수 있다. 비용산정에 관 해서는 다음 3절에서 상세하게 설명하자.
스케줄링
스케줄링은 비용산정에 따른 예산편성과 밀접한 관계를 가지고 이루어진다. 그러나 대개의 소프트웨어의 경우에는 완성일자가 미리 정해져 있는 경우가 많아서 개발자, 업 무특성과 분할, 자원, 시간을 정해진 기간 안에 잘 분배하는데 중점을 두게 된다. 생명주기에 따른 활동(activity)이 세분화되고 투입할 시간이 할당되면 적절한 인력을 배치할 것을 예상하여 스케줄링을 한다. 이 때 고려해야 될 중요한 사항들은 다음과 같다.· 개발자와 그들의 노력성과를 어떻게 분석할 것인가 생명주기의 단계별로 투입할 인력 및 노력을 어떻게 배분할 것인가 |공기를 단축시키거나 생산성 향상을 위해서 투입될 방법론과 도구는 어느 시점에서 어떠한 것을 선택할 것인가 · 이정표(milestone) 설정은 어떻게 할 것인가 손가락 계산방법으로는,
계획과 설계 40%
구현 20%
시험 40%
를 예상하고 투입한 인시(man hour)를 스케줄링한다. 스케줄링을 위해서 도입하는 방법 은 Gautt 차트, PERT 차트 그리고 CPM 차트를 사용한다. 이 | Gautt 차트는 작업활동 항목별로 소요시간을 예상하여 개발기간을 주별 또는 월별로 구분하여 스케줄링을 한다. PERT(Program Evaluation and Review Technique) 차트는 노드 다이이그램상에 사건(이 벤트)을 기술하여 스케줄링한다.
작업활동을 중심으로 하여 노드 다이아그램을 그리고 활동사건들을 기 술한 다음에 활동별로 소요된 기간을 숫자로 적어 넣는다. 노드 n4와 n5는 시험 이지엔 지 시험계획을 끝내야 한다는 것을 나타내고 있으며 사용자지침서 작성활동은 (7) 단의 로 표시되었지만 설계(10), 구현(10) 및 시험(3)을 끝날 동안에 처리하면 된다는 것을 나 타내고 있다. 이정표 작성은 작업을 모니터링하기 위해서 필요한 중요한 관리일정을 지 정한다. 본차트에서 보면 중요한 이정표는 n2, n5, n6가 될 수 있으나 관리목표에 따라서 늘리거나 줄일 수 있다. CPM(Critical Path Method)는 노드 다이아그램상에 활동을 기재하여 설명한다. 즉, 노 드에 활동항목을 적고 화살표는 활동의 선후관계만 나타낸다. CPM은 프로젝트를 수행 하는 일정을 관리하는데 필수적인 활동사항만을 중립적으로 관리하기 위해서 사용한다. 따라서 PERT와 CPM을 동시에 적용하여 스케줄링을 하는 경우가 많다.
3) 인력계획과 조직
인력계획은 5절에서 설명하고, 여기에서는 개발에 투입된 인력을 어떻게 배치하여 조 직화할 것인가에 관해서 설명하자. 소프트웨어공학은 팀프로세스의 특성을 갖는다고 말 했듯이 팀의 구성은 매우 중요한 과제이다. 팀조직은 지위와 역할을 명시하는 내부적인 구조로서 ·권한과 책임기술 ·개발자에 대한 프로젝트 상하구조 · 부서간의 관련성
을 정해 준다. | 프로젝트의 조직은 여러 가지 목적을 가지고 구성한다. 조직형태 중에서 중요한 몇 가 지에 관해서만 설명한다.
(1) 프로젝트 위주조직
프로젝트기간 동안에만 활동할 조직체계를 구성한다. 동료의식과 공동책임감을 갖게 되고 중소프로젝트에 적합하지만 전문개발기술이 결여될 염려가 있다.
(2) 기능위주조직
대형프로젝트에 적합한 조직으로 개발단계별 전문가를 두고 개발한다. 시스템분석가, 설계자, 프로그래머, 품질보증자 등과 같은 전문지식을 가진 인력을 중심으로 분석팀, 설계팀, 코딩팀, 품질보증팀과 같은 조직으로 구성한다. 조직의 능률이 떨어질 수 있다.
(3) 메트릭스 조직
위 두 가지 조직의 장점을 살린 것으로 프로젝트팀별로 전문가팀을 구성한다. 업무량
의 균등분배와 인력의 활용이 원활해질 수 있으나 인사과의 책임자가 불확실해서 전시
적인 인사관리의 어려움이 있다.
(4) 품질 위주조직
개발조직과 품질보증조직을 구분함으로써 품질을 향상시키고 생산성을 높이는 효과 가 있다. 단기적으로는 품질보증인력에 투입한 인건비만큼 손실로 생각될 수 있으나 장 기적으로는 생산성과 품질을 함께 도모할 수 있다.
4) 품질보증계획
품질보증계획은 품질목표와 기준을 설정하고 그에 따른 체크항목을 정해서 실행한다. 품질목표는 응용영역에 따라서 특정한 목적을 정의하고 그 범위를 소프트웨어의 사용목 적에 부합된 보증활동의 한계로 한다. 품질목표설정은 다음과 같은 활동을 중심으로 하 여 실행한다. 소프트웨어개발을 위한 생명주기의 표준화 · 산출문서와 개발과정의 업무흐름 · 목표설정 ^. 기준설정 · 체크리스트 선정 품질목표설정에는 4가지 기본고려사항이 있다.기능적인 성능 및 기술적인 요구사항을 포함하여 개발된 시스템의 특성 · 여러 가지 품질목표에 입각한 비용 대 효과의 절충 · 상충되는 품질목표간의 조정 · 품질목표와 함께 시스템에 동원될 요원들에 대한 인식제고
5) 형상관리계획
소프트웨어공학 프로세스의 결과로 세 개의 광범위한 정보가 나타날 수 있다. 하나는 소스레벨의 수행형태인 컴퓨터 프로그램, 두 번째는 숙련자와 사용자를 위한 프로그램 설명을 위한 문서 그리고 마지막으로 프로그램 내외부에 포함된 자료구조가 있다. 이러한 소프트웨어 엔지니어링 프로세스의 부분으로서 생성된 모든 정보항목을 집합적으로 소프트웨어 형상이라고 한다. 형상관리는 소프트의 어에 대한 변경을 관리하기 위하여 개발된 일련의 활동을 나타내며 이런 변경의 건치비용이 최소화되고 최소한의 방해가 소프트웨어 현사용자에게 야기되도록 보증하는 것을 목적으로 한다. 형상관리에 는 여러 가지 활동이 있지만, 크게 다음과 같은 항목을 중심으로 하여 계획을 세은다. · 관리항목의 기능을 식별하여 문서를 작성한다.
프로젝트수행시 소요되는 비용으로는
- 하드웨어 비용
- 여행과 훈련에 관한 비용
- 노력 비용(소프트웨어 엔지니어의 인건비)
등이 있다. 위의 비용 중 인건비가 가장 중요하고 큰 비중을 차지한다. 즉, 비용산정시 소프트웨어적인 비용이 주가 되어 추정된다. 그러나 소프트웨어제품의 비용을 산정한다. 는 것은 여러 제반요인의 영향에 따라 영향을 받기 때문에 어려운 일이 아닐 수 없다. 이러한 비용에 영향을 주는 요인으로는 다음의 6가지를 들 수 있다.
- 프로그래머의 자질
- 제품의 복잡도
- 제품의 크기
- 가용시간
- 요구되는 신뢰도 수준
- 기술수준
이와 더불어 고려해야 할 사항이 프로젝트의 범위를 어디까지로 잡느냐의 문제이다. 즉, RFP(Request For Proposal) 또는 SOW(Statement of Work)에 의해서 개발해야 할 소프 트웨어의 기능과 성능에 대한 명세를 분명하게 제시되고 계약할 작업내용도 정해지는 선진국의 사례에 비추어 우리도 이를 제도적으로 정착시켜야 한다.
소프트웨어의 비용개념
드웨어의 비용은 개발에 필요한 Facility의 비용으로 결정된다. Facility는 하드웨어 및 소프트웨어 장비 그리고 인력이 직접경비로 계산된다. 소프트웨어의 비용은 개발과 운영비의 절감과 함께 품질향상 그리고 효과적인 마케팅을 하는데 소요된다. 이것은 보통 RIM 모델이라고 하는데 그 의미는 다음과 같다.
(1) 비용절감 (Reducing Cost)
소프트웨어의 개발은 사용자의 문화적 관찰에서부터 시작한다. 기술향상과 국제적 동향을 파악하여 개발과 마케팅의 계획을 철저하게 세우는 것이 비용절감의 지름길이 된다. Mistake의 최소화 생명주기의 초기단계에서 에러 발견 수정 · 요구분석의 철저 · 요구정의와 양식의 일의성 유지 표준화도입 기술동향분석/S/W 문화이해 · 국제동향파악 · 새로운 기술분석도입 · 사용자 문화이해 • S/W 자원의 효율적 이해
(2) 품질 향상 (Increasing Quality)
품질향상은 소프트웨어 영역에 따라서 적당한 품질보증계획을 세우고 국제표준에 준 해서 실행해 나가야 한다.
QMS (Quality Management System) 구축
마케팅 (Effective Marketing) 소프트웨어에 대한 투자비용은 마케팅전략에 따라서 결정될 수 있다. 즉, 시장을 크게 잡으면 개발비도 커지고 작게 잡으면 개발비도 축소할 수 있기 때문이다. 마케팅은 고 객, 개발자, 경쟁자를 중심으로 하여 장단점을 나열하고 장점을 가지고 전략을 세우며, 단점을 보완할 수 있는 과제로 삼아서 전략을 세운다. 마케팅은 초기에 소프트웨어의 규 모산정에 필요한 과제이다. 전략 30 3C 전략(Strategic 3C)은 고객(Customer), 자사(Company) 및 경쟁자(competitor) 간의 관 련성을 정의하고 각각의 관계에 작용하지 않는 FAW(Forced At work)을 분석하여 대처 한다. 고객으로부터 소프트웨어 개발요구를 유도해야 하므로 고객의 요구를 정확하게 유도할 수 있는 내용과 그렇지 않은 부분을 구분하여 요구정의를 해 나간다. 고객의 infrastructure를 폭넓게 고려하고 장차 변화될 요구사항도 감안해야 한다.
비용산정의 의미
S/W 비용산정은 개발에 투입되는 시간과 노력뿐만 아니라 활동의 작업, 기능수준, 작 업의 연결조건(task sequencing constraints), 유지보수를 포함하여 서비스의 질과 관련하여 추정한다. 이러한 관점에서 소프트웨어 비용산정은 다음과 같은 3가지 요인과 관련된다. 생명주기 개발방법론의 표준화 · 개발도구의 도입 초기단계에서 추정한 소프트웨어 프로젝트에 관한 노력과 스케줄에 추가해서 프록젝 트가 끝날 때까지 계속해서 추정한다. 경험자료의 축적과 분석 1. 추정모델의 tailoring 및 재능조사 · 소프트웨어품질, 프로그래머의 생산성 및 예상된 프로젝트의 방향분석 등을 수행 한다. 상품의 목적, 회사의 자산, 프로젝트의 조건에 따라서 프로젝트의 특성이 결정된다. 프로젝트의 특성은 비용을 선정하는 기준이 된다. 제품의 목적 제품의 목적은 다음 세 가지로 정한다.
- 고객의 요구만족
- 사용자의 요구와 기술적 요구
- 스코프와 품질목표
스코프목표는 소프트웨어 상품이 제공할 능력을 정하고, 품질목표는 성능특성, 자원활 용, 소프트웨어 상품의 페키지화 그리고 다른 소프트웨어 및 속성들과의 대등성을 가지 고 결정된다. 여기에서 소프트웨어의 속성은 사용성, 안전성, 보안성, 신뢰성, 변환성 등 을 말한다. 회사자산 소프트웨어 프로젝트를 수행할 수 있는 모든 장비와 기술력을 포함한다. (인력, 처리 모델, 개발도구, 재사용 소프트웨어 부품, 정책과 프로시듀어, 작업장의 환경) 프로젝트의 조건 스케줄, 예산, 상품의 목적 등과 같은 외부조건들 1 설계조건 : 개발한 소프트웨어 부품을 상품으로 만들기 위한 요구(인터페이스 요구) 예정된 하드웨어, 소프트웨어, 작업순서 등의 대동성 및 메모리와 timing 조건 등 12 수행조건 : 프로젝트를 수행하는 조건으로 동원가능한 인력, 개발환경, 납품일정
비용추정의 3가지 방법
소프트웨어 비용산정은 작업항목과 자원할당에 의한 비용산정과 비용절감을 위한 과 정으로 나누어 활동한다. 비용추정방법은 다음과 같이 세 가지로 나누어 볼 수 있다. 과거의 추정에 대한 성과평가 · 회귀모델 : 경험자료에 의한 통계적 분석 · 이론적인 모델 : 프로젝트 변수들간의 수리적인 관계를 확률론으로 규명 · 생산성 : 프로그램당 소스코드의 수 · 품 질 : KLOC당 에러수 · 노력과 스케쥴의 분포 : 분석, 설계, 코딩, 테스팅, 구성관리, 품질보증관리 등의 활 동의 여러 가지 타입별 분포
'소프트웨어&시스템공학' 카테고리의 다른 글
주문생산 제품 요구사항 분석 예시 (0) | 2022.03.14 |
---|---|
자산 개발조직의 생산성 평가 및 속성관리 (0) | 2022.02.24 |
클래스와 객체 다이아그램 이해하기 (0) | 2022.02.24 |
소프트웨어 픔질 목표 설정에 따른 세부 계획 수립 (0) | 2022.02.24 |
조직의 프로세스 품질보증체계 (0) | 2022.02.23 |