티스토리 뷰

My Life/ToBe

[ 금일수업 ] S/W 외부설계

rocksea 2012. 5. 15. 23:45

S/W 외부설계란?

소프트웨어 공학에서의 외부설계란 소프트웨어를 개발함에 있어 고객과의 접점에서 고객의 요구사항을 여실히 반영 할 수 있도록 설계하는 과정을 말합니다.

현제 현업에서 종사하고있는 저로써도 외부설계에 대한 경각심을 잃고 개발과 시스템 아키텍쳐에만 관심이 치우쳐서 정작 중요한 고객과의 접점이자  제일 중요한 프로젝트의 생과사, 돈으로 바로 직결되는 외부설계에 대해서는 정작 아무생각없이 일해왔던것 같습니다.

내년부터 시행되는 상세RFP (Request for proposal) 작성관련 소프트웨어산업진흥법 개정안이 국회를 통과함에 따라 이제는 외부설계는 S/W 개발업에 종사하고있는 모든 회사에 큰 영향을 미칠 것으로 보입니다. 

이와 같이 법령이 개정되는 이유중 하나로 대기업 공공정보화 시장 참여규제로 인하여 상대적으로 경험이 부족한 중소규모 기업등의 참여로 인한 S/W 품질 저하를 우려로 인한 방침입니다.

위와 같이 외부설계에 대한 중요성이 높아지고 있기 때문에 S/W개발에 종사하고있는 모든 분들에게 참고가 될만한 자료를 만들어 보았습니다.

1. 고객사 분석 및 제안

- 제안서 작성

중요한 것은 자기중심적인 제안서가 아닌 고객을 중심으로 제안서를 작성해야 한다는 것입니다.

 知彼知己는 百戰百勝이라 했던가 적을 알고 나를 알아야 승기를 거머쥘 수 있습니다.

기존의 제안서

  개선 방향

    - 회사소개 

    - 시장분석 및 Trend분석

    - 솔루션 소개 

    - 기대효과

 

    - 고객사 분석 

    - 경쟁사 및 취약점 분석 

    - 개선 방향 

    - 솔루션 소개 

    - 기대효과 및 비전제시

 

 

2. 요구사항 분석

고객의 요구사항이 무엇인지를 정의하는 단계입니다. 이 또한 고객 자신이 무엇을 원하는지 모르는 경우가 있을수 있기 때문에 요구사항을 도출하기 위하여 여러가지 안을 선제시해야 합니다.

 

[ 그림 1 ] 요구사항 분석

어려워할 필요가 없습니다.  어떤 고객의 정보를 DB에 어떻게 저장되고 어떤데이터를 출력할 것인가를 정의하여 고객과의 협의를 통하여 요구사항을 정리해 나가는 과정입니다.

 

3.  요구사항 정의

고객이 직접적으로 이용하는 개별적인 기능에 대한 요구사항을 정의 하는 과정을 뜻합니다.

예를 들어 MP3 Player 기능 요구사항 정의를 해보도록 하겠습니다.

 식별자

입력 

출력 

 Req-1

 사용자가 재생버튼을 누른다.

 프로그램은 마지막에 들었던 음악을 재생한다.

 Req-2 

 사용자가 정지버튼을누른다.

 현재 재생중인 위치에서 음악 재생이 일시정지된다. 

 Req-3 

 다음곡 버튼을 누른다.

 현재 듣고있는 곡의 다음 곡을 재생한다. 

 Req-4  이전곡 버튼을 누른다.

 현재 듣고있는 공의 이전 곡을 재생한다.

 

[ 그림 2 ] UML ( Unified Modeling Language )

 

고객의 요구사항을 Usecase로  정의 하기위해 UML을 많이 사용합니다.


 4. 상세 RFP 작성

RFP ( Request for proposal ) , 제안요청서를 뜻하는 말로 위에서 작성한 제안서, 요구사항 정의 등을 분석한 자료를 토대로 고객사에게 S/W 개발 진행을 시작하기 위해 작성하는 문서로  후에 이 자료를 바탕으로 개발에대한 요건들이 충족되었는지를 확인할 수 있습니다.

RFP 작성시에는 유의할 사항이 있습니다.

① 여러 전문업체로부터 검증을 받을 것을 권고합니다. 특히 짧은 기간내에 RFP를 작성해야 한다면 더욱 전문가들의 도움이 필요하다고 말합니다.

② RFP 내에서는 애매모호한 표현을 삼가도록 하고 가능한 정량적으로 설명하고, 정성적인 내용이라면 명확하게 의사를 표시해야 한다고 밝히고 있습니다.

③ 프로젝트의 규모 만큼 대상 업체들에게 제안서를 작성할 수 있는 충분한 기간을 배려하는 것이 좋다고 말합니다. 공급업체는 기업이 발주한 RFP를 기반으로 고객의 요구사항을 이해하게 되며 여기에 적합한 자사의 솔루션과 구현 계획을 제안서라는 이름으로 전달합니다.


5. UI / UX 설계

(Nielsen, Usability Engineering, Morgan Kaufmann, 1993, pp.28-37)

제이콥 닐슨의 연구에 따르면 시스템의 사용자들이 처음 시스템을 접하여 사용법을 얼마나 쉽게 익힐 수 있고 기억할 수 있는지, 사용법에 익숙해 졌다면 사용자가 원하는 작업을 얼마나 능률적으로 지원할 수 있는지, 실수가 발생했을 때 어떤 효과적인 방법으로 대처하는지, 사용자들의 시스템에 대한 주관적인 만족도는 어떤지에 대한 평가를 통해서 그 시스템의 인터페이스의 사용성을 평가할 수 있다고 합니다.

 Learnability ( 학습의 용이성 )

  얼마나 프로그램을 사용하는데 있어 빠르게 학습하여 이용할 수 있는가에 대한 정  도

 Efficiency ( 사용의 능률성 )

  이미 UI에 익숙한 사용자가 보다 높은 수준의 작업을 수행 할 수 있도록 효율적으로 디자인 되어있는지에 대한 정도

 Errors ( 실수의 빈도 및 심각성 )

 사용자의 오류율, 사용자가 프로그램을 이용시에 오류율이 적어야 하며 실수를 하더라도 쉽게 roll back이 되어야 한다.  에러는 일반적으로 정해진 Process대로 프로그램을 수행 하지 않고 예외의 상황이 발생할 경우에 나타남

 Satisfaction ( 만족도 )

 모든 사용자에게 제일 중요한 요소. 잘 만들어진 UI는 사용자들로 하여금 오랜시간을 머물 수 있게 함.

[ 출처 - http://blog.naver.com/rojer70?Redirect=Log&logNo=10026464383 ]

 

주로 스토리보드등으로 작성이 됩니다.

 

6. Process 설계

process 설계과정에서는 데이터의 입력에서부터 출력에 이르기까지의 과정을 설계하는 과정입니다.

주로 플로우 차트 ( Flow Chart ),  DFD ( Data Flow Diagram )나 시퀀스 다이어그램 ( Sequence Diagram ), 등의 그림으로 나타내게 됩니다.

 

 - 플로우 차트 

플로우 차트는 S/W의 시작부터 끝까지의 Process 흐름을 다이어그램으로 표시하여 나타내는 방식 입니다.

작성 방법은 아래와 같습니다.

 

[ 그림 3 ] FlowChart

 

- DFD

DFD는 구조적 분석을 위한 도구로서 시스템의 구성요소들간의 연결관계를 네트워크로 나타낸 것. 시스템의 모델화를 쉽게 할 수 있는 그래픽 도구입니다.

 

[ 그림 4 ] DFD

 

 

 

- 시퀀스 다이어그램

작업 순서도로써 시퀀스 다이어그램의 최고의 장점은 가독성 이라 생각합니다.  전체 Process 의 흐름을 한눈에 들어오도록 설계하여 사용자와 S/W의 상호 작용의 흐름의 순서를 도식으로 표현한 방식 입니다.

 

[ 그림 5 ] Sequence Diagram

 

 

7. DB Entity 설계

데이터를 구조화한뒤 DB에 저장하기 위하여 작성하는 단계입니다. Schema (  데이터베이스의 전체적인 논리적 설계를 의미하는 것으로 데이터 객체, 이들의 성질, 이들 간의 관계, 데이터 관계들이 갖는 제약 조건에 관한 정의를 총칭하는 개념 ) 라고도 합니다.  외부 ( Externel ), 개념 ( Logical ), 내부 ( Pysical ) Schema 설계의 방법이 있습니다.

사용자를 기준으로 하면 외부스키마

데이터베이스 전체를 기준으로 하면 개념스키마(스키마)

물리적인 저장형태를 기준으로 하면 내부스키마

 

[ 그림 5 ] DB Schema 종류

 

이중 외부설계에 해당되는 외부스키마는 각각의 사용자 그룹이 원하는 형태의 논리적 구조를 정의 합니다.

전체가 아닌 일부분을 정의한다고 보시면 되며, 모든 데이터 그 자체가 아닌 사용자에게 보여지는 필요한 데이터만 조합해 모아진 VIEW의 형태를 말합니다.

[ 그림 6 ] External Schema

[ 이미지 출처 : http://coronet.iicm.tugraz.at/Dbase1/scripts/rdbh12.htm ]

 

 

여기까지가 S/W 외부설계에 해당되는 부분이라 할 수 있겠습니다.

마지막으로 첨언을 하자면 결국 고객과의 생각의 갭을 최소화 하기 위한 방법이 외부 설계에 

핵심 포인트라 할 수 있습니다. 

이상으로 외부설계 포스팅을 마치도록 하겠습니다.

by rocksea.

 

'My Life > ToBe' 카테고리의 다른 글

물과같은 삶을 살리로다.  (0) 2012.06.25
혁신 (革新, innovation)  (0) 2012.06.18
금일의 영단어  (0) 2012.05.10
금일의 영단어  (0) 2012.05.08
[ 금일수업 ] 디지털포렌식 ( digital forensics )  (3) 2012.05.03
댓글