컴퓨터(Computer Science)/소프트웨어공학(Software engineering)

소프트웨어공학(3) 소프트웨어 개발 접근 방법(단계적 개발 프로세스)

게임이 더 좋아 2020. 4. 7. 00:46
반응형
728x170

 

 

 

개발을 하려면 어떤 순서로 하는지가 정말 중요한데

이 방법을 따르지 않으면 효율이 떨어지거나, 기간이 오래걸리거나, 품질이 낮아지는 경우가 발생한다.

 

4가지정도의 단계가 있다. 처음부터 살펴보자

 

 

 

1) 요구분석

 

소프트웨어 시스템이 풀어야 할 문제를 이해하기 위해서 하는 일

시스템이 어떻게 작동을 해야하느냐 보다는 시스템으로부터 무엇이 필요한가를 생각해보아야 한다.

 

요구분석단계의 목표는 소프트웨어 요구 명세서로 요구를 문서화 하는 일이다.

 

그 목표를 이루기 위해서 2가지 작업이 있는데

 

문제분석과 요구정리 2가지가 있다.

 

문제와 그 배경을 잘 이해하고 개발할 시스템의 요구를 찾아야 하고

문제를 분석한 뒤에는 요구를 문서로 정리한다. 이를 요구 명세서(requirement specification 이라고 부른다.

요구 문서는 모든 기능을 나타내야한다. 시스템 기능 이외에도 설계에 영향을 주는 모든 요인을 나타내야 한다.

예를 들어 중요한 사용자 인터페이스를 모두 나타낸 사용자 매뉴얼 초안도 요구 문서의 일부가 될 수 있다.

 

 

 

 

 

 

2) 설계

 

설계단계의 목적은 요구문서에 기술된 문제의 솔루션을 계획하는 일이다.

어떻게 요구사항을 만족시킬지 생각해보는 것이다.

설계단계는 소프트웨어의 품질에 가장 크게 영향을 끼칠 수 있는 단계이므로 

2가지로 나누어서 신중하게 설계를 한다.

 

1. 아키텍쳐 설계: 시스템을 여러 컴포턴트의 집합체로 보고 각 컴포넌트들이 요청한 결과를 어떻게 상호작용 하는지에 초점을 둔다.

 

상세설계: 각 모듈의 내부 논리를 작성한다.

 

다시 말하자면 아키텍쳐 설계는 어떤 컴포넌트와 모듈이 필요한지 찾는 것이고

상세 설계는 모듈이 소프트웨어 안에서 어떻게 구현될 지 생각해보는 것이다.

 

대부분 아키텍쳐에 비중을 크게 두고 있다. 

 

 

 

 

 

3) 코딩

 

설계가 완성이 되면 시스템 설계를 프로그래밍 언어로 변환한다.

변환 시 최선의 방법으로 변환해야한다. 즉 읽기 쉽고 이해하기 쉬운 프로그램이 되어야 한다.

단순함과 명확성을 추구하는 작업을 해야한다.

그렇지 않으면 테스팅과 유지보수 작업에 힘겨운 결과를 초래할 수 있다.

 

4) 테스팅

 

소프트웨어의 결함을 찾아내서 품질을 측정할 수 있는 단계이다.

테스팅은 프로그램에 포함된 요구, 설계, 코딩 오류를 찾는 단계이다.

 

단위 테스팅> 통합테스팅> 시스템 테스팅> 인수 테스팅 의 순서를 가지며

각각은

모듈이나 컴포넌트의 개별적 테스트, 모듈사이의 연결을 테스트

요구사항의 만족 테스트, 시스템이 잘 실행이 되는지 데모 테스트

 

테스팅은 중요하고 시간이 많이 잡아먹히는 작업이다. 그래서 테스팅 또한 계획 하에 진행 되어야 하며

가이드라인, 테스트 케이스 명세서 등이 테스팅 작업에 필요하다

 

예상 결과와 실제 결과를 비교해보며 오류에 관한 조치를 취한다.

 

 

 

 

+++++

 

개발 프로세스의 목표는

생산성

 

품질 보증의 목표는

품질

 

프로세스 관리의 목표는

비용과 기간이다.

 

 

 

 

 

 

반응형
그리드형