정보처리기사_1과목_소프트웨어설계(1)

2021. 2. 2. 14:16공부/정보처리기사

728x90
반응형

화면설계

UI 지침
 1. UI 기본원칙
     직관성(Intuitiveness)
       - 누구나 쉽게 이해하고 사용할 수 있도록 제작
     유효성(Efficiency)
       - 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작
     학습성(Learnability)
       - 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작
     유연성(Flexibility)
       - 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작 
스토리보드
계획단계에서 이루어짐

와이어프레임 = 화면 단위의 레이아웃을 설계하는 작업
감성공학
     - 정의 = 인간에게 더욱 편리하고 안락할 수 있데 도모하려는 기술
활용분야 
     - 인간공학.인지공학 둥 인간 특성을 파악하려는 연구에 기본을 둔 생체 측정 기술
     - 사용성 평가 기술.가상현실 기술 등으로서 인간에 대한 적합성을 판단하고 새로운 감성을 창출하기 위한 기술이다.
나가마치 미츠오 교수의 감성공학 접근방법
     - 감성공학 1류 = 인간의 감성 이미지를 측정하는 방법
     - 감성공학 2류 = 개별적 특성과 생활 방식으로부터 개인이 갖고 있는 이미지를 구체화 하는 방법
     - 감성공학 3류 = 공학적인 방법으로 접근하여 인간의 감각을 측정하고, 이를 바탕으로 수학적 모델을 구축하여 활용
UI설계도구
 - 와이어프레임(Wireframe) : UI중심의 화면 레이아웃
 - 목업(Mockup) : 실물과 흡사한 정적인 형태의 모형
 - 프로토타입(Prototype) : 다양한 인터랙션이 결합되어 실제 서비스처럼 작동하는 모형
 - 스토리보드(Storyboard) : 정책, 프로세스, 와이어프레임, 디스크립션 등이 모두 포함된 설계 문서

애플리케이션 설계

공통모듈설계
 소프트웨어 설계 개념
  1. 개요
     요구사항 분석 단계에서 나온 사용자가 필요로 하는 필수 기능을 어떻게 구현 할수 있는가에 대한 방법을 명시하는것
  2. 설계의 기본원리
     추상화(Abstractioin) 
        - 복잡한 문제를 이해하기 위해서 필요없는 세부 사항을 배제하는 것을 의미
        - 복잡한 구조(문제)를 해결하기 위하여 설계 대상의 상세내용은 배제하고 유사점을 요약해서 표현하는 기법
     구조화(Structure)
        - 문제의 영역들을 각각의 기능 모듈 단위로 세분화 하여 모듈간의 관계를 구조적으로 설계하는 과정
     모듈화(Modularity)
        - 모듈 : 서브루틴, 하부시스템, 소프트웨어내 프로그램 혹은 작업단위 의미
        - 소프트웨어를 기능 단위로 분해한 것으로, 모듈화된 시스템은 시스템을 모듈들의 집합으로 추상화 한 것이다.
 
설계모델링
 설계방법 
   1. 구조적 설계(structured design) **하양식
     - 자료흐름지양(전체 S/W구조 유도) : 구조적기법 **하양식
       자료구조지양(입/출력 자료구조 -> 전체S/W 구조) : W-O, JSD
   2. 자료구조 중심 설계
     - Warnier-Orr, Jackson
   3. 객체지향 설계 (object-oriented design) **상향식
소프트웨어 아키텍처
         (참고)
아키텍처 = 전체줄거리
디자인패턴 = 소줄거리

정의 = 소프트웨어의 골격이 되는 기본구조

역할 = 개발대상이 되는 소프트웨어의 비기능적인 성질
          문서화
코드설계
정의 = 파일 시스템을 체계화(데이터의 수집이나 분류, 집계 들을 용이하게 하기 위해) 사용목적에 따라 문자, 숫자, 영숫자, 기호를 사용하여 만든 것

기능 = 식별, 분류, 배열

종류 
 1. 일련번호식 코드(순차코드, sequentialCode) : 발생순에 따라 추가가 용이, 중간에 추가 어렵다 예) 지명코드
 2. 블록코드 : 예비코드의 낭비 잘못예상 시 코드설계 다시해야함 예)부서코드
 3. 그룹분류 코드(Group Classification Code) : 코드화 대상 항목을 대분류, 중분류, 소분류 (대, 중, 소) 예) 학번, 사원번호 코드
 4. 10진코드(Decimal code) : 10진법 원리 -> 대,중,소, == 10진코드 => 도서코드 예) 도서분류코드
 5. 유효 숫자식 코드(표의 숫자코드)
 6. 연상기호코드(Mnemonic Code) : 대상과관계있는 문자나 숫자 조합 (상품명이나 거래처명에 많이 사용 )
 7. 약자식 코드(Letter type code)

구조적 설계도구  :  자료구조도, HIPO, N-S차트
 1. 구조도(structure chart)
  - 백색원의 화살표는 매개변수를 이용한 자료의 이동, 흑생원의 화살표는 실행의 방향을 나타내는 제어흐름, 마름모는 선택, 곡선화살표는 반복을 나타낸다

 - 팬 입력은 특정 모듈을 직접 제어하는 모듈의 수이다. PanIn
 - 팬 출력은 한모듈에 의해 직접 제어되는 모듈의 수이다. PanOut 


2. HIPO(Hierarchical plus input process output)
 - hipo 구성요소로서 크게 시각적 목차표, ipo 다이어그램으로 나타낼 수 있다.
 - hipo 차트 종류에는 가시적도표, **총제적 도표, 세부적 도표가 있다. **ipo 다이어그램
 - top-down(**하양식 = 구조적 설계도구) 개발기법

객체지향 설계
  구조적에서 객체지향으로 넘어왔다 객체지향을 많이 사용하지만 구조적도 사용함 
  객체지향의 장점으로 상속이 가능하다

객체지향의 기본개념
  1. 객체(Object) = 속성+메소드 이며 속성+메소드를 묶어서 캡슐화한다고 한다
      - 현실 세계에 존재할 수 있는 유형, 무형의 모든 대상
      - 속성과 메서드로 정의된다 (데이터(속성) + 연산(메소드) -> 캡슐화)
      - 객체는 인터페이스인 공유부분을 갖으며, 상태(state)를 가지고 있다.
**인스턴스 = 객체는 클래스에 의해 인스턴스화 된다.
  2. 속성(attribute) = 객체의 상태
      - 현재상태(객체의 상태)의미
      - 속성은 객체체의 상태, 성질, 분류, 식별, 수향등 표현
  3. 클래스(class)
      - 공통의 행위와 속성을 갖는 객체들의 모임
      - 클래스는 동일한 타입의 객체들의 메소드와 변수들을 정의하는 템플릿(templete)
  4. 메시지 = 메소드를 자극하는 지시어 
     - 외부에서 하나의 객체에 보내지는 메소드의 요구
     - 일반 프로그래밍 과정에서 함수 호출에 해당
  5. 메소드 = 연산, 행위(언어의 함수)
  6. 다형성 = 구조적(c언어)에 없음
     - 같은 메시지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
     - 두개 이상의 클래스 에서 똑같은 메시지에 대해 객체가 서로 다르게 많은하는것
     - 다형성은 주로 동적 바인딩에 의해 실현
  7. 상속성
  8. 캡슐화 속성+메소드 -> 캡슐화
  9. 정보은닉(information hiding) 
     - 객체의 상세한 내용을 객체 외부에 철저히 숨기고 단순히 메시지만으로 객체와의 상호작용을 하게 하는것 

 

728x90