SoftWare Design

최중혁·2022년 5월 26일
0

소프트웨어공학

목록 보기
1/2

문제 요구사항을 소프트웨어 구조로 바꾸는 과정

구현하기에 충분히 상세하게 대상 소프트웨어를 정의하기 위해 기술과 원칙을 적용하는 프로세스입니다.

요구 사항이 소프트웨어 표현으로 변환되는 프로세스입니다.

Design Principles

  1. 설계 과정에서 '터널 비전'을 겪지 않아야 합니다.

  2. 설계는 분석 모델을 추적할 수 있어야 합니다.

  3. 디자인이 바퀴를 재발명해서는 안 됩니다.

  4. 디자인은 균일성과 통합성을 나타내야 합니다.

  5. 디자인은 변화를 수용할 수 있도록 구성되어야 합니다.

  6. 설계는 비정상적인 데이터, 이벤트 또는 작동 조건이 발생하는 경우에도 완만하게 저하되도록 구조화되어야 합니다.

coding ≠ design

디자인의 품질은 사후가 아니라 생성되는 즉시 평가되어야 합니다.

개념적(의미론적) 오류를 최소화하기 위해 설계를 검토해야 합니다.

Design Acitvites

Preliminary (External, high-level, Architectural)

요구 사항을 데이터 및 소프트웨어 아키텍처로 변환

소프트웨어 제품의 외부 특성 지정

소프트웨어의 상위 수준 구조 보기 설정

Detailed(Internal) Design

소프트웨어에 대한 상세한 데이터 구조 및 알고리즘 표현으로 이어지는 아키텍처 표현의 개선

내부 구조 및 처리 내용 지정

Interface Design

휴먼-컴퓨터 인터랙션을 위한 레이아웃 및 인터랙션 메커니즘 구축

Design and Quality

설계는 분석 모델에 포함된 모든 명시적 요구 사항을 구현해야 하며 고객이 원하는 모든 암시적 요구 사항을 수용해야 합니다.

디자인은 코드를 생성하는 사람과 소프트웨어를 테스트하고 후속적으로 지원하는 사람들을 위해 읽고 이해할 수 있는 가이드여야 합니다.

설계는 구현 관점에서 데이터, 기능 및 행동 영역을 다루는 소프트웨어의 완전한 그림을 제공해야 합니다.

Fundamental Concepts

추상화 — 데이터, 절차, 제어
Architecture — 전체 구조

소프트웨어 개념

  • 패턴 — 입증된 디자인 솔루션의 "본질을 전달"
  • 모듈화 — 데이터와 기능의 구획화
  • 숨기기 — 제어된 인터페이스
  • 기능적 독립성 - 단일 기능 및 낮은 결합
  • Refinement — 모두를 위한 세부 사항 정교화
  • 리팩토링 — 디자인을 단순화하는 재구성 기술

Abstraction

필수 속성에 집중하여 세부 사항을 억제합니다.

  • 자연스러운 계층 구조를 형성하여 더 많은 세부 사항을 정교하게 만들 수 있습니다.
  • 구성 요소를 선택하는 데 도움이 됩니다.

우려의 분리

  • 어떤 결과를 얻을 수 있는지 강조합니다.

  • 이것이 달성되는 방법에 대해 억제합니다.

정보의 현지화 : 제어, 데이터, 설계 결정

Data Abstraction

데이터 구조에 대한 지식을 하나의 모듈로만 제한

정보의 숨김

  • "부작용"의 가능성을 줄입니다.
  • 지역 디자인 결정의 글로벌 영향을 제한합니다.
  • 제어된 인터페이스를 통한 커뮤니케이션 강조
  • 글로벌 데이터 사용을 권장하지 않습니다.
  • 고품질 디자인의 속성인 캡슐화로 이어집니다.
  • 결과적으로 더 높은 품질의 소프트웨어

0개의 댓글