본문 바로가기
학교 공부/소프트웨어공학

소프트웨어공학 - 소프트웨어 개발 단계

by krapoi 2022. 3. 15.
반응형

*학교에서 공부하는 내용을 정리하여 필자가 이해한 내용을 바탕으로 쓰는 글입니다.
 
저번에 소프트웨어공학의 개념과 필요성을 알아보았다.
 
이번에는 소프트웨어의 개발 단계에 대해 알아보자.
 

소프트웨어 개발 단계

우선 소프트웨어 개발 단계의 큰 틀은 아래와 같다.
 
계획 - 분석 - 설계 - 구현 - 테스트 - 유지보수

그림으로 나타내면 이런 식이다.

그러면 이제 세부적으로 알아보자.
 

1) 소프트웨어 개발 1단계 (계획)

계획 단계에서는 비용, 기간 등 프로젝트를 수행하는 데 필요한 것에 대해 계획한다. 그중 개발 비용을 산정할 때 쓰는 대표적인 방법으로 COCOMO모델과 FP(function Point) 모델이 있다. 국내에서는 주로 FP 즉 기능점수 모델을 자주 사용한다고 한다.
또한 일정 계획도 세워야 한다.
일정 계획은 WBS(작업 분할 구조도), CPM(네트워크 차트), Guntt chart가 있다.
 
또한 이 부분에서 프로젝트 수행 시 어떤 위험이 있는지 파악하고 이를 예방할 조치를 취한다.
 

2) 소프트웨어 개발 2단계 (요구분석)

요구 분석 단계에서는 기존 시스템의 문제점을 파악하고, 사용자 인터뷰를 통해 새로운 요구사항을 도출하여 수집한다.
이 요구 사항을 최적화된 상태로 정리한 후 특정 표현 도구를 사용하여 다이어그램 등으로 나타낸다.
여기서 사용하는 다이어그램 중 대표적인 다이어그램 2개는
- usecase diagram
- class diagram
이 있다.
 또한 더 자세히 하는 일을 살펴보자면
*- 실제 사용자의 요구사항을 토대로 요구분석 명세서 작성
- 무엇(What)의 관점
정도 있다.
 

3) 소프트웨어 개발 3단계 (설계)

분석 단계에서 표현한 다이어그램을 가지고 코딩할 수 있는 수준으로 환경에 밀접하게 구체화한다.
즉 요구분석 단계에서 파악한 요구사항과 제약 사항을 고려하고, 프로그래밍 언어를 선택하며,
시스템 개발 관련 플랫폼을 결정한다.
여기서 설계할 때 하위 설계 상위 설계로 나뉘는데,

상위 설계에는 아키텍처 설계, 데이터 설계, 인터페이스 정의, 사용자 인터페이스 설계 등이 있다.
하위 설계에는 모듈 설계, 자료구조 설계, 알고리즘 설계.
 

4) 소프트웨어 개발 4단계 (구현)

이 부분은 말 그대로 코딩을 하는 부분이다.
하지만 여러 사람이 함께 작업을 하다 보니 규칙이 존재한다.
내가 배운 내용은 표준 코딩 규칙 + 시큐어 코딩을 사용했다.
또한 소스 형식에 관한 규칙도 정해야 하며,
변수 선언 및 자료형에 관한 규칙과 상수, 수식, 문장에 관한 규칙도 정해야 한다.
 

5) 소프트웨어 개발 5단계 (테스트)

우선 테스트를 하는 이유를 알아보자.
테스트를 하는 이유는 간단하다.
문제 상황을 예방하기 위해서이다.
아 참고로 테스트는 소프트웨어 내에 존재하지만, 드러내지 않고 숨어있는 오류를 발견, 검출하는 과정이다.
테스트 기법의 프로세스는 아래와 같다.

  1. 테스트 계획
  2. 테스트 케이스 설계
  3. 테스트 실행 및 측정
  4. 결과 분석 및 평가
  5. 오류 추적 및 수정

6) 소프트웨어 개발 6단계 (유지보수)

유지보수는 딱히 할만한 게 없다.
수정 유지보수, 적응 유지보수, 기능보강 유지보수, 예방 유지보수
정도가 있다.
 
오늘 배운 내용은 여기까지 이다.
다음에는 개발 모델에 대해서 배운다는데, 이 부분이 좀 중요할 것 같다.
 
 

반응형