요구사항
- 설문, 인터뷰, JPR (Joint requirement planning) 등을 이용하여 이해 관련자로부터 수집, 용어집으로 용어 표준화
- 기능적 요구사항(유스케이스 다이어그램)
- 문제 해결을 위해 시스템이 제공해야 할 서비스
- 비기능적 요구사항 (부가사항 명세서)
- 시스템 품질: 신뢰성, 가용성, 성능, 편의성, 접근성, 보안성
- 제약사항
- 설계,구현/하드웨어/인터페이스 등의 제약사항
- 국제 (표준) 구격
요구사항 검증 기준
- 명확성: 일치된 해석
- 완전성: 모든 정보 기술
- 일관성
- 요구사항 간의 모순이 없어야 함
- 실현할 수 없을 정도의 많은 제약사항 회피
- 추적 가능성: 추적할 수 있도록 각 요구사항에 id 부여
- 검증 가능성: 정량화, 명확한 계량적 기준
- 사용자 관점 (WHAT o HOW x)
- 사용/구현 기술보다 비즈니스 도메인에 중점
- 누가 어떤 목적으로 시스템을 사용하는지 파악
분석
- 개발자 관점에서 유스케이스 실체화
- 클래스 다이어그램
- 클래스 후보(유스케이스 중 명사)와 속성 추출
- 객체 책임(연산) 식별
- 클래스 간의 논리적 관계 식별
- 시퀀스 다이어그램
- 유스케이스에 대한 정상적인 작업흐름, 대안흐름 시나리오 작성, 객체 간의 상호작용 식별
- 클래스 다이어그램
- 설계, 구현 기술/방식을 고려
- 분석 결과는 설계 및 구현 기술/방식의 선정 기반
설계
- UI/영속성 등을 고려하여 기존 클래스 보완
- 기능, 품질 속성을 고려하여 아키텍쳐 설계
- 상위 수준에서 software를 설계하는 기본 틀 제공
- 외부 자원/오픈 소스 등 활용
- 아키텍쳐 스타일
- 계층 아키텍쳐
- 파이프 & 필터
- 블랙보드
- MVC 등
계층 아키텍쳐
- 수행하는 책임/관심에 따라 계층으로 나누어 설계
- 계층 내에서는 협업, 계층 간에는 결합도 최소화
- 서비스 제공 관계: 하위 계층 -> 상위 계층
- 3 계층 아키텍쳐(PL > BLL > DAL)
- 프레젠테이션 계층
- UI(화면 조작, 입출력)
- 비즈니스 로직 계층
- 애플리케이션 로직 실행, 비즈니스 도메인 기능
- 데이터 접근 계층
- 비즈니스 로직 수행에 필요한 정보 조회 및 저장파이프 & 필터
- 프레젠테이션 계층
파이프 & 필터
- 예시: cat test | sort | grep "shell"
- 필터: 시스템을 구성하는 컴포넌트
- 입력 데이터를 받아 출력 데이터 생성 (변환기)
- 파이프: 필터 간의 연결 관계
- 이전 필터의 출력을 다음 필터의 입력으로 전달
- 필터 설계 시 고려사항
- 필터 상호 간에 상태정보 공유하지 않을 것
- 현재 필터는 앞, 뒤 필터에 대한 정보를 모름
- 병렬적으로 수행, 파이프를 통해 동기화
블랙보드
- 시스템의 현재 상태를 저장하는 중앙 자료 저장소
- 컴포넌트 간에는 블랙보드를 통해 상호작용
- 컴포넌트 간 결합도 낮음 -> 재사용/추가 용이
- 자료 저장소의 상태 변화 시 모든 컴포넌트에 알림
- 자료 저장소와 컴포넌트 간 결합도 높음
MVC(Model-View-Controller)
- 모델: 데이터와 기능 제공
- 뷰: UI, 모델로부터 입력 받아 화면 표시
- 컨트롤러: 사용자/시스템과 상호작용
- 사용자 요청을 처리하여 모델 생성, 뷰 선정
- 모델과 뷰 간의 결합관계를 약화시킴
N-티어 시스템
- N은 논리적인 계층의 수를 의미
- 클라이언트 - 서버 가 몇단계로 쪼개지는지
구현
- 설계를 바탕으로 소프트웨어 구현
- 프로그램 언어를 이용한 실체화 과정
설계 끝났으면 빡코딩 타닥타닥
'CS' 카테고리의 다른 글
[소프트웨어 공학] 의존성 주입과 IoC (0) | 2022.09.26 |
---|---|
[소프트웨어 공학] Maven (0) | 2022.09.26 |
[소프트웨어 공학] 순차 다이어그램(Sequence Diagram) (0) | 2022.09.19 |
[소프트웨어 공학] 패키지 다이어그램 (0) | 2022.09.19 |
[소프트웨어공학] 클래스 다이어그램 (2) | 2022.09.15 |