ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소프트웨어 설계 원리
    Topcit/소프트웨어 개발 2018. 6. 11. 15:10
      1. 소프트웨어 설계 원리
        1. 분할
          1. 분할과 정복
            1. 사용자의 요구사항을 지속적으로 분할하여 문제영역의 복잡성을 줄이고 이를 통해 얻어진 결과를 적절한 그룹으로 재조합 하는
          2. 서브 시스템
            1. 시스템 상위 레벨에서 분할한 시스템 구성 요소
            2. 시스템 설계자는 문제를 서브 시스템으로 분할하고 추후 여러 개발자들이 서로 다른 서브시스템을 독립적으로 개발할 있도록 한다.
        2. 추상화
          1. 상세한 수준의 구현 보다는 상위 수준에서 제품의 구현을 먼저 생각하는
          2. 추상화를 통해 관심분야가 아니거나 필수적이지 않은 세부적인 것을 생략함
          3. 유형
            1. 자료 추상화
            2. 제어 추상화
            3. 과정 추상화
        3. 정보 은닉
          1. 모듈의 내부 내용을 감추고 인터페이스를 통해서만 메시지를 전달할 있도록 하는 개념
          2. 모듈들 사이의 독립성을 유지시켜준다.
        4. 단계적 정제
          1. 프로그램 구조에서 모듈에 대한 세부 사항으로 내려가면서 구체화 된다.
          2. 정제 과정에서 추상화의 수준은 낮아지며 기능은 분할되어 해결 방안을 제시하게 된다.
        5. 모듈화
          1. 모듈을 프로그래밍 언어로 표현하면 서브루틴, 프로시저, 함수 등으로 부른다.
          2. 모듈화는 시스템을 지능적으로 관리할 있도록 해주며 복잡도 문제를 해결해 준다.
          3. 크고 복잡한 문제를 해결하기 위해 문제를 모듈로 분할하여 정복하게 된다.
          4. 어떻게 역할별 모듈간 간섭을 최소화하고 목적에 집중하여 효과적으로 역할을 수행하게 것인지가 모델 평가 기준이 된다.
        6. 구조화
          1. 소프트웨어 시스템의 구조화는 분할 과정에서 얻어질 있다.
      2. 응집도와 결합도
        1. 응집도
          1. 모듈 내의 구성 요소들이 서로 얼마나 관련이 있는지 연관 정도를 나타내는
          2. 모듈 내부 요소들 사이의 응집도가 증가하도록 설계하는 것이 바람직하다.
          3. 모듈의 응집도를 높이면 모듈 사이의 낮은 결합도를 얻을 있다.
        2. 결합도
          1. 모듈 사이의 상호 연관성의 복잡도를 말한다.
          2. 모듈들 사이의 상호 교류가 많고 서로의 의존이 많을수록 모듈들 사이의 결합도는 높아진다.
          3. 결합도가 높을수록 모듈을 독립적으로 변경하기 어렵다.
      3. 구조적 설계 기법
        1. 정의
          1. 구조적 분석 결과를 구조적 설계로 옮기는 과정을 자료흐름 중심 설계라고 한다.
          2. 구조적 방법을 적용하는 경우 시스템을 모듈화하고, 하향식으로 세분화하는 작업이 이루어진다.
          3. 구조적 설계에는 구조 도표가 사용된다.
            1. 구조 도표 : 소프트웨어의 구조와 설계를 구체적으로 나타내는데 사용된다.
          4. 구조적 설계는 요구사항 명세서를 설계 문서로 바꾸는 필요한 가이드라인을 제시한다.
        2. 변환흐름 중심 설계
          1. 정보를 받아들여 가공 처리한 결과를 외부에 출력하는 시스템을 컴퓨터 구조로 매핑 시키는 기법
          2. 기법은 시스템을 구성요소들로 분할시켜주며 모듈 사이의 계층 구조를 생성한다.
          3. 변환흐름 중심 시스템
            1. 입력 흐름 : 입력을 받아들여 시스템에서 사용할 있는 데이터로 정제
            2. 변환 중심 : 데이터를 가공 처리
            3. 출력 흐름 : 가공 처리된 정보를 받아 적당한 출력물로 변환시켜 출력
          4. 자료흐름도의 입력 출력 경계
          1. 변환흐름에 기초한 상위 프로그램 구조
        1. 트랜잭션 흐름 중심 설계
          1. 들어온 입력을 여러 갈래의 출력흐름으로 쪼갤 있는 경우에 가능하다.
          2. 입력 값을 평가하고 결과에 따라 출력 경로 하나를 따라 흘러간다.
          3. 트랜잭션 흐름
          1. 트랜잭션에 기초한 프로그램 구조

    'Topcit > 소프트웨어 개발' 카테고리의 다른 글

    객체지향 설계 과정  (0) 2018.06.11
    소프트웨어 아키텍처 설계  (0) 2018.06.11
    요구사항 분석과 명세화  (0) 2018.06.11
    소프트웨어 기반 기술  (0) 2018.06.11
    소프트웨어 개발 및 관리  (0) 2018.06.11

    댓글