sw 개발은 서비스이다. (서비스 = 유지 보수)
sw 생산
프로그램은 형식언어로 표현된 지적 노동의 결과물이다.
. 생산성 일정 x
. 논리적인 요소로 구성
. 지속적인 유지 보수 필요
sw 생산 공장이라면
찍어내는 생산이 아니고 구축을 하는 것이다.
sw 특징
. 비가시성
코드 안 보임 > 코드 보이게 만들어
. 복잡성
복잡하다 > 단순하게 만들어라
. 변경성
프로그램 지속적 수정 > 변경이 쉽도록 작성해라
. 복제 가능
코드는 복사가 쉽다 >
.응용에 의존
다른 이의 코드 사용 >
H/W 보다 S/W 개발이 어려운 2유
기술은 당연하게 잘 알아야 하면서 동시에 사람도 잘 알아야 한다.
사람을 이해하는 것이 쉽지 않죠
인문학과 공학의 만남
(사람의 마음을 이해)
하이 기술이 아니라 하이 터치!!
하이 터치가 보이지 않는 기술적 혁신 리드
. 사람을 이해해야(인문학) 탁월한 주제를 발굴
EX) 카카오톡, 배민, 당근마켓 등
시스템적 사고
-시스템은 유기적으로 상호작용하는 요소의 모임
S/W 역시 하나의 시스템이며 여러가지 구성요소가 있다
-S/W 역시 전체 시스템의 하나의 구성요소가 되어야 한다.
EX)오디오 시스템
우리가 무언가 문제를 해결하려 할 때 시스템적 사고를 해야 한다.
S/W 공정의 문제점
. 비용 초과 및 일정 지연
. 개발자의 역랑에 따라 개발의 성패가 좌우
. 품질에 대한 정량적 개념이 없어 신뢰성 부족

55년도라면
S/W 개발비용 * 2
H/W 개발비용 / 2
로 개발비용 낮추고
95년도 라면
유지 보수 비용
S/W 개발 비용을 낮추면
개발 비용 낮춤
프로그램 작성 시 H/W 최적화? 중요하지 않다
-> 다루기 쉽고 고치기 쉽게!
☆ 속도를 고려? NO 신경 쓸 필요 없다
S/W 개발했는데 사용되지 않는 이유
-> 유지 보수 비용 !
개발비용은 90으로 잡고 유지 보수 0 으로 ㅋ
유지 보수(입력, 출력, 결과 분석)
S/W 예술 X -> 공학 O
S/W 공정의 문제점의 원인 한 번 더
. 비용 초과 및 일정 지연
. 개발자의 역량에 따라 개발의 성패가 좌우
. 품질에 대한 정량적 개념이 없어 신뢰성 부족
질 좋은 SW를 경제적으로 생산하기 위하여 공학, 과학 및 수학적 원리와 방법을 적용하는 것
☆ 가장 중요한 목표
. 품질
. 생산성
. SW 품질
S/W 대하는 입장에 따라 상대적으로 품질에 대한 관점이 달라진다.

품질의 중요성
.정확성 - 정확한 동작이 가능한지
.신뢰성 - 제대로 작동하는지
.강인성 - Fault Tolerance (장애 허용) -> 안정성
-> 하나의 컴포넌트가 falt가 발생해도 시스템 운영에 문제 생기지 않게
-> 고장이 나도 그것을 받아들이는 것 (문제 발생 x)
.성능 - 수행 속도, 시간 복잡성
.사용 용의성 - 시스템을 친근하게 느낄 수 있는 성질
.재사용성
.적응성
. S/W 생산성
1. 도입
2. 반복
-> 복사, 적용 / 성공 사레 반복
정의
-> 커진 프로그램 / 어느 정도 표준을 정하자! -> 관리 프로세스 정의
Managed
-> 수량화하여 평가하고 관리
Optimizing
-> 시간이 지나도 완벽 x -> 변화에 따라 적용 / 지속적 피드백 통해 최신 기술 적용
ex) sony가 5단계를 적용 안 해서 ㅋ
☆환경 변화에 밀접하게 변화해야 함 (Agile)
생산성에 영향을 미치는 요소
. 의사소통
. 프로그램 성격
. 프로그래머의 역량
. 관리
. 팀의 프로젝트 경험
.의사소통 스킬
ex) 다윈의 진화론 -> 적자생존 -> 적응하는 자가 살아남는다
발주자와 개발자의 의사소통이 중요하다!
.Mythical man - month (man- month : 작업의 크기)
개발자들 사이의 의사소통 중요성
중도에 투입된 개발자들은 생산성 증진 못함

해결 방안
-> 문서화 (짧고 간결하게) / 표준화 / 가능하면 짧게 의사소통 할 것
☆자주 만나야 한다!

.프로그래머의 역량
s/w 가이드라인, 방법론은 평균 이하의 개발자들에게 생산성을 높인다.
. 프로젝트 관리 기술
-> 변화를 찾아서 적용
. 공학적 접근 방법을 통한 sw 개발의 중요성 -> 생산성, 품질이 목표!
. 의사소통의 중요성 -> 질과 양보다 주기적인 소통이 필요
. sw 공학의 원리와 철학은 모든 분야 적용
. 다양한 업무가 존재!