목차
Ⅰ. 개요
Ⅱ. 소프트웨어의 정의
Ⅲ. 소프트웨어공학의 정의
Ⅳ. 소프트웨어의 공학적 측면
1. 방법론
2. 도구
3. 프로세스
Ⅴ. 소프트웨어의 생산성
1. 프로그래머의 능력
2. 팀 의사 전달(team communication)
3. 제품의 복잡도
4. 기술 수준
5. 관리 기술
Ⅵ. 소프트웨어의 개발방법론
1. 구조적 개발방법론
1) 기본 원칙
2) 구조적 설계
3) 구조적 프로그래밍
2. 객체 지향 개발방법론
1) 객체 지향 분석
2) 객체 지향 설계
3. 정보공학 개발방법론
1) 기본원리
2) 개발 단계(수직적 관점)
4. 컴포넌트 기반 개발방법론
1) 컴포넌트 아키텍쳐의 대표 모델
2) 구축 요소 기술
Ⅶ. 소프트웨어의 개발모형
1. 고전적 생명주기(Classic life cycle)
1) 시스템 공학과 모델링
2) 요구사항 분석
3) 소프트웨어 설계(design)
4) 소프트웨어 구현(implementation)
5) 검사(test)
6) 유지보수(maintenance)
2. 폭포수 모델(Waterfall)
3. 프로토타이핑 모형(Prototyping model)
4. RAD 모형(Rapid Application Development)
5. 단계적 소프트웨어 모델(Evolutionary model)
1) 계획 수립(Planning)
2) 요구사항 정의(Requirement definition)
3) 구조 설계와 상세설계
4) 구현(Implementation)
5) 검사(Test)
6. 나선형 모델(Spiral model)
7. 4세대 모델(Fourth Generation Techniques, 4GT)
Ⅷ. 소프트웨어의 개발단계
1. 계획 단계
2. 개발 단계
3. 유지 보수 단계
참고문헌
Ⅱ. 소프트웨어의 정의
Ⅲ. 소프트웨어공학의 정의
Ⅳ. 소프트웨어의 공학적 측면
1. 방법론
2. 도구
3. 프로세스
Ⅴ. 소프트웨어의 생산성
1. 프로그래머의 능력
2. 팀 의사 전달(team communication)
3. 제품의 복잡도
4. 기술 수준
5. 관리 기술
Ⅵ. 소프트웨어의 개발방법론
1. 구조적 개발방법론
1) 기본 원칙
2) 구조적 설계
3) 구조적 프로그래밍
2. 객체 지향 개발방법론
1) 객체 지향 분석
2) 객체 지향 설계
3. 정보공학 개발방법론
1) 기본원리
2) 개발 단계(수직적 관점)
4. 컴포넌트 기반 개발방법론
1) 컴포넌트 아키텍쳐의 대표 모델
2) 구축 요소 기술
Ⅶ. 소프트웨어의 개발모형
1. 고전적 생명주기(Classic life cycle)
1) 시스템 공학과 모델링
2) 요구사항 분석
3) 소프트웨어 설계(design)
4) 소프트웨어 구현(implementation)
5) 검사(test)
6) 유지보수(maintenance)
2. 폭포수 모델(Waterfall)
3. 프로토타이핑 모형(Prototyping model)
4. RAD 모형(Rapid Application Development)
5. 단계적 소프트웨어 모델(Evolutionary model)
1) 계획 수립(Planning)
2) 요구사항 정의(Requirement definition)
3) 구조 설계와 상세설계
4) 구현(Implementation)
5) 검사(Test)
6. 나선형 모델(Spiral model)
7. 4세대 모델(Fourth Generation Techniques, 4GT)
Ⅷ. 소프트웨어의 개발단계
1. 계획 단계
2. 개발 단계
3. 유지 보수 단계
참고문헌
본문내용
는 사용자가 요구하는 기능, 성능, 인터페이스에 대해 정확히 이해한다.
3) 소프트웨어 설계(design)
데이터 구조, 세부 절차, 사용자 인터페이스 등을 설계한다.
4) 소프트웨어 구현(implementation)
실제 프로그래밍 언어로 기계가 인식할 수 있는 실행 형태로 만드는 과정
5) 검사(test)
요구사항 분석 단계에서 분석한 요구 사항과 일치하는지를 검사, 이 단계에서는 논리적인 면에 중점을 두고 검사한다.
6) 유지보수(maintenance)
사용자에게 사용되어지면서 생기는 오류를 수정하거나 사용환경의 변화에 따른 대처, 기능의 향상 등을 수행하는 단계
2. 폭포수 모델(Waterfall)
1979년 Boehm에 의해 제시된 모델이다. 타당성검토→계획과 요구→개략 설계→상세 설계→구현→검사→운용→유지보수의 단계를 거친다.
3. 프로토타이핑 모형(Prototyping model)
① 프로토타입은 사용자의 요구사항을 정확하게 분석하고자 하는 생명주기로써, 사용자의 요구사항 수집부터 시작된다.
- 프로토타입(Prototype) : 실제 완성된 제품이 아닌 모형으로써 개발자가 사용자에게 보여주기 위해서 제작
② 사용자와 개발자간의 의사소통이 원활하게 이루어진다.
③ 프로토타이핑 모델은 다음과 같은 단계로 되어 있다.
- 요구사항의 수집과 정리(Requirements gathering & refinement)
- 퀵 설계(Quick design)
- 프로토타입의 구축( Building prototype)
- 프로토타입에 대한 사용자의 평가(Customer evaluation)
- 프로토타입의 정제(Refining Prototype)
④ 프로토타이핑 모델의 장점과 단점
- 장점으로는 사용자의 요구사항을 사전에 정확히 파악할 수 있다는 것이다.
- 단점으로는 다음과 같은 두 가지를 들 수 있다.
- 사용자의 입장에서는 프로토타입이 실제 제품인 것으로 착각할 수 있고,
- 개발자 입장에서는 단기간 내에 프로토타입을 제작해야 되기 때문에 적절하지 못한 알고리즘이나 비효율적인 운영체제 및 언어를 사용할 우려가 있다.
4. RAD 모형(Rapid Application Development)
① RAD는 짧은 개발주기(보통 60일 90일 정도)를 강조하는 생명 주기 모델이다.
② RAD는 다음과 같은 단계로 이루어져 있다.
- 업무 모델링(Business modeling)
- 데이터 모델링(data modeling)
- 프로세스 모델링(Process modeling)
- application 생성(Generation)
- 테스팅 및 인수 인계(Turnover)
③ RAD 모델의 단점은 기간의 제한이 있기 때문에 모든 단계에 걸쳐서 책임을 질 수 있는 책임자가 반드시 필요하다는 것이다.
5. 단계적 소프트웨어 모델(Evolutionary model)
- Richard E. Fairly의 단계적 모델
1) 계획 수립(Planning)
타당성의 조사, 최선의 해결전략 모색, 인수기준의 결정과 개발 공정 등을 계획하는 단계이다.
2) 요구사항 정의(Requirement definition)
S/W의 기본적인 기능이 무엇인지를 식별하는 단계
3) 구조 설계와 상세설계
S/W의 요소들을 식별하고 이들의 관계를 특정한 방법으로 명시하는 단계이다. S/W 구성 요소로는 기능, 데이터 흐름, 데이터 저장소 등이 있다.
4) 구현(Implementation)
코딩(coding), 디버그(Debug), 단위검사(Unit test)를 포함하는 단계
5) 검사(Test)
통합검사(Integration)는 단위검사와 연관 관계가 있고, 승인 검사(Acceptance)는 요구사항 분석단계와 연관 관계가 있다.
6. 나선형 모델(Spiral model)
① 나선형 모델의 특징
- 선형 순차 모형의 제어와 체계적인 측면에 프로토타이핑의 반복적인 성질을 결합시킨 생명주기 모델이다.
- 나선형 모델에서 가장 중요시하는 단계는 위험성 분석(Risk analysis)단계로써, 이 위험성 분석 단계에서 위험이 발견되었을 경우 다음 단계로 넘어가지 못한다.
- 현재까지 제안된 모델 중에서 대규모 시스템과 소프트웨어 개발에 가장 현실적인 패러다임 모델이다.
- 선형 순차 모형과는 달리 S/W의 전체 생명주기에 적용하기가 적합하다.
② 나선형 모델의 단점은 위험성 평가에 크게 의존하는 특성이 있기 때문에 만약 주요 위험이 발견되지 않을 경우 반드시 큰 문제를 야기할 수 있다.
7. 4세대 모델(Fourth Generation Techniques, 4GT)
① 4세대 기법은 그래픽 표기법이나 사용자가 이해하기 쉬운 자연어에 가까운 언어를 사용하여 소프트웨어의 특성을 지정하는 능력에 초점을 맞추고 있는 생명 주기이다.
② 4GT 패러다임
- 요구사항 수집 단계 : 요구사항을 수집하는 단계에서 시작하여 바로 프로토타입 단계로 전환할 수 있는 특징이 있다.
- 설계 전략 단계
- 4GL(Fourth Generation Language)를 사용한 구현 단계
- 검사 단계
Ⅷ. 소프트웨어의 개발단계
1. 계획 단계
- 사용자의 문제를 정의, 시스템이 갖추어야할 기본 기능과 성능 요건을 파악하여 소프트웨어 기본 요구로 전환
- 소프트웨어 노력 범위에 대한 설정
- 소프트웨어 개발하는데 필요한 자원 예견
- 비용 및 일정 추정
- 기초 조사 & 개발 계획 수립
2. 개발 단계
- 요구 사항을 소프트웨어의 시스템 요소로 변환
- 요구사항 분석 & 설계 & 프로그래밍 작성 & 테스트
3. 유지 보수 단계
- 소프트웨어에 대한 수정 및 보안
- 운영 & 유지보수
참고문헌
- 박성익, 컴퓨터 활용 학습이론, 교육진흥, 1990
- 상공부, 소프트웨어 인증제도 정착을 위한 활성화 방안 연구, 1994
- 삼성전자 30년사, 삼성전자, 1999
- 조윤애, 소프트웨어 산업의 지식 경쟁력 강화 강안, 산업 연구원, 1999
- 정보통신산업 중장기 시장전망, 2000
- 한국전기통신공사, 소프트웨어 관리 규정 제 284호, 1991
- 한국 교육 개발원, 컴퓨터 통신 학습 시스템 개발연구, 연구보고 89-4, 한국 교육 개발원, 1989
3) 소프트웨어 설계(design)
데이터 구조, 세부 절차, 사용자 인터페이스 등을 설계한다.
4) 소프트웨어 구현(implementation)
실제 프로그래밍 언어로 기계가 인식할 수 있는 실행 형태로 만드는 과정
5) 검사(test)
요구사항 분석 단계에서 분석한 요구 사항과 일치하는지를 검사, 이 단계에서는 논리적인 면에 중점을 두고 검사한다.
6) 유지보수(maintenance)
사용자에게 사용되어지면서 생기는 오류를 수정하거나 사용환경의 변화에 따른 대처, 기능의 향상 등을 수행하는 단계
2. 폭포수 모델(Waterfall)
1979년 Boehm에 의해 제시된 모델이다. 타당성검토→계획과 요구→개략 설계→상세 설계→구현→검사→운용→유지보수의 단계를 거친다.
3. 프로토타이핑 모형(Prototyping model)
① 프로토타입은 사용자의 요구사항을 정확하게 분석하고자 하는 생명주기로써, 사용자의 요구사항 수집부터 시작된다.
- 프로토타입(Prototype) : 실제 완성된 제품이 아닌 모형으로써 개발자가 사용자에게 보여주기 위해서 제작
② 사용자와 개발자간의 의사소통이 원활하게 이루어진다.
③ 프로토타이핑 모델은 다음과 같은 단계로 되어 있다.
- 요구사항의 수집과 정리(Requirements gathering & refinement)
- 퀵 설계(Quick design)
- 프로토타입의 구축( Building prototype)
- 프로토타입에 대한 사용자의 평가(Customer evaluation)
- 프로토타입의 정제(Refining Prototype)
④ 프로토타이핑 모델의 장점과 단점
- 장점으로는 사용자의 요구사항을 사전에 정확히 파악할 수 있다는 것이다.
- 단점으로는 다음과 같은 두 가지를 들 수 있다.
- 사용자의 입장에서는 프로토타입이 실제 제품인 것으로 착각할 수 있고,
- 개발자 입장에서는 단기간 내에 프로토타입을 제작해야 되기 때문에 적절하지 못한 알고리즘이나 비효율적인 운영체제 및 언어를 사용할 우려가 있다.
4. RAD 모형(Rapid Application Development)
① RAD는 짧은 개발주기(보통 60일 90일 정도)를 강조하는 생명 주기 모델이다.
② RAD는 다음과 같은 단계로 이루어져 있다.
- 업무 모델링(Business modeling)
- 데이터 모델링(data modeling)
- 프로세스 모델링(Process modeling)
- application 생성(Generation)
- 테스팅 및 인수 인계(Turnover)
③ RAD 모델의 단점은 기간의 제한이 있기 때문에 모든 단계에 걸쳐서 책임을 질 수 있는 책임자가 반드시 필요하다는 것이다.
5. 단계적 소프트웨어 모델(Evolutionary model)
- Richard E. Fairly의 단계적 모델
1) 계획 수립(Planning)
타당성의 조사, 최선의 해결전략 모색, 인수기준의 결정과 개발 공정 등을 계획하는 단계이다.
2) 요구사항 정의(Requirement definition)
S/W의 기본적인 기능이 무엇인지를 식별하는 단계
3) 구조 설계와 상세설계
S/W의 요소들을 식별하고 이들의 관계를 특정한 방법으로 명시하는 단계이다. S/W 구성 요소로는 기능, 데이터 흐름, 데이터 저장소 등이 있다.
4) 구현(Implementation)
코딩(coding), 디버그(Debug), 단위검사(Unit test)를 포함하는 단계
5) 검사(Test)
통합검사(Integration)는 단위검사와 연관 관계가 있고, 승인 검사(Acceptance)는 요구사항 분석단계와 연관 관계가 있다.
6. 나선형 모델(Spiral model)
① 나선형 모델의 특징
- 선형 순차 모형의 제어와 체계적인 측면에 프로토타이핑의 반복적인 성질을 결합시킨 생명주기 모델이다.
- 나선형 모델에서 가장 중요시하는 단계는 위험성 분석(Risk analysis)단계로써, 이 위험성 분석 단계에서 위험이 발견되었을 경우 다음 단계로 넘어가지 못한다.
- 현재까지 제안된 모델 중에서 대규모 시스템과 소프트웨어 개발에 가장 현실적인 패러다임 모델이다.
- 선형 순차 모형과는 달리 S/W의 전체 생명주기에 적용하기가 적합하다.
② 나선형 모델의 단점은 위험성 평가에 크게 의존하는 특성이 있기 때문에 만약 주요 위험이 발견되지 않을 경우 반드시 큰 문제를 야기할 수 있다.
7. 4세대 모델(Fourth Generation Techniques, 4GT)
① 4세대 기법은 그래픽 표기법이나 사용자가 이해하기 쉬운 자연어에 가까운 언어를 사용하여 소프트웨어의 특성을 지정하는 능력에 초점을 맞추고 있는 생명 주기이다.
② 4GT 패러다임
- 요구사항 수집 단계 : 요구사항을 수집하는 단계에서 시작하여 바로 프로토타입 단계로 전환할 수 있는 특징이 있다.
- 설계 전략 단계
- 4GL(Fourth Generation Language)를 사용한 구현 단계
- 검사 단계
Ⅷ. 소프트웨어의 개발단계
1. 계획 단계
- 사용자의 문제를 정의, 시스템이 갖추어야할 기본 기능과 성능 요건을 파악하여 소프트웨어 기본 요구로 전환
- 소프트웨어 노력 범위에 대한 설정
- 소프트웨어 개발하는데 필요한 자원 예견
- 비용 및 일정 추정
- 기초 조사 & 개발 계획 수립
2. 개발 단계
- 요구 사항을 소프트웨어의 시스템 요소로 변환
- 요구사항 분석 & 설계 & 프로그래밍 작성 & 테스트
3. 유지 보수 단계
- 소프트웨어에 대한 수정 및 보안
- 운영 & 유지보수
참고문헌
- 박성익, 컴퓨터 활용 학습이론, 교육진흥, 1990
- 상공부, 소프트웨어 인증제도 정착을 위한 활성화 방안 연구, 1994
- 삼성전자 30년사, 삼성전자, 1999
- 조윤애, 소프트웨어 산업의 지식 경쟁력 강화 강안, 산업 연구원, 1999
- 정보통신산업 중장기 시장전망, 2000
- 한국전기통신공사, 소프트웨어 관리 규정 제 284호, 1991
- 한국 교육 개발원, 컴퓨터 통신 학습 시스템 개발연구, 연구보고 89-4, 한국 교육 개발원, 1989
소개글