TTAS.KO-11.0015/R1 개정일 : 2006 년 12 월 27 일 T T A S t a n d a r d 객체지향소프트웨어분석 / 설계지침 Guidelines for Object-oriented Software Analysis and Design
TTAS.KO-11.0015/R1 개정일 : 2006 년 12 월 27 일 객체지향소프트웨어분석 / 설계지침 Guidelines for Object-oriented Software Analysis and Design 본문서에대한저작권은 TTA 에있으며, TTA 와사전협의없이이문서의전체또는일부를 상업적목적으로복제또는배포해서는안됩니다. Copyrightc Telecommunications Technology Associations 2006. All Rights Reserved.
서 문 1. 표준의목적 본표준은객체지향패러다임을사용한소프트웨어개발프로세스내에서체계적인 분석 / 설계활동을수행할수있도록구체적인절차, 산출물등을정의하여제시함을 목적으로한다. 2. 주요내용요약 본표준은객체지향소프트웨어개발프로세스에서의분석설계활동및분석설계활동에 대한지침을제시한다. 3. 표준적용산업분야및산업에미치는영향 본표준은소프트웨어개발전분야에걸쳐적용할수있다. 객체지향분석설계를통하여 보다효율적이며유지보수가용이한소프트웨어를개발할수있다. 4. 참조표준 ( 권고 ) 4.1. 국외표준 ( 권고 ) - 해당사항없음 4.2. 국내표준 - 해당사항없음 5. 참조표준 ( 권고 ) 과의비교 5.1. 참조표준 ( 권고 ) 과의관련성 - 해당사항없음 i TTAS.KO-11.0015/R1
5.2. 참조한표준 ( 권고 ) 과본표준의비교표 - 해당사항없음 6. 지적재산권관련사항 본표준의 지적재산권확약서 제출현황은 TTA 웹사이트에서확인할수있다. 본표준을이용하는자는이용함에있어지적재산권이포함되어있을수있으므로, 확인후이용한다. 본표준과관련하여접수된확약서이외에도지적재산권이존재할수있다. 7. 시험인증관련사항 7.1. 시험인증대상여부 - 해당사항없음 7.2. 시험표준제정현황 - 해당사항없음 8. 표준의이력정보 8.1. 표준의이력 판수제정 개정일제정 개정내역 제 1 판 1999.12.08. 제 2 판 2006.12.27. 제정 TTAS.KO-11.0015 개정 TTAS.KO-11.0015/R1 8.2. 주요개정사항 - 해당사항없음 ii TTAS.KO-11.0015/R1
Preface 1. Purpose of Standard This standard offers guidance on the procedures and products to perform analyzing and designing activities using object-oriented paradigm. Project managers and programmers can improve effectiveness and efficiency of object-oriented software analysis and design by using the standard. 2. Summary of Contents This standard shows Analysis & Design Activities in OO Software Development Process and guidelines for Analysis and Design Activities. 3. Applicable Fields of Industry and its Effect This standard plays a vital role in any software development. With object oriented analysis and design, software is much more effective and easier to maintain. 4. Reference Standards(Recommendations) 4.1. International Standards(Recommendations) - None 4.2. Domestic Standards - None 5. Relationship to Reference Standards(Recommendations) 5.1. Relationship of Reference Standards(Recommendations) - None iii TTAS.KO-11.0015/R1
5.2. Differences between Reference Standard(Recommendation) and this Standard - None 6. Statement of Intellectual Property Rights IPRs related to the present document may have been declared to TTA. The information pertaining to these IPRs, if any, is available on the TTA Website. No guarantee can be given as to the existence of other IPRs not referenced on the TTA website. And, please make sure to check before applying the standard. 7. Statement of Testing and Certification 7.1. Object of Testing and Certification - None 7.2. Standards of Testing and Certification - None 8. History of Standard 8.1. Change History Edition Issued date Outline The 1st edition 1999.12.08. The 2nd edition 2006.12.27. Established TTAS.KO-11.0015 Revised TTAS.KO-11.0015/R1 8.2. Revisions - None iv TTAS.KO-11.0015/R1
목차 1. 개요 1 2. 용어정의 1 3. 객체지향소프트웨어개발프로세스내의분석 / 설계활동 2 4. 분석및설계활동지침 3 4.1. 개발범위정의 3 4.1.1. 사용자요구수집 5 4.1.2. 업무분석및재설계 6 4.1.3. 개발시스템정의 8 4.1.4. 프로젝트타당성분석 10 4.2. 요구사항분석 11 4.2.1. 현행시스템분석 13 4.2.2. 사용자요구정제 14 4.2.3. 분석모형작성 17 4.2.4. 초기아키텍처정의 20 4.2.5 사용자지침서초안작성 24 4.3. 아키텍처정립 26 4.3.1. 아키텍처정의 27 4.3.2. 아키텍처검토 29 4.4. 요구사항정제및설계 30 4.4.1. 사용사례정제 32 4.4.2. 설계클래스추가 35 4.4.3. 클래스정제 38 4.4.4. 데이터베이스설계 (RDB) 40 4.4.4-1. 데이터베이스설계 (OODB) 44 4.4.5. 사용자인터페이스설계 46 4.4.6. 아키텍처정제 48 부록 Ⅰ. UML 용어한글표기 53 v TTAS.KO-11.0015/R1
CONTENTS 1. Overview 1 2. Definitions 1 3. Analysis & Design Activities in OO Software Development Process 2 4. Guidelines for Analysis and Design Activities 3 4.1. Defining the Development Scope 3 4.1.1. Gathering User Requirements 5 4.1.2. Business Process Analysis and Re-engineering 6 4.1.3. Defining the Development System 8 4.1.4. Feasibility Study for the Project 10 4.2. Requirement Analysis 11 4.2.1. Analizing Legacy System 13 4.2.2. Refining User Requirements 14 4.2.3. Creating Analsis Models 17 4.2.4. Defining Initial Architectures of the System 20 4.2.5. Writing Draft of the Users Manual 24 4.3. Establishing Architectures of the System 26 4.3.1. Defining Architectures 27 4.3.2. Reviewing Architectures 29 4.4. Refining Requirements and Designing 30 4.4.1. Refining Use Cases 32 4.4.2. Adding Design Classes 35 4.4.3. Refining Extracted Classes 38 4.4.4. Designing Database for the RDBMS 40 4.4.4-1. Designing Database for the OODBMS 44 4.4.5. Designing User Interfaces 46 4.4.6. Refining Architectures 48 AppendixⅠ. UML Terms and Definitions 53 vi TTAS.KO-11.0015/R1
객체지향소프트웨어분석 / 설계지침 (Guidelines for Object-oriented Software Analysis and Design) 1. 개요 오늘날정보기술의주요한방향중의하나는객체지향기술의표준화와보급이다. 객체지향기술은복잡하고분산된시스템을개발하고관리하기위한기본적인패러다임으로인식되고있다. 객체지향언어, 분산객체기술, 객체지향데이터베이스의발전과급속한보급이객체지향에기반한정보시스템의개발을가속화하고있다. 본표준은객체지향패러다임을사용하는소프트웨어개발프로젝트의분석및설계활동을수행할수있도록구체적인절차, 산출물등을정의하여제시하고있다. 객체지향소프트웨어의분석및설계활동을지원하는객체지향문서화방법으로 OMG(Object Management Group) 객체지향표기법표준인 UML 의표기법및다이어그램을채택하였다. 그러므로본표준의사용자는객체지향소프트웨어개발프로젝트를위한분석및설계를계획하거나수행하는사람을대상으로한다. 이표준의채택을고려하고자하는조직은이표준이 객체지향소프트웨어개발프로세스지침 에서제시한개발프로세스와연관이있으며이중분석및설계활동의세부작업들에대한절차수행에적용되고있음을인식하여야한다.( 개발프로세스의단계및활동등은 객체지향소프트웨어개발프로세스지침 참조 ) 2. 용어정의 UML 용어의한글표기는별도로부록으로기술한다. 2.1. 기법 (Technique) 전문적인절차와개념, 기술을사용하여작업을완수할수있는수행방법 2.2. 단계 (Phase) 프로젝트의계속적인진행을위한의사결정시점으로, 한단계가종료되면다음단계의 진행을위한승인을받아야한다. 개발단계는병행해서수행될수없으며, 하나이상의 활동으로구성된다. 1 TTAS.KO-11.0015/R1
2.3. 미니프로젝트 (Mini-project) 활동들의집합으로제한된시간내에사용자가사용가능한형태의시스템을생성하는 단위이다. 시간적으로소규모팀기준으로 2 주에서 2 달정도의기간에수행하는 활동으로하나혹은다수의사용사례를개발대상으로한다. 2.4. 산출물 (Product) 모형, 코드, 문서, 작업계획과같은개발작업의수행결과로생성되는문서나제품을 의미한다. 산출물은고객 ( 사용자 ) 에게제시할것을전제로하여작성되는것과 프로젝트내부에서만이용할목적으로작성되는것으로분류할수있다. 2.5. 작업 (Task) 한사람 ( 또는한팀 ) 이단일목표를성취하기위한일의단위로써, 반드시신규로 작성되거나갱신되는산출물을제공하여야한다. 2.6. 활동 (Activity) 단계수행시중간점검의의미를지닌단위이며, 논리적으로연관이있는작업들의 집합이다. 3. 객체지향소프트웨어개발프로세스내의분석 / 설계활동 객체지향소프트웨어개발프로세스는 ( 그림 3-1) 에서보는바와같이크게 4 가지단계로구분할수있으며, 각단계를수행하기위한활동들로세분화된다. 그림에서활동은단계내부에도식화되어있는사각형으로표시되어있다. 이중본표준에서는분석및설계활동이가장활발하게일어나는개발범위정의활동, 요구사항분석활동, 아키텍처정립활동및요구사항정제및설계활동을중심으로이들활동의목적, 활동수행을위한세부작업및절차, 입력물및출력물등을기술한다. 2 TTAS.KO-11.0015/R1
계획단계정립단계점진적개발단계인도단계 계획단계준비 정립단계준비 미니프로젝트준비 인도단계준비 개발범위정의 요구사항분석 요구사항정제및설계 시스템설치 프로젝트계획수립 위험분석 클래스구현및시험 사용자승인시험 계획단계점검 시제품개발계획수립 지침서및교재개발 사용자교육 시제품개발미니프로젝트 통합시험 설치후관리 아키텍처정립 시스템시험 인도단계점검 개발계획수립 미니프로젝트점검 정립단계점검 점진적개발단계점검 미니프로젝트 반복활동 ( 그림 3-1) 객체지향소프트웨어개발프로세스구성도 4. 분석및설계활동지침 4.1. 개발범위정의 개발될시스템의비전, 목표를정의한다. 새로운시스템을사용할사용자의범위, 관련업무의범위를결정하고관련된자료들을수집한다. 사용자의요구사항과관련업무를파악한다. 개발할시스템의기능적, 비기능적요구사항을정의한다. 개발할시스템의개발범위및기능을사용사례모형을중심으로정의하고, 새로운시스템구축에따르는개발비용및효과를분석하여타당성을검토한다. 작업구조개발범위정의활동은모두 4 개의작업과 15 개의절차로이루어져있으며세부사항은다음과같다. 1 사용자요구수집개발에관련된사용자의요구사항을조사하기위하여면담및설문등의작업을수행하고기처자료를수집한다. 사용자규명 사용자면담 / 설문및기초자료수집 현행시스템구조추출 3 TTAS.KO-11.0015/R1
2 업무분석및재설계 개발될시스템의사용자업무가운데프로세스개선이필요한업무를분석하여개선아이디어를정리하고, 해당업무의프로세스를재설계한다.. 업무분석대상프로세스선정 현행업무프로세스분석 업무프로세스재설계 사용자와재설계프로세스검토 3 개발시스템정의새로운시스템의개발범위및기능을사용사례모형을중심으로정의하고, 새로운시스템의운영환경을정의한다. 시스템목표및범위설정 기능적요구사항정의 비기능적요구사항정의 시스템운영환경정의 4 프로젝트타당성분석개발시스템의구축에따르는소요비용및효과를검토하고프로젝트의타당성을검토한다. 소요비용산정 개선효과추출 상품성분석 타당성검토 업무분석및재설계 개발시스템정의 프로젝트타당성분석 4 TTAS.KO-11.0015/R1
4.1.1. 사용자요구수집 개요시스템의사용자를파악하고, 관련자료들을수집하여분석하는작업이다. 시스템의사용자를파악하여사용자목록을작성한다. 사용자별요구사항을수집하기위한방안 ( 설문또는면담, 관찰 ) 을결정하여요구사항수집활동을수행한다. 이와함께시스템개발에관련된문서, 양식, 규정등의관련자료들을수집하여정리한다. 현재사용하고있는시스템이존재하는경우, 현행시스템의분석작업을수행한다. 현행시스템의분석작업은기존의현행시스템에대한문서들을중심으로수행한다. 절차설명 1 사용자규명개발될시스템의사용자를찾아내어나열한다. 사용자규명은시스템사용대상자의범위를결정한다. 개발될시스템의사용자를유형별로정리한다. 사용자정의서를작성한다. 2 사용자면담 / 설문및기초자료수집사용자요구사항을수집하기위한방안을결정한다. 면담또는설문의계획을세워수행하고결과를분석한다. 이와함께, 개발될시스템과관련된양식, 보고서, 규정, 업무매뉴얼등을수집하여정리한다. 사용자또는사용자그룹별로요구사항을분석하기위한방안을결정한다. 주요한사용자에대하여는직접적인면담을수행한다. 사용자그룹에포함되는사용자가많은경우에는설문방식을취한다. 면담을수행하는경우, 면담수행자와면담대상자, 면담일정등을결정한다. 면담수행자에게는면담의일반적인수행요령과면담의목적등을인지시킨다. 면담수행결과는사용자면담서에서술식으로정리한다. 설문조사가필요한경우, 조사방법론에근거하여설문을계획하고수행하며결과를분석한다. 기초자료수집은시스템개발과관련된정보및지식들을수집하는단계이다. 개발되는시스템과관련된양식, 보고서, 컴퓨터출력물, 업무규정등이포함된다. 특정분야에대한지식이필요한경우에는해당분야에관한자료들을수집하여정리한다. 5 TTAS.KO-11.0015/R1
3 현행시스템구조추출 현재운영중인시스템이존재하는경우, 현행시스템에대한분석작업을수행한다. 현행시스템의분석작업은기존의시스템문서들을최대한활용하여수행한다. 현행시스템의기술환경, 즉하드웨어, 소프트웨어, 네트워크환경등을검토한다. 현행시스템의시스템구성을파악한다. 현행시스템의데이터베이스설계를비롯한자료구조를정리한다. 현행시스템의기능들을나열한다. 현행시스템의문제점및해결방안을작성한다. 입력물 / 산출물 입력물계획단계작업계획서조직도 ( 사용자 ) 경영전략및사업방향사업성공요소현행시스템문서기존관련자료 ( 양식, 보고서, 업무매뉴얼, 규정 ) 산출물자료사전사용자요구사항명세서 - 현행시스템분석서 - 사용자요구수집서. 사용자정의서. 사용자면담서. 사용자설문서. 사용자설문계획서. 사용자설문분석서. 사용자료정의서 4.1.2. 업무분석및재설계 개요개발될시스템의사용자업무가운데프로세스개선이필요한업무를분석하여개선아이디어를정리하고, 해당업무의프로세스를재설계한다. 절차설명 1 업무분석대상프로세스선정조직에는많은업무프로세스가있다. 동시에너무많은프로세스를대상으로분석하면초점과경영측의관심이흩어지므로소수의프로세스를선택하여착수한다. 본작업에서대상으로하는업무프로세스는개발하고자하는시스템과관련된업무프로세스만으로한정한다. 시스템개발과관련된모든업무프로세스를나열한다. 나열된업무프로세스에대하여다음과같은평가기준으로업무분석대상 6 TTAS.KO-11.0015/R1
프로세스를선정한다. - 전략적으로중요한프로세스를선택한다. - 고객에게영향을미치는프로세스를선택한다. - 종업원들의불만이많은프로세스를선택한다. - 개선하기쉬운프로세스를선택한다. - 가용자원의확보가쉬운프로세스를선택한다. 2 현행업무프로세스분석선정된프로세스들의현재작업방식과성취도를측정한다. 경영혁신의기초가되는현상태는왜곡없이정확한이해가이루어져야된다. 특히작업방식의파악을기초로프로세스의각단위작업별로입력물, 산출물, 문제점들의파악이필요하다. 예외사항의해결방식, 고객의피드백에대한처리과정도분석되어야한다. 활동도와업무프로세스기술을중심으로업무프로세스에대한이해및분석작업을수행한다 사용자와함께현행업무프로세스에대한활동도를작성한다. 업무프로세스의작업별투입물, 산출물, 문제점을파악한다. 업무프로세스의평가척도를파악한다. 3 업무프로세스재설계업무프로세스의재설계가필요한경우, 업무프로세스개선안을작성한다. 개선안에는개선모형을활동도형태로작성하고개선효과등은 ( 개선 ) 업무프로세스기술에정리한다. 해당업무프로세스의개선을위해서활용가능한정보기술을검토한다. 고객입장에서새로운프로세스개발을시도한다. 긴직렬조직은병렬작업과업무통폐합을이용하여프로세스를재설계한다. 개선업무프로세스의개선효과를프로세스평가척도를기준으로예측한다. 개선업무프로세스의타당성을검토한다. 4 사용자와재설계프로세스검토재설계된업무프로세스를사용자와함께검토하고사용자의의견을들어보완한다. 사용자의의견을반영하여개선업무프로세스를보완한다. 필요한경우업무프로세스의실제구축에앞서초기실험을수행한다. 7 TTAS.KO-11.0015/R1
입력물 / 산출물 입력물조직도 ( 사용자 ) 업무분장표사업성공요소사용자요구수집서현행시스템분석서자료사전 산출물사용자요구명세서 - 사용자업무정의서자료사전 4.1.3. 개발시스템정의 개요시스템의기능적요구사항과비기능적요구사항을정리한다. 기능적요구사항은사용사례모형을중심으로기술하고, 비기능적요구사항 ( 제약조건, 성능요구사항등 ) 은비정형화된서술형태로기술한다. 또한사용사례와비기능적요구사항을고려하여시스템의운영환경도기술한다. 절차설명 1 시스템목표및범위설정개발요청서, 프로젝트개요서 ( 계획단계작업계획서의일부 ), 사용자요구사항수집서, 현행시스템분석서, 사용자업무정의서등을참조하여개발할시스템의목표와범위를구체화한다. 다음과같은내용들을정리한다. 개발시스템의목표를기술한다. 개발시스템의특징과범위에대하여기술한다. 개발시스템의개요를비정형적으로기술한다. 2 기능적요구사항정의개발시스템의기능적요구사항을사용사례모형을중심으로기술한다. 사용자요구사항수집서, 현행시스템분석서, 사용자업무정의서를참조하여다음과같은내용을작성한다. 개발시스템의행위자를나열한다. 행위자에는사용자, 인터페이스할하드웨어, 소프트웨어, 디바이스등이포함된다. 개발시스템이포함할기능을사용사례로한다. 사용사례도를통해서사용사례와행위자간의관계, 사용사례간의관계를정의한다. 8 TTAS.KO-11.0015/R1
각사용사례에대한설명을기술한다. 3 비기능적요구사항정의개발시스템의비기능적요구사항을비정형적인서술로기술한다. 다음과같은내용을포함한다. 개발시스템이만족시켜야하는제약조건 ( 기술적제약조건, 기존하드웨어, 소프트웨어와관련된제약조건, 인터페이스할시스템과관련된제약조건, 운영및관리상의제약조건, 기업전략적제약조건등 ) 을기술한다. 개발시스템이반드시만족시켜야하는주요성능척도 ( 반응시간, 저장능력, 동시처리능력 ) 를기술한다. 신뢰성, 확장성, 이식성, 보안과관련된요구사항을기술한다. 개발시스템이만족시켜야하는제약조건을기술한다. 4 시스템의운영환경정의사용사례와비기능적요구사항을고려하여시스템이운영될하드웨어, 소프트웨어선정기준을정하고지역간네트워크도정하여시스템을구성하는하드웨어, 소프트웨어, 네트워크의사양과연관관계를기술한다. 현재의하드웨어, 소프트웨어, 네트워크현황을파악한다. 현재의하드웨어, 소프트웨어, 네트워크에대한감가상각및기술적가능성을파악한다. 즉각적, 장기적으로이익을제공하여줄수있는기술이무엇인지파악한다. 개발시스템과인터페이스를하기위한제약조건과개발될시스템이갖추어야할특성들을정리한다. 입력물 / 산출물 입력물사용자요구수집서현행시스템분석서사용자업무정의서자료사전 산출물사용자요구명세서 - 요구정의서자료사전 9 TTAS.KO-11.0015/R1
4.1.4. 프로젝트타당성분석 개요프로젝트에소요되는규모를계산하고, 사용자에게가져다주는가치와개선효과를기술하고, 개발시스템의타당성을검증하는작업이다. 프로젝트소요비용은신규시스템의요구사항정의서에기술된시스템의주요기능, 기술환경을가지고계산한다. 비용효과는정량적, 정성적으로작성하며프로젝트가조직과작업수행방식에미치는영향을조사한다. 개발할시스템이 COTS(Commercial Off The Shelf) 제품인경우는상품성을분석한다. 개발할시스템의유형적, 무형적효과를분석하고, 개발및운영에소요되는비용을추정하여비용대비효과를추정하여비교한다. 절차설명 1 소요비용산정시스템의요구정의서에의하여인건비를계산하고, 개발지원도구, 하드웨어, 네트워크, 시스템소프트웨어에의하여장비료를, 기타출장등제비용등을합하여개발비를산정한다. 개발규모를산출한다. 직접인건비를산정한다. 제경비를산정한다. 2 개선효과추출시스템이개발완료되었을경우를가상하여사용자에게가져다주는효과를유형효과와무형효과로나누어기술하며이는사용자업무정의서의개선내역을참조하여작성한다. 신규시스템의개발로사용자가얻을수있는이익을계수화한다. 산업계평균이나유사한사용자의경험을기초로하여이익의규모를제시한다. 정의된이익과관련된가정을기술한다. 이익과가정을검토하고정한다. 3 상품성분석개발시스템이 COTS(Commercial Off The Shelf) 제품인경우개발시스템에대한상품성을분석한다. 개발할목표제품과유사한경쟁제품을분석한다. 경쟁제품에대한기능및성능분석을통하여기술적우위성을갖는지검토한다. 10 TTAS.KO-11.0015/R1
원가계산및원가절감방안을마련하여가격경쟁력을갖는지분석한다. 시장규모예측을통하여확보가능한시장규모를파악한다. 이상의기술적우위성과가격경쟁력분석및시장수요에대하여개발하려는목표제품이충분한상품성을갖는지평가한다. 4 타당성검토프로젝트팀원들이하는작업으로신규시스템요구정의서, 프로젝트비용산정서와경제성평가서를가지고타당성검토를한다. 이에는주로기술검토, 사용자조직수행검토, 사용자의가치검토, 수익검토를한다. 기능별개선대안을기록한다. 요구사항에대한적합성검토를한다. 기능에대한목표및조직변화요소를기록한다. 개선효과비용을기술한다. 상품성분석결과를기술한다. 전체적인총평을한다. 입력물 / 산출물 입력물사용자요구명세서 - 사용자요구수집서 - 현행시스템분석서 - 사용자업무정의서 - 요구정의서유사제품및경쟁제품자료자료사전 산출물프로젝트타당성분석서 - 프로젝트비용산정서 - 경제성평가서 - 상품성분석서 - 타당성검토서 4.2. 요구사항분석 계획단계의사용자요구명세서를바탕으로, 사용자요구사항을추가로획득하여정제하고초기분석작업을수행하는활동이다. 사용사례를중심으로시스템의기능적요구사항을보완하고비기능적요구사항도보완하여기술한다. 사용사례와시나리오의분석을통해서문제영역내에존재하는객체들을규명하고그들간의관계를클래스도로표현한다. 또한분석결과들을바탕으로초기아키텍처를정의한다. 현행시스템이있는경우, 현행시스템을분석하여그결과를참조한다. 11 TTAS.KO-11.0015/R1
작업구조 요구사항분석활동은모두 5 개의작업과 23 개의절차로이루어져있으며세부사항은다음과같다. 1 현행시스템분석현행시스템과관련된자료를수집하여정리하고현행시스템의문제점을분석하여해결방안을모색한다. 현행시스템기술환경분석 현행시스템자료구조분석 현행시스템기능분석 문제점분석및해결방안모색 2 사용자요구정제사용자와의면담, 설문, 워크샵등을통해서사용자의요구사항을추출한다. 사용자요구사항은기능적요구사항 (functional requirements) 와비기능적요구사항 (nonfunctional requirements) 으로나눌수있다. 기능적요구사항의정제는시스템의외부행위자와시스템의상호작용을나타내는사용사례를식별함으로써이루어진다. 비기능적요구사항은시스템의성능, 보안, 응답시간, 처리량등기능외적인것을말한다. 기능적요구사항보완 비기능적요구사항보완 시스템기술환경보완 3 분석모형작성사용자요구정제작업에서얻어진시스템의기능적요구사항에대해분석작업을수행한다. 시나리오를바당으로순서도및협력도를작성하여사용자요구사항을분석 정제하고상위수준의클래스도를작성한다. 사용사례상세기술 사용자인터페이스정의 객체추출및객체상호작용분석 클래스식별 클래스속성및연산정의 클래스관계정의 클래스도작성및검토 4 사용자지침서초안작성 12 TTAS.KO-11.0015/R1
사용자요구사항의정제및분석결과를바탕으로사용자지침서의초안을작성한다. 구성항목정의 항목별내용작성 사용자지침서검토 4.2.1. 현행시스템분석 개요본 작업에서는 계획단계에서 수집한 현행 전산 시스템에서 운영중인 응용시스템 ( 프로그램, 데이터베이스, 시스템기술환경등 ) 의자료를검토하여미비한 자료는추가로수집하여분석한다. 개발자가현행전산시스템을정확히파악함으로써 개발업무를개선하고문제점을해결하는지침이된다. 절차설명 1 현행시스템기술환경분석계획단계의현행시스템기술서와기존시스템문서를바탕으로현행시스템이개발되고운영되는전산시스템환경을조사한다. 현행시스템의구성요소를파악하여각구성요소에대해분석한다. 도출된현행시스템기술환경자료는개발시스템의아키텍처정의를위한기초자료가된다. 정보시스템부서에서관리하는모든정보시스템자원을파악한다. 시스템을구성하는하드웨어, 시스템소프트웨어, 주변기기, 단말기등을파악한다. 모뎀이나통신망등현행시스템을구성하는통신장비를파악한다. 현행시스템구성도를작성한다. 시스템구성요소 ( 하드웨어, 시스템소프트웨어, 주변기기등 ) 를통신망으로연결된시스템구성도를작성한다. 시스템구성도에서정의된구성요소를정의한다. 구성요소별상세내역을정리하여현행시스템기술환경을기술한다. 2 현행시스템자료구조분석사용자와의면담을통해현행시스템에관한자료를수집하여자료구조를분석한다. 현행시스템문서와업무를파악한다. 현행시스템과관련된자료구조를파악하여현행시스템자료구조를작성한다. 3 현행시스템기능분석 13 TTAS.KO-11.0015/R1
현행시스템이제공하는기능을분석하고문서화한다. 기능에대한분석을통해현행시스템과현행업무절차를파악한다. 현행시스템문서를조사한다. 시스템의기능을식별한다. 식별된기능을분류하여현행시스템기능을기술한다. 4 문제점분석및해결방안모색현행시스템의문제점을분석하여사용자의현행시스템에대한불만사항및개선아이디어를검토한다. 현행시스템문서를조사한다. 계획단계의사용자업무정의서의개선업무활동도를검토한다. 사용자와현행시스템의문제점및개선방향을정리하여문제점및해결방안을작성한다. 앞절차의작업들을정리하여현행시스템분석서를작성한다. 입력물 / 산출물 입력물자료사전현행시스템문서현행시스템분석서 ( 계획단계 ) 사용자업무정의서 산출물 현행시스템분석서 ( 보완 ) 자료사전 ( 보완 ) 4.2.2. 사용자요구정제 개요계획단계의개발범위정의활동에서작성된요구정의서를검토하고더상세하게사용자요구사항을정제한다. 이를위해현행시스템분석서를검토하고면담, 설문, 관찰등의기법을활용한다. 시스템의행위자로서, 사용자뿐만아니라개발될시스템이직접적으로상호작용을해야하는하드웨어, 소프트웨어들에대한분석및제약사항등도검토한다. 사용자요구사항은두가지로나누어분류할수있는데기능적요구사항은본질적으로대상시스템이수행하여야하는일 ( 기능 ) 이무엇인가를의미하는것으로사용사례의식별을통해추출할수있고, 비기능적요구사항은시스템의기능외적인요구사항으로성능, 품질, 비용, 운영, 환경, 보안, 분산 ( 지역 ) 등과관련되어있다. 14 TTAS.KO-11.0015/R1
절차설명 1 기능적요구사항보완시스템과외부행위자가상호작용하는것을나타내는사용사례를규명하고정제한다. 개발범위정의활동의산출물인요구정의서를검토하고, 면담이나설문등을사용하여사용자와의사소통을충분히한다. 만약현행시스템이있다면, 현행시스템에대한분석작업결과를검토하여반영한다. 사용자를분류한다. 개발시스템을직접사용하는그룹을식별하는것으로계획단계에서파악된사용자목록, 사용자면담서, 사용자설문분석서등을검토하여사용자그룹을식별한다. 인터페이스하드웨어, 소프트웨어를규명한다. 개발시스템이어떤하드웨어로구성될것인지, 연관되는소프트웨어는어떤것이있는지식별한다. 이때면담을통해사용자와충분히의견을교환하는것이바람직하다. 만약현행시스템이있는경우계획단계또는본단계의선행작업인현행시스템분석작업의현행시스템분석서를참조한다. 행위자를식별한다. 행위자란시스템과상호작용하면서어떤서비스를받는객체로볼수있다. 식별된사용자그룹과인터페이스시스템을검토하고, 계획단계에서작성된행위자목록을참조하여행위자목록을작성한다. 행위자목록을검토한다. 사용자와함께식별된행위자를검토한다. 누락되거나중복되는행위자는없는지불명확한행위자는없는지검토하여행위자목록을보완한다. 사용사례를식별한다. 사용사례의식별은각행위자별로식별한다. 계획단계에서식별된사용사례를충분히검토하고추가적으로사용사례를식별한다. 너무복잡한사용사례는분할하여세분화시키고각사용사례별로행위자와사용사례가어떻게상호작용하는지를개략적으로기술한다. 사용사례간의관계를규명한다. 사용사례간의관계를규명하여사용사례도를작성한다. 이때여러사용사례에서공통으로쓰일수있는사용사례는따로분리하여 <<uses>> 관계를설정하고, 예외상황에대한사용사례는 <<extends>> 관계를설정한다. 2 비기능적요구사항보완계획단계의요구정의서를검토하고, 면담이나설문등의기법을사용하여사용자와의사소통을충분히하여시스템의비기능적요구사항을정리한다. 15 TTAS.KO-11.0015/R1
계획단계의요구정의서의비기능적요구사항을검토한다. 시스템이나네트워크등의성능 ( 처리량, 응답시간 ) 이나보안등에대해불명확하거나추가적인요구사항이있으면보완한다. 시스템의신뢰성, 확장성, 이식성등추가적인요구사항이있으면기술한다. 개발될시스템이만족시켜야하는제약조건을기술한다. 기술적제약조건, 기존하드웨어, 소프트웨어와관련된제약조건, 인터페이스를해야하는시스템과관련된제약조건, 운영및관리상의제약조건, 기업전략적제약조건등을기술한다. 3 시스템기술환경보완사용사례와비기능적요구사항을고려하여시스템이운영될하드웨어, 소프트웨어선정기준을정하고지역간네트워크도정하여하드웨어, 소프트웨어, 네트워크등의연관을나타내는시스템구성도와시스템사양을기술한다. 현재의하드웨어, 소프트웨어, 네트워크현황을파악한다. 현재의하드웨어, 소프트웨어, 네트워크에대한감가상각및기술적가능성을파악한다. 즉각적, 장기적으로이익을제공하여줄수있는기술이무엇인지파악한다. 개발시스템과인터페이스를하기위한제약조건과개발될시스템이갖추어야할특성들을정리한다. 입력물 / 산출물 입력물자료사전요구명세서 ( 계획단계 ) - 사용자요구수집서 - 사용자업무정의서 - 현행시스템분석서 - 요구정의서 요구정의서 ( 보완 ) 산출물 16 TTAS.KO-11.0015/R1
4.2.3. 분석모형작성 개요시스템의기능적요구사항인사용사례를구체적으로분석하는작업이다. 각사용사례에대해서관련있는행위자와시스템간의사건흐름을규명하고, 실제사건흐름의예를보여주는시나리오를작성한다. 이를바탕으로시스템을구성하는여러객체를식별하고객체간의상호작용 (Interaction) 을분석하여식별된객체의속성, 연산을규명하여상위수준의클래스도를작성한다. 절차설명 1 사용사례상세기술각사용사례에대해사용자와시스템간의상호작용을나타내는사건의흐름을기술하고, 사용사례가실제로이루어지는여러상황을묘사하는수준으로시나리오를상세하게기술하여사용사례를구체화한다. 사건흐름규명각사용사례에대해행위자와시스템이구체적으로어떻게서로상호작용을하는지를기술한다. 이때무슨사건이일어나는지혹은서로어떤정보 (what) 를주고받는지를기술하는데중점을두어야하며그것이어떻게 (how) 이루어지는지에대한상세한내용은배제해야한다. 시나리오작성시나리오는사용사례의구체적인실제예를기술하는것이다. 사용사례별로작성한다. 먼저해당사용사례에대한정상적인사건흐름을가능한한모두포함할수있게시나리오를작성한다. 필요하다면이를위해여러시나리오를작성할필요도있다. 그런다음, 예외상황이발생할수있는사건흐름을기술한다. 가능한한모든예외상황 (Alternative Scenario) 을기술하도록한다. 시나리오검토각사용사례별로시나리오를모두작성한후누락되거나불명확한흐름이없는지사용자와함께검토한다. 2 사용자인터페이스정의시나리오작성시에개략적인화면구성이나보고서구성을사용자와함께작성하여참조한다. 화면구성과관련하여사용자인터페이스의스타일 ( 폰트, 색깔등 ) 도함께고려한다. 사용자인터페이스가중요한시스템인경우관련된별도의전문가를활용할수도있다. 일반적인시스템의경우, 본작업에서는너무상세하게정의할 17 TTAS.KO-11.0015/R1
필요는없으며, 점진적개발단계에서여러화면간의전이관계등을포함하여상세하게정의한다. 화면, 보고서양식의식별사용자인터페이스와관련된시나리오를검토하여사용자에게보여지는화면과보고서양식을식별한다. 사용자가입력하는모든정보와관련된화면이있어야하며, 사용자에게보여지는모든정보에대한화면이나보고서양식이있어야한다. 사용자인터페이스구성정의식별된화면과보고서양식의구성을구체적으로정의한다. 입출력화면의구성으로메뉴바, 아이콘, 정보출력창, 정보입력창, 화면하단의메시지바, 화면의축소확대아이콘등여러가지가있을수있다. 사용자인터페이스스타일정의화면의해상도를정하고글자체, 글자크기, 색깔등을정한다. 기타개발시스템과관련된로고등이있을수있다. 3 객체추출및상호작용분석각시나리오로부터객체를추출하고순서도또는협력도를작성하여객체간의상호작용을분석한다. 이때주요한화면들에대해서는사용자와함께화면구성도를참조하면서내용을명확히한다. 객체를추출한다. 시나리오에서객체후보를선정하여객체로서적절한지를판단하여객체를선정한다. 각각의객체에대해그객체가어떤것인지개략적인설명을기술한다. 객체간에주고받는메시지를식별한다. 시나리오에서서술어는객체와객체사이의메시지로표현될수있다. 모든서술어를검토하여적절한메시지를식별한다. 순서도 / 협력도를작성한다식별한객체사이의상호작용을분석하는데순서도나협력도가유용하다. 시나리오를검토하고사용자와면담을통해각객체와객체사이의메시지를규명한다. 순서도 / 협력도작성을통해새로발견되는객체가있을수있으며불분명했던사건흐름이나시나리오의내용을보완할필요도있다. 이렇게사용사례를분석하는작업은한번만에완성되기는어려우므로여러번반복한다. 18 TTAS.KO-11.0015/R1
4 클래스식별 요구사항정의서와위에서작성된사용사례분석서등을검토하여클래스를식별한다. 각사용사례별로관련된모든순서도, 협력도에서객체를클래스후보로나열하고, 클래스후보중에서클래스로서적절한것을선정한다. 식별된클래스에대해개략적인정의를클래스명세서에기술한다. 5 클래스속성및연산정의요구사항정의서와순서도, 협력도등을검토하여각클래스의속성과연산을식별한다. 순서도나협력도에서메시지는그것을수신하는클래스의연산이될수있다. 메시지를처리하기위해필요한속성을해당클래스에추가한다. 사용자요구사항명세서를검토하여추가적인속성, 연산을식별한다. 6 클래스관계정의요구사항정의서와순서도, 협력도를바탕으로클래스사이의관계를설정한다. 순서도, 협력도에서메시지를주고받는객체사이는연관관계가있다. 추가적인연관관계를식별한다. 클래스사이에집단화관계를식별한다. 클래스사이의다중성을식별한다. 7 클래스도작성및검토선정된클래스의정의를바탕으로사용사례별로클래스도를작성하고시나리오를검토하면서누락된클래스는없는지, 클래스의속성이나연산은명확하게정의되었는지검토한다. 그리고클래스간의관계에서누락되거나잘못된관계설정은없는지확인한다. 사용사례별로클래스도를작성한다. 우선사용사례별로클래스도를작성한다. 사용사례가많고복잡한시스템의경우사용사례단위로클래스도를작성하면서각클래스의속성, 연산, 클래스간의연관관계등을다시한번검토하는것이유용할것이다. 그러나소규모의시스템인경우이를생략하고바로전체시스템에대한클래스도를작성할수있다. 전체시스템에대한클래스도를작성한다. 사용사례별로정의한클래스와클래스도를검토하여중복되는클래스를식별하고, 전체시스템에대한클래스도를작성한다. 19 TTAS.KO-11.0015/R1
입력물 / 산출물 요구정의서 입력물 산출물설계명세서 사용사례분석서 클래스명세서 4.2.4. 초기아키텍처정의 개요사용자요구사항의분석결과를바탕으로개발시스템의개략적인아키텍처를정의한다. 아키텍처란인터페이스를통해상호작용하는시스템의주요구성요소의조직이나구조를말하며시스템의제약사항과시스템구성요소의조직이나구조의근거를포함한다. 그리고각구성요소는더작은구성요소와인터페이스로구성될수있다. 시스템의아키텍처를정의할때는여러관점들을함께고려할필요가있다. 여기서는사용사례구조, 클래스구조, 구현구조, 분산구조, 병행구조등으로구분하여아키텍처를정의한다. 본작업에서는개발시스템의아키텍처에대한안들을제시한다. 특히사용사례구조, 클래스구조, 분산구조등의관점의기술에주안점을두며, 다른아키텍처관점즉, 병행구조와구현구조에대해서는다음활동인아키텍처정립활동에서주로다룬다. 만약개발할시스템과유사한시스템을개발한경험이있으면, 그시스템의아키텍처를참조하여개발시스템에대한병행구조나분산구조를정의할수도있다. 절차설명 1 아키텍처개요작성개발시스템의아키텍처개요에대해기술한다. 만약유사한시스템의개발경험이있다면기존시스템의아키텍처정의서를참고한다. 개발시스템의개요를기술한다. 개발시스템에대한개략적인목표, 비전을기술하고, 아키텍처정의서의구성즉, 이문서에포함된아키텍처관점에대해개략적인내용을기술한다. 20 TTAS.KO-11.0015/R1
아키텍처에영향을미치는소프트웨어요구사항과목표를서술한다. 시스템을개발하기위해필요한모든소프트웨어를개발할필요는없으며, 가능한한상용소프트웨어를많이사용하는것이개발에유리하다. 어떤상용소프트웨어를사용할지, 그리고시스템의이식성이나재사용성에관한목표를기술한다. 기타제약사항을기술한다. 현행시스템분석서및요구정의서를검토하고사용자와의면담을통해시스템의제약사항은어떤것이있는지 ( 동시에접근가능한사용자의수나처리량등 ) 를기술한다. 2 초기사용사례구조정의사용자요구정제작업을통해식별된사용사례를검토하여시스템의사용사례구조를정의한다. 각사용사례의크기나사용사례간의관계가적절히설정되었는지확인하고필요한경우관련있는사용사례들을패키징한다. 그리고중요도를고려하여사용사례의우선순위를결정한다. 사용사례를검토한다. 사용사례의복잡도가적절한지먼저검토해야하는데각사용사례별로시나리오를검토하여시나리오가복잡하거나많은행위자로부터사용되는사용사례는적절히분할하도록한다. 그리고그분할된사용사례의관계를적절히설정한다. 사용사례를패키징한다. 사용사례가많은경우, 서로관련있는사용사례를분류하여패키징할수있다. 어떤정보를공유하는사용사례들을한패키지로설정할수도있고기능단위로패키지를설정할수도있다. <<extend>> 관계에있는사용사례는한패키지에할당하는것이좋으며, <<use>> 관계에있는사용사례는정보교환이많은쪽의사용사례와같은패키지에할당한다. 사용사례의우선순위를결정한다. 식별된사용사례, 사용사례기술서, 사용사례도를사용자와함께검토하면서그들간의우선순위를정하는데이때우선순위를높음, 보통, 낮음의 3 등급으로나타낼수있다. 개발계획을수립할때우선순위가높은사용사례부터개발될수있도록한다. 사용사례의우선순위와사용사례패키지를바탕으로사용사례도, 사용사례기술등을검토하여아키텍처정의서의사용사례구조를기술한다. 21 TTAS.KO-11.0015/R1
3 초기클래스구조정의 클래스구조는사용자에게필요한기능을제공하기위해시스템의클래스들이어떻게구성되는지를보여주는것이다. 분석모형작성작업에서만들어진클래스도를바탕으로관련있는클래스를패키징하고, 각패키지를설정된계층에할당한다. 본작업에서는상위계층 (Application Layer) 의클래스패키지를잘정의하는것이중요하다. 개발시스템에적합한클래스계층을정의한다. 클래스구조의계층을몇개로정할지는응용 (Application) 에따라다를수있으며, 각계층사이에는인터페이스가잘정의되어서어떤계층의패키지를수정했을때다른계층의패키지에게가능한한적은영향을미치도록해야한다. 클래스들을패키징하고계층에할당한다. 설계명세서의클래스명세서를바탕으로관련있는클래스들을패키징한다. 어떤클래스가여러패키지와관련이있을경우이클래스를특정패키지에소속시키고이클래스와관련있는다른패키지들은그패키지와 <<import>> 관계를설정한다. 여러패키지와관련있는클래스를어느패키지에소속시킬지를결정하기위해서는그클래스와다른클래스와주고받는메시지의빈도나, 메시지의중요도, 패키지의크기등여러가지를고려해서결정한다. 그리고상용소프트웨어 (COTS) 나기반클래스 (sets, lists, queues, ) 또는오류처리클래스들은 global 패키지로설정한다. 클래스에대한패키지화가끝나면각패키지를적절한계층에할당한다. 패키지간의관계에서사이클이있으면이를해소한다. 패키지사이의종속관계는사이클이없어야바람직하다. 패키지간의종속관계란하나의패키지가변경되면그것과종속관계가있는다른패키지도다시컴파일하거나재시험해야하는의미이다. 만약어떤두 ( 혹은셋이상의 ) 패키지사이에사이클종속관계가있고그중한패키지를수정하면사이클관계가있는모든패키지에대해재시험해야한다. 사이클종속관계를해소하는방법은만약두패키지의종속관계가심하면하나의패키지로만들고, 종속관계가심하지않다면사이클이없어질수있도록어느하나의패키지를둘로나누는방법이있다. 22 TTAS.KO-11.0015/R1
4 초기병행구조정의 시스템이실행될때여러프로세스가병행적으로수행될수있을경우이병행성을기술한다. 본작업에서는병행구조에대해여러가지대안을작성하고이후충분한검토를통해확정한다. 프로세스를정의한다. 병행프로세스를식별할때고려해야할것은시스템의비기능적요구사항 ( 성능, 처리량, 응답속도, 무결성, scalability, fault-tolerance 등등 ) 과하드웨어, 네트웨어성능등이며이를위해시스템을어느정도로분산시켜야할지를결정해야한다. 분산된시스템의기능을어떤프로세스가담당할지식별하고각프로세스는어떤객체들을포함하는지결정한다. 프로세스간의통신방식을결정한다. 병행처리를하는프로세스간에는통신하는방식이필요하다. 각프로세스간에어떤방식으로통신할지결정해야하는데많이쓰는통신방식에는사건중심, 메시지전송, 원격프로시저호출, 공유메모리등이있다. 5 초기구현구조정의클래스구조에서계층으로표현된각패키지가실제구현할때어떤구성요소로매핑될수있는지를기술한다. 클래스구조에서의패키지를각구성요소로매핑할수있으면가장이상적이지만성능요구사항이나개발자조직의필요에의해달라질수있다. 개발시스템에적합한구성요소의계층을정의한다. 구현구조에서의계층구조는클래스구조에서의계층구조와거의유사하나구현에관련된구체적인계층을정의한다. 구성요소를식별하고적절한계층에할당한다. 클래스구조의패키지와구현구조의각구성요소는서로매핑관계가있다. 그러나시스템전체성능이나개발조직과관련해서, 특정클래스패키지가분할되어여러구성요소로개발되거나몇몇클래스패키지를통합하여하나의구성요소로개발될수도있다. 구성요소를검토하고그들간의관계를기술한다. 구성요소사이의종속관계는각구성요소에해당하는클래스패키지간의종속관계와밀접한관계가있다. 23 TTAS.KO-11.0015/R1
6 초기분산구조정의 소프트웨어가실행되는물리적네트워크의구성을기술한다. 개발시스템이어떤하드웨어로구성되는지그리고그하드웨어에는어떤프로세스가수행되는지를기술한다. 시스템이운영될각하드웨어를노드로하는네트워크를기술한다. 병행구조에서식별된프로세스를노드에할당하는것을기술한다. 입력물 / 산출물 입력물 산출물 요구정의서아키텍처정의서 ( 초기 ) 4.2.5. 사용자지침서초안작성 개요사용자요구사항의분석결과를바탕으로개략적인사용자지침서를작성한다. 사용자가시스템을쉽게이해할수있도록사용자지침서를작성한다. 사용자지침서의항목을정의하고각항목별로내용을작성한다. 사용자지침서가적절하게작성되었는지사용자와함께검토한다. 현시점에서작성하는사용자지침서는기본골격이정리되는수준이며최종적인사용자지침서는점진적개발단계에서완성된다. 사용자지침서는일반적으로수행기능별로 ( 예 ; 회계관리, 인사관리등 ) 작성되며사용자수준에따라서그편성표준이다를수도있다. 무엇보다도사용자의업무수행절차가잘반영되어야한다. 절차설명 1 구성항목정의사용자가시스템의사용법을쉽게알수있도록사용자지침서의항목을정의한다. 그리고시스템의관련정보도기술할수있도록한다. 업무및수행절차파악업무기능조정작업에서파악된사용자업무및수행절차를면밀히검토한다. 사용자지침서는대개사용자업무별로별도의지침서가만들어지고업무수행절차가사용자지침서에충분히반영되어야한다. 업무파악시데이터처리지역도고려하도록한다. 24 TTAS.KO-11.0015/R1
작성지침설정 사용자지침서는업무유형별로다양하게작성될수있으며사용자수준별로다를수도있다. 이러한다양성에대한사전기준이나지침이없으면편성체제에일관성을유지하기가어려울수도있다. 이러한지침이나기준은사용자와협의하여설정해둘수도있다. 사용자지침서의일반사항 ( 목차, 개요, 특징 ) 에대한항목을정한다. 시스템의일반적인기능 ( 시작, 종료, 메뉴사용, 환경설정 ) 을잘설명할수있는항목을정한다. 앞서파악한업무를원활히수행할수있도록응용시스템의조작방법을쉽게알수있도록항목을설정한다. 오류가발생했을때대처방안을기술할수있는항목을정한다. 2 항목별내용작성정의된구성항목의내용을작성한다. 사용자의입장에서가능한한쉽게이해할수있도록실행화면의예를함께제시하여기술한다. 만약실제의실행화면이아직개발되지않았다면개략적인그림을삽입한다. 화면동작특성이나사용키의활용법에대해서충분히설명될수있어야한다. 3 사용자지침서검토작성된사용자지침서가사용자요구사항의내용을충실히반영하여작성되었는지검토한다. 사용자지침서에서누락된항목이있는지, 각항목의내용이적절한지사용자와함께검토한다. 업무유형별조작방법항목및설명내용검토 시작, 종료, 기타화면에대한그림이실제로일치하는지검토 검토의견반영 입력물 / 산출물 입력물 산출물 요구정의서사용자지침서 ( 초안 ) 25 TTAS.KO-11.0015/R1
4.3. 아키텍처정립 아키텍처정립활동은요구분석활동의초기아키텍처정의작업과시제품개발미니프로젝트활동및위험분석활동의결과를바탕으로개발될시스템의아키텍처를정의한다. 아키텍처는문제영역전체에대해개발과정에서지켜야할원칙들을정의하는것이며, 개발자는아키텍처에정의된원칙을준수해야한다. 아키텍처를정의할때시스템을보는관점에따라사용사례구조, 클래스구조, 병행구조, 분산구조, 구현구조등을기술한다. 작업구조 아키텍처정의서작성활동은모두 2 개의작업과 7 개의절차로이루어져있으며세부 사항은다음과같다. 1 아키텍처정의초기아키텍처정의서를바탕으로시제품개발의결과를검토하여각관점별구조를정의 / 보완한다. 다음과같은절차로구성되어있다. 사용사례구조정의 클래스구조정의 구현구조정의 분산구조정의 2 아키텍처검토아키텍처정의서를검토하여미비한부분의있으면보완한다. 이때각점검사항에대해다시확인한다. 아키텍쳐정의작업을통해새롭게발견되었가나또는잠재적인위험이있는지확인및정의리하고그해결방안을수립한다. 다음과같은절차로구성되어있다. 아키텍처정의서검토및보완 위험분석서검토및보완 26 TTAS.KO-11.0015/R1
4.3.1. 아키텍처정의 개요이전활동의산출물인초기아키텍처정의서, 아키텍처시제품개발의결과등을바탕으로개발할시스템의아키텍처를구체적으로정의한다. 초기아키텍처정의서에서어떤사항에대해대안이만들어졌다면본작업에서는시제품개발결과를검토하여적절한안을결정한다. 시스템의아키텍처에대한관점중에서사용사례구조, 상위계층의클래스구조, 분산 구조등은초기아키텍처정의서의내용을검토하여보완하며하위계층의클래스구조, 구현구조, 병행구조등을명확하게정의한다. 절차설명 1 사용사례구조정의시제품개발미니프로젝트활동의결과산출된시제품의개발문서검토를통해사용사례구조에대해보완할내용을식별하고반영한다. 초기사용사례구조를검토한다. 시제품개발문서와초기아키텍처정의서를검토하여새로발견되는사용사례가있는지확인한다. 시제품을개발한결과어떤사용사례는예상외로훨씬복잡하여분할할필요가있다거나어떤사용사례는다른관련된사용사례에포함시킬필요가있다든지등의보완사항이있을수있다. 이때사용자도함께검토해서그사용사례를명확하게이해할수있도록해야한다. 사용사례구조를보완한다. 사용사례구조에대해보완사항이있는경우그것을반영하여사용사례도를재작성하고그에따라사건흐름, 시나리오등도보완한다. 이때사용사례간의관계 (uses, extends) 도적절한지검토해야한다. 그리고사용사례를패키지로나누었을경우각패키지도적절한지검토한다. 27 TTAS.KO-11.0015/R1
2 클래스구조정의 초기아키텍처정의서에기술된클래스구조가적절한지확인하고보완사항이있으면반영한다. 각클래스속성, 연산을보완한다. 클래스관계를보완한다. 시제품개발을통해새로식별된각클래스의속성이나연산을반영하여보완한다. 그에따른패키지내의클래스간의관계를보완한다. 클래스패키지를보완한다. 새로운클래스패키지가식별되거나어떤클래스패키지의분할또는병합할필요가있을경우검토하여반영한다. 이때패키지간의종속관계에서사이클이없도록해야한다. 3 병행구조정의시스템이여러하드웨어에서병행적으로수행될수있을경우시스템의병행성을기술한다. 본작업에서는병행구조에대해여러가지대안을작성하고이후충분한검토를통해확정한다. 프로세스를정의한다. 시스템의비기능적요구사항 ( 성능, 처리량, 응답속도, 무결성, 신뢰성, scalability 등등 ) 과하드웨어, 네트웨어등의성능을고려하여시스템이어느정도분산되어야할지결정한다. 분산된시스템의기능을어떤프로세스가담당할지식별한다. 그리고각프로세스는어떤객체들을포함하는지결정한다. 프로세스간의통신방식을결정한다. 병행처리를하는프로세스간에는통신하는방식이필요하다. 각프로세스간에어떤방식으로통신할지결정해야하는데많이쓰는통신방식에는사건중심 (event driven), 메시지전송, 원결프로시저호출, 공유메모리등이있다. 4 구현구조정의초기구현구조를검토하여보완한다. 구현구조는구현환경에서실제소프트웨어모듈 ( 소스파일, 이진파일, 실행파일 ) 의구조를기술한다. 클래스구조에서계층으로표현된각패키지가구현구조에서어떤구성요소로매핑될수있는지를기술한다. 적절하다면, 클래스구조의패키지를구현구조의패키지로매핑하는것을정의한다. 초기구현구조의계층을검토한다. 초기아키텍처정의서에기술된구현구조의계층을검토하여변경사항이있는경우보완한다. 추가되거나변경되는구성요소를식별하고적절한계층에할당한다. 28 TTAS.KO-11.0015/R1
시제품개발을통해보다구체적인구성요소를정의할수있다. 클래스구조의클래스패키지와구현구조의각구성요소는서로어느정도의매핑관계가있으므로클래스구조에서새로추가된클래스패키지에해당하는구성요소를정의한다. 이때시스템전체성능이나개발조직등을고려하여적절히조정한다. 구성요소를검토하고그들간의관계를기술한다. 구성요소사이의종속관계는각구성요소에해당하는클래스패키지간의종속관계와밀접한관계가있다. 클래스패키지와바로매핑되지않는구성요소는구성요소간의관계설정에특히유의한다. 5 분산구조정의시제품개발에의한산출물과초기아키텍처정의서의분산구조를검토하여보완할사항이있는지확인한다. 시스템의구성하드웨어플랫폼이변경되었는지혹은각하드웨어에서수행되는프로세스에변경이필요한지검토하여시스템의분산구조를정의한다. 그리고시험이나시뮬레이션을위한네트워크구성도포함한다. 시스템이분산되었을때이구조를정의한다. 시스템이운영될하드웨어네트워크를작성한다. 병행구조에서식별된프로세스를노드에할당한다. 입력물 / 산출물 입력물요구정의서설계명세서아키텍처정의서 ( 초기 ) 위험분석서시제품개발문서 아키텍처정의서 산출물 4.3.2. 아키텍처검토 개요아키텍처정의작업의결과에대해각관점별로미비한부분이있으면보완한다. 이때각점검사항에대해다시확인한다. 이전활동인위험분석활동을통해발견된위험요소중시제품개발미니프로젝트활동을통해해소된위험이있는지확인하고그결과를정리하며, 아키텍처정의작업을통해새롭게발견되었거나또는잠재적인위험이있는지확인및정리하고그해결방안을수립한다. 29 TTAS.KO-11.0015/R1
절차설명 1 아키텍처정의서검토및보완사용사례구조, 클래스구조, 병행구조, 분산구조, 구현구조에대해각점검사항을다시확인하면서미비한사항이있으면보완한다. 각구조에대해아키텍처점검사항에따라검토를실시한다. 개발시스템의특성에따라아키텍처에대한다른관점의구조를정의할필요가있을경우기술한다. 예를들면사용자인터페이스구조나보인구조등이있을수있다. 2 위험분석서검토및보완시스템의아키텍처를정의하면서새롭게발견되거나잠재적인위험이있으면그해소방안을수립한다. 위험관리표를점검하면서해결된위험에대해상황을기록한다. 새로발견된위험요소나잠재적인위험이있으면그위험요소를평가한후해결방안을수립하여위험관리표에기록한다. 입력물 / 산출물 아키텍처정의서 위험분석서 입력물 산출물 아키텍처정의서 ( 보완 ) 위험분석서 ( 보완 ) 4.4. 요구정제및설계 해당미니프로젝트에서개발하고자하는사용사례들을검토하여사건흐름, 순서도, 시나리오를정제하고사용사례를구현하기위해필요한설계클래스들을식별하고정의한다. 추가된설계클래스들을고려하여클래스들간의메시지교환, 즉시스템의동적인측면을정제한다. 설계클래스가추가된클래스도와그에따라변경된순서도 / 협력도를검토하여클래스의속성, 속성의타입, 속성의가시성, 연산, 연산의인수, 클래스들간의관계등을명확히정의한다. 설계클래스추가작업과클래스정제작업에의해설계된지속성클래스에대해데이터베이스를설계한다. 정립단계의설계명세서를바탕으로시스템의구성화면및시스템이제공하는보고서를설계한다. 설계결과를바탕으로시스템의아키텍처에변경할부분이있으면보완, 정제한다. 30 TTAS.KO-11.0015/R1
작업구조 요구사항정제및설계활동은모두 6 개의작업과 30 개의절차로이루어져있으며세부사항은다음과같다. 1 사용사례정제해당미니프로젝트에서개발할사용사례를검토하여사건의흐름이나순서도의추가또는변경을고려하여사용사례를정제한다. 사용자요구검토 사건흐름정제 시나리오정제 사용자인터페이스정제 객체상호작용정제 2 설계클래스추가해당미니프로젝트에서개발하고자하는사용사례를구현하기위해필요한설계클래스를정의한다. 영역관련클래스정의 데이터베이스관련클래스정의 사용자인터페이스관련클래스정의 기타설계클래스정의 3 클래스정제설계클래스추가작업에서식별된클래스를중심으로해당미니프로젝트의사용사례별로객체의상호작용을정제한다. 이를바탕으로해당클래스및관련클래스의속성, 연산등을정제한다. 객체상호작용정제 속성및연산정제 관계정제 상태도작성 연산알고리즘설계 4 데이터베이스설계 (RDB) 설계클래스추가작업과클래스도정제작업에의해설계된지속성클래스를관계형데이터베이스의테이블로정의하고물리적데이터베이스구조로설계한다. 테이블작성 자료량및접근패턴분석 사용자뷰설계 저장 / 접근방법선정 31 TTAS.KO-11.0015/R1
인덱스및데이터베이스정의 성능개선구조조정 5 데이터베이스설계 (OODB) 만일객체지향데이터베이스를사용하고자하는경우, 사용하고자하는구체적인 DBMS를검토하여선정하고자료량과접근패턴분석을근거로하여적합한저장 / 접근방법을선정하고인덱스및데이터베이스를정의한다. 자료량및접근패턴분석 저장 / 접근방법선정 인덱스및데이터베이스정의 6 사용자인터페이스설계요구사항분석활동에서만들어진개략적인화면구성및보고서구성을바탕으로사용사례와관련된화면및보고서를설계한다. 사용사례분석서검토 사용자인터페이스메타포어선정 항해트리작성 화면및보고서설계 7 아키텍처정제설계명세서를검토하여시스템의아키텍처를정제하고사용사례와클래스및구성요소의관계를나타내는구성연관표를보완한다. 설계검토 사용사례구조정제 클래스구조정제 병행구조정제 구현구조정제 분산구조정제 사용사례분석서검토 4.4.1. 사용사례정제 개요해당미니프로젝트에할당된사용사례를개발하기위하여선택적으로이작업을수행한다. 즉, 사용사례를더욱정확하게개발하기위해서예외적인사건흐름이나시나리오, 순서도, 협력도등을추가, 변경할수있다. 32 TTAS.KO-11.0015/R1
절차설명 1 사용자요구검토본미니프로젝트활동에서개발할사용사례가어떤것인지확인하여검토하고, 이전미니프로젝트의평가를통해새로운사용사례가추가되었으면다른사용사례와의관계등을검토하여요구사항정의서를보완한다. 본미니프로젝트에서개발할사용사례를확인한다. 미니프로젝트작업계획서를검토하여개발하는사용사례가어떤것인지확인하고그사용사례가어떤것인지, 다른사용사례와의관계등을검토한다. 요구정의서를보완한다. 만약이전미니프로젝트활동에대한평가작업을통해새로운사용사례가추가되거나기존사용사례에대한변경이요구되는경우요구정의서를보완한다. 2 사건흐름정제본미니프로젝트에서개발할사용사례에대해불명확한부분이없는지사용자와함께검토하고정제한다. 사용사례의사건흐름을검토한다. 정상적인사건흐름이모두명확한지검토하고비정상적인사건흐름이모두명확한지검토한다. 사용자가입력하는모든정보가분명한지그정보가모두명확하게처리되는지사용자와충분히검토될수있도록한다. 사건흐름을정제한다. 먼저모든정상적인사건흐름중에불분명한부분을보완하고, 비정상적인사건흐름의불명확한부분에대해정제한다. 각사용사례에대해행위자와시스템이구체적으로어떻게서로상호작용을하는지를기술한다. 이때무슨사건이일어나는지혹은서로어떤정보 (what) 를주고받는지를기술하는데중점을두어야하며그것이어떻게 (how) 이루어지는지에대한상세한내용은배제해야한다. 3 시나리오정제본미니프로젝트활동에서개발할사용사례에대한시나리오를검토하고보다상세히정제한다. 위의작업에서사건흐름이보완되었다면관련된시나리오도보완한다. 시나리오를검토한다. 작성된모든시나리오가사건흐름에맞게명확하게기술되었는지를사용자와함께충분히검토하도록한다. 사건흐름에대한시나리오를정제한다. 검토내용을바탕으로시나리오를작성한다. 사용사례의사건흐름이추가되었을 33 TTAS.KO-11.0015/R1
경우추가된사건흐름에대한시나리오를작성한다. 가능한한사용자가직접시나리오를작성및보완하도록하는것이좋다. 요구분석가는그시나리오가사건흐름의기술내용과비교하여빠진부분이없는지확인한다. 그러나사용자가시나리오를기술하는데익숙하지않다면요구분석가가시나리오를작성하고반드시사용자의검토를받도록한다.. 시나리오는사건흐름의구체적인실제예를기술하는것이다. 정상적인사건흐름을모두포함할수있는시나리오를작성하며, 예외상황에대한가능한시나리오도작성한다. 4 사용자인터페이스정제위의작업에서정제된시나리오를검토하여화면구성이나보고서양식등이보완할내용이있는지확인하고각각을상세하게정의한다. 화면이나보고서양식에서변경이나추가된것을식별한다. 화면이나보고서양식의구성을구체적으로정의한다. 스타일 ( 색깔, 글자크기, 글자체, 등등 ) 을상세히정의한다. 각화면및보고서양식을사용자와함께검토한다. 5 객체상호작용정제보완된시나리오를검토하여새로식별되는객체가있는지확인하고, 객체간의동적인상호작용을정제한다. 추가적인객체를식별한다. 메시지흐름을식별한다. 객체의생성과소멸이명확한지검토한다. 순서도나협력도를정제한다. 입력물 / 산출물 입력물미니프로젝트작업계획서요구정의서설계명세서 - 사용사례분석서 산출물요구정의서 ( 보완 ) 설계명세서 - 사용사례분석서 ( 보완 ) 34 TTAS.KO-11.0015/R1
4.4.2. 설계클래스추가 개요사용사례분석서와미니프로젝트작업계획서에기술된개발범위를바탕으로본미니프로젝트에서개발하고자하는사용사례를구현하기위해필요한설계클래스들을정의한다. 이작업에서는설계클래스를크게네가지그룹으로나누어서생각한다. 프로세스를수행하는영역클래스와관련있는영역관련클래스, 저장될필요가있는지속성클래스와관련있는데이터베이스관련클래스, 사용자인터페이스클래스와관련있는사용자인터페이스관련클래스그리고마지막으로네트워크기능, 보안기능등과관련있는기타설계클래스등이다. 절차설명 1 영역관련클래스정의미니프로젝트작업계획서의개발범위를검토한후아키텍처정의서, 사용사례분석서, 클래스명세서를검토하여영역클래스를식별하고영역과관련된클래스를정의한다. 사용사례분석서의시나리오, 순서도 / 협력도등을검토하여영역클래스를식별한다. 식별된영역클래스를바탕으로영역과관련된클래스를정의한다. 필요에따라기존의클래스를분할, 병합한다. 클래스의속성이새로운타입 ( 하나의속성이여러개의기본타입으로구성된경우 ) 을갖는경우클래스를분할하여새로운클래스를정의한다. 클래스가하나의클래스로존재하는것보다다른클래스의속성으로존재하는것이더욱효과적인경우가있다. 이러한경우두개의클래스를병합한다. 식별된설계클래스들을클래스도에삽입하고설계클래스들을고려하여클래스도를정제한다. 정의된설계클래스후보들중클래스로합당한것을선정한다. 선정된클래스들을고려하여클래스도의패키지를정제하고, 설계클래스들을각패키지에할당한다. 설계클래스들과기존의클래스들과의관계및설계클래스들의속성과연산등을정의한다. 2 데이터베이스관련클래스정의미니프로젝트작업계획서의개발범위를검토한후아키텍처정의서, 사용사례분석서와클래스명세서등을검토하여지속성클래스를식별하고 35 TTAS.KO-11.0015/R1
데이터베이스와관련된클래스를정의한다. 지속적으로저장될필요가있는지속성클래스를식별한다. 식별된지속성클래스를바탕으로데이터베이스와관련된클래스를정의한다. 관계형데이터베이스를사용할경우에는관계형데이터베이스와의인터페이스를위한클래스를정의한다. 객체지향 DBMS 를사용할경우 DBMS 의특성을파악하여 DBMS 가지원하는클래스들을반영하여설계클래스를조정한다. 트랜잭션처리를위한클래스, 질의를위한클래스등기타데이터베이스와관련된클래스를정의한다. 질의처리를지속성클래스의연산으로설계할수도있다. 식별된설계클래스들을클래스도에삽입하고설계클래스들을고려하여클래스도를정제한다. 정의된설계클래스후보들중클래스로합당한것을선정한다. 선정된클래스들을고려하여클래스도의패키지를정제하고설계클래스들을각패키지에할당한다. 설계클래스들과기존의클래스들과의관계및설계클래스들의속성과연산등을정의한다. 3 사용자인터페이스관련클래스정의미니프로젝트의작업계획서의개발범위를검토한후아키텍처정의서, 사용사례분석서, 클래스명세서등을검토하여사용자인터페이스와관련클래스를식별한다. 사용사례분석서의시나리오, 순서도 / 협력도를검토하여사용자인터페이스클래스를식별한다. 식별된사용자인터페이스클래스를바탕으로사용자인터페이스와관련된클래스를정의한다. 필요에따라기존의클래스를분할, 병합한다. 클래스의속성이새로운타입 ( 하나의속성이여러개의기본타입으로구성된경우 ) 을갖는경우클래스를분할하여새로운클래스를정의한다. 클래스가하나의클래스로존재하는것보다다른클래스의속성으로존재하는것이더욱효과적인경우가있다. 이러한경우두개의클래스를병합한다. 영역클래스와인터페이스를위한클래스를정의한다. GUI 를설계하고자할때는사용하고자하는 GUI 도구를고려하여클래스를정의한다. 36 TTAS.KO-11.0015/R1
식별된설계클래스들을클래스도에삽입하고클래스도를정제한다. 정의된설계클래스후보들중클래스로합당한것을선정한다. 선정된클래스들을고려하여클래스도의패키지를정제하고설계클래스들을각패키지에할당한다. 설계클래스들과기존의클래스들과의관계및설계클래스들의속성과연산등을정의한다. 4 기타설계클래스정의위의작업에서식별된클래스외에시스템의설계에필요한클래스를정의한다. 네트워크기능을지원하는클래스들이나시스템에서의보안기능을위한클래스를정의한다. 기존의영역관련클래스, 데이터베이스관련클래스, 사용자인터페이스관련클래스들을구현하는과정에서시스템의수행능력이나유지보수성, 재사용성의향상등을해결하기위한클래스들을정의한다. 필요에따라기존의클래스를분할, 병합한다. 클래스의속성이새로운타입 ( 하나의속성이여러개의기본타입으로구성된경우 ) 을갖는경우클래스를분할하여새로운클래스를정의한다. 클래스가하나의클래스로존재하는것보다다른클래스의속성으로존재하는것이더욱효과적인경우가있다. 이러한경우두개의클래스를병합한다. 실제구현을위해부딪히게되는문제점들을파악하고, 이를해결하기위해필요한설계클래스를정의한다. 식별된설계클래스들을클래스도에삽입하고설계클래스들을고려하여클래스도를정제한다. 정의된설계클래스후보들중클래스로합당한것을선정한다. 선정된클래스들을고려하여클래스도의패키지를정제하고설계클래스들을각패키지에할당한다. 설계클래스들과기존의클래스들과의관계및클래스들의속성과메소드등을정의한다. 입력물 / 산출물 입력물아키텍처정의서설계명세서 - 사용사례분석서 - 클래스명세서 설계명세서 산출물 - 클래스명세서 ( 보완 ) 37 TTAS.KO-11.0015/R1
4.4.3. 클래스정제 개요설계클래스추가작업에서설계를위해필요한클래스들을식별하고나면, 이들간의메시지교환, 즉시스템의동적인측면을순서도 / 협력도를이용하여정제할필요가있다. 이는새로운클래스들이식별되고, 따라서기존에정의되었던순서도 / 협력도상에서의메시지흐름이상당부분변경되어야할필요가생기기때문이다. 절차설명 1 순서도 / 협력도정제설계클래스추가작업에서추가된클래스들을중심으로객체상호작용을정제한다. 새로식별된객체를순서도 / 협력도에추가한다. 시나리오를검토하여관련된메시지를식별하여추가한다. 각메시지의흐름를검토한다. 프로젝트의각사용사례의시나리오를바탕으로추가된설계클래스의객체들간의메시지전달과정을묘사한다. 실시간시스템과같이시간제약을요하는경우요구명세서, 요구정의서를참조하여시간제약사항을검토한다. 시간제약사항을기술하기위해 UML 의실시간확장을위한표기법을사용하여순서도 / 협력도에시간제약사항을나타낸다. 2 속성및연산정제설계클래스가추가된클래스도에나타나는모든클래스의속성과연산을순서도 / 협력도를바탕으로식별하여클래스도에추가한다. 클래스의속성, 속성의타입, 속성의가시성, 연산, 연산의인수등을명확히정의한다. 필요한경우중요한연산의알고리즘을설계한다. 상태도가작성되었다면이를참조하여속성및연산을정제한다. 순서도 / 협력도를검토하여추가된설계클래스로인하여변경되거나추가된메시지가있는지를검토한다. 검토내용을바탕으로속성및연산을정제한다. 변경되거나추가된메시지를처리하기위해요구되는속성을해당클래스에추가한다. 각메시지를수신하는객체에해당하는클래스에해당메시지를처리하기위한연산을추가한다. 하나의객체가자기자신에게보내는메시지 (self-delegation) 를처리하기위한연산을그객체에해당하는클래스에추가한다. 클래스의상태도에나타나는 38 TTAS.KO-11.0015/R1
트랜지션을해당클래스의연산으로추가한다. 순서도 / 협력도, 상태도, 아키텍쳐정의서등을검토하여속성의가시성, 속성값의타입, 연산의인수, 연산의가시성, 클래스명, 속성명, 연산명등을명확히정의한다. 상속관계를갖는클래스들을검토하여상위클래스의연산을하위클래스가오버라이딩하는지를고려하여연산을정의한다. 3 관계정제설계클래스를고려하여정제된순서도 / 협력도를바탕으로클래스사이의관계및패키지사이의관계를정제한다. 설계클래스가추가되어변경된순서도 / 협력도및클래스도를검토한다. 순서도 / 협력도에서메시지를주고받는객체사이에는관계가있으므로클래스도의해당클래스사이에관계가있는지를검토한다. 검토내용을바탕으로클래스사이의관계를정제한다. 메시지를주고받는객체에해당하는클래스사이에관계가정의되어있지않다면관계를설정한다. 클래스사이의관계가연관관계, 상속관계, 집단관계인지를식별한다. 연관관계를갖는클래스들의다중성, 역할명, 관계명등을명확히정의한다. 여러클래스가동일한속성, 연산을갖는경우에는동일한부분을하나의클래스로정의하여상위클래스로정의한다. 하나의클래스가여러클래스로구성될경우에는집단관계를정의한다. 클래스사이의관계를바탕으로패키지사이의관계를설정, 정제한다. 4 상태도작성상태변화가중요한클래스는사건에대한상태변화를상태도를이용하여표현한다. 상태변화가중요하지않은시스템에서는생략할수있다. 상태변화가중요한클래스를식별한다. 상태도를작성한클래스가나타나는순서도를식별한다. 순서도를검토하여클래스가메시지를송수신하는동안발생할수있는상태들을조사하여상태도를작성한다. 상태도를검토한다. 5 연산알고리즘설계클래스의연산중에서지극히당연한정도의수준을벗어나는연산에대하여가능한한모두알고리즘을설계한다. 각클래스의연산을검토하여알고리즘이필요한연산을식별한다. 39 TTAS.KO-11.0015/R1
식별된각연산에대해알고리즘을설계한다. 설계한알고리즘을검토한다. 입력물 / 산출물 입력물아키텍처정의서설계명세서 - 사용사례분석서 - 클래스명세서 설계명세서 산출물 - 클래스명세서 ( 보완 ) 4.4.4. 데이터베이스설계 (RDB) 개요 설계클래스추가작업과클래스정제작업에의해설계된지속성클래스를관계형 데이터베이스의테이블로정의하고물리적데이터베이스구조를설계하는작업이다. 지속성클래스와클래스관계를관계형데이터베이스의테이블로정의한다. 정의된테이블의레코드개수를분석하고해당미니프로젝트의사용사례별로트랜잭션을정의한다. 정의된트랜잭션에따라데이터접근패턴을분석하고정의된기본테이블과는별도로해당미니프로젝트에맞는뷰 (View) 를설계한다. 사용하고자하는 DBMS 의검토및분석된자료량과접근패턴에기초하여적합한저장 / 접근방법을선정한다. 인덱스및데이터베이스를정의하고성능및기능개선을위해추가적인구조조정을한다. 저장 / 접근방법선정, 인덱스및데이터베이스정의절차와성능개선구조조정절차를반복적으로수행된다. 절차설명 1 테이블작성해당미니프로젝트의클래스도에나타나는지속성클래스와지속성클래스사이의관계를관계형데이터베이스의테이블형태로전환한다. 전환된테이블의테이블정의서를작성한다. 해당미니프로젝트의클래스도와아키텍처정의서를검토하여데이터베이스에지속적으로저장될필요가있는지속성클래스를식별한다. 40 TTAS.KO-11.0015/R1
테이블일람과클래스도에나타나는지속성클래스및지속성클래스사이의관계를비교, 검토하여지속성클래스및지속성클래스사이의관계를표현하는테이블이이미정의되어있는지확인한다. 해당미니프로젝트의클래스도에나타나는지속성클래스및관계를나타내는테이블이이미테이블일람에정의되어있다면관계형데이터베이스테이블작성절차를생략할수있다. 그러나만약테이블이이미정의되어있을지라도테이블정의서와클래스를비교, 검토해본결과클래스속성의추가, 생략, 또는변경으로인하여테이블컬럼의변경이필요한경우이를고려하여이미정의되어있는테이블정의를변경해야한다. 테이블정의기법을이용하여지속성클래스를테이블로표현한다. 테이블정의기법을이용하여클래스사이의연관, 상속, 집단화관계를테이블로표현한다. 정의된각테이블의테이블정의서를작성한다. 정의된테이블을테이블일람에추가한다. 2 자료량과접근패턴분석정의된테이블의자료량을분석하고해당미니프로젝트의사용사례와관련된트랜잭션을처리하기위한데이터와데이터에대한접근형태를파악한다. 접근형태들의실행순서를파악하여논리적접근도를작성한다. 정의된테이블의자료량즉, 레코드의개수를분석한다. 레코드의개수는테이블에해당하는클래스의객체의개수이므로현행시스템자료와사용자와의협의를통하여객체의개수를파악한다. 분석된자료량을테이블정의서의최대행개수항목에기입한다. 순서도 / 협력도와사용사례분석서를이용하여각사용사례내에서의논리적일관성에따라트랜잭션의범위를정의한다. 트랜잭션을정의할때트랜잭션의기간이너무짧거나길지않도록하고트랜잭션내에서는사용자상호작용 (interaction) 을피하도록한다. 그리고하나의트랜잭션을단일갱신작업단위로구성한다. 트랜잭션에서사용되는테이블들을식별한다. 순서도 / 협력도와클래스도로부터테이블에해당하는클래스를식별함으로써테이블을식별할수있다. 41 TTAS.KO-11.0015/R1
테이블에대한접근형태를결정한다. 관련된접근형태로는 READ( 인스턴스의정보를읽음 ), CREATE( 인스턴스의생성 ), UPDATE( 인스턴스의정보변경 ), DELETE( 인스턴스삭제 ) 의네가지종류가있다. 순서도 / 협력도를이용하여해당트랜잭션의접근형태들의순서를결정한다. 접근형태의실행순서가무관한경우도있다. 이때에는번호를자유스럽게부여하면된다. 논리적접근도를작성한다. 논리적접근도는사용사례와관련된트랜잭션을처리하는데필요한테이블과테이블에대한접근형태그리고접근형태들의실행순서를표현한다. 3 사용자뷰설계해당미니프로젝트의뷰를작성한다. 데이터베이스는전체시스템이필요로하는공용데이터의집합이라할수있는데뷰는전체시스템에대한해당미니프로젝트의데이터베이스의구조를뜻한다. 다시말하면뷰는전체데이터베이스의부분집합이다. 논리적접근도, 화면관련문서를검토한다. 논리적접근도를검토하여트랜잭션을처리하기위해필요한테이블을식별하고, 화면관련문서를검토하여화면에표시될항목이해당하는테이블을식별한다. 검토결과를바탕으로필요한뷰를선정한다. 뷰를구성하는컬럼을파악한다. 뷰구성을설정한다. 뷰의계층구조는상당한융통성을줄수있지만, 반면에혼돈을야기시킬수도있다. 하위계층에있는뷰나테이블이삭제되면상위계층의뷰도삭제된다. 관계형데이터베이스의뷰는기본테이블로구성될수있고, 뷰로구성될수도있으며기본테이블과뷰로구성될수도있다. 뷰정의서를작성한다. 뷰와관련된내용을정리하여문서화한다. 4 저장 / 접근방법선정효율적이고실현가능한물리적데이터베이스구조를개발하기위하여저장방법및접근방법을선정한다. 스캐닝, 집중화, 해슁등상용 DBMS 제품이제공하는저장 / 접근방법을 검토한다. 42 TTAS.KO-11.0015/R1
DBMS 제품이제공하는저장 / 접근방법중적합한것을선정한다. 이때는자료량분석의결과와논리적접근도를검토하여테이블을저장하기위해적합한저장 / 접근방법을선정한다. 특정 DBMS 가필요한접근기법을실제로모두제공하는지평가하기위하여벤치마크를개발하는것이필요할수도있다. 5 인덱스및데이터베이스정의인덱스를정의하고인덱스정의서를작성한다. 파악된 DBMS 특성과선정된저장 / 접근방법을토대로데이터베이스정의서를작성한다. 인덱스정의와데이터베이스정의는성능개선구조조정절차에서테이블이재정의되면같이갱신되도록한다. 인덱스를설정할테이블을선정한다. 인덱스화할테이블의컬럼을선정한다. 선정한인덱스의특성을정의한다. 개별데이터베이스에저장할테이블및인덱스를파악한다. 데이터베이스의테이블및인덱스공간을정의한다. 테이블및인덱스공간계산을하고설정한다. 인덱스정의서및데이터베이스정의서를작성한다. 6 성능개선구조조정저장방법및접근방법을추가하였다하더라도성능및기능요구사항을아직까지충분히반영하였다고는할수없다. 따라서성능및기능개선을위해추가적인구조조정작업을한다. 중복을통한조정작업을한다. 중복컬럼이나중복행의형태로정의된테이블에중복데이터를추가할수있다. 우선중복데이터의일반적인형태인중복컬럼을고려하고그다음중복행을고려하도록한다. 데이터베이스구조재정의를통한조정작업을한다. 컬럼을선별적으로재정의하거나테이블재배열의변화는설계의안정성이나 DML( 데이터조작어 ) 질의형태에영향을미칠수도있다. 또한이런변화는데이터무결성확보를위한새로운운영규칙의정의및이행이필요하게된다. 따라서데이터베이스구조재정의를통한조정작업은상당히신중을기해야한다. 특정요구사항처리에유리하도록테이블설계를변경한다. 이러한것은특정응용처리기능이나성능요구사항의지원을개선하기위해데이터베이스의공용성을의도적으로줄이게된다. 테이블제거, 중복테이블추가, 테이블 43 TTAS.KO-11.0015/R1
구획 (segmenting), 테이블통합등을고려하도록한다. 테이블정의서를작성한다. 테이블설계작업에서새로이테이블이정의될때, 테이블정의서가작성된것처럼, 최종적인테이블이완성되면이와동일한산출물들이작성 ( 갱신 ) 되어야한다. 그리고저장 / 접근방법선정절차와인덱스및데이터베이스정의절차가반복수행된다. 입력물 / 산출물 입력물아키텍처정의서설계명세서 - 사용사례분석서 - 클래스명세서 산출물데이터베이스설계서 (RDB) - 테이블정의서 - 논리적접근도 (RDB) - 뷰정의서 - 인덱스정의서 (RDB) - 데이터베이스정의서 (RDB) 4.4.4-1. 데이터베이스설계 (OODB) 개요클래스의인스턴스즉, 객체의개수를분석하고해당미니프로젝트의사용사례별로트랜잭션을정의한다. 정의된트랜잭션에따라데이터접근패턴을분석하고사용하고자하는 DBMS 검토및분석된자료량과접근패턴을근거로하여적합한저장 / 접근방법을선정하고인덱스및데이터베이스를정의한다. 절차설명 1 자료량과접근패턴분석지속성클래스의자료량을분석하고해당미니프로젝트의사용사례와관련된트랜잭션을처리하기위한데이터와데이터에대한접근형태를파악한다. 접근형태들의실행순서를파악하여논리적접근도를작성한다. 클래스도에나타나는지속성클래스의자료량즉, 객체의개수를분석한다. 현행시스템자료와사용자와의협의를통하여객체의개수를파악한다. 분석된클래스자료량을데이터베이스명세서의객체의개수항목에기입한다. 44 TTAS.KO-11.0015/R1
순서도 / 협력도와사용사례분석서를이용하여각사용사례내에서의논리적일관성에따라트랜잭션범위를정의한다. 트랜잭션을정의할때트랜잭션의기간이너무짧거나길지않도록하고트랜잭션내에서는사용자상호작용 (interaction) 을피하도록한다. 그리고하나의트랜잭션을단일갱신작업단위로구성한다. 트랜잭션에서사용되는클래스들을순서도 / 협력도와클래스도로부터식별한다. 클래스에대한접근형태를결정한다. 관련된접근형태로는 READ( 인스턴스의정보를읽음 ), CREATE( 인스턴스의생성 ), UPDATE( 인스턴스의정보변경 ), DELETE( 인스턴스삭제 ) 의네가지종류가있다. 순서도 / 협력도를이용하여해당트랜잭션의접근형태들의순서를결정한다. 접근형태의실행순서가무관한경우도있다. 이때에는번호를자유스럽게부여하면된다. 논리적접근도를작성한다. 논리적접근도는사용사례와관련된트랜잭션을처리하는데필요한클래스와클래스에대한접근형태와접근형태들의실행순서를표현한다. 2 저장 / 접근방법선정효율적이고실현가능한물리적데이터베이스구조를개발하기위하여저장방법및접근방법을선정한다. 스캐닝, 집중화, 해슁등사용 DBMS 제품이제공하는저장 / 접근방법을 검토한다. DBMS 제품이제공하는저장 / 접근방법중적합한것을선정한다. 자료량분석의결과와논리적접근도를검토하여클래스의객체들을저장하기위해적합한저장 / 접근방법을선정한다. 특정 DBMS 가필요한접근기법을실제로모두제공하는지평가하기위하여벤치마크를개발하는것이필요할수도있다. 3 인덱스및데이터베이스정의인덱스를정의하고인덱스정의서를작성하고파악된 DBMS 특성과선정된저장 / 접근방법을토대로데이터베이스정의서를작성한다. 인덱스를설정할클래스를선정한다. 인덱스화할클래스의속성을선정한다. 선정한인덱스의특성을정의한다. 즉, 인덱스형태 ( 유일성, 비유일성, 집중화 ) 를구분하고순서화된 (ordered) 인덱스인경우순서를결정한다. 개별데이터베이스에저장할클래스및인덱스를파악한다. 45 TTAS.KO-11.0015/R1
데이터베이스의클래스및인덱스공간정의한다. 클래스및인덱스공간계산을하고설정한다. 인덱스정의서및데이터베이스정의서를작성한다. 입력물 / 산출물 입력물아키텍처정의서설계명세서 - 사용사례분석서 - 클래스명세서 산출물데이터베이스설계서 (OODB) - 논리적접근도 (OODB) - 인덱스정의서 (OODB) - 데이터베이스정의서 (OODB) 4.4.5. 사용자인터페이스설계 개요그래픽사용자인터페이스 (GUI) 환경이보편화됨에따라사용자가편리하게사용하고일관성이있는설계를위하여정립단계의요구사항분석활동에서만들어진화면구성도와보고서양식을바탕으로해당미니프로젝트의화면과보고서를설계한다. 사용사례분석서의시나리오를검토하여시스템의기능을직관적으로잘나타내는메타포어를선정하고, 각메뉴에서다른메뉴로의전이를표현하는항해트리를작성한다. 절차설명 1 사용사례분석서검토작성된시나리오와순서도 / 협력도등을검토하여화면이나보고서양식중에서누락된양식은없는지확인하고미비한부분은보완한다. 시나리오를검토하여순서도 / 협력도에서사용자인터페이스관련객체가누락된것은없는지확인한다. 사용자인터페이스와관련된모든객체를식별한다. 식별된모든객체에해당하는화면이나보고서양식이존재하는지검토한다. 화면, 보고서양식을사용자와검토하면서미비한부분은명확하게정의한다. 46 TTAS.KO-11.0015/R1
2 사용자인터페이스메타포어선정 사용사례분석서에기술된사용자인터페이스관련내용을검토하고, 개발할사용사례의기능과특성및시나리오를기반으로최적의메타포어를선정한다. 메타포어는사용자인터페이스객체들이가지고있는시스템과가장효율적으로입 출력할수있게도와주도록자체의기능및모양을갖는것을말한다. 한편, 시나리오에는나타나있지않으나설계자의전문지식으로부터유추할수있는부분에대해서는설계자의주관에의해삽입할수도있다. 사용자인터페이스메타포어란시스템과사용자간의가장자연스럽고효과적인정보교류를제공하기위한방식, 장치, 전략및수단이다. 다양한그림의형태로나타낼수있다. 예로풀다운메뉴, 윈도우, 책, 지도, 테이블, 폴더등이있다. 사용자의인터페이스에대한적용성, 사용성등을고려한다. 이미나와있는요소들을제외하고해당미니프로젝트에서사용될메타포어는다른미니프로젝트에서도일관성있게적용할수있는것을선정한다. 사용자인터페이스시나리오를통해서만든메타포어들이기존의클래스들의속성이나연산등을변경하거나클래스들을추가하게되면화면설계를마친후사용사례정제작업과클래스정제작업을반복하면서클래스들을고쳐준다. 3 항해트리작성선택된메타포어에적합한형태의항해트리를작성한다. 사용자인터페이스항해트리는정해진메타포어에서사용되는사용자인터페이스관련여러구성요소간의모든가능한경로를표시한트리이다. 선정된메타포어를고려하여항해트리에사용될표기법을작성한다. 표기법은시스템에서나타나는주요인터페이스구성요소를표현할수있어야한다. 단, 실제화면을구성하는것이아니라사용자인터페이스의흐름을나타내는것이주된목적이므로세부적인표현은생략한다. 정의된항해트리표기법을사용하여주화면을기준으로각메뉴로의전이경로를기술한다. 4 화면 / 보고서설계사용자인터페이스구성요소는선정된사용자메타포어를구성하는요소로화면의색깔, 폰트, 화면상의좌표, 윈도우들에대하여정의한다. 보고서의내용을정의하고레이아웃을정한다. 사용자인터페이스구성요소를종류별로구분한다. 구성요소의이름, 크기, 색상, 화면상의좌표를결정한다. 구성요소특성을고려하여필요한사항을추가한다. 47 TTAS.KO-11.0015/R1
입력물 / 산출물 입력물설계명세서 - 사용사례분석서 - 클래스명세서 산출물사용자인터페이스설계서 - 화면설계서 - 보고서설계서 4.4.6. 아키텍처정제 개요설계명세서의각하위산출물에대해일관성, 완전성, 정확성을검토하여정확히설계되었는지시스템의비기능적요구사항을만족하는지를점검한다. 그리고설계명세서를바탕으로소프트웨어구성요소의실제구현을고려한구현구조를명확히정의하며시스템의성능과관련하여프로세스의조정이필요할경우병행구조를, 물리적네트워크구성의변경이필요할경우분산구조를정제한다. 절차설명 1 설계검토요구사항정제및설계활동의모든산출물에대해일관성, 완전성, 정확성을검토하여정확히설계되었는지시스템의비기능적요구사항을만족하는지를점검한다. 점검결과를바탕으로설계검토의견서를작성한다. 모든설계산출물을정리하여설계명세서를보완한다. 설계내용이사용자요구사항을충분히반영했는지검토한다. 요구사항정제및설계활동의산출물을검토하여해당미니프로젝트의사용사례가정확하게설계되었는지점검한다. 설계결과가시스템의비기능적요구사항 ( 성능, 처리량, 응답속도, 무결성, scalability, fault-tolerance 등 ) 을반영하고있는지를점검한다. 클래스도, 순서도 / 협력도, 상태도, 구성요소도, 전개도등산출물각각의완전성및정확성을점검한다. 사용사례도, 클래스도, 순서도 / 협력도, 상태도, 구성요소도, 전개도사이의관계를검토하여사용자요구사항부터분석, 설계까지의흐름이일관성이있는지점검한다. 48 TTAS.KO-11.0015/R1
설계내용이아키텍처정의서의내용에부합되는지검토한다. 아키텍처는시스템의개발전체에대해지켜야할원칙들을정의하는것으로개발자는이원칙을준수해야한다. 따라서설계자는아키텍처정의서에기술된각관점의구조에따라상세한설계를수행하게한다. 만약아키텍처의각관점의구조정의에보완이필요한경우, 2~6의절차에의해아키텍처정의서는보완이이루어져야한다. 점검결과를바탕으로설계검토의견서를작성한다. 설계검토의견서를바탕으로설계명세서를보완한다. 2 사용사례구조정제요구사항의추가, 변경이있을경우나요구사항정제를통해사용사례구조의보완이필요하다고판단될경우사용사례구조를정제한다. 각사용사례의크기나사용사례간의관계가적절히설정되었는지확인하고필요한경우사용사례패키지를보완한다. 그리고각사용사례의우선순위를검토한다. 가능한한사용사례구조의변화는적어야하며, 자주변경된다는것은요구사항획득과정에문제가있다고볼수있으며정상적인프로젝트수행에큰부담이된다. 사용사례의변경이나새로추가된사용사례가있으면보완한다. 요구사항정의서를검토하여사용사례의변경이나새로운추가된사용사례가있는지확인하고, 사용사례구조의보완이필요한지검토한다. 또한사용사례분석서를검토하여특정사용사례가너무복잡한것은적절히분할하도록한다. 사용사례간의관계및우선순위를검토한다. 새로추가되거나변경된사용사례와다른사용사례의관계를검토하여사용사례간의관계를적절히설정하고해당사용사례의우선순위도적절한지확인한다. 3 클래스구조정제설계명세서의클래스명세서를검토하여아키텍처의클래스구조를보완할필요가있는경우보완한다. 클래스패키지의분할, 병합이나새로운클래스패키지가추가될수있다. 이때클래스간의종속관계에유의하여검토해야한다. 클래스패키지의변경이있는지검토한다. 이전작업의설계를통해클래스패키지의분할, 병합이나새로운클래스패키지가추가될수있다. 이때클래스간의종속관계에유의하여검토해야한다. 49 TTAS.KO-11.0015/R1
소속패키지가바뀌는클래스가있는지검토한다. 클래스구조에서는클래스패키지의변화뿐만아니라각패키지에속한클래스가필요에따라소속패키지를변경할수도있으며이로인한패키지의종속관계도함께고려되어야한다. 클래스패키지사이의종속관계를검토한다. 여러패키지와관련이있는특정클래스는그클래스와다른클래스가주고받는메시지의빈도나, 메시지의중요도, 패키지의크기등을다시검토한다. 검토한내용을바탕으로클래스패키지를보완하고패키지사이의 종속 관계에서사이클이있는지확인한다. 클래스패키지간의종속관계에서사이클이있다면어떤패키지를수정하면사이클관계가있는모든패키지에대해재시험을해야한다. 사이클종속관계를해소하는방법은만약두패키지의종속관계가심하면하나의패키지로만들고, 종속관계가심하지않다면사이클이없어질수있도록해당패키지를둘로나누는방법이있다. 4 병행구조정제시스템의프로세스들의병행성의변화나새로운프로세스가식별되거나시스템의유효성, 신뢰성, 성능, 시스템관리, 동기화가변경되면병행구조를보완한다. 또, 실행에관련된태스크와그들간의상호작용, 구성등을검토하여보완한다. 프로세스를검토한다. 시스템의비기능적요구사항 ( 성능, 처리량, 응답속도, 무결성, scalability, faulttolerance 등등 ) 과하드웨어, 네트웨어성능등을고려하여식별된병행프로세스를검토하고프로세스의보완이필요한지검토한다. 그리고각프로세스가포함하는객체들은적절한지검토한다. 만약새로운객체가있다면적절한프로세스에할당한다. 프로세스간의통신방식을검토한다. 식별된프로세스간의통신방식이적절한지검토한다. 분산된시스템의경우프로세스간의통신방식에따라성능에영향을미칠수있다. 5 구현구조정제설계명세서를바탕으로구현구조의구성요소를검토한후, 변경이있으면구현구조를보완한다. 새로정의된클래스나클래스패키지를식별하여해당구성요소를정의한다. 클래스구조를검토하여새로정의된클래스및클래스패키지를식별하여적절한구성요소에할당하거나새로운구성요소를정의한다. 개발조직의구성을고려하여구성요소의정의를보완한다. 50 TTAS.KO-11.0015/R1
각구성요소는한명의프로그래머나소수의팀이구현해야한다. 그렇지않은경우서로간의의사소통을위한노력이많이들어구현이어려워진다. 재사용할수있는구성요소를식별한다. 정의된각구성요소가이전미니프로젝트에서개발되었거나상용제품 (COTS) 의라이브러리를재사용할수있는것은어떤것인지검토한다. 가능한한새로개발하기보다는기존구성요소를재사용하는것이좋다. 설계시에식별되지못한종속관계가있는지검토한다. 시스템을설계할때는발견하지못한구성요소간의종속관계를구현을고려할때식별될수있다. 구성요소간의종속관계에서사이클이있는지검토한다. 클래스구조에서사이클종속관계를해소해야하는것과마찬가지로구성요소간의사이클종속관계도해소해야한다. 사이클종속관계를해소하는방법은만약두구성요소의종속관계가심하면하나의구성요소로만들고, 종속관계가심하지않다면공통적으로관련되는클래스들을새로운구성요소로정의하는방법이있다. 각구성요소의종류별로위치를설정한다. 소스코드, 실행코드, 이미지파일, 이진파일, 실행파일등을저장할위치 ( 디렉토리혹은폴더 ) 를설정한다. 그리고시험을위한데이터나프로그램을저장할위치도함께설정한다. 시스템이큰경우각구성요소를이루는파일의수가많으므로적절하게그위치를설정해야개발자간의혼선을막을수있다. 미니프로젝트정의서의구성연관표를보완한다. 새로추가되거나변경된구성요소에대해구성요소와사용사례및미니프로젝트의관계를나타내는구성연관표를갱신한다. 이구성연관표는이후시험을위한입력물로사용된다. 6 분산구조정제물리적네트워크의구성에변화가생길때와프로세스의물리적노드할당구조가변경되었을때분산구조를보완한다. 소프트웨어가실행되는물리적네트워크구성에변화가있는지, 프로세스가노드에올바르게할당되었는지를검토한다. 시스템이운영될하드웨어네트워크를검토한다. 각노드에서실행되는프로세스를검토한다. 51 TTAS.KO-11.0015/R1
입력물 / 산출물 입력물미니프로젝트정의서설계명세서아키텍처정의서 산출물미니프로젝트정의서 ( 보완 ) 설계명세서 ( 보완 ) 설계검토의견서아키텍처정의서 ( 보완 ) 52 TTAS.KO-11.0015/R1
부록 Ⅰ UML 용어한글표기 UML 용어 한글표기 abstract class 추상클래스 abstraction 추상화 Action 활동 action expression 활동식 action state 활동상태 Activation 활성화 active class 활성클래스 active object 활성객체 activity diagram 활동도 actor [class] 행위자 [ 클래스 ] actual parameter 실매개변수 aggregate [class] 집단클래스 aggregation 집단화 architecture 구조 argument 인수 association 연관화 association class 연관클래스 association role 연관역할 asynchronous message 비동기메시지 attribute 속성 behavior model aspect 행위모형측면 binary association 이항연관화 class 클래스 class diagram 클래스도 client 클라이언트 collaboration 협력 collaboration diagram 협력도 communication association 통신연관화 component 구성요소 component diagram 구성요소도 composite [class] 복합클래스 composite aggregation 복합집단화 composite state 복합상태 composition 복합 53 TTAS.KO-11.0015/R1
UML 용어 한글표기 concrete class 구체클래스 concurrency 병행성 concurrent substate 병행하위상태 constraint 제약 dependency 종속 deployment diagram 전개도 derived element 유도된요소 development process 개발공정 diagram 그림 ( 도 ) disjoint substate 분리하위상태 distribution unit 분산단위 domain 영역 dynamic classification 동적분류 element 요소 enumeration 열거형 event 사건 export 보내기 expression 식 extends 확장 fire 촉발 focus of control 제어막대 ( 활성화 ) formal parameter 형식매개변수 framework 틀 generalization 일반화 guard condition 전이조건 implementation 구현 implementation inheritance 구현상속 import 가져오기 inheritance 상속 instance 인스턴스 interaction 상호작용 interaction diagram 상호작용도 interface 인터페이스 interface inheritance 인터페이스상속 layer 층, 계층 link 연결 link role 연결역할 message 메시지 54 TTAS.KO-11.0015/R1
UML 용어 한글표기 metaclass 메타클래스 meta-metamodel 메타-메타모형 metamodel 메타모형 metaobject 메타객체 metatype 메타유형 method 메소드 model 모형 model aspect 모형측면 model element 모형요소 module 모듈 multiple classification 다중분류 multiple inheritance 다중상속 multiplicity 다중성 n-ary association 다항연관화 namespace 이름영역 node 노드 note 주석 object 객체 object diagram 객체도 object lifeline 객체수명선 operation 연산 package 패키지 parameter 매개변수 * parameterized class 매개클래스 persistent object 지속성객체 postcondition 사후조건 powertype 멱유형 precondition 사전조건 primitive type 원시유형 projection 투영 property 특성 pseudo-state 의사상태 qualifier 한정자 receive [a message] 수신하다 [ 메시지 ] receiver [object] 수신자 [ 객체 ] reference 참조 refinement 정제 relationship 관계 55 TTAS.KO-11.0015/R1
UML 용어 한글표기 requirement 요구사항 responsibility 책임 reuse 재사용 role 역할 scenario 시나리오 semantic variation 의미변이 send [a message] 송신하다 [ 메시지 ] sender [object] 송신자 [ 객체 ] sequence diagram 순서도 signal 신호 signature 표시 single inheritance 단일상속 specification 명세 state 상태 state diagram 상태도 state machine 상태기계 static classification 정적분류 stereotype 스테레오유형 string 문자열 structual model aspect 구조모형측면 subclass 하위클래스 substate 하위상태 subsystem 하위시스템 subtype 하위유형 superclass 상위클래스 supertype 상위유형 supplier 제공자 swimlane 활동책임선 synchronous message 동기메시지 tagged value 표지값 template 템플릿 thread [of control] 스레드 time event 시간사건 time expression 시간식 timing mark 시간표시 transient object 임시객체 transition 전이 type 유형 56 TTAS.KO-11.0015/R1
UML 용어 한글표기 type expression 유형식 use case [class] 사용사례 [ 클래스 ] use case diagram 사용사례도 use case instance 사용사례인스턴스 use case model 사용사례모형 uses 사용 utility 유틸리티 value 값 view 뷰 view element 뷰요소 view projection 뷰투영 visibility 가시성 57 TTAS.KO-11.0015/R1
표준작성공헌자 표준번호 : TTAS.KO-11.0015/R1 이표준의제정 개정및발간을위해아래와같이여러분들이공헌하였습니다. 구분성명위원회및직위 연락처 (E-mail 등 ) 소속사 과제제안 표준초안제출 표준초안검토및작성 장진호 최성운 장진호 최윤정최유희하수정김진삼 S/W 컴포넌트프로젝트그룹 (PG408) 부의장 S/W 컴포넌트프로젝트그룹 (PG408) 의장 S/W 컴포넌트프로젝트그룹 (PG408) 부의장 S/W 컴포넌트프로젝트그룹 (PG408) 위원 S/W 컴포넌트프로젝트그룹 (PG408) 위원 S/W 컴포넌트프로젝트그룹 (PG408) 위원 S/W 컴포넌트프로젝트그룹 (PG408) 위원 042-860-5274 jhjang@etri.re.kr 031-330-6440 choisw@mju.ac.kr 042-860-5274 jhjang@etri.re.kr ETRI 명지대 ETRI 031-200-3475 Yjung.choi@samsung.com 삼성전자 042-860-6389 yhchoi@etri.re.kr ETRI 042-860-6095 hsj@etri.re.kr ETRI 042-860-5995 jinsam@etri.re.kr ETRI 표준안심의 김은 IT 응용기술위원회의장 / 단장 외 13 명 02-2131-0301 eunkim@nia.or.kr NIA 9 개사 사무국담당 김선 오선영 팀장 대리 031-724-0080 skim@tta.or.kr 031-724-0084 syoh@tta.or.kr TTA TTA 58 TTAS.KO-11.0015/R1
객체지향소프트웨어분석 / 설계지침 (Guidelines for Object-oriented Software Analysis and Design) 발행인 : 김홍구발행처 : 한국정보통신기술협회 463-824, 경기도성남시분당구서현동 267-2 Tel : 031-724-0114, Fax : 031-724-0109 발행일 : 2006.12.