소프트웨어 엔지니어링 & 소프트웨어 프로세스 모델참조: http://destiny738.tistory.com/266
소프트웨어를 개발하기 위해 요구되는 활동의 구조적인 셋
소프트웨어 공학론의 필요성
- 전문적인 소프트웨어 개발을 잘하기 위한 이론, 방법, 도구를 알아야한다.
- 소프트웨어 개발의 비용을 최소화 하기 위한 방법을 찾아야 한다.
- 소프트웨어 유지비용을 최소화하기 위한 방법을 찾아야 한다.
==> 효율적 비용의 소프트웨어 개발을 하기 위해 필요하다.
소프트웨어 프로세스란?
소프트웨어 개발을 위해 필요한 활동들의 집합이다.
목적에 따라 필요한 활동들이 다르기는 하겠지만 공통적인 활동이 몇개 존재한다.
- Specification : 명세화. 시스템이 무엇을 해야 하는지 기능을 정의하는 단계이다.
- Design and implementation : 시스템 구조를 정의하고 구현하는 단계
- Validation : 검토, 테스트 단계
- Evolusion : 유지 보수 및 진화 단계
소프트웨어 프로세스 분류
plan-driven process : 계획을 잘 세워놓고 계속 체크하면서 진행.
진행정도를 계획대비 쉽게 측정할 수 있어 관리자 입장에서는 굿
아주 큰 프로젝트에 적절
In agile process: 점진적으로 계획을 추가해나간다.
중심이되는건 고객의 요구사항. 즉 요구사항에 맞춰 계속 계획을 수정하며 맞춰간다.
고객과 접점이 많은 웹 프로그램이나 클라이언트 프로그램의 경우 적절
==> 실무에서는 두개의 요소를 혼재한 프로세스를 구성하여 실행한다.
소프트웨어 프로세스 모델
1. waterfall model
요구분석 -> 설계 -> 구현/테스트 ->통합/테스트 -> 배치/운영
장점: 법규나 시행규칙에 따라 절차에 맞게 개발하는 경우 이 프로세스 모델을 사용하는것이 가능하다.
단점: 사용자의 요구사항이 변경된 경우 적용하기가 어렵다.
2. Incremental development
점진적 개발 방식. waterfall 방식의 순환을 계속 반복해서 수행된다.
장점: 사용자의 요구사항을 적절히 반영할 수 있다.
작은 단위의 프로그램을 사용하여 사용자의 피드백을 적절히 반영할 수 있다.
빨리 딜리버리가 가능하다.
단점: 작은 사이클을 계속 순환하고 있기 때문에 프로젝트 과정이 애매해 질 수 있다.
중간중간 산출물들이 계속 요구된다. 프로젝트가 진행되고 있는 과정을 체크하기위해.
3. Reuse-oriented software engineering
요구사항을 분석하여 재사용 할 부분은 재사용하고 그외 부분은 개발을 한 뒤 합친다.
이때 개발되는 부분도 차후에 재사용될 수 있도록 컴포넌트 기반으로 개발한다.
장점: 빠른 개발과 고기능 제공이 가능하고, 시스템 신뢰도를 높일 수 있다.
단점: 요구사항에 딱 적합한 컴포넌트를 찾기가 어렵다.
자신이 개발한 컴포넌트가 아니기 때문에 유지보수가 어렵다.
==> 실무에서는 모든것을 합쳐서 소프트웨어 개발 모델을 재정립해서 사용하는 경우가 많다.
'ETC > 자본시장아카데미' 카테고리의 다른 글
CBD 산출물 템플릿 (0) | 2013.05.08 |
---|---|
BPM 모델링도구 (0) | 2013.05.08 |
[현물결제] 미수및 반대매매 (0) | 2012.11.28 |
[현물결제] 매매정리 (0) | 2012.11.28 |
[현물결제] 결제 (0) | 2012.11.26 |