소프트웨어공학/수업

8. 프로젝트 요구분석(4-2)

멜데스 2017. 5. 16. 01:18

1. 구조적 분석 

구조적 분석

정의 

 사용자의 요구분석 사항을 파악하기 위하여 자료의 

흐름과 가공절차를 그림 중심으로 표현하는 방법 

 처리중심(Process-Oriented) 분석기법 


작업 순서 

세부 작업 순서 

배경도 작성  1 

상위 자료 흐름도 작성  2 

하위 자료 흐름도 작성  3 

자료 사전 작성  4 

소단위 명세서 작성  5 


특징 

다섯 가지 특징 

그림 중심의 표현 

하향식(Top-Down Partitioning) 원리를 적용 

사용자의 업무 요구 사항을 쉽게 문서화 

사용자 분석자 간의 의사소통을 위한 공용어 

실체의 모형(추상적 표현)을 추출 


자료흐름도 

자료흐름도의 요소 




처리(Process) 

 입력 자료흐름을 출력 자료흐름으로 변환 

 원으로 표현하고 그 안에 처리의 이름을 기재 

– 처리의 이름은 처리가 하는 일 또는 처리를 수행하는 행위자로 기술 

 고유번호가 주어짐 

 차후 소단위 명세의 대상 


자료의 흐름(Data Flow) 

 자료흐름은 변형되어 이동 중인 자료군을 나타냄 

 이동 방향을 표시한 화살표로 나타냄 

 화살표 위에 자료군의 이름을 붙임 

 자료저장소에 연결된 자료의 흐름은 저장소에 자료군을 운반하여 저장함을 뜻함 






자료 흐름도 작성 

단계적 분할에 의하여 단계적으로 표현 

배경도(Context Diagram) 작성  1 

 개발하려는 시스템과 외부세계와의 인터페이스를 식별 

 시스템 분석의 범위를 설정 

 시스템 전체를 나타내는 하나의 처리와 관련된 단말들로 표시 

중간 단계의 자료흐름도  2 

자료흐름도 내의 하나 이상의 처리가 하위 자료흐름도로 분할되는 자료흐름도 

최하위 단계의 자료흐름도  3 

 자료흐름도 내의 모든 처리가 더 이상 분할되지 않는 자료흐름도 

 모든 처리들이 소단위 명세서로 설명됨 


자료 흐름도 작성 원칙 

명명 원칙 

 처리의 이름은 동사형 명사와 단일 직접목적어를 사용 

 어떤 경우에도 다 적용될 수 있는 포괄적인 명칭은 금지 

변환된 자료흐름의 명칭 

자료흐름은 처리를 거쳐 변환될 때마다 새로운 이름을 부여 

자료흐름의 균형 

처리 중심으로 입 · 출력 자료의 흐름은 어디서나 


자료흐름의 분할 및 통합 

자료흐름은 통합 또는 분할이 가능 


주의점 

1.입력만 되는 자료저장소(Black Hole)와 출력만 되는 자료저장소(White Hole)는 없어야 함 

2.모든 처리를 한 장에 그리는 것보다 단계적으로 나누어 그리는 것이 이해하기 좋음 

-한 장에 7 ±2개의 처리가 적당 



자료사전(Data Dictionary) 

자료사전 

정의 

자료 흐름도에 나타나는 자료에 대한 정의를 모은 것 

형식 

자료 항목 이름 = 자료 항목의 구성을 나타내는 수식 



자료사전(Data Dictionary) 

자료 항목 구성 표기법 

자료 항목 구성 표기법 


소단위 명세서 

정의 

자료 흐름도의 최하위 처리가 어떤 기능을 하는가를 기술한 것 

기술 방법 

구조적 영어(Structured English) 

영어에서 쓰이는 단어 중 연산이나 제어구조를 표현하는 데 쓰이는 단어(if then else, case, repeat, 

until, while 등)를 제한해서 사용 



기술 방법 

의사 결정표(Decision Table) 

여러 가지 다른 조건에 대하여 다른 처리를 해야 할 경우 

2. 객체지향 분석 

객체지향 분석 설계 

작업순서 

기본 데이터로 객체를 중심으로 수행  1 

객체의 구조, 기능, 동작의 3가지 측면으로 구체화  2 

이들은 정적인 클래스 구조, 객체 사이의 상호작용, 객체 내부의 행동들을 표시 3 

-> 이와 같은 특징 때문에 객체지향 분석 설계에서는 분석작업과 설계작업을 분리하는 것이 어려움 


객체지향 요구분석 작업 

두 가지 작업 

1. 요구추출 

2. 추출된 요구를 정리하는 작업 


요구추출 

액터 찾기   1 

시스템을 개발한 후 이를 사용할 여러 타입의 사용자를 발견하는 작업 

시나리오 찾기   2 

 사용자와 상의하여 미래의 시스템이 제공할 기능을 위하여 자세한 시나리오를 개발 

 개발자는 시나리오를 이용하여 사용자와 의견을 교환하고 응용도메인에 대해 깊이 이해함 

사용사례 찾기   3 

 사용자와 개발자가 시나리오에 동의하면 시나리오로부터 일반적인 사용 사례를 추출 가능 

 시나리오는 구체적인 단일사례이며, 사용사례는 모든 가능한 사례를 일반화하여 추상화한 것 

사용사례 구체화  4 

각 사용사례를 구체화하고 시스템의 동작을 오류와 예외 조건을 포함하여 기술하면 시스템의 명세가 완성 

사용사례의 관계 찾기  5 

 사용 사례 모형에서 중복되는 부분을 삭제하여 정리  

 이 작업으로 시스템 명세가 일관성 있게 됨 

비 기능적 요구 찾기   6 

 사용자의 눈에는 보이지만 시스템의 기능과 직접적으로 관련이 없는 요구사항을 검색 

 시스템 성능, 문서화, 자원, 보안, 품질 등이 여기에 포함 


객체지향 요구분석 

요구분석 

객체 찾기  1 

엔티티 객체, 경계 객체, 제어 객체를 찾음 

객체 사이의 상호 작용 모형화  2 

사용사례에 작성된 객체 사이의 상호작용을 순서 

다이어그램이나 협동 다이어그램으로 작성 

객체 사이의 연관관계 찾기  3 

객체 사이의 여러 가지 관계를 찾아 클래스 다이어그램을 작성 

객체 속성 찾기  4 

객체 안에 있어야 할 속성들을 파악 

상태 다이어그램 작성  5 

난해한 동작은 상태 다이어그램으로 모형화 

분석 모형 검토  6 

분석 모형 사이에 모순이 없는지 확인하고 빠진 것이 없는지 검토 


요구분석 명세서 

1. 개요 

1.1 시스템 개요 

1.2 목표 

2. 기능적 목표 

2.1 자료 흐름도 

2.2 자료사전 

2.3 소단위 명세서 

2.4 기능면에서의 시스템 특성 

3. 기타 요구 및 제약 사항 

3.1 성능 요구(반응 시간, 처리소요 시간, 처리율) 

3.2 하드웨어 요구(기억장치 규모, 통신 수용도) 

3.3 예외 조건 및 이의처리 

3.4 사용자 인터페이스 

3.5 자원, 인력에 대한 제약조건 

4. 인수 조건 

4.1 기능시험 및 성능시험 

참고 자료 및 용어 해설 


요구분석서 

평가 기준 

무결성과 완벽성(Completeness) 

일관성(Consistency) 

명확성(Correctness) 

기능적(Functional) 

검증 가능성(Verifiability) 

추적 가능성(Traceability) 및 변경 

용이성(Modifiability)