▶소프트웨어 개발 과정
- (도메인 분석) → 계획 → (요구)분석 → 설계 → 구현 → 테스트 → 유지보수
- 소프트웨어를 만들기 위해 계획 단계에서 유지보수 단계까지 이르기까지 일어나는 일련의 과정
- 소프트웨어 개발 생명주기라고 함
▶ 3단계: 설계
- 사용자의 기능적, 비기능적 요구를 만족시키기 위하여 제약 조건이 반영된 구현 대안을 창출하는 일
- 요구 명세서와 설계 원리, 제약 조건에 따라 상위 설계(구조 설계)와 하위 설계(상세 설계)로 나눌수 있음
- 소트트웨어 시스템의 내부를 설계
- 분석 단계에서 표현한 유스케이스 다이어그램과 클래스 다이어그램을 가지고 코딩할 수 있는 수준으로 환경에 밀접하게 구체화함
- 요구 분석 단계에서 사용자의 요구를 what(무엇) 관점에서 바라보았다면, 설계 단계에서는 how(어떻게) 관점에서 생각
- 즉 설계의 목적은 요구 분석 명세서를 기반으로 어떻게 구축할 것인가를 결정
▷상세설계 단계의 주요 작업: 구조(아키텍처) 설계, 시스템 분할, 인터페이스 정의, 자료설계(데이터베이스 설계) → 시스템 구조도 작성
▷하위설계 단계의 주요 작업: 모듈 내부 설계(알고리즘, 지역 변수) 사용자 인퍼터페이스 설계, 자료구조 설계(구조형 및 배열)
▶설계 원리
● 추상화의 원리 :관련 없는 세부사항을 생략함으로써 본질적인 문제에 집중할수 있도록하는 작업
● 정보 은닉(information hiding) :각 모듈의 처리 내용이 시스템의 다른 부분으로부터 감추어져 있어야함, 다른 모듈에 영향 받지 않게 설계
● 단계적 분해 :기능을 최대한으로 떼어 내어 생각한 후 점차적으로 구체화
● 모듈화 :실제로 개발할 수 있는 작은 단위로 나누는 것(모듈의 응집력 높게, 모듈간의 결합력 낮게 설계해야함)
● 재사용성 증진
▶상위 설계(구조 설계)
▷구조(아키텍쳐) 설계
- 시스템의 전체적인 구조를 나타냄
▷시스템 분할(모듈 설계)
- 전체 시스템을 여러 개의 서브 시스템으로 나눔
▷인터페이스 정의
- 시스템의 구조와 서브시스템 사이의 인스페이스가 명확히 정의
- 모듈 간의 관계를 정립
▷ 자료설계(데이터 베이스 설계)
- 시스템에 필요한 정보를 자료구조와 데이터베이스 설계에 반영
- 데이베이스 스키마 및 전체 시스템에서 사용될 데이터 구조를 설계
- 이것은 전체 시스템에서 사용될 데이터의 논리적 구조를 다룸
→ 시스템 구조도(struct chart) 도출
▶시스템 구조도(struct chart)
- 시스템을 모듈 단위로 분할하여 모듈을 계층적으로 구성한 것
● 시스템 구조도 작성
- 시스템을 모듈 단위로 분할
- 모듈의 계층적 구성
- 모듈 사이의 입출력 인터페이스
- 모듈의 이름과 기능
▶ 하위 설계(상세 설계)
▷ 모듈 내부 설계(알고리즘, 지역 변수)
▷사용자 인퍼테이스 설계
▷자료 구조 설계
- 각 모듈 또는 하위 시스템 내에서 데이터를 구조화하고 필요한 자료구조를 정의
- 이것은 모듈 내에서 데이터를 효율적으로 다루기 위한 구체적인 구조
→ 상위설계의 자료설계는 전체 시스템의 구조를 정의하고 데이베이스를 설계하는 것,
하위설계의 자료구조 설계는 모듈 내에서 데이터를 관리하는 방법을 정의하는 것에 초점을 둠
● 자료 구조 설계 주요 작업
- 데이터 구조 선택: 어떤 유형의 데이터를 저장하고 어떻게 구조화 할 것인지 결정, 이것은 데이터를 단순 리스트, 배열, 연결 리스트, 트리, 그래프 등과 같은 특정 구조에 맞게 저장하는 것을 의미
- 데이터 구조 세부 설계 :선택한 데이터 구조를 더 자세히 설계, 데이터를 어떻게 저장할 것인지, 각 요소의 속성은 무엇인지, 데이터 간의 관게는 어떻게 정의할 것인 등을 결정
- 데이터 구조와 알고리즘 연산: 데이터를 저장하고 조작하기 위한 알고리즘과 연산을 정의, 이것은 데이터를 추가, 삭제, 검색, 정렬 또는 필터링하는 방법과 같은 데이터 조작 작업을 다루는 것을 의미
'[SW 공학]' 카테고리의 다른 글
[SW 공학] 요구 분석 (1) | 2023.10.11 |
---|---|
[SW 공학] 계획-2 (0) | 2023.09.27 |
[SW 공학] 계획-1 (1) | 2023.09.25 |
[SW 공학] 개요 (0) | 2023.09.24 |
댓글