주요 내용 요약
- SW 공학에서 품질과 생산성이 매우 중요하다. 즉, 보안 (신뢰성과 안정성)이 중요하다
- sw공학에서는 품질과 생산성을 위해 단계적 절차를 중시하는데, 프로세스는 '절차'를 의미하는 개념이다.
- 프로세스 필수 사항은 작업결과, 검증조건, 작업 방법, 진입 조건, 출구 조건이라는 것을 기억하자
👑 SW 공학 주요 목적, 품질과 생산성
-
sw공학: 눈에 보이지 않는 것을 사용자에게 이익이 되는 방향으로 과학적 원칙을 설계하고 응용하는 것.
-> 유지보수 단계에서 에러를 해결하는 비용>>> 요구 분석, 설계 단계 에러 해결 비용
-> 따라서 요구분석, 설계가 매우 중요하고, 그 각 단계 별로 보안적 요소를 적절히 해줘야 함 (신뢰성과 안정성)
-> 보안공학을 배우기에 앞서, sw공학을 먼저 배워야 함!
(보안 공학은 sw 공학에 보안적 요소 추가)
-
sw공학 주요 목적: 품질과 생산성
- 일관성과 재현성: 일관성있는 품질 수준을 유지하고, 개발하는 제품마다 같은 품질을 재현할 수 있어야 함
- 공학자: 품질 좋은 sw 개발을 할 수 있는 스킬을 지니고 있어야 함
👑 SW 공학 접근 방법
: 품질과 생산성을 위해 단계적인 접근이 필요하다
-> 품질과 생산성을 위해 인력, 기술, 프로세스의 균형 중요
👑 SW 공학 작업 종류
- 소프트웨어 개발 프로세스: 단계별로 접근 (품질과 생산성을 위해)
- 품질 보증: 모든 요구 조건이 들어갔는지..
- 프로젝트 관리: 제 시간에 되었는지.. 감독하고 관리
👑 프로세스의 정의, 필수사항
- 프로세스: 어떤 일을 하기 위한 특별한 방법으로 단계나 작업으로 구성됨
- 필수 사항:
1. 작업 결과, 검증 조건
2. 작업 방법
3. 진입 조건, 출구 조건
- 예측 가능성
- 테스팅과 유지보수 지원
- 변경 지원
- 결함 제거
👑 프로세스와 방법론
- 프로세스: 각 단계의 묶음의 '틀'대한 정의 (what) - 무엇을 할 지, 하나의 작업
- 방법론: 각 단계의 구현 방법 (how) - 각 단계의 작업을 어떤 형태로 해나 갈지
👑 프로세스 모델과 명세
- 프로세스 모델: 일반적인 것
- 프로세스 명세: 특화된 것 (개인, 회사에 맞춰서 customize되어 각 단계마다의 활동을 상세히 정의해놓은 것)
👑 프로세스 종류
- 프로세스에는 절차 뿐 아니라, 절차를 효율적으로 만들기 위한 프로세스도 포함
- 개발 프로세스: 개발과 품질 보증 작업
- 관리 프로세스: 품질과 같은 목표를 맞추기 위한 계획, 제어 작업
- 형상 관리 프로세스: 변경, 버전 관리- 제품의 일관성 유지
- 프로세스 관리 프로세스: 프로세스 자체를 관리하는 프로세스
👑 SW 생명 주기 (각 단계)
: 소프트웨어 개발에 대한 기술적, 관리적 이슈를 다루는 작업
-> sw가 만들어지기까지의 과정
- 프로세스는 여러 단계를 모아놓은 하나의 작업이라면, 프로세스 생명 주기는 그 단계를 의미함
- 계획: 비용, 기간, 인력, 예산 등을 정함(
2. 요구분석: 요구-시스템이 가져야할 능력과 조건/을 파악함-> 요구분석서
- 설계: 솔루션에 집중 (기능들 쪼개서 모듈 별로)
- 구현: 코딩 단계 (다른 이전, 이후 단계와 겹치기도 함)
- 테스팅: 품질 보증/ 단계 별로 테스트
- 유지보수: release 후, 이전 system data 옮기기/ 유지보수- 결함 고침, 새 기능 추가, 성능 추가
⭕ 나의 언어로 정리:
sw공학이란 보이지 않는 것을 보이는 형태로 사용자의 이익을 위해서 과학적인 지식을 설계하여 체계적으로 측정가능하게 만드는 것이다. 즉, 체계적으로 측정가능하게 눈에 보이게 만들어내는 것임!! 그런데, sw공학을 체계화하는 과정에서 그렇게 형태를 갖춰나가는 도중에 에러가 발생할 수 있다. 그런데, 그 에러는 초반에 발견할수록 비용이 적게 든다. 이를 위해서 체계화하는 과정에서 보안적 요소를 추가해줘야 한다. (품질과 생산성을 높여주기 위함인 것이다!!) 그런 품질과 생산성을 높여주기 위해 단계별로 체계화가 수행된다. 그를 프로세스 생명주기라고 하고, 프로세스는 하나의 작업을 의미하는데, 그 모델이 적용된 프로세스를 각 단계 별로 수행해나가는 것이다. 각 생명 주기의 단계는 계획-요구분석-설계-구현-테스팅과 유지보수의 단계로 이루어진다.