본문 바로가기

ETC/자본시장아카데미

소프트웨어 엔지니어링

소프트웨어 엔지니어링 & 소프트웨어 프로세스 모델참조: 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