직업은 선물 트레이더

[과제]소프트웨어공학. 소프트웨어 개발(설계서_1)

잊어버린 과거

당시에는 힘겹게 했다. 역시 무엇이든 처음 배울 때는 힘든 것 같다.

 

System Design Specification



오에이에스(O A S, On-line AD Selection )





이  름

학  번

윤종옥

 

장용하

2010151035

김영성

김경오

 

곽상욱

 

 

[7조] 우등생




 


 

목     차

1  Introduction                                                           

  1.1  Objectives                                                                

  1.2  Applied Model                                                            

    1.1.1  UML                                                                    

    1.1.2  Class Diagram & Object Diagram                                      

    1.1.3  Use Case Diagram                                                      

    1.1.4  Sequence Diagram                                                      

  1.3  Applied tool and IDE                                                    

    1.3.1  Eclipse                                                                 

2. Architectural Design                                 

  2.1 Objectives                                                                   

  2.2 System Architecture                                                         

  2.3  Modular Decomposition Styles                                              

    2.3.2 Data-flow Model                                                         

3 Entire Model                                         

  3.1  Objectives                                                                  

  3.2  Actors                                                                      

  3.3  Use-cases                                                                   

  3.4  Package                                                                    

    3.4.1 콘텐츠 분석                                                             

    3.4.2 광고 선정                                                               

    3.4.3 데이터베이스                                                            

    3.4.4 데이터베이스 매니저                                                    

    3.4.5 클라이언트 매니저                                                      

    3.4.6 신고 관리                                                               

    3.4.7 콘텐츠 설정                                                             

    3.4.8 광고표시                                                                

    3.4.9 클라이언트 신고                                                         

4 콘텐츠 분석                                          


  4.1  Class Diagram                                                              

    4.1.1  콘텐츠 분석                                                            

  4.2  Sequence Diagram                                                          

5 광고 선정                                             

  5.1  Class Diagram                                                              

    5.1.1  광고선별                                                               

    5.1.2 비교작업                                                                

    5.1.3 선별된 광고                                                             

  5.2  Sequence Diagram                                                          

6 데이터베이스                                         

  6.1  Class Diagram                                                              

    6.1.1  광고정보                                                               

    6.1.2  광고분류                                                               

    6.1.2  광고방식 유형                                                          

  6.2  Sequence Diagram                                                          

7 데이터베이스 매니저                                  

  7.1  Class Diagram                                                              

    7.1.1  DB 매니저                                                              

  7.2  Sequence Diagram                                                          

8 클라이언트 매니저                                    

  8.1  Class Diagram                                                              

    8.1.1  클라이언트 매니저                                                     

  8.2  Sequence Diagram                                                          

9 신고 관리                                             

  9.1  Class Diagram                                                              

    9.1.1  신고관리                                                               

    9.1.2  신고접수 내용                                                          

    9.1.3  신고 접수인 정보                                                      

  9.2  Sequence Diagram                                                          

10 콘텐츠 설정                                         

  10.1  Class Diagram                                                             

    10.1.1  콘텐츠 설정                                                           

    10.1.2  콘텐츠                                                                

    10.1.3  텍스트                                                                

    10.1.4  소리,영상,이미지( = 멀티미디어)                                      

    10.1.5  소리,영상,이미지( = 멀티미디어)                                      

    10.1.6  데이터 정리                                                           

  10.2  Sequence Diagram                                                         

11 광고표시                                            

  11.1  Class Diagram                                                             

    11.1.1  광고 표시                                                             

    11.1.2  광고                                                                   

    11.1.3  광고정보                                                              

  11.2  Sequence Diagram                                                         

12 클라이언트 신고                                     

  12.1  Class Diagram                                                             

    12.1.1  신고                                                                   

    12.1.2  신고 내용                                                             

    12.1.3  신고 접수인 정보                                                     

  12.2  Sequence Diagram                                                         

13 Project Planning                                   

  13.1 Objectives                                                                  

  13.2 Tasks                                                                       

  13.3 Activity Network                                                           

  13.4 Task Allocation                                                             


 



1. Introduction


1.1 Objectives


   이 section의 목적은 디자인 과정에 있어서 필요한 응용 모델과 방법에 대한 기본적인 내용과 사용된 툴에 대한 설명을 제공한다.


1.2 Applied Model


  1.2.1 UML


   객체 지향적 분석 ·설계 방법론의 표준 지정을 목표로 하고 있다. 요구 분석, 시스템 설계, 시스템 구현 등의 과정에서 생길 수 있는 개발자간의 의사 소통의 불일치를 해소할 수 있다. 모델링에 대한 표현력이 강하고 비교적 모순이 적은 논리적인 표기법(notation)을 가진 언어라는 장점이 있다. 따라서 개발자간의 의사 소통이 쉬워지며 생략되거나 불일치되는 모델링 구조에 대한 지적도 용이하고, 개발하려는 시스템 규모에 상관없이 모두 적용 가능한 장점이 있다.


  ▪ Object Model

   Object, Operation, Attribute를 가진 구조와 하부 구조 그리고 그 사이의 관계를 보여준다. Class Diagram이 포함된다.


  ▪ Dynamic Model

   시스템의 내부 행동을 보여준다. Sequence Diagram이 포함된다.



  1.2.2 Class Diagram


   Class Diagram은 서로 관련 있는 클래스들의 집합이다. 정적 모델의 대표적인 모델이며, Class Diagram은 시스템 개발의 다양한 공정에서 참조되는 UML의 핵심이라고 할 수 있다. 즉, Class Diagram은 객체지향 설계단위를 이용하여 시스템의 정적인 구조(모델)를 표현한 것이다.



  1.2.3 Use Case Diagram


   Use Case Diagram은 유즈케이스 모델을 다이어그램으로 표현한것으로 유즈케이스 다이어그램은 액터, 유즈케이스, 관계로 나타내어 진다. 여기서 유즈케이스라 함은 말 그대로 쓰임새를 의미한다. Diagram은 actor가 각각의 use case와 상호 작용하는 것을 보여준다. Use Case Diagram은 시스템의 기능적 부분을 나타낸다. Use Case Diagram을 통해서 매우 중요한 특징들을 기능과 프로세스 측면에서 발견할 수 있다.


  1.2.4 Sequence Diagram


  객체간의 송수신 하는 메시지를 시간 순서대로 표현한 그림이다. 행동순서를 시간에 따라 보여주는 역할을 한다. 각 객체에서의 메소드 사용이 시간순서대로 나타나게 되는 것이다. 이것은 시스템이 실제로 어떤 과정을 거쳐 작동이 되는지 한눈에 알아보기 쉽다. Sequence Diagram은 두 개의 축으로 이야기할 수 있다.. 가로축은 객체의 수명을 나타내는 반면 세로축은 이 객체의 생성과 사용의 순서를 나타낸다.


1.3 Applied Tool


  1.3.1 Eclipse


이클립스(Eclipse)는 다양한 플랫폼에서 쓸 수 있으며, 자바를 비롯한 다양한 언어를 지원하는 프로그래밍 통합 개발 환경을 목적으로 시작하였으나, 현재는 OSGi를 도입하여, 범용 응용 소프트웨어 플랫폼으로 진화하였다. 자바로 작성되어 있으며, 자유 소프트웨어이지만 막강한 기능을 자랑한다. 2004년과 2005년 졸트 어워드(Jolt Award)를 수상했다. 식(蝕)을 뜻하는 이클립스란 이름은 자바를 개발한 회사의 Sun이란 이름을 염두에 두었다는 말도 있어 2003년도에 썬 마이크로시스템즈는 이클립스 파운데이션에 참여하지 않았던 이유중의 하나였지만 2005년도에 열린 EclipseCon의 키노트에서 Lee Nackman은 그 목적은 원래 마이크로소프트와 비주얼 스튜디오 생태 시스템을 겨냥한 것이었다고 말했다. 원래 IBM의 WebSpheare Studio Application Developer란 이름으로 개발되었던 것인데, 엔진부분을 오픈소스로 공개한 것을 기반으로 지금의 이클립스로 발전해 왔다. 최근 버전은 3.7로, 각 목적별(C/C++ 개발자용, 자바 개발자용, 웹 개발자용 등등)의 다양한 배포판이 존재한다.

 


2. Architectural Design


2.1 Objectives


   이 section의 목적은 system requirement를 만족하는 System Organisation을 만들 수 있도록 architecture를 설계하는 것이다.



2.2 System Architecture


   System은 크게 Server와 Client로 구성되어 있다. 기본 구조는 아래와 같다.


 

 


 

 


2.3  Modular Decomposition Styles


  2.3.1 Object Model


 

 

 



2.3.2 Data-flow Model


 

 


 

3 Entire Model


3.1  Objectives


   이 section의 목적은  Actor에 대한 정의와 전체 system의 use-cases, 전체 package 이름을 기술하는 것이다.


3.2  Actors


   이 system은 사용자에게 인터페이스를 제공한다. 사용자는 휴대폰으로 접속하는 사람이나, 컴퓨터를 이용해서 접속해서 실시간 교육에 참여하는 사람 등이 될 수 있다.  그리고 선생님은 실시간 교육을 방송하는 선생님이 된다.


3.3  Use-cases

 

 

 


3.4  Package


 

 



(3.4.1 ~ 3.4.6 : 서버쪽 패키지)


  3.4.1 콘텐츠 분석


    클라이언트로부터 받은 콘텐츠를 분석하여 통계화된 정보로 만드는 패키지이다. 이 패키지의 결과물은 광고 선정 작업에 주된 척도가 된다.


  3.4.2 광고 선정


    여러 정보를 참고하여 가장 적절한 광고를 선택하는 패키지이다. 클라이언트로부터 콘텐츠를 직접 전달받는다.





  3.4.3 데이터베이스


    광고주들의 광고의 저장을 위한 패키지이다. 광고 분류, 광고 유형, 광고 기한, 광고 가격등 광고주가 요청한 광고와 관련된 모든 정보들이 들어있다.


  3.4.4 데이터베이스 매니저


    데이터베이스 속 데이터들을 관리하는 역할을 하는 패키지이다. 광고주들의 요청사항이나 상황 변화에 따라, 추가 삭제 변경등을 한다.


  3.4.5 클라이언트 매니저


    광고를 설치한 클라이언트의 정보를 관리하는 패키지이다. 광고가 사내 규정에 맞게 설치되어있는지, 사이트 주소는 어디인지 등의 정보가 있으면 클라이언트의 가입과 탈퇴에 따라 클라이언트 정보를 추가, 삭제도 할 수 있다.


  3.4.6 신고 관리


    사이트 방문자로부터 들어온 신고를 접수하여 보관하는 패키지이다. 이는 클라이언트가 광고대행업체의 사내규정을 준수하면서 광고개제 활동을 하고 있는지 알 수 있도록 한다.


 

(3.4.7 ~ 3.4.9 : 클라이언트쪽 패키지)


  3.4.7 콘텐츠 설정


    가장 최적의 광고를 내보내기위해 온라인 사이트의 어느 부분부터 어느 부분 까지 분석을 할 것인지 범위를 판단하여 정하는 패키지이다. 가장 최적의 광고가 나오기 위해서는 콘텐츠로 설정하는 부분을 잘 해내야만 한다.


  3.4.8 광고표시


    광고를 표시 하기위한 패키지이다. 서버로부터 받아온 여러 광고정보들을 저장하고 여러개의 광고 중에 광고 가치 순위(=비싼 순서)에 따라 나오는 빈도가 차이가 난다. 또한 광고판 구석에 조그마한 신고버튼도 함께 내보내게 되어 클라이언트가 사내 규정에 맞게 광고를 게재하는지 항시 방문자에게 감시당하게 된다.


  3.4.9 클라이언트 신고


    신고에 관련된 사항을 관리하는 패키지이다. 방문자중에 이 OAS시스템을 이용하는 클라이언트가 있다면, 사내 규정을 잘 알고 있을 것이므로 자연스레 신고를 하게 된다.



 

4 콘텐츠 분석


4.1  Class Diagram

 

 

 

 

4.1.1  콘텐츠 분석


   Member Field

   분석정보 : 콘텐츠마다 그 생김새나 종류가 상이하기에,

              콘텐츠 분석을 위한 순서 등의 로직이 들어있다.

   분석결과 : 분석을 통해 나온 결과물이 들어있다.


   Method

   분석하기: 콘텐츠의 분석을 한다. 이를 통해 분석결과를 만든다.


 

4.2  Sequence Diagram


 4.2.1  분석작업 실행



 

5 광고 선정


5.1  Class Diagram



  5.1.1  광고선별


   Method

   광고 선별작업 : DB와 분석을 통해 얻은 통계치를 이용하여 광고를 선별

   선별광고 송신 : 소켓 측으로 광고를 송신


  5.1.2 비교작업


   Method

   검색 : 데이터베이스에서 광고를 검색

   선택 : 검색한 광고중 가장 적절한 광고를 선택


  5.1.3 선별된 광고


   Member Field

   텍스트 링크 광고 : 링크가 있는 텍스트 형태의 광고

   멀티미디어 링크 광고 : 링크가 있는 이미지, 동영상 형태의 광고


5.2  Sequence Diagram


  5.2.1 광고 선별