소프트웨어생명주기모델 Ⅰ. 소프트웨어개발생명주기의개요 가. 소프트웨어개발생명주기의정의 - SDLC : Software Development Life Cycle - 소프트웨어의생성에서소멸까지변환되는과정 - 프로세스모델또는소프트웨어공학패러다임이라고도함 - 소프트웨어가개발되기위해정의되고사용이완전히끝나폐기될때까지의전과정을단계별로나눈것으로, 조직내에서의장기적인개발계획과개발과정중심의관점 나. 소프트웨어개발생명주기의출현배경 - 소프트웨어위기의위기대처필요 - 효과적인소프트웨어개발수행의필요 - 고품질소프트웨어의생산성확보필요 다. 소프트웨어개발생명주기의특성 - 프로젝트수행절차를이행하기위한효과적인도구 - 프로젝트의유형, 관점, 개발방침, 표준정책에따라다양한방법존재 라. 소프트웨어개발생명주기의기능 - 프로젝트비용의산정 - 프로젝트의개발계획수립 - 용어, 산출물구성등의표준화지원 - 개발진행상황파악지원및프로젝트관리의지원 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 0
소프트웨어생명주기모델 Ⅱ. 소프트웨어개발생명주기의특징 가. 소프트웨어개발생명주기의단계 단계 내용 타당성, 요구명세화 타당성조사, 소프트웨어의기능과제약조건을정의하는명세서작성 소프트웨어개발단계명세서를만족하는소프트웨어의개발 ( 설계, 구현 ) 확인, 검증단계사용자가원하는소프트웨어인지를확인하는검증단계 ( 시험, 설치 ) 유지보수, 폐기단계 사용자요구사항의변화를수용하기위한진화및프로그램및폐기 나. 소프트웨어개발생명주기모델의유형 1) 폭포수모델 (Waterfall Model) 2) Prototyping 모델 3) RAD(Rapid Application Development) 기법모델 4) 진화적개발모델 (Evolutionary Development Model) - 나선형모델 (Spiral Model) - 증분개발모델 (Incremental Development Model) 5) Formal Method 모델 : 클린룸소프트웨어엔지니어링 6) 4 세대기법 7) 동기적안정적모델 (Synchronize-and-stabilize) - 마이크로소프트의소프트웨어패키지에적용 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 1
소프트웨어생명주기모델 다. 소프트웨어개발생명주기모델선정기준 1) 프로젝트의규모와성격 2) 개발에사용되는방법과도구 3) 개발에소요되는시간과비용 4) 개발과정에서의통제수단과소프트웨어산출물인도방식 Ⅲ. 소프트웨어개발생명주기의보완사항과발전방향 가. 소프트웨어생명주기의보완사항 - 진화적프로토타이핑모델을제외한모델에서사용자참여미흡함. - 문서위주의확인방식이기때문에비효율적가능성있음. - 단계별진행에따르기때문에생명주기진행이늦어질가능성있음. - 발전적개발이필요한계속확장되는시스템에비적합가능성있음. 나. 소프트웨어생명주기의발전방향 - 객체지향 4 세대도구 (4GL, 4th Generation Language) 를활용한신속한개발이가장보편적임. - 신기술을보유한소수의전문가집단을통한개발조직형성및개발을 Lead 하도록함. - 프로토타이핑모델의발전에따라 RAD(Rapid Application Development) 시스템이점진적으로정착전망 - 향후 Component 개발방식 (Component Based Develop) 에의한소프트웨어모듈화및재사용증대로개발비용은낮추고, 생산성과품질을향상시키는방향으로발전전망 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 2
소프트웨어생명주기모델 전통적모델 Ⅰ. 전통적모델의개요 가. 전통적모델의정의 나. 전통적모델의특징 - 개발단계를명확히구분되는단계로분할 - 다음단계는전단계의산출물을기초로시작됨. 다. 전통적모델의문제점 - 한번지나간상위단계에대한오류수정이어려움. - 변화에대한융통성결여 - 개발종반부에발생된문제점으로인해분석단계로부터다시시작해야할가능성이발생할수있으며, 최악의경우프로젝트실패가능성도있음. [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 3
소프트웨어생명주기모델 폭포수 (Waterfall) 모델 Ⅰ. 폭포수모델의개요 가. 폭포수모델의정의 - 개념정립에서구현까지하향식접근방법으로추상화 Modeling 실행하는모델 나. 폭포수모델의특징 - 가장많이사용되었던전통적인모델 - 소프트웨어개발을단계적, 순차적, 체계적접근방식으로수행 - 각단계별로철저히매듭짓고다음단계로진행함 - 검토 (Validation) 및검증 (Verification), 검사 (Test) 에의해프로젝트전반의품질향상추구 Ⅱ. 폭포수모델의장단점및단계 가. 폭포수모델의장. 단점 장점 - 적용사례가많으므로위험성적음 - 문서등의관리와적용이용이 - 가시성이우수함 - 기술적인위험이적음 - 단계별로정형화된진행가능 단점 - 문제해결 / 수정비용, 시간, 노력이많이듬 - 사용자피드백에의한반복단계가불가능 - 작업의통합화및대규모시스템에부적합 - 문서화의부담과작업지연발생가능 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 4
소프트웨어생명주기모델 폭포수 (Waterfall) 모델 나. 폭포수모델의단계별구현 프로젝트착수 시스템분석및타당성조사 논리적분석및설계 획득또는개발 구현및검증 운영 사후감사, 감리 유지보수 전단계로복귀또는종료 Ⅲ. 폭포수모델의문제점 가. 폭포수모델의문제점 - 각단계전환에많은노력이필요 - 불필요한 Document 가많이양산될가능성 - 단계별완전성이요구되나현실적으로어려움 - 단계별문제미해결시개발기간이길어질가능성이있음 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 5
소프트웨어생명주기모델 프로토타이핑모델 Ⅰ. 프로토타이핑모델의개요 가. 프로토타이핑모델의정의 - 고객의요구를불완전하게이해하고있거나완벽한요구분석의어려움을해결하기위하여실제개발의일부분만을우선개발 ( 시험제작 ) 하여사용자와의의사소통을통해타당성평가후조정및진행이되도록하는모델 나. 프로토타이핑모델의특징 - 사용자요구를더정확히반영가능 - 시스템이해도가낮은관리자가있는경우유용함 - 개발중에도유지보수효과가있음 Ⅱ. 프로토타이핑모델의구현및장단점 가. 프로토타이핑구현프로세스 요구분석 Prototype 개발, 개선 Prototype 검토, 평가 승인 상세개발 설치 개선필요시 Feedback 실효성이없다고판단되는경우 프로젝트취소 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 6
소프트웨어생명주기모델 프로토타이핑모델 나. 프로토타이핑모델의장단점 장점 - 사용자요구사항의불명확시사용용이 - 관리자의이해가용이 - 에상운영상태의예측이가능함 - 제품의추적성, 시험가능성확보 단점 - 개발완료로착각하기쉬움 - 문서작성미흡및경시, 산출물부재발생 - 폐기시 Overhead, 낭비발생 - 사용자의과다한요구사항발생가능 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 7
소프트웨어생명주기모델 프로토타이핑모델 Ⅲ. 진화적프로토타이핑모델의개요 가. 진화적프로토타이핑모델의정의폭포수모델과프로토타이핑모델의장점을취합하여위험관리를강화한모델 나. 진화적프로토타이핑모델의특징 - 프로토타입을지속적으로발전시켜최종소프트웨어까지도달시키는개발방법 - 소프트웨어의기능을나누어점증적으로개발 - 나선형 (Spiral) 모델이대표적인사례 Ⅳ. 진화적프로토타이핑모델의구현 초기요구분석 계획수립 위험분석 초기위험분석 고객평가에따른계획수립 고객반응에따른위험분석 지속할것인가에대한의사결정 초기프로토타입개발 고객평가실시 고객평가 개발 다음단계프로토타입개발 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 8
소프트웨어생명주기모델 프로토타이핑모델 Ⅴ. 프로토타이핑모델의문제점및극복방안 가. 프로토타이핑모델의문제점 - 최종결과물에대한오해및기대심리유발가능성있음 - 프로젝트관리가느슨해질수있음 - 평가후프로토타입폐기시비경제적임 -Document 작성에소홀하거나의미를두지않을수있어서관리부재발생됨 나. 진화적프로토타이핑모델의문제점 - 프로젝트관리가어려움 - 소프트웨어개발에많은시간이소요되며, 보고서등출력물이많아짐 - 위험분석해결능력이없으면오히려위험한모델이될수있음 다. 문제점과극복방안 구분 개발자 관리자 사용자 문제점 시간낭비라는인식으로거부감 프로젝트의관리부실화발생가능 요구사항에대한신속한결과기대 대책 효율적인교육으로의사소통의중요성인지및활성화관리 체계적인개발체제및관리도구도입 프로토타입과결과물간의차이에대해인지하도록설득및교육 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 9
소프트웨어생명주기모델 나선형 (Spiral) 모델 Ⅰ. 나선형모델의개요 가. 나선형모델의정의 - 소프트웨어의기능을나누어점증적으로개발하는모델로시스템을개발하면서생기는위험을최소화하기위해나선을돌면서점진적으로완벽한시스템으로개발하는모델 나. 나선형모델의장점및단점 1) 장점 - 대규모시스템개발에적합 - 프로젝트의완전성및위험감소와유지보수의용이 2) 단점 - 관리가중요하나매우어렵고개발시간이장기화될요지있음 - 위험분석의진행이어려움 - 복잡한프로세스에대한적응의어려움 다. 나선형모델의단계 - 계획수립 : 목표, 기능선택, 제약조건의결정 - 위험분석 : 기능선택의우선순위분석 - 개발 : 선택된기능의개발 - 평가 : 개발결과의평가 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 10
소프트웨어생명주기모델 나선형 (Spiral) 모델 Ⅱ. 나선형모델의구현프로세스 목표, 방법, 제약조건결정및계획 총비용 다음단계로이동 위험분석 위험분석 위험요소분석및해결 평가및계획단계 위험분석 프로토프로토프로토타입1 타입2 타입 3 운용개념시뮬레이션요구분석 모델, BM 개발계획 요구검증 설계 상세설계 코딩 통합계획설계검증단위시험통합 시험 요구분석계획개발모형계획 구현 인수시험 최종프로토타입 개발및검증 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 11
소프트웨어생명주기모델 나선형 (Spiral) 모델 Ⅲ. 나선형모델의장단점 장점 - 각 SDLC 장점을수용 - Risk 관리위주이므로효율적인위험관리 - H.W 개발시수용하기에효과적 - 개발과개선이동시에진행 단점 - 위험관리의능력에따라성공여부에영향 - 내부개발에적합하고, 외부개발에는위험 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 12
소프트웨어생명주기모델 반복적개발모델 Ⅰ. 반복적개발모델의개요 가. 반복적개발모델의소개 - 사용자요구사항의일부분, 제품의일부분을반복적으로개발하여최종제품을완성하는방법 - 재사용, 객체지향개발, RAD 등의기반이됨 나. 증분개발모델 (Incremental Development Model) - 폭포수모델변형으로하향식구조의수준별증분의분리개발, 이후최종제품통합 - 증분개발모델의절차 문제 증분 1 증분 2 증분 3 설계구현시험설치운영 설계구현시험 설계구현 통합최종시스템완성 다. 진화적개발모델 (Evolutionary Development Model) - 각구성요소핵심부분의개발, 개선, 발전시켜나가는발전적인모델 - 진화적개발모델의개발절차 N 단계진화한최종시스템 핵심요구사항설계구현시험설치운영 요구사항설계구현시험설치운영 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 13
소프트웨어생명주기모델 RAD (Rapid Development) 모델 Ⅰ. RAD 모델의개요 가. RAD 모델의정의 - 요구사항정의, 분석및설계와 CASE 를사용하여최소한의활동에의한신속한시스템구축개발방법론 나. RAD 모델의특징 - 프로토타이핑방식기준사용자요구사항, 분석, 설계, 개발을신속한시스템으로개발 - 제한된범위의단독시스템을 CASE 와같은다양한도구를활용하여신속히개발함 - 고급언어의모호성을해결하기위해형식규격언어로표현하려는노력이진행 - 전통적인 SDLC 의사용자참여미흡, 늦은생명주기를극복하기위한대안 다. RAD 모델의절차 Business / Data / Process Modeling Application 생성 TEST 라. RAD 모델의구성 RDBMS, OODBMS, Component, OOPL 기동타격대전담팀 통합 TOOL, CASE 4GL 재사용 Library, prototype 활용 Speed 고품질 User 만족 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 14
소프트웨어생명주기모델 RAD (Rapid Development) 모델 Ⅱ. RAD 모델의비교및전망 가. RAD 모델과전통적인 SDLC 의비교 RAD - - 분석 : JRP(Joint Requirement Planning) - 설계 : JAD(Joint Application Design) - 구축 : CASE 사용 전통적 SDLC - ISP : 정보전략계획 - 분석 : BAA - 설계 : 시스템설계및기술설계 - 구축 나. RAD 모델의전망 - 기술집약적 - 발전적개발표준 - 사용자의관심필요와신기술, 전문기술자확보가관건 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 15
소프트웨어생명주기모델 기타모델 Ⅰ. Operational 모델 - 폭포수모형의단점을보완하기위해제안된모델 - 개발할시스템의운영측면을강조하고있는것이프로토타입모델과상이 - 연속적으로변환될수있는수행가능한명세서를생성하여관리 - 소프트웨어시스템의문제를해결하는데적용될수있는표현능력이뛰어남 - 자동화가능하고명세서의자동적인변환이가능 - 변환과정에지나친제한이가해짐 Ⅱ. 지식기반모델 - 앞에서설명한각모형들과인공지능의한분야인전문가시스템의결합한모델 - 핵심은소프트웨어공학의지식영역과응용분야의지식영역을분리하고개발과정에관계되는정보를지식데이터베이스에저장하여공유및재활용제공 Ⅲ. 4 세대기법 - 소프트웨어개발자가소프트웨어의특징을높은수준에서명세화할수있는공통적인특징을지닌소프트웨어도구들을포함하는기법 Ⅳ. Clean-Room Methodology - 분석설계모델을 BOX 구조로표현하여생성 -BOX 의의미는추상화 - 통계적인방법을수용한모델 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 16
소프트웨어생명주기모델 기타모델 * Clean-Room Methodology 의예 [ 송희경기술사 ( 대우정보시스템 /68 회정보관리 /hksong@disc.co.kr) ] 17