2. 요구 분석 및 정의
요구 분석 및 정의 단계에서는 시스템에서 제공해야 할 비지니스와 이해관계자의 요구 사항을 정확히 이해하는 작업이 필요합니다.
이를 위해 이해관계자의 요구 사항을 수집하고 이해해야 합니다. 그리고 수집한 요구사항을 바탕으로 시스템에서 제공해야 할 기능을 개괄적으로 파악하고 결정해야 합니다.
이 책에서는 어떠한 이해관계자가 있는지에 관한 조사와 이를 통해 요구 사항을 수집하는 부분은 간단히 요구 리스트를 보여주는 것으로 끝낼 것입니다.
대신 요구 리스트를 바탕으로 시스템에서 제공해야 할 기능을 파악하고 결정하기 위해서 Usecase 다이어그램을 작성하고 요구 사항과 Usecase 매핑 테이블을 작성하기로 할게요.
2.1 요구 리스트
요구명 |
설명 |
구분 |
웹 로봇 |
웹 페이지를 수집할 수 있어야 합니다. |
기능 |
분석기 |
수집된 웹 페이지를 분석할 수 있어야 합니다. |
기능 |
색인기 |
분석된 요소별로 색인을 만들 수 있어야 합니다. |
기능 |
랭커 |
질의에 해당하는 웹 페이지를 TF-IDF 방식에 의거하여 랭킹합니다. |
기능 |
관리 |
웹 검색 엔진을 설정 및 구동을 제어할 수 있어야 합니다. |
기능 |
검색 |
웹 검색을 요청할 수 있고 검색된 결과를 순위화 하여 보여주어야 합니다. |
기능 |
결합성 |
각 엔진은 분리해야 합니다. |
품질 |
재사용성 |
공통적인 형식은 라이브러리화 하여야 합니다. |
품질 |
시스템화 |
각 엔진에 의한 결과들은 DBMS에 의해 관리해야 합니다. |
기능/ 품질 |
[표 2.1] 요구 리스트
2.2 유즈케이스 다이어그램
유즈케이스 다이어그램은 시스템에서 구현해야 할 기능을 개괄적으로 보여주기 위해서 수행합니다. 이를 통해 시스템이 처리해야 할 일과 외부에서 수행할 일을 결정하고 어떠한 사용자와 시스템과 상호 작용하는지를 결정합니다.
이를 위해 먼저 시스템과 상호 작용하는 사용자와 외부 시스템을 찾는 작업을 수행합니다. 유즈케이스 다이어그램에서는 시스템과 상호 작용하는 사용자와 외부 시스템을 액터라고 말합니다.
[그림 2.1] 액터
그리고 액터가 어떨 때 우리 시스템을 사용하는지 우리 시스템이 언제 액터를 사용하는지를 결정합니다. 그리고 이를 유즈케이스로 나타냅니다.
[그림 2.2] Usecase
Usecase 다이어그램은 액터와 Usecase, 관계를 표현합니다.
2.2.1 액터 개요
액터는 시스템과 상호 작용하는 사용자와 외부 시스템을 말합니다.
EH WSE를 사용하는 액터에는 최종 사용자(End User)와 관리자(Manager)가 있습니다. 그리고 외부 시스템에는 DBMS가 있습니다.
[그림 2.3] 액터 개요
번호 |
액터 이름 |
설명 |
1 |
End User |
검색 서비스를 사용하는 사용자 |
2 |
Manager |
검색 서비스 테스트 및 웹 수집 로봇 설정 및 모니텅링을 수행하는 관리자 |
3 |
DBMS |
솔루션의 DB를 관리하는 시스템(MS SQL) |
[표 2.2] 액터
2.2.2 유즈케이스 다이어그램
먼저 최종 사용자와 상호 작용에 관한 유즈케이스 다이어그램을 작성합시다. 최종 사용자는 검색할 때만 EH WSE와 상호 작용합니다. 검색 요청하면 내부 시스템에서는 검색 질의를 형태소로 분리하는 작업을 수행합니다(MorphemeParse). 그리고 색인 데이터에서 질의 요소를 포함하는 웹 페이지 정보를 얻어옵니다(GetInvertedFile). 검색 정보를 순위화하고(Ranking) 수집한 페이지의 정보를 보여줍니다(GetPostedUrl).
[그림 2.4] End User와 상호 작용
번호 |
유즈케이스 이름 |
설명 |
1 |
Search |
검색 |
2 |
MorphemeParser |
형태소 분석 |
3 |
GetInvertedFile |
역 파일 생성 |
4 |
Ranking |
순위 부여 |
5 |
GetPostedUrl |
수집한 결과 페이지 얻어오기 |
[표 2.3] End User와 상호 작용하는 Usecase
관리자는 최종 사용자처럼 검색할 수 있습니다. 그리고 이 외에도 Seed 사이트 주소를 추가(AddSeedSite)하거나 수집 주기를 설정(SetInterval), 웹 로봇이 수집하는 것을 가동시키거나(Start) 멈추게 하고(Stop) 수집해야 할 사이트를 확인(NeedGetUrls), 수집한 색인 데이터를 확인(GetMorphemes)합니다.
관리자가 웹 수집을 가동하면 주기적으로 웹 페이지를 수집(WebCollect)합니다. 그리고 수집한 웹 페이지의 내용을 분석(MorphemeParse)하고 색인 데이터를 만드는 작업을 수행합니다(MakeInvertedFile).
[그림 2.5] Manager와 상호 작용
참고로 특정 Usecase를 수행하면서 반드시 수행해야 하는 Usecase는 <<include>> 스테레오 관계로 표시하며 선택적으로 수행할 때는 <<extend>> 스테레오 관계로 표시합니다. <<include>> 스테레오는 반드시 수행해야 하는 Usecase로 화살표 방향을 표시하며 <<extend>> 스테레오는 선택적으로 수행하는 Usecase에서 시작하는 방향으로 표시합니다.
[표 2.4]는 Usecase별로 어떠한 역할을 수행하는지와 관련 액터 및 상호 작용 방향을 표로 정리한 것입니다.
이와 같이 작업한 내용을 파악하기 쉽게 문서로 작성해 놓으면 효과적으로 관리할 수 있습니다. 프로젝트의 종류와 목적에 따라 어느 수준으로 회의와 문서화, 개발 방법론 적용이 다를 수 있는데 중요한 것은 모든 작업이 개발에 득이 되는 수준으로 행해야 한다는 것입니다. 그 어떠한 작업도 많이 하면 독이 되고 부족하면 품질 수준 저하 및 전체 개발 비용이 많아질 수 있습니다. 어느 수준으로 적용해야 최소 비용으로 최대 품질의 서비스를 제공할 수 있을지 고민하고 상황에 맞는 개발 방법론을 판단할 수 있는 능력을 키우셔야 합니다.
Usecase 명 |
설명 |
관련 액터 및 방향 |
Search |
검색 요청 |
EndUser(→), Manager(→) |
GetInvertedFile |
역 파일 요청 |
(→)DBMS |
Ranking |
검색 결과 순위 부여 |
(→)DBMS |
GetPostedUrl |
수집한 웹 페이지 요청 |
(→)DBMS |
AddSeedSite |
Seed 사이트 추가 |
Manager(→) |
SetInterval |
수집 주기 설정 |
Manager(→) |
Start |
웹 수집기 가동 |
Manager(→) |
Stop |
웹 수집기 멈춤 |
Manager(→) |
NeetGetUrls |
수집 후보 Url들을 요청 |
Manager(→) |
GetMorphemes |
모든 형태소 요청 |
Manager(→) |
WebCollect |
웹 수집 |
(→)DBMS |
MorpemeParse |
형태소 분석 |
|
MakeInvertedFile |
역 파일 생성 |
(→)DBMS |
[표 2.4] Usecase 리스트
2.3 요구 사항 및 유즈케이스 매핑
요구 사항을 파악한 후에 유즈케이스 다이어그램을 작성하였으면 이 둘 간의 매핑 테이블을 만들어 보세요. 이를 통해 어떠한 요구 사항이 어느 유즈케이스에 반영했는지 파악하기 쉽고 반영하지 않은 요구 사항이 있는지 확인하기 쉬워집니다.
하나의 요구 사항을 반영하는 여러 개의 유즈케이스가 있을 수 있고 여러 개의 요구 사항을 반영하는 하나의 유즈케이스가 있을 수 있습니다. 그리고 품질에 관한 요구 사항을 반영하는 특정 유즈케이스가 없을 수도 있습니다.
요구명 |
관련 Usecase |
웹 로봇 |
WebCollect |
분석기 |
Morphemepares |
색인기 |
MakeInvertedFile |
랭커 |
Ranking |
관리 |
SetInterval, Start, Stop, AddSeedSite |
검색 |
Search |
결합성 |
품질 요구 사항임 |
재사용성 |
품질 요구 사항임 |
시스템화 |
GetInvertedFile, Ranking,GetPostedUrl, WebCollect, MakeInvertedFile |
웹 로봇 |
WebCollect |
분석기 |
Morphemepares |
색인기 |
MakeInvertedFile |
[표 2.5] 요구 사항 및 유즈케이스 매핑
2.4 유즈케이스 상세 기술
유즈케이스 다이어그램을 작성한 후에 아키텍쳐링 작업으로 넘어갑니다. 그런데 각 유즈케이스 별로 어떻게 상호작용할 것인지 개략적으로 정리하고 넘어갈 수 있습니다. 이 때 유즈케이스 상세 기술 작업을 수행하는데 CASE 도구에서는 이를 작성할 별도의 다이어그램이 없기 때문에 문서 편집기를 이용하여 작성하세요.
유즈케이스 상세 기술에서는 작업의 우선 순위나 수행 사전 조건 및 후행 조건 등을 명시할 수도 있습니다. 하지만 가장 중요한 것은 액터와 시스템 간의 상호 작용 흐름을 정의하는 것입니다. 이 책에서는 Search 유즈케이스와 Start 유즈케이스에 관한 액터와 시스템 간의 상호 작용 흐름을 개략적으로 정의하기로 할게요.
2.4.1 Search 유즈케이스 상세 기술
Search 유즈케이스는 일반 사용자와 관리자가 사용할 수 있습니다.
일반 사용자 혹은 관리자가 시스템에게 검색을 요청하면 시스템은 질의 내용을 분석하여 행태소를 파악합니다. 그리고 포함한 형태소를 포함하는 사이트를 DBMS에게 검색 요청합니다. 시스템에서는 검색 결과를 형태소의 희귀성과 사이트 내용에 있는 빈도수로 순위를 부여합니다. 그리고 시스템은 결과를 요청한 이에게 전달합니다.
User or Manager |
System |
DBMS |
1. 검색을 요청한다(→) |
|
|
|
2. 질의 내용을 분석한다. |
|
3. 형태소를 포함하는 사이트를 검색한다. (→) |
||
4. 순위를 부여한다. |
|
|
5. 결과를 보여준다. (←) |
|
[표 2.6] Search 유즈 케이스 상세 기술
2.4.2 AddSeedSite 유즈케이스 상세 기술
AddSeedSite 유즈케이스는 관리자가 사용하는 기능입니다. 관리자는 수집할 시드 사이트를 추가 요청하면 시스템은 DB에 저장합니다.
Manager |
System |
DBMS |
1. 시드 사이트 추가를 요청한다(→) |
|
|
|
2. 시드 사이트를 DB에 저장한다. (→) |
[표 2.7] AddSeedSite 유즈 케이스 상세 기술
2.4.3 SetInterval 유즈케이스 상세 기술
관리자는 시스템의 웹 페이지 수집 주기를 설정할 수 있습니다.
Manager |
System |
1. 수집 주기를 설정합니다.(→) |
[표 2.8] SetInterval 유즈 케이스 상세 기술
2.4.4 Start 유즈케이스 상세 기술
관리자는 시스템의 웹 페이지 수집을 가동할 수 있습니다.
Manager |
System |
1. 웹 페이지 수집을 가동합니다.(→) |
[표 2.9] Start 유즈 케이스 상세 기술
2.4.5 Stop 유즈케이스 상세 기술
관리자는 시스템의 웹 페이지 수집을 멈출 수 있습니다.
Manager |
System |
1. 웹 페이지 수집을 멈춥니다.(→) |
[표 2.10] Stop 유즈 케이스 상세 기술
2.4.6 WebCollect 유즈케이스 상세 기술
WebCollect 유즈케이스에서는 먼저 수집할 웹 페이지를 DBMS를 통해 얻어옵니다. 그리고 수집할 웹 웹 페이지를 수집합니다. 수집이 끝나면 수집한 웹 페이지에 링크를 조사하고 이들을 다시 수집 후보 사이트에 추가합니다.
시스템 |
DBMS |
1. 수집할 웹 페이지를 얻어옵니다.(←) |
|
2. 웹 페이지를 수집 |
|
3. 웹 페이지의 링크 조사 |
|
4. 링크를 수집 후보 사이트에 추가(→) |
[표 2.11] WebCollect 유즈 케이스 상세 기술
2.4.7 NeedGetUrls 유즈케이스 상세 기술
Manager는 수집 후보 사이트 목록을 시스템에 요청하면 시스템은 DBMS에 저장한 정보를 얻어와 Manager에게 알려줍니다.
Manager |
System |
DBMS |
1. 수집 후보 사이트 목록을 요청한다(→) |
|
|
|
2. 수집 후보 사이트를 요청한다.(→) |
|
3. 수집 후보 사이트 목록을 보여준다.(←) |
|
[표 2.12] Start 유즈 케이스 상세 기술
2.4.8 GetMorphemes 유즈케이스 상세 기술
Manager는 시스템에게 수집한 페이지 내의 형태소 목록을 요청할 수 있습니다. 시스템은 수집한 페이지 내의 형태소 목록을 DBMS에 저장했다가 요청할 때 이를 보여줍니다.
Manager |
System |
DBMS |
1. 수집한 페이지 내의 형태소 목록을 요청한다(→) |
|
|
|
2. 수집한 페이지 내의 형태소 목록을 요청한다. (→) |
|
3. 형태소 목록을 보여준다.(←) |
|
[표 2.13] Start 유즈 케이스 상세 기술
2.4.9 MorphemeParse 유즈케이스 상세 기술
웹 페이지를 수집하면 수집한 웹 페이지의 내용으로 형태소 분석을 요청합니다. 이 작업은 시스템 내부에서 수행할 작업이므로 여기에서는 별도의 상세 기술을 하지 않을게요.
System |
1. 수집한 웹 페이지의 형태소 목록을 분석한다. |
[표 2.14] Stop 유즈 케이스 상세 기술
2.4.10 MakeInvertedFile 유즈케이스 상세 기술
역 파일을 생성하는 이유는 수집한 수 많은 웹 페이지 내용과 검색 요청한 내용을 비교하는 비용이 너무 많이 들기 때문입니다.
웹 페이지를 수집하면 수집한 웹 페이지에 몇 개의 형태소가 있는지 DBMS에 저장합니다. 그리고 각 형태소 별로 테이블을 생성하고 테이블에 해당 형태소를 포함하는 웹 페이지 주소를 저장합니다.
이는 검색 요청할 때 역 파일 테이블에 있는 형태소와 비교하여 포함하고 있는 웹 페이지 주소를 빠르게 검색하고 순위화하여 좋은 정보를 제공하기 위한 작업입니다.
시스템 |
DBMS |
1. 수집할 웹 페이지 주소와 형태소 개수를 저장합니다.( →) |
|
2. 수집한 페이지의 모든 형태소를 저장합니다. ( →) 만약 새로운 형태소를 만나면 새로운 테이블을 생성(→) |
|
3. 형태소 테이블에 웹 페이지 주소를 저장합니다. ( →) |
[표 2.15] MakeInvertedFile 유즈 케이스 상세 기술
'프로그래밍 기술 > 웹 검색 엔진 만들기' 카테고리의 다른 글
3. 4 프로토 타이핑 (0) | 2017.12.06 |
---|---|
3. 3 DB 설계 (0) | 2017.12.06 |
3. 2 시퀀스 다이어그램 (0) | 2017.12.05 |
3. 1 컴포넌트 다이어그램 (0) | 2017.12.05 |
3. 아키텍쳐링 (0) | 2017.12.05 |
1. 7 .NET 리모팅 (0) | 2017.12.05 |
1.6.2 사용자 정의 컨트롤 만들기 (0) | 2017.12.05 |
1.6.1 간단한 Windows Forms 응용 만들기 (0) | 2017.12.05 |
1. 6 Windows Form (0) | 2017.12.05 |
1.5 라이브러리 (0) | 2017.12.01 |