자료구조(Data Structure)란?
- 자료(Data)에 대한 처리를 효율적으로 수행 및 사용할 수 있도록 자료를 자료의 특성에 따라 서 조직적, 체계적으로 만들어서 저장하여 자료들의 집합을 표현한 것을 말한다.
소프트웨어 개발 생명주기(SDLC)란?
요구분석 단계
- 문제 분석 단계라고도 불리우며 개발할 소프트웨어의 기능과 제약조건, 목표 등을 소프트웨어 사용자와 함께 명확히 정의하는 단계
- 개발할 소프트웨어의 성격을 정확히 이해하고 개발 방법과 필요한 개발 자원 및 예산 예측 후 요구명세서 작성
시스템 명세
- 시스템이 무엇을 수행해야 하는가를 정의하는 단계로 입력 자료, 처리 내용, 생성 되는 출력이 무엇인지를 정의를 한 후 시스템 기능 명세서를 작성하는 단계
설계(Design) 단계
- 시스템 명세 단계에서 정의한 기능을 실제로 수행하기 위한 방법을 논리적으로 결정하는 단계
- 시스템 구조 설계 : 시스템을 구성하는 내부 프로그램이나 모듈 간의 관계와 구조 설계프로그램 설계
- 프로그램 설계 : 프로그램 내의 각 모듈에서의 처리 절차나 알고리즘을 설계
- 사용자 인터페이스(User Interface) 설계 : 사용자가 시스템을 사용하기 위해 보여지는 부분 설계
- 설계방법
- 상향식 설계 방법
- 작은단위부터 먼저 해결하고 이를 활용해서 큰 단위의 문제를 해결하는 방법
- 하위단위의 문제해결 도구를 재사용기법으로 전체 문제를 해결하는 장점
- 하향식 설계 방법(분할방식 설계)
- 상위단계에서 하위 단계로 설계해가면서 점차 구체적으로 설계하는 방법
- 상향식 설계 방법
- 설계방법
구현단계
- 설계 단계에서 논리적으로 결정한 문제 해결 방법(알고리즘)을 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계
- 프로그래밍 기법
- 구조화 프로그래밍
- 지정문과 조건문, 반복문만을 사용하여 프로그램을 작성
- 순차구조, 선택구조, 반복구조의 세가지 제어구조로 표현
- 구조가 명확하여 정확성 검증과 테스트 및 유지보수 용이
- 모듈 프로그래밍
- 프로그램을 여러개의 작은 모듈로 나누어 계층 관계를 구성하는 프로그래밍기법
- 모듈별로 개발과 테스트 및 유지보수 가능
- 모듈의 재사용 가능
- 구조화 프로그래밍
테스트 단계
- 개발한 시스템이 요구사항을 만족하는지, 실행결과가 예상한 결과와 정확하게 맞는지를 검사하고 평가하는 일련의 과정
- 발견하지 못한 숨어있는 오류를 발견하여 시스템의 완성도를 높이는 단계
- 1단계 : 단위 테스트 (Unit Test) : 시스템의 최소 구성요소가 되는 모듈에 대해서 개별적으로 시행
- 2단계 : 통합 테스트 (Integration Test)
- 단위 테스트를 통과한 모듈을 연결하여 전체 시스템으로 완성하여 통합적으로 시행하는 테스트
- 구성요소 연결을 점진적으로 확장하면서 테스트 시행
- 하향식/상향식 점진적 테스트
- 3단계:인수테스트
- 완성된 시스템을 인수하기 위해서 실제 자료를 사용한 테스트
유지보수 단계
- 시스템이 인수되고 설치된 후 일어나는 모든 활동(커스터마이징, 구현, 테스트등)
- 소프트웨어 생명주기에서 가장 긴 기간
- 유지보수의 유형
- 수정형 유지보수 : 사용 중에 발견한 프로그램의 오류 수정작업
- 적응형 유지보수 : 시스템과 관련한 환경적 변화에 적응하기 위한 재조정 작업
- 완전형 유지보수 : 시스템의 성능을 향상시키기 위한 개선작업
- 예방형 유지보수 : 앞으로 발생할지 모를 변경 사항을 수용하기 위한 대비작업
- 개발된 소프트웨어의 품질 평가
- 정확성 : 요구되는 기능들을 정확하게 수행하는 정도를 평가
- 유지보수성 : 효율적 유지 보수의 정도를 평가
- 무결성 : 바이러스 등의 외부공격에 대한 보안성 평가
- 사용성 : 사용자가 쉽고 편리하게 사용할 수 있는가에 대한 평가
- 유지보수의 유형