이전 포스팅
[소프트웨어 공학] 소개
이번 포스팅에서 다루는 내용 소프트웨어 공학, 소프트웨어, 소프트웨어 개발 작업, 소프트웨어 공학의 접근방법, 소프트웨어 공학의 주제, SWEBOK 소프트웨어 공학에 대해 들어가며 간단하게 ...
thisisphysis.tistory.com
이번 포스팅에서 다루는 내용
소프트웨어 생명주기, 프로세스, 프로세스 종류, 프로세스 정의, 좋은 프로세스 특성
1️⃣ 소프트웨어 생명주기
software life cycle
소프트웨어도 개발되어 계속해서 변경되고 새로운 기능이 추가되고 쓰이다가 마침내는 소멸.
소프트웨어 생명주기: 요구분석 -> 설계 -> 구현 -> 테스팅 -> 유지보수
요구분석: 무엇을 원하는지 요구를 정의 (기능)
설계: 소프트웨어 시스템을 구성하는 컴포넌트, 인터페이스 정의
구현: 프로그래밍
테스팅: 통합하기 전 모듈 단의의 테스트 -> 전체 통합하여 테스트
유지보수: 에러 수정 및 기능 추가 등
2️⃣ 프로세스
-> 프로세스가 무엇인지, 어느 종류가 있는지, 어떻게 정의하는지, 좋은 프로세스는 무엇인지에 대해서 다룬다
프로세스는 소프트웨어 시스템을 구축하기 위하여 수행되는 작업들의 단계
엄밀하게 말하면 프로세스는 ...
프로세스 = 소프트웨어 공학 관련 + 소프트웨어 공학과 관련 없는 것(비지니스 프로세스, 훈련 프로세스 등)
-> 프로세스에는 소프트웨어 개발에 영향을 주지만, 직접적인 관련이 없는 것들도 있음
소프트웨어 공학에서 관심있는 프로세스는 ...
소프트웨어 프로세스 = 소프트웨어 개발에 대한 기술적, 관리적 이슈를 다루는 작업
-> 소프트웨어 개발에 직접 관련된 (소프트웨어 공학 관련) 프로세스
-> 프로세스는 여러 컴포넌트 프로세스(부프로세스)로 구성됨 (여러 종류의 프로세스가 있음)
프로세스 명세
: 프로젝트에서 수행하여야 하는 작업과 수행 순서를 정의한 것
실행 프로세스
: 실제 프로젝트 할 때 작업한 순서
-> 프로세스 명세, 실행 프로세스 둘 다 프로세스라고 부른다
프로세스 모델
: 일반적인 프로세스를 기술한 것. 프로젝트를 위한 작업 단계와 순서, 제약사항, 조건 등을 정의한 것.
-> 낮은 비용, 높은 품질, 일정 단축
-> 프로젝트를 위하여 알맞을 프로세스를 개발하기 위한 일반적인 가이드라인
프로세스는 프로젝트 별로 (A를 어느정도 기간 동안 하고, 그 다음 B를 어느정도 기간 동안 하고, C ... )
프로세스 모델은 일반화 (A 다음 B를 하고 다음 C를 하고, ..)
2️⃣-1) 프로세스 종류
- 프로덕트 엔지니어링 프로세스 : 프로젝트와 프로덕트에 초점
- 개발 프로세스 by 프로그래머, 설계자, 테스터
- 가장 핵심.
- 개발 작업 + 품질 보증
- 관리 프로세스 by 프로젝트 관리자
- 비용, 품질, 일정 등을 위함.
- 작업 계획, 모니터링
- 형상 관리 프로세스 by 형상 관리자
- 제품 일관성 유지를 위함
- 변경 관리, 버전 관리
- 개발 프로세스 by 프로그래머, 설계자, 테스터
- 프로세스 관리 프로세스 : 프로세스에 초점
- by 프로세스 관리 그룹
- 소프트웨어 프로세스를 동적으로 수정함
- 새로운 기술과 도구를 도입하며 관리
2️⃣-2) 프로세스 정의
어떻게 프로세스를 정의할까
(1) 작업 결과와 검증 조건을 명확하게 정의
프로젝트는 여러가지 단계로 이루어짐.
프로세스는 비용을 절약하기 위해서 각 단계에 존재하는 결함을 찾아내는 데 초점을 둠.
-> 각 단계의 결과(work product)를 명확히 정의하고 실제 결과를 검증해야 함
-> 특정 단계의 어떤 작업을 수행하는지 언급해야 함
(2) 진입 조건, 출구 조건 정의
각 단계가 언제 시작되고 끝내야 하는지를 정해야 함 .
진입 조건: 그 단계의 작업을 시작하기 위하여 만족해야 하는 조건
출구 조건: 그 단계의 작업을 종료하기 위하여 만족해야 하는 조건
(+) 프로젝트 관리를 위한 정보
프로세스의 상태를 나타내기 위한 정보를 생성하여 관리 프로세스에 제공해야 함.
개발 프로세스의 정의는
-> 각 단계의 집입 조건과 출구 조건을 정의하고, 단계가 끝나면 작업 결과 검증을 위한 검증 조건을 정의.
추가로 프로세스 관리를 위한 정보를 생성해야함.
2️⃣-3) 좋은 프로세스 특성
- 예측 가능성
- 비용 예측: 유사한 프로젝트, 같은 프로세스 -> 비슷한 비용
- 품질 예측: 프로세스에 의해 결정. 과거 경험으로부터 품질, 생산성 등을 예측
- 테스트와 유지보수 용이성
- 테스팅: 개발에서 가장 많은 노력이 소요됨
- 설계/코딩 노력을 줄이기 보다 테스트/유지보수 노력을 낮추는 게 유리
- 변경 용이성
- 소프트웨어 변경은 항상 -> 변경을 쉽게 다룰 수 있는 프로세스
- 결함 제거 용이성
- 개발의 모든 단계에서 오류 발생
- 오류를 늦게 발견할수록 노력 많이 필요 -> 오류 발생한 단계에서 검증&수정되어야 함
'Computer Science > Software Engineering' 카테고리의 다른 글
[소프트웨어공학] 품질 (0) | 2023.12.15 |
---|---|
[소프트웨어공학] 테스팅 (1) | 2023.12.15 |
[소프트웨어공학] UI 설계 (0) | 2023.12.15 |
[소프트웨어 공학] 개발 프로세스 모델 (1) | 2023.10.14 |
[소프트웨어 공학] 소개 (2) | 2023.09.23 |