2022-09-17 소프트웨어공학_2

2022. 9. 17. 01:25학부 강의/소프트웨어공학

소프트웨어 프로세스와 생명 주기

 


프로세스

주어진 목적을 위해 수행되는 일련의 절차.

 

프로세스를 사용하는 조직원들의 공통된 행동 양식을 지정한다.

 

사람, 기술, 조직 구조, 관리 등을 전체적으로 통합한다.

 


소프트웨어 개발 프로세스

 

  • 소프트웨어 개발의 목표 : 정해진 기한 내에, 주어진 예산을 이용해 사용자가 원하는 품질 수준으로 개발하는 것.
  • 프로젝트 실패 : 요구사항이 복잡, 규보가 커짐 → 개발 난이도의 상승
  • 소프트웨어 개발 프로세스의 중요성 : “소프트웨어 제품의 품질은 그 제품을 만들기 위해 사용된 프로세스의 품질에 의해 결정된다.” [Watts S. Hemphery 아저씨가]

 

소프트웨어 개발 프로세스를 정의한 자료 : IEEE_STD_610, Olson et al, SEI CMM 등…

 


소프트웨어 개발 생명주기

 

SDLC라고도 한다. (Software Development Life Cycle)

 

소프트웨어 공학에서 정보 시스템을 계획, 개발, 시험, 채용하는 과정을 뜻하는 용어.

 

소프트웨어를 개발하는 방식을 추상적으로 표현한다.

 

특징

  • 개발 생명주기의 각 단계에 관련된 활동들이 정의되어 있음.
  • 단계별 활동들을 통해 다음 단계에 활용될 수 있는 산출물 작성.
  • 전체 프로젝트의 비용 산정과 개발 계획을 수립할 수 있는 기본 골격 제시.
  • 참여자들 간에 의사소통의 기준과 용어의 표준화를 가능하게 함.
  • 문서화가 충실한 프로젝트 관리를 가능하게 만듬.

 

종류

  • 주먹구구식 개발 모델 (build-fix model)
  • 폭포수 모델 (waterfall model)
  • 프로토타이핑 모델 (prototyping model)
  • 나선형 모델 (spiral model)

 


주먹구구식 개발 모델

 

요구사항 분석, 설계 단계 없이 일단 개발에 들어가서 될 때까지 수정하기.

 

규모가 매우 작은 프로젝트에선 적용할 수 있지만…

 

계획이 없다.

 

프로젝트의 진행 상황을 파악하기 어렵다.

 

개발 문서가 없기에 개발해도 유지보수가 어렵다.

 


폭포수 모델

 

이전 포스팅 

 

2022-03-07 소프트웨어_분석_및_설계_1

2022-03-07 강의 내용 정리. 1. 시스템 개발 과정의 이해 <목차> 소프트웨어 공학 시스템과 시스템 개발자 SDLC 모형 프로토타입 모형 프로젝트 관리 학습목표 1.1 소프트웨어 위기 소프트웨어 위기와

ramen4598.tistory.com

 

순차적으로 소프트웨어를 개발하는 전형적인 개발 모델.

 

가장 많이 사용되는 모델.

 

 

단계

  1. 요구사항 분석 : 기능적 비기능적 요구사항을 구별할 줄 알아야 한다.
  2. 설계
  3. 구현
  4. 테스팅
  5. 유지보수

 

 


프로토타이핑 모델

 

폭포수 모델의 단점을 보완.

 

점진적으로 개발.

 

프로토타입을 만들고 고객과 사용자의 피드백을 (요구사항을) 정제하여 보충된 요구사항 명세서 작성.

 

요구사항이 불분명할 경우 유리하다.

 

 

단계

  1. 요구사항 정의
  2. 신속 설계 : 인터페이스에 초점
  3. 프로토타입 개발 : RAD(Rapid Application Development) 도구 등을 사용
  4. 고객 평가
  5. 프로토타입 정제