개발과 유지보수 중 무엇이 더 중요하고 어디에 더 많은 시간이 소요될까?
답은 유지보수 이다
소프트웨어란?
컴퓨터 프로그램과 관련한 문서들을 말한다 ( 프로그램 + 문서들 )
- 좋은 소프트웨어란
고객이 요구한 기능과 성능을 충족시키며 신뢰할 수 있고 사용이 쉬운 소프트웨어를 말한다
소프트웨어 공학이란?
초기 구상 단계부터 운영과 유지보수까지 포함하는 소프트웨어 생산의 모든 관점과 관련한 공학적인 학문 분야
- 소프트웨어 명세화 , 소프트웨어 개발, 검증, 진화가 소프트웨어 공학 기본 활동에 포함된다
소프트웨어 공학 = 컴퓨터 과학? NO
- 컴퓨터 과학 : 이론, 기본
- 소프트웨어 공학 : 소프트웨어 개발, 인도하는 실무적인 내용
Generic products ( 범용 SW )
: 일단 만들고 고객들이 선택해서 사용하길 기다리는 소프트웨어 ( stand-alone systems )
: 개발자가 니즈, 특징을 정하여 사용자에 맞추지 않고 일반적으로 필요로 하는 기능을 넣어 만드는 SW
: 변화에 맞춰 빠르게 바꿀 수 있다
주도권이 '개발자'에게 있다
Customized products
: 고객의 니즈를 바탕으로 만들어지는 소프트웨어
주도권이 '고객'에게 있다
수용성 acceptability
사용자가 수용할 수 있어야한다
즉, 사용이 쉬워야하고 이해할 수 있어야하며, 사용자가 사용하는 다른 시스템과 호환되어야한다
확실성, 보안성 (dependability , security)
확실성 ] 신뢰성 ( 의도된 동작이 제대로 작동 ), 보안성 ( 시스템, 개인정보의 피해 x ) , 안전성 등 여러 특성들을 내포한다
- '확실성'이 보장된다
= 시스템에 장애가 발생하더라도 물리적, 경제적 피해를 야기하지 않는다
효율성 (efficiency)
시스템 자원을 낭비하면 안된다
유지보수성 (maintainability)
고객의 변화하는 니즈를 충족시킬 수 있도록 ( 진화할 수 있도록) 만들어져야한다.