*학교에서 공부하는 내용을 정리하여 필자가 이해한 내용을 바탕으로 쓰는 글입니다.
저번에 소프트웨어공학의 개념과 필요성을 알아보았다.
이번에는 소프트웨어의 개발 단계에 대해 알아보자.
소프트웨어 개발 단계
우선 소프트웨어 개발 단계의 큰 틀은 아래와 같다.
계획 - 분석 - 설계 - 구현 - 테스트 - 유지보수
그러면 이제 세부적으로 알아보자.
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단계 (테스트)
우선 테스트를 하는 이유를 알아보자.
테스트를 하는 이유는 간단하다.
문제 상황을 예방하기 위해서이다.
아 참고로 테스트는 소프트웨어 내에 존재하지만, 드러내지 않고 숨어있는 오류를 발견, 검출하는 과정이다.
테스트 기법의 프로세스는 아래와 같다.
- 테스트 계획
- 테스트 케이스 설계
- 테스트 실행 및 측정
- 결과 분석 및 평가
- 오류 추적 및 수정
6) 소프트웨어 개발 6단계 (유지보수)
유지보수는 딱히 할만한 게 없다.
수정 유지보수, 적응 유지보수, 기능보강 유지보수, 예방 유지보수
정도가 있다.
오늘 배운 내용은 여기까지 이다.
다음에는 개발 모델에 대해서 배운다는데, 이 부분이 좀 중요할 것 같다.
'학교 공부 > 소프트웨어공학' 카테고리의 다른 글
소프트웨어 공학 - 애자일 프로세스 모델(scrum) (0) | 2022.05.19 |
---|---|
소프트웨어 공학 - 나선형 모델, 단계적 개발 모델, 통합 프로세스 모델(UP모델) (0) | 2022.04.30 |
소프트웨어 공학 - V 모델, 진화적 프로세스 모델(Prototype Model) (0) | 2022.04.08 |
소프트웨어 공학 - 주먹구구식 모델, 폭포수(선형 순차적) 모델 (0) | 2022.04.07 |
소프트웨어공학 - 소프트웨어공학의 개념, 필요성 (0) | 2022.03.14 |