목차
1. 소프트웨어
(1) 소프트웨어의 중요성
(2) 소프트웨어의 발전
(3) 소프트웨어의 특성
(4) 소프트웨어 개발시의 유의사항
(5) 소프트웨어의 위기
2. 소프트웨어 공학
- 소프트웨어 공학이란?
3. 소프트웨어 생명주기
(1) 소프트웨어 생명주기란?
(2) 소프트웨어 패러다임
(3) 시스템 분석가의 역할
(1) 소프트웨어의 중요성
(2) 소프트웨어의 발전
(3) 소프트웨어의 특성
(4) 소프트웨어 개발시의 유의사항
(5) 소프트웨어의 위기
2. 소프트웨어 공학
- 소프트웨어 공학이란?
3. 소프트웨어 생명주기
(1) 소프트웨어 생명주기란?
(2) 소프트웨어 패러다임
(3) 시스템 분석가의 역할
본문내용
차를
거쳐서 보다 생산적이고, 정확한 시스템을 개발하는 기술
- 소프트웨어의 요구사항을 명시하기 위한 도구(mechanism)의 역할
목적
- 사용자와 개발자 사이의 신속한 feedback을 제공
- 시스템 개발시에 사용자의 참여를 유도하여 개발자와 사용자 사이의 이해를 높인다.
요구사항을 명확히, 시스템의 수행업무, 기능을 포함
특성
- 인간과 기계의 상호작용에 의한 최종 시스템이 어떻게 동작되는지를 사용자에게 이해
시키기 위한 형태
- 소프트웨어에서 요구되는 기능과 성능을 문서화에 의한 것이 아니라, 물리적인 형태로
확인시켜 주는 모델
- 개발중에 기능의 일부 또는 전체를 수행하면서, 사용자의 요구를 확인, 반영할 수 있는
빨리 개발된 미완성 시스템
문제점
① 사용자는 시스템 전체를 보는 것이 아니라 일부분의 모형을 모게 됨
② 개발자는 서둘러 원형을 만들기 위해, 실제 시스템 외에 당장 사용가능한 모형
(임시적 OS, tool사용)을 만들어서 이중 작업이 될 수 있다.
장점
① 개발자와 사용자 사이의 의사소통을 원활하게 한다.
② 갑작스런 사용자의 요구를 수용할 수 있기 때문에, 사용자의 만족도를 높여준다.
③ 개발자에게 정확한 요구사항이 전달되어서 신뢰성있는 문서화가 가능
④ 소프트웨어의 생산성 향상, 개발비용 절감
⑤ 사용자의 참여로 소프트웨어의 품질이 사용자로부터 보증됨
⑥ 사용자의 훈련시간 감소
⑦ 개발초기에 만족감
⑧ 프로젝트의 관리가 용이
⑨ 유지보수 노력 및 비용의 감소
원형 작성을 위한 순서
① 원형 작성에 대한 타당성 검사
② 기본적인 요구사항을 확인하여 원형을 개발
③ 사용자와 함께 평가후 문제점을 추출, 보완
④ 더 이상 문제점이 없으면, 최종 시스템으로 변환
원형의 형태
- 이미 존재하는 프로그램 형태
- 문서화된 형태
- PC를 이용한 화면 입출력의 모형
- 임시로 작성하는 프로그램 형태 등
3) 나선형 모형(Spiral model)
나선형 모형이란?
- 폭포수 모형과 원형의 장점 +"위험분석(Risk Analysis)"
목적
- 시스템 개발시에 발생하는 위험을 관리, 최소화함
4단계
① 계획 수립 및 정의단계
- 요구사항 수집, 프로젝트 계획을 수립
- 성능, 기능을 비롯한 시스템의 목표와 제약조건을 규명, 평가
② 위험 분석 단계
- 목표에 자재되어 있는 위험을 분석
- 초기 요구사항에 근거하여 위험을 규명
- 프로젝트 진행여부를 결정
③ 개발 단계
- 시제품 개발, 최종 제품 개발
- 개발 모델을 결정(사용할 패러다임을 결정)
원형 : 사용자 인터페이스에 대한 위험이 고려되는 경우
폭포수 : 위험이 시스템 통합에 있는 경우
시뮬레이션 : 요구사항을 세분화하여 정의해야 하는 경우
④ 고객 평가
- 개발 결과에 대한 사용자의 평가
- 고객이 시스템 평가, 시스템의 수정을 요구
- 다음 시스템의 목표 및 요구사항에 반영되어 좀 더 안정적인 시스템 개발에 사용됨
특징
① 대규모의 시스템과 소프트웨어에 가장 적합한 현실적인 방법
② 각 단계마다의 평가에 따른 접근방법
개발자와 사용자가 위험을 이해, 위험에 대한 대응책을 제시해줌
-> 성과를 보면서 조금씩 투자하여 위험부담을 줄일 수 있는 이상적인 방법
③ 전개 단계마다 개발자가 위험 감소장치(risk reduction mechanism)로써 원형을 적용
문제점
① 모델 자체가 매우 복잡하여 프로젝트 자체를 어렵게 만들 가능성이 많다.
② 상업용 제품에는 적당하지 않다.
③ 새로운 접근방법 -> 충분한 검증을 거치지 않음
객체지향 소프트웨어 개발 방법론은 원형 패러다임과 나선형 패러다임의 점진적인
시스템 개발을 가능케 하는 기법
4) 4세대 기법
4GT(Fourth-Generation Techniques)
- 개발자가 상위단계(high level)에서 작성되어져야 할 소프트웨어의 특징만을 명시하면
CASE를 비롯한 자동화 도구를 이용하여 요구사항 명세서로부터 실행코드를 자동으로
생성
- 4GL(4th-Generation Language)
(3) 시스템 분석가의 역할
1) 시스템 분석
무엇(what)을 요청해야 하는지를 고객에게 주지시켜서 고객의 필요사항을 식별
시스템 분석(System Analysis)의 역할
① 시스템 요소를 추출, 할당
- 기능 및 성능이 고객의 목표와 맞는지
- 설계단계에서의 제약조건
- 하드웨어, 소프트웨어 개발도구, 자료구조 등
② 요구된 소프트웨어의 개발범위, 기능을 정의
- 빨리, 정확히, 경제적, 사용이 용이하도록
③ 개발 시스템의 관련자의 희망 기능 및 성능을 식별, 영역을 한정시켜 줌
시스템 분석의 목적
① 고객의 필요사항을 식별
② 타당성을 위해 시스템 개념을 평가
③ 경제적이고 기술적인 분석을 수행
④ 기능을 하드웨어, 소프트웨어, 인간, 데이터베이스와 다른 시스템 요소에 할당
⑤ 비용과 일정 제약들을 설정
⑥ 시스템 정의를 생성
타당성 검토
① 경제적 타당성
- 개발비용에 대한 평가
- 개발한 시스템의 최종 수입이나 이윤과 개발비용과의 손익계산에 대한 평가
② 기술적 타당성
- 개발위험 : 분석시에 발견한 제약조건 내에서 필요한 기능과 성능이 성취될 수
있는가
- 자원 가용성 : 경제력있는 기술진을 이용할 수 있는가, 필요한 자원(H/W, S/W)을 이용할 수 있는가
- 기술 : 관련된 기술이 발전했는가
③ 법적 타당성
- 시스템 개발시에 나올 수 있는 어떠한 위반, 침해, 법규 들의 결정
④ 대체 방안
- 시스템 개발시의 접근방법의 평가
2) 시스템 분석가와 프로그래머
시스템 분석가
- 시스템 개발을 위한 문제의 제기에 대한 제안서를 검토, 개발의 타당성 평가, 개발에
필요한 인력, 비용, 시간을 산정, 하드웨어 자원과 필요한 최신기술을 확보할 계획
수립과 실행능력이 있어야 한다.
- 자료수집을 위한 사용자, 경영자, 설계자와 프로그래머와의 대화를 원만하게 진행할
수 있는 의사소통기술이 필요
- 시스템의 분석과 설계, 보안, 구현 및 결과에 대한 문서화 담당자의 통솔 책임
프로그래머
- 분석 및 설계자료를 토대로 프로그램을 작성하는 사람
- 프로그램의 오류를 발견, 수정
- 작성된 프로그램의 테스트를 수행하여 요구하는 작업이 이루어지는 지 확인.
거쳐서 보다 생산적이고, 정확한 시스템을 개발하는 기술
- 소프트웨어의 요구사항을 명시하기 위한 도구(mechanism)의 역할
목적
- 사용자와 개발자 사이의 신속한 feedback을 제공
- 시스템 개발시에 사용자의 참여를 유도하여 개발자와 사용자 사이의 이해를 높인다.
요구사항을 명확히, 시스템의 수행업무, 기능을 포함
특성
- 인간과 기계의 상호작용에 의한 최종 시스템이 어떻게 동작되는지를 사용자에게 이해
시키기 위한 형태
- 소프트웨어에서 요구되는 기능과 성능을 문서화에 의한 것이 아니라, 물리적인 형태로
확인시켜 주는 모델
- 개발중에 기능의 일부 또는 전체를 수행하면서, 사용자의 요구를 확인, 반영할 수 있는
빨리 개발된 미완성 시스템
문제점
① 사용자는 시스템 전체를 보는 것이 아니라 일부분의 모형을 모게 됨
② 개발자는 서둘러 원형을 만들기 위해, 실제 시스템 외에 당장 사용가능한 모형
(임시적 OS, tool사용)을 만들어서 이중 작업이 될 수 있다.
장점
① 개발자와 사용자 사이의 의사소통을 원활하게 한다.
② 갑작스런 사용자의 요구를 수용할 수 있기 때문에, 사용자의 만족도를 높여준다.
③ 개발자에게 정확한 요구사항이 전달되어서 신뢰성있는 문서화가 가능
④ 소프트웨어의 생산성 향상, 개발비용 절감
⑤ 사용자의 참여로 소프트웨어의 품질이 사용자로부터 보증됨
⑥ 사용자의 훈련시간 감소
⑦ 개발초기에 만족감
⑧ 프로젝트의 관리가 용이
⑨ 유지보수 노력 및 비용의 감소
원형 작성을 위한 순서
① 원형 작성에 대한 타당성 검사
② 기본적인 요구사항을 확인하여 원형을 개발
③ 사용자와 함께 평가후 문제점을 추출, 보완
④ 더 이상 문제점이 없으면, 최종 시스템으로 변환
원형의 형태
- 이미 존재하는 프로그램 형태
- 문서화된 형태
- PC를 이용한 화면 입출력의 모형
- 임시로 작성하는 프로그램 형태 등
3) 나선형 모형(Spiral model)
나선형 모형이란?
- 폭포수 모형과 원형의 장점 +"위험분석(Risk Analysis)"
목적
- 시스템 개발시에 발생하는 위험을 관리, 최소화함
4단계
① 계획 수립 및 정의단계
- 요구사항 수집, 프로젝트 계획을 수립
- 성능, 기능을 비롯한 시스템의 목표와 제약조건을 규명, 평가
② 위험 분석 단계
- 목표에 자재되어 있는 위험을 분석
- 초기 요구사항에 근거하여 위험을 규명
- 프로젝트 진행여부를 결정
③ 개발 단계
- 시제품 개발, 최종 제품 개발
- 개발 모델을 결정(사용할 패러다임을 결정)
원형 : 사용자 인터페이스에 대한 위험이 고려되는 경우
폭포수 : 위험이 시스템 통합에 있는 경우
시뮬레이션 : 요구사항을 세분화하여 정의해야 하는 경우
④ 고객 평가
- 개발 결과에 대한 사용자의 평가
- 고객이 시스템 평가, 시스템의 수정을 요구
- 다음 시스템의 목표 및 요구사항에 반영되어 좀 더 안정적인 시스템 개발에 사용됨
특징
① 대규모의 시스템과 소프트웨어에 가장 적합한 현실적인 방법
② 각 단계마다의 평가에 따른 접근방법
개발자와 사용자가 위험을 이해, 위험에 대한 대응책을 제시해줌
-> 성과를 보면서 조금씩 투자하여 위험부담을 줄일 수 있는 이상적인 방법
③ 전개 단계마다 개발자가 위험 감소장치(risk reduction mechanism)로써 원형을 적용
문제점
① 모델 자체가 매우 복잡하여 프로젝트 자체를 어렵게 만들 가능성이 많다.
② 상업용 제품에는 적당하지 않다.
③ 새로운 접근방법 -> 충분한 검증을 거치지 않음
객체지향 소프트웨어 개발 방법론은 원형 패러다임과 나선형 패러다임의 점진적인
시스템 개발을 가능케 하는 기법
4) 4세대 기법
4GT(Fourth-Generation Techniques)
- 개발자가 상위단계(high level)에서 작성되어져야 할 소프트웨어의 특징만을 명시하면
CASE를 비롯한 자동화 도구를 이용하여 요구사항 명세서로부터 실행코드를 자동으로
생성
- 4GL(4th-Generation Language)
(3) 시스템 분석가의 역할
1) 시스템 분석
무엇(what)을 요청해야 하는지를 고객에게 주지시켜서 고객의 필요사항을 식별
시스템 분석(System Analysis)의 역할
① 시스템 요소를 추출, 할당
- 기능 및 성능이 고객의 목표와 맞는지
- 설계단계에서의 제약조건
- 하드웨어, 소프트웨어 개발도구, 자료구조 등
② 요구된 소프트웨어의 개발범위, 기능을 정의
- 빨리, 정확히, 경제적, 사용이 용이하도록
③ 개발 시스템의 관련자의 희망 기능 및 성능을 식별, 영역을 한정시켜 줌
시스템 분석의 목적
① 고객의 필요사항을 식별
② 타당성을 위해 시스템 개념을 평가
③ 경제적이고 기술적인 분석을 수행
④ 기능을 하드웨어, 소프트웨어, 인간, 데이터베이스와 다른 시스템 요소에 할당
⑤ 비용과 일정 제약들을 설정
⑥ 시스템 정의를 생성
타당성 검토
① 경제적 타당성
- 개발비용에 대한 평가
- 개발한 시스템의 최종 수입이나 이윤과 개발비용과의 손익계산에 대한 평가
② 기술적 타당성
- 개발위험 : 분석시에 발견한 제약조건 내에서 필요한 기능과 성능이 성취될 수
있는가
- 자원 가용성 : 경제력있는 기술진을 이용할 수 있는가, 필요한 자원(H/W, S/W)을 이용할 수 있는가
- 기술 : 관련된 기술이 발전했는가
③ 법적 타당성
- 시스템 개발시에 나올 수 있는 어떠한 위반, 침해, 법규 들의 결정
④ 대체 방안
- 시스템 개발시의 접근방법의 평가
2) 시스템 분석가와 프로그래머
시스템 분석가
- 시스템 개발을 위한 문제의 제기에 대한 제안서를 검토, 개발의 타당성 평가, 개발에
필요한 인력, 비용, 시간을 산정, 하드웨어 자원과 필요한 최신기술을 확보할 계획
수립과 실행능력이 있어야 한다.
- 자료수집을 위한 사용자, 경영자, 설계자와 프로그래머와의 대화를 원만하게 진행할
수 있는 의사소통기술이 필요
- 시스템의 분석과 설계, 보안, 구현 및 결과에 대한 문서화 담당자의 통솔 책임
프로그래머
- 분석 및 설계자료를 토대로 프로그램을 작성하는 사람
- 프로그램의 오류를 발견, 수정
- 작성된 프로그램의 테스트를 수행하여 요구하는 작업이 이루어지는 지 확인.
소개글