'자료구조'에 해당되는 글 2건

  1. 2008.06.07 소프트웨어 생명 주기
  2. 2008.06.07 자료구조
○ 소프트웨어 생명 주기(Software Life Cycle)  
- 소프트 웨어 개발 단계와 방법을 이해하고 체계적으로 개발, 관리하기 위해서 소프트웨어의 개발 과정을 단계별로 구분해 놓은 것.
소프트웨어 개발 주기(Software Delopment Cycle) 라고도 함


1. 요구 분석 단계

- 개발할 소프트웨어의 기능과 제약조건, 목표 등을 소프트웨어 사용자와 함께 명확히 정의
- 개발해야 할 소프트웨어의 성격을 정확히 이해하고 개발 방법과 필요한 자원, 예산을 예측
- 요구 명세서 작성

2. 시스템 명세 단계
- 시스템이 무엇을 수행해야 하는가를 정의
- 소프트웨어의 입력 자료는 무엇이며, 입력 자료로 처리하는 내용과 그 결과 생성되는 출력이 무엇인지를 정의
- 시스템 기능 명세서 작성

3. 설계 단계
- 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정
-  구분
: 시스템 구조 설계(시스템을 구성하는 내부 프로그램이나 모듈간의 관계와 구조를 설계)
: 프로그램 설계(프로그램 내의 각 모듈에서의 처리 절차나 알고리즘 설계)
: 사용자 인터페이스 설계(시스템을 사용하는 사용자에게 보이는 부분에 대한 설계)
- 시스템 설계 방법
* 하향식 설계 방법(top-down design)
- 하위 단계로 갈수록 좀 더 구체적으로 세부 문제를 정의
- 최하위 단계로 분할된 작은 단위의 문제들을 각각 처리함으로써 전체 문제를 해결
   분할 정복(Divide and Conquer)이라 함
* 상향식 설계 방법(bottom-up design)
- 최하위 단계에 있는 작은 단위를 먼저 결정하고 이를 이용하여 상위 단계의 문제를 해결
- 하위 단계의 문제들에 대해 기존 알고리즘을 재사용할 수 있는 경우 개발기간과 비용 단축,신뢰성 확보
* 객체지향 설계 방법(object-oriented design)
- 작은 단위의 문제해결을 위한 자료와 처리방법을 묶어서 객체를 만들고, 이를 연결하여
재사용함

4. 구현 단계
- 설계 단계에서 논리적으로 결정한 문제 해결 방법(알고리즘)을 C, C++, JAVA 등의 프로그래밍 언어를 사용하여 실제로 프로그램을 작성하는 단계
- 프로그래밍 기법
* 구조화 프로그래밍
- 순차구조, 선택구조, 반복구조의 세 가지 제어구조로 표현
- 정확성 검증, 테스트, 유지보수가 쉬움
* 모듈러 프로그래밍
- 프로그램을 기능별로 나누어서 계층 관계를 갖도록 구성
- 모듈별로 개발, 테스트, 유지 보수, 재사용 가능

5. 테스트 단계
- 설계한대로 동작하는지 테스트하여 시스템의 완성도를 높임
- 단계별 시행
*단위 테스트(unit test)
- 시스템의 최소 구성요소가 되는 모듈들에 대해 개별적으로 시행
*통합 테스트(integration test)
- 최소의 모듈을 연결하여 작은 구성요소로 통합 테스트한 후, 점진적으로 다른 구성요소를
연결하면서 전체 시스템을 테스트
- 점진적 테스트 방법 : 하향식 테스트(최하위 단계까지 반복 시행하면서 테스트)
                             : 상향식 테스트(최상위 단계까지 반복 시행하면서 테스트)
*인수 테스트(acceptance test)
- 실제 자료를 사용하여 시스템을 테스트
- 방법 : 알파테스트(시스템을 사용할 환경에 설치한 후 사용자들이 직접 사용하며 테스트)
         : 베타테스트(제품 판매 전, 제품을 사용할 의사가 있는 잠정적 고객들이 실제로 사용
                           해 보도록 하여 개발자가 찾지 못한 오류를 찾아냄)

6. 유지 보수 단계
- 프로그램 오류 수정, 디자인 수정, 기능 추가, 교정 등의 모든 활동
- 유지 보수의 유형 : 수정형, 적응형, 완전형, 예방형

# 성공적인 소프트웨어란?
정확하고, 사용 환경의 변화에 대한 적응이 쉽고, 보안 기능이 있으며, 널리 사용되는 S/W



*출처 - C로 배우는 쉬운 자료구조(이지영 저, 한빛미디어)

Posted by 클로버,,

○ 자료구조란?
자료를 효율적으로 표현, 저장, 처리하여 사용할 수 있도록 하는


○ 형태에 따른 자료구조의 분류
1. 단순구조
: 정수, 실수, 문자, 문자열 등의 데이터 타입에 해당
2. 선형구조
: 자료들간의 앞뒤 관계가 일대일로 고정되어 있는 구조
- 리스트(list) : 자료의 논리적 순서와 기억장소에 저장되는 물리적 순서가 일치하는 구조
- 연결 리스트(linked list) : 물리적 순서에 상관없이 포인터를 사용하여 순서를 갖는 구조
- 스택(stack), 큐(queue), 덱(deque) : 자료의 삽입, 삭제 위치에 대해 조건이 있는 구조
3. 비선형구조
: 자료들간에 계층 구조나 망 구조를 갖는 자료구조
- 트리, 그래프
4. 파일구조
: 보조기억장치에 데이터가 실제로 기록되는 구조
- 순차 파일, 색인 파일, 직접 파일 등


○ 자료의 표현
컴퓨터는 이진수 코드를 사용하여 자료를 표현함
비트(bit) : 한자리의 1, 0 을 표현하는 단위
              : 디지털 시스템에서 자료를 표현하는 최소 단위
              : 니블(nibble) - 4개의 비트 그룹
                바이트(Byte) - 8개의 비트 그룹

1. 수치 자료의 표현
ⓐ 10진수의 표현
    i. 존(Zone) 형식
      - 10진수 한자리를 표현하기 위해 1바이트를 사용
      - 상위 4비트의 존 영역과 하위 4비트의 수치 영역으로 이루어짐
      - 존 영역은 항상 1111로 표시
      - 수치 영역은 표현하고자 하는 10진수 한자리의 값에 대한 2진수 값
      - 부호는 최하위 바이트의 존 영역에 나타냄(양수:1100, 음수:1101)
       ex) +213, -213을 존 형식으로 나타내보면?
            1111 0010 | 1111 0001 | 1100 0011
              F      2        F     1      C(+)   3
            1111 0010 | 1111 0001 | 1101 0011
              F      2        F     1      D(-)   3
    ii. 팩(Pack) 형식
       - 10진수 두자리를 표현하기 위해 1바이트를 사용
       - 부호는 최하위 바이트의 하위 4비트에 표시함
        ex) +213, -213을 팩 형식으로 나타내보면?
             0010 0001 | 0011 1100
               2      1        3   C(+) 
             0010 0001 | 0011 1101
               2      1        3   C(-)
 
ⓑ 2진수의 표현
   i. 정수 표현
    - 음수 표현 방법 : 2진수를 2의 보수로 변환함(1의 보수로 변환 후 1을 더함)
    ex) 00010101   : +21 (MSB는 부호를 나타냄 - 0은 양수)
         11101010   : 1의 보수로 변환
         11101011   : -21 (MSB는 부호를 나타냄 - 1은 음수)
   ii. 실수 표현
     * 고정 소수점 형식
        - 소수점이 항상 최상위 비트의 왼쪽 밖에 고정되어 있는 것으로 취급함
     * 부동 소수점 형식
        - 표현 가능한 값의 범위가 큼(아주 작거나 아주 큰 값)
        - 실수 자료형은 4바이트나 8바이트로 표현됨


2. 문자 자료의 표현
ⓐ BCD 코드
- 6비트를 사용하며 상위 2비트의 존 비트와 하위 4비트의 숫자 비트로 구성
| 존 비트 | 숫자 비트 | 
    A  B       8  4  2  1
    x  x        x  x  x  x
- 존 비트 AB의 값
00 : 0, 1~9(1010, 0001~1001)
01 : 문자 A~I(0001~1001)
10 : 문자 J~R(0001~1001)
11 : 문자 S~Z(0001~1001)

ⓑ EBCDIC 코드
- 8비트를 사용하며 상위 4비트의 존 비트와 하위 4비트의 숫자 비트로 구성
- 0~9, 영어 대문자와 소문자, 특수문자까지 나타냄
|   존 비트  |  숫자 비트  |  
   A  B  C D    8  4  2  1
   x   x  x  x    x  x  x  x
- 존 비트 AB의 값                                  - 존 비트 CD의 값
00 : 여분                                               00 : 문자 A~I(0001~1001)
01 : 특수 문자                                        01 : 문자 J~R(0001~1001)
10 : 영어 소문자                                     10 : 문자 S~Z(0001~1001)
11 : 영어 대문자                                     11 : 0~9(0000~1001)

ⓒ ASCII 코드
- 7비트를 사용하며 상위 3비트의 존 비트와 하위 4비트의 숫자 비트로 구성
| 존 비트  |  숫자 비트 |  
                   8  4  2  1
   x  x  x       x  x  x  x

3. 논리 자료의 표현
- 논리값을 표현하기 위한 자료 형식
- 참과 거짓의 두 가지 상태 중에서 하나를 표시하기 때문에 1비트로 표현이 가능

4. 포인터 자료의 표현
- 메모리의 주소를 표현하기 위한 자료 형식

5. 문자열 자료의 표현
- 여러 문자로 이루어진 문자 그룹을 하나의 자료로 취급하여 메모리에 연속적으로 저장



*출처 - C로 배우는 쉬운 자료구조(이지영 저, 한빛미디어)

Posted by 클로버,,