1. 소프트웨어 공학( Software Engineering )
① 비정형( informal ) : 상세 프로세스 모델이 없다. 개발 팀은 그들만의 방식을 선택한다.
예) 프로토타입 , 단기 lifetime 시스템 , 4GL 비즈니스 시스템, 소/중규모 시스템
② 관리( managed ) : 개발 프로세스를 이끌 프로세스 모델을 정의한다.
예) 대규모 시스템 , 장기 lifetime 제품
③ 방법적( Methodical ) : UP와 같은 특정 개발 방법론이 프로세스를 지원한다.
예) well-understood application domain, re-engineered system.
④ 개선( improving ) : 자동화된 CASE 도구가 프로세스를 지원한다.
2) 방법( Methods )
- 기법( Techniques ) : 일종의 알고리즘으로, 보편적으로 논문도서를 통해 공개한 기술
① 기법의 실용화 방안 즉, 어떤 결과를 생성하기 위하여 적용하는 기법과 절차를 의미한다.
구조적 분석.설계나 객체지향 분석.설계 등 개발.유지보수 절차와 문서화 등이 포함된 개념이다.
② 커뮤니케이션, 요구분석, 설계 모델링, 프로그램 작성, 테스팅 그리고 지원을 포함하는
넓은 범위의 테스크들로 이루어진다.
③ 소프트웨어 개발 여러단계 중 한 단계에만 관심을 둔 것을 방법( method )이라 하고
전체 단계를 지원하는 것을 방법론( methodology )이라 부른다.
3) 방법론( Methodologies )
- 기법 , 방법 , 교육 , 자문 등을 포함한 실무적인 관점에서 하나의 체계로 묶어진 것을 말한다.
① 프로세스 중심 방법론 : 1970년대에 제시되어 지금까지 가장 많이 알려진 것으로 자료의 변환과정,
즉 프로세스를 강조하여 설계하는 방법이다.( 하향식 )
= 자료흐름 방법론 , 절차식 방법론 , 구조적 방법론
② 자료중심 방법론 : 먼저 자료의 구조가 정의되면 데이터베이스에서 중요하게 사용되는
E-R다이어그램을 토대로 프로세스를 파악한다.( 하향식 ) = 정보공학 방법론
③ 객체지향 방법론 : 자료와 프로세스를 묶어 생각하는 방법이다. 1980년 후반부터 모듈화,
정보은닉, 재사용 가능성이 인정되면서 급속도로 전파되었다.( 상향식 )
* 개발방법론 패러다임
방법론의 암흑기 19070년( 프로그램은 예술이다. ) ->
구조적 방법론의 시대 1980년( 데이터의 흐름이 설계의 기본 ) ->
정보공학 방법론의 시대 1990년( 데이터가 시스템 구성의 안정적 요소
, 사업을 지원할 수 있는 시스템 개발이 목표 ) ->
객체지향 방법론의 시대 2000년( 데이터 , 프로세스 , 행동의 통합 )
4) 도구( Tool )
① 기법이 방법으로 실용화 될 수 있고 도구(tools)로 발전해 자동화를 꾀할 수 있다.
② 프로세스와 방법을 위해 자동적 또는 반자동적 지원을 한다.
③ 하나의 도구에 의해 생성된 정보가 다른 도구에 의해 사용될 수 있도록 도구들이
통합되면 소프트웨어 개발 지원 시스템이 구축된다.
3. 소프트웨어 공학의 역사
1) 1960년대
① IBM 360/OS 개발 시 사태의 심각성 제기
② 1968년에 NATO회의에서 "소프트웨어 공학" 이라는 단어를 탄생시키면서
소프트웨어 위기를 인식하기 시작
③ Dijkstra는 이 무렵 GOTO 문의 유해성의 제기 -> 소프트웨어 개발에 구조적이고
공학적인 접근방안의 시도
2) 1970년대
① 소프트웨어 공학이 학문으로 정착되었으며, 소프트웨어 품질과 생산성 문제 대두
② 구조적 프로그래밍에서 더 나아가 구조적 분석 및 설계의 개념이 소프트웨어
위기의 극복 수단으로 각광 받기 시작
③ 소프트웨어 생명주기( life-cycle )와 개발도구( tools )의 제안
④ 미국 전기전자공학회( IEEE )의 소프트웨어 신뢰성과 공학기법에 관한 심포지엄
3) 1980년대 전반
① 구조적 방법, Jackson 방법, Warnier-Orr 방법 등 분석.설계 방법들의 활용과 시험,
유지보수, 프로젝트 관리, 개발환경 등 소프트웨어 개발 기술의 발전
② 소프트웨어 공장 개념 탄생
4) 1980년대 후반
① 객체지향 분석.설계.프로그래밍, 4세대 언어, 소프트웨어 재사용, CASE, 피플웨어( peopleware ),
정보공학, 품질보증, 형상관리, 프로토타이핑 등으로 개발 및 관리
② 소프트웨어 생산보다는 사람과 도구와 관리기술의 병행이 중요하다는 방법론 등장
'전산.정보처리.정보보안 > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어 공학의 개념] 소프트웨어의 개념 (0) | 2014.06.12 |
---|---|
Chapter 및 출제 비율 (0) | 2014.06.12 |