본문 바로가기

전공/소프트웨어공학

설계 개념과 원리

분석과 설계

 

Analysis = 분석. 요구사항을 분석. 전달한다는 의미 

Design =  디자인. 설계도 or 모델을 그림으로 표현하는 것

 

설계 원리

- 설계 프로세스는 Tunnel vision이 아니어야한다.

Tunnel vision : 좁은 시야. 설계 요구사항 파트에서 전체 구조를 보지못하고 일부분만 보는 것.

- 설계 와 코딩은 다르다.

- 실제 구현이 가능해야한다.

- 분석 모델로 추적이 가능해야한다.

- 기존에 있던 것을 재발명하면 안된다.

- 변경 수용이 가능해야한다.

 

용어 정리

abstraction(추상화) - 데이터, 프로시저, 컨트롤 등

refinement - 모든 추상화에 대해 상세한 내용을들을 기술함

modularity -

데이터와 함수의 구획화architecture - 소프트웨어의 전반적인 구조. 구조가 시스템에 대한 개념적 통합을 제공하는 방식. structure - 자료구조 등의 데이터 구조를 의미. 뼈대. 프레임워크 등.procedure - 기능을 실행하는 알고리즘hiding - 인터페이스에서 숨겨져있음cohesion(응집도) - 모듈이 하나의 기능 또는 함수로 만들어져있는 정도coupling(결합도) - 시스템 사이에서 모듈과 모듈끼리 연결된 정도

 

모듈 사이즈의 두 관점1. 안에 뭐가있나?2. 모듈 자체 크기는 얼마인가?

 

구조(architecture) 설계에 명세되어야 할 내용- 구조적 성질 : 시스템의 구성요소들(ex 모듈, 객체, 필터)이 묶여지고 서로 상호작용하는 방식 정의- 기능 이외의 성질 : 성능, 용량, 신뢰도, 보안, 적응성, 다른 시스템 특징들을 어떻게 달성할 것인지 기술- 관련된 시스템들의 모임 : 시스템 설계에서 반복되는 패턴(디자인 패턴)을 찾고, 구조의 구축 블록을 재사용 할 수 있어야 함.

 

architecture는 동작하는 SW가 아니며, 다음과 같은 것을 가능하게 만드는 표현물이다.

1. 설계가 요구사항을 만족하는지 분석

2. 설계에 대한 변경 결정을 내리는 것이 상대적으로 쉬운 단계에서 구조에 대한 단계들을 고려

3. SW 구축에 연관된 위험 감소

 

Information Hiding

- 데이터 은닉. 특정 메소드를 통해서만 접근 가능하도록 만들어놓음. 캡슐화와 다름.

- side effects 등의 부작용 감소

- 현재 작업 수행 구역에서 일어나는 결정에 대한 영향이 전체로 퍼지는 것을 제한

- 인터페이스 컨트롤 강조

- 고퀄리티의 소프트웨어 제작 가능

 

Data Design- 데이터 객체를 정제(refine)하고 데이터 추상화 집합들을 개발- 하나 이상의 자료 구조들로 데이터 객체의 속성들을 구현- 자료 구조들이 적절한 관계를 설정하고 있는지를 검토- 필요하다면 자료 구조들을 단순화

 

Data Design - component level

- 가능한 모든 동작 식별

- 자료 사전 필요

- 자료 구조 및 라이브러리 개발 필요

- 낮은 수준(인간이 이해 불가한 언어) 데이터 설계 결정은 설계 과정 후반부로 미뤄야함.

- 소프트웨어 설계와 프로그래밍 언어는 추상 자료형의 명셰 및 실현을 지원해야함

 

Architectural Styles 1. Data-cetered Architectures : 데이터가 중심2.  Data flow Architectures : 데이터 흐름이 중심3.  Cell and return Architectures : 호출 및 반응을 받음4.  Object-oriented Architectures : 객체 지향 구조5.  Layered Architectures : 계층화된 구조

 

Structured Design(구조적 설계) - 순차 반복 선택- objective- approach : DFD(Data Flow Diagram)- notation : 구조도(Structure chart)

 

component level design

- 정형적 방법 사용

- 구조화 프로그래밍

- 단계적 정제

- 구성 요소에 대한 설계 기술 검토

 

component level design model

- 품질 검토를 위해 알고리즘을 상세하게 표현

 

 

 

'전공 > 소프트웨어공학' 카테고리의 다른 글

소프트웨어 감사(inspections)  (0) 2021.11.26
검증과 확인(V & V = Verification and Validation)  (0) 2021.11.26
시스템 모델  (0) 2021.11.09
요구 공학 프로세스  (0) 2021.10.16
요구 사항과 설계  (0) 2021.10.16