1. 학습 목표
- 소프트웨어 개발 방법론의 개념을 설명할 수 있다.
- 소프트웨어 개발 생명주기의 개요를 설명할 수 있다.
- 소프트웨어 개발 생명주기의 일반적 공정과정을 설명할 수 있다.
2. 학습 내용
소프트웨어 개발 방법론의 개요
소프트웨어 공학 패러다임
- 패러다임 : 사물을 바라보는 관점, 기본틀, 접근방법, 스타일 등을 의미함
- 소프트웨어 공학 패러다임 : 소프트웨어 개발 시 고려해야 하는 개발방법, 개발환경, 개발관리 등에 대한 이론적인 체계나 접근 방법
소프트웨어의 특징에 따라 적절한 소프트웨어 공학 패러다임을 적용하는 것이 필요함
- 초창기의 소프트웨어 개발 시 기존 건축 공학의 방법론을 도입함
- 개발 단계에 대한 명확성을 얻고 소프트웨어 프로젝트 관리를 용이하게 함
소프트웨어 개발 시 고려해야 하는 내용
소프트웨어 개발은 개발방법, 개발환경, 개발관리 등에 따라 다양한 모습을 나타냄
- 소프트웨어 개발방법
- 소프트웨어를 어떻게 만들 것인가를 결정하는 기술적인 요소를 제시
- 프로젝트에 대한 계획과 추정, 요구사항 분석, 코딩 등 수행되어야 할 과제를 포함
- 소프트웨어 개발 환경
- 개발 방법론을 지원해 주기 위해 필요한
CASE(Computer-Aided-Software-Engineering),
DBMS(Database Management System) 등을 포함
- 개발 방법론을 지원해 주기 위해 필요한
- 소프트웨어 개발관리
- 소프트웨어 개발방법과 개발환경을 묶어 시스템을 효율적으로 적시에 개발할 수 있도록 공정 과정과 절차를 제시함
소프트웨어 개발 방법론
소프트웨어 개발, 유지보수 등에 필요한 여러가지 일들의 수행 방법과 이러한 일들을 효율적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
많이 사용되고 있는 4가지 소프트웨어 공학 패러다임으로는
- 폭포수 모형 (waterfall model)
- 원형 모형 (prototyping model)
- 나선형 모형 (spiral model)
- 4세대 기법 (4th generation techniques)
등이 있다.
소프트웨어 공학이 다루는 일반적인 주제
분야 | 의미 | 사례 |
방법 (method) | 소프트웨어 제작에 사용하는 기법이나 절차 | • 구조적 분석, 설계 방법 • 객체지향 분석, 설계 방법 |
도구 (tool) | 자동화된 시스템 | • 설계 도구 • 프로그래밍 도구 • 테스트 도구 |
프로세스 (process) | 도구와 기법을 사용하여 작업하는 순서 | • unified process • eXtreme programming |
패러다임 (paradigm) | 접근 방법, 스타일 | • 구조적 방법론 • 객체지향 방법론 |
소프트웨어 개발 생명주기
정의
요구사항 정의 → 소프트웨어 구현 → 유지보수
- 소프트웨어 개발 단계와 각 단계별 주요 활동, 활동 결과에 대한 산출물로 표현할 수 있음
- 소프트웨어 패러다임, 소프트웨어 수명주기, 소프트웨어 라이프사이클 등 다양한 명칭으로 불리기도 함
역할
- 프로젝트 비용산정과 개발계획을 수립할 수 있는 기본 골격이 됨
- 용어 및 기술의 표준화를 가능하게 함
- 문서화가 충실한 프로젝트 관리를 가능하게 함
- 여러 소프트웨어 간에 상호 일관성을 유지하게 함
- 프로젝트 진행 방향을 명확하게 파악하게 함
소프트웨어 개발 생명주기의 일반적 공정과정
타당성 검토 및 개발계획 → 요구사항 분석 → 설계 → 구현 → 테스트 및 유지보수
- 타당성 검토 및 개발계획
- 개발할 소프트웨어가 법적, 경제적, 기술적으로 실현 가능성이 있는지 조사함
- 타당한 검토단계에서 실현 가능성이 있는 경우 시작함
- 요구사항 분석
- 사용자의 관점에서 시스템의 요구사항을 모으는 것
- 업무 분석으로 불려짐
- 고객의 요구가 나오게 된 원인, 배경, 환경 등에 대한 분석을 포함함
- 설계
- 요구사항 분석과정에서 모아진 요구사항을 설계도면에 옮기는 것
- 서브시스템들로 이루어지는 시스템 구조를 결정하고, 서브시스템들을 하드웨어 및 소프트웨어 등의 구성요소들에게 할당함
- 구현
- 설계의 결과를 사용자가 이용할 수 있는 모습으로 변환하는 것
- 시스템의 기능이 수행 가능한 모습으로 나타납
- 프로그래밍 또는 코딩이라고 부름
- 프로그래밍의 결과 : 컴퓨터 프로그램
- 소프트웨어의 경우 설계가 제대로 이루어지면 시스템 구현은 상대적으로 단순하고, 기계적인 과정이 되어 효율적임
- 테스트
- 소프트웨어 제품의 오류를 발견하고, 수정하는 과정
- 우수한 품질의 제품을 얻기 위해서는 제품이 개발되는 공정과정마다 품질 보증을 위한 절차를 따라야 함
- 공식적인 검토회 등을 통하여 잘못된 것을 걸러내는 작업이 수행되어야만 함
- 품질보증 활동의 중요한 일부분이며, 그 임무는 사용자 요구사항, 설계, 구현의 전 과정에 대한 최정점검을 포함함
- 유지보수
- 사용중 발생하는 여러 변경사항에 대해 적응하는 활동이며, 변화에 대비하는 과정
'코딩딩 > CS' 카테고리의 다른 글
소프트웨어 프로젝트 관리의 개요 (0) | 2023.09.16 |
---|---|
소프트웨어 개발 생명주기 모형의 개요 (1) | 2023.09.09 |
시스템 공학 (0) | 2023.08.30 |
[CS50] 모두를 위한 컴퓨터 과학 Ch.03 (0) | 2023.05.20 |
[CS50] 모두를 위한 컴퓨터 과학 Ch.02 (0) | 2023.05.17 |
1. 학습 목표
- 소프트웨어 개발 방법론의 개념을 설명할 수 있다.
- 소프트웨어 개발 생명주기의 개요를 설명할 수 있다.
- 소프트웨어 개발 생명주기의 일반적 공정과정을 설명할 수 있다.
2. 학습 내용
소프트웨어 개발 방법론의 개요
소프트웨어 공학 패러다임
- 패러다임 : 사물을 바라보는 관점, 기본틀, 접근방법, 스타일 등을 의미함
- 소프트웨어 공학 패러다임 : 소프트웨어 개발 시 고려해야 하는 개발방법, 개발환경, 개발관리 등에 대한 이론적인 체계나 접근 방법
소프트웨어의 특징에 따라 적절한 소프트웨어 공학 패러다임을 적용하는 것이 필요함
- 초창기의 소프트웨어 개발 시 기존 건축 공학의 방법론을 도입함
- 개발 단계에 대한 명확성을 얻고 소프트웨어 프로젝트 관리를 용이하게 함
소프트웨어 개발 시 고려해야 하는 내용
소프트웨어 개발은 개발방법, 개발환경, 개발관리 등에 따라 다양한 모습을 나타냄
- 소프트웨어 개발방법
- 소프트웨어를 어떻게 만들 것인가를 결정하는 기술적인 요소를 제시
- 프로젝트에 대한 계획과 추정, 요구사항 분석, 코딩 등 수행되어야 할 과제를 포함
- 소프트웨어 개발 환경
- 개발 방법론을 지원해 주기 위해 필요한
CASE(Computer-Aided-Software-Engineering),
DBMS(Database Management System) 등을 포함
- 개발 방법론을 지원해 주기 위해 필요한
- 소프트웨어 개발관리
- 소프트웨어 개발방법과 개발환경을 묶어 시스템을 효율적으로 적시에 개발할 수 있도록 공정 과정과 절차를 제시함
소프트웨어 개발 방법론
소프트웨어 개발, 유지보수 등에 필요한 여러가지 일들의 수행 방법과 이러한 일들을 효율적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
많이 사용되고 있는 4가지 소프트웨어 공학 패러다임으로는
- 폭포수 모형 (waterfall model)
- 원형 모형 (prototyping model)
- 나선형 모형 (spiral model)
- 4세대 기법 (4th generation techniques)
등이 있다.
소프트웨어 공학이 다루는 일반적인 주제
분야 | 의미 | 사례 |
방법 (method) | 소프트웨어 제작에 사용하는 기법이나 절차 | • 구조적 분석, 설계 방법 • 객체지향 분석, 설계 방법 |
도구 (tool) | 자동화된 시스템 | • 설계 도구 • 프로그래밍 도구 • 테스트 도구 |
프로세스 (process) | 도구와 기법을 사용하여 작업하는 순서 | • unified process • eXtreme programming |
패러다임 (paradigm) | 접근 방법, 스타일 | • 구조적 방법론 • 객체지향 방법론 |
소프트웨어 개발 생명주기
정의
요구사항 정의 → 소프트웨어 구현 → 유지보수
- 소프트웨어 개발 단계와 각 단계별 주요 활동, 활동 결과에 대한 산출물로 표현할 수 있음
- 소프트웨어 패러다임, 소프트웨어 수명주기, 소프트웨어 라이프사이클 등 다양한 명칭으로 불리기도 함
역할
- 프로젝트 비용산정과 개발계획을 수립할 수 있는 기본 골격이 됨
- 용어 및 기술의 표준화를 가능하게 함
- 문서화가 충실한 프로젝트 관리를 가능하게 함
- 여러 소프트웨어 간에 상호 일관성을 유지하게 함
- 프로젝트 진행 방향을 명확하게 파악하게 함
소프트웨어 개발 생명주기의 일반적 공정과정
타당성 검토 및 개발계획 → 요구사항 분석 → 설계 → 구현 → 테스트 및 유지보수
- 타당성 검토 및 개발계획
- 개발할 소프트웨어가 법적, 경제적, 기술적으로 실현 가능성이 있는지 조사함
- 타당한 검토단계에서 실현 가능성이 있는 경우 시작함
- 요구사항 분석
- 사용자의 관점에서 시스템의 요구사항을 모으는 것
- 업무 분석으로 불려짐
- 고객의 요구가 나오게 된 원인, 배경, 환경 등에 대한 분석을 포함함
- 설계
- 요구사항 분석과정에서 모아진 요구사항을 설계도면에 옮기는 것
- 서브시스템들로 이루어지는 시스템 구조를 결정하고, 서브시스템들을 하드웨어 및 소프트웨어 등의 구성요소들에게 할당함
- 구현
- 설계의 결과를 사용자가 이용할 수 있는 모습으로 변환하는 것
- 시스템의 기능이 수행 가능한 모습으로 나타납
- 프로그래밍 또는 코딩이라고 부름
- 프로그래밍의 결과 : 컴퓨터 프로그램
- 소프트웨어의 경우 설계가 제대로 이루어지면 시스템 구현은 상대적으로 단순하고, 기계적인 과정이 되어 효율적임
- 테스트
- 소프트웨어 제품의 오류를 발견하고, 수정하는 과정
- 우수한 품질의 제품을 얻기 위해서는 제품이 개발되는 공정과정마다 품질 보증을 위한 절차를 따라야 함
- 공식적인 검토회 등을 통하여 잘못된 것을 걸러내는 작업이 수행되어야만 함
- 품질보증 활동의 중요한 일부분이며, 그 임무는 사용자 요구사항, 설계, 구현의 전 과정에 대한 최정점검을 포함함
- 유지보수
- 사용중 발생하는 여러 변경사항에 대해 적응하는 활동이며, 변화에 대비하는 과정
'코딩딩 > CS' 카테고리의 다른 글
소프트웨어 프로젝트 관리의 개요 (0) | 2023.09.16 |
---|---|
소프트웨어 개발 생명주기 모형의 개요 (1) | 2023.09.09 |
시스템 공학 (0) | 2023.08.30 |
[CS50] 모두를 위한 컴퓨터 과학 Ch.03 (0) | 2023.05.20 |
[CS50] 모두를 위한 컴퓨터 과학 Ch.02 (0) | 2023.05.17 |