프로그래밍 기술/웹 검색 엔진 만들기

2. 요구 분석 및 정의

언제나휴일 2017. 12. 5. 15:00
반응형

2. 요구 분석 및 정의



 

 요구 분석 및 정의 단계에서는 시스템에서 제공해야 할 비지니스와 이해관계자의 요구 사항을 정확히 이해하는 작업이 필요합니다.

 

 이를 위해 이해관계자의 요구 사항을 수집하고 이해해야 합니다. 그리고 수집한 요구사항을 바탕으로 시스템에서 제공해야 할 기능을 개괄적으로 파악하고 결정해야 합니다.

 

 이 책에서는 어떠한 이해관계자가 있는지에 관한 조사와 이를 통해 요구 사항을 수집하는 부분은 간단히 요구 리스트를 보여주는 것으로 끝낼 것입니다.

 

 대신 요구 리스트를 바탕으로 시스템에서 제공해야 할 기능을 파악하고 결정하기 위해서 Usecase 다이어그램을 작성하고 요구 사항과 Usecase 매핑 테이블을 작성하기로 할게요.

 

2.1 요구 리스트

 

요구명

설명

구분

웹 로봇

웹 페이지를 수집할 수 있어야 합니다.

기능

분석기

수집된 웹 페이지를 분석할 수 있어야 합니다.

기능

색인기

분석된 요소별로 색인을 만들 수 있어야 합니다.

기능

랭커

질의에 해당하는 웹 페이지를

TF-IDF 방식에 의거하여 랭킹합니다.

기능

관리

웹 검색 엔진을 설정 및 구동을 제어할 수 있어야 합니다.

기능

검색

웹 검색을 요청할 수 있고 검색된 결과를 순위화 하여 보여주어야 합니다.

기능

결합성

각 엔진은 분리해야 합니다.

품질

재사용성

공통적인 형식은 라이브러리화 하여야 합니다.

품질

시스템화

각 엔진에 의한 결과들은 DBMS에 의해 관리해야 합니다.

기능/

품질

[2.1] 요구 리스트

 

 

2.2 유즈케이스 다이어그램

 

 유즈케이스 다이어그램은 시스템에서 구현해야 할 기능을 개괄적으로 보여주기 위해서 수행합니다. 이를 통해 시스템이 처리해야 할 일과 외부에서 수행할 일을 결정하고 어떠한 사용자와 시스템과 상호 작용하는지를 결정합니다.

 

 이를 위해 먼저 시스템과 상호 작용하는 사용자와 외부 시스템을 찾는 작업을 수행합니다. 유즈케이스 다이어그램에서는 시스템과 상호 작용하는 사용자와 외부 시스템을 액터라고 말합니다.

 

[그림 2.1] 액터

 

 그리고 액터가 어떨 때 우리 시스템을 사용하는지 우리 시스템이 언제 액터를 사용하는지를 결정합니다. 그리고 이를 유즈케이스로 나타냅니다.

 

[그림 2.2] Usecase

[그림 2.2] Usecase

 

 Usecase 다이어그램은 액터와 Usecase, 관계를 표현합니다.

 

 

 

2.2.1 액터 개요

 

 액터는 시스템과 상호 작용하는 사용자와 외부 시스템을 말합니다.

 

 EH WSE를 사용하는 액터에는 최종 사용자(End User)와 관리자(Manager)가 있습니다. 그리고 외부 시스템에는 DBMS가 있습니다.

[그림 2.3] 액터 개요

[그림 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와 상호 작용

[그림 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와 상호 작용

[그림 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