소프트웨어 시스템을 개발하는 데 드는 비용 중 프로그래밍에 드는 비용은 어느정도인가?
20, 30, 40, 50%
중간 사이즈의 소프트웨어 시스템을 개발할 때 한 프로그래머가 일년에 만드는 실행코드는 평균 몇 줄이나 될까?
5000줄 이하, 5000~10000줄, 10000~15000줄, 15000줄 이상
사용자에게 배달되는 소프트웨어 시스템의 실행코드 1000줄당 예상되는 오류의 개수?
4개 미만, 4~6개, 7~9개, 10개이상
사용자가 발견하는 소프트웨어 시스템의 오류는 어떤 것에 기인하는 경우가 많을까?
설계의 오류, 프로그래밍의 오류, 제안서상에서 사용자 요구사항에 대한 잘못된 이해, 테스팅의 오류
소프트웨어 시스템을 유지, 보수하는 데 드는 비용이 개발비용의 몇배?
0.5, 1, 1.5, 2
프로그램 개발 비용 : A (20%)
프로그래머의 생산성 : 5000줄 이하
프로그램의 오류 : 4개 미만
사용자가 발견하는 오류 : 설계의 오류, 제안서상에서 사용자 요구사항에 대한 잘못된 이해
개발 비용과 유지보수 비용 : 2배
Security by Design ⇒ Security Engineering
- Security by Design = 보안 내재화, 보안 공학
→ 보안공학? : 제품의 품질을 높이기위해 수학적으로 적합한 보안 분석과 설계를 소프트웨어 공학에 통합시키는 것
프로그래머와 엔지니어의 차이점?
Problem Solving
프로그래머는 번역가
같다. 실제로 필요한 시스템을 기계어로 바꿔주는것임
엔지니어는 아예 새로운 것을 창조
해내는 것을 말함
다루는 문제에 따라 또 접근방법이 달라짐
SW 공학 주요 목적 :
엔지니어링 작업에서는 비용, 일정, 품질과 같은 변수가 중요함
비용 : Man-Month로 측정 ( 인건비와 직결 )
일정: 짧은 time-to-market(기술의 급격한 발전에 따라 갈수록 짧아짐)
품질(품질도 어떤 것을 포함하는지 알아야한다.)
SW 공학의 접근방법(단계적인 접근방법이 필요)
SW엔지니어링 작업의 종류
단계적 개발 프로세스
프로세스란?
정의 : 어떤일을 하기 위한 특별한 방법으로 일반적으로 단계나 작업으로 구성됨
소프트웨어를 개발하는 과정, 즉 작업 순서
프로세스가 없는 개발 : 프로그래밍 → 만족할 때까지 수정 → 개선을 위한 아이디어 짜내기(좋지않음....)
프로세스와 방법론 비교
프로세스 : 소프트웨어를 개발하는데 필요한 작업을 정의-단계 전체를 통틀어 정의(WHAT)
방법론 : 각 단계마다 어떤 순서/어떤 방법을 쓸지 결정하는 방법(HOW)
소프트웨어 생명주기
요구분석 → 설계 → 구현 → 테스팅 → 유지보수
- 소프트웨어 개발에 대한 기술적, 관리적 이슈를 다루는 작업
→ 개발 모델별 컴포넌트 프로세스, 부프로세스 존재
→ 서로다른 목적
→ 서로 협력하여 전체 목적을 만족
소프트웨어 프로세스
이런 과정을 토대로 무엇을 만들어야할지 확립하고 진행하는 과정이 SW프로세스
프로세스 명세
프로세스 모델
프로세스 종류
형상 관리 프로세스 : 변경을 관리하여 제품의 일관성을 유지 (서비스 버전 관리)
프로세스 관리 프로세스 : “ 프로세스”도 변함→ 자체를 관리 → 프로세스 개선이 목적
프로세스 필수 사항 - 정의
바람직한 프로세스 특징
소프트웨어 공학과 유사한 작업들
계획
Why 단계
Concept 정립
ROI → Return on Investment
요구분석
💡 !!!! 주의 : 솔루션을 정하는 단계가 아님 → 오라클로 할래 자바로 할래 이런걸 정하는게 아님 주변 환경을 결정하는 단계라고 이해야해야함.
What 단계
SRS 요구분석서
구조설계
How 단계
결과물 : 설계서 (SD)
구현
통합과 테스트
설치와 유지보수
감사합니다.