이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 강력추천
소프트웨어 공학의 사실과 오해
우리가 미처 알지 못한
가격
15,000
10 13,500
YES포인트?
750원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

[ 차례 ]

1부. 55개 사실

1장. 관리
사람
사실 1. 소프트웨어 작업에서 가장 중요한 요소는 프로그래머의 자질이다.
사실 2. 최고의 프로그래머는 최하의 프로그래머보다 28배 더 뛰어나다.
사실 3. 지체된 프로젝트에 사람을 추가 투입하면 프로젝트가 더 늦어진다.
사실 4. 작업 환경은 생산성과 품질에 지대한 영향을 미친다.

도구와 기술
사실 5. 소프트웨어 업계에는 과대선전(도구와 기술에 대한)이 만연해 있다.
사실 6. 새로운 도구와 기술은 도입 초기에 생산성/품질저하를 초래한다.
사실 7. 소프트웨어 개발자는 도구에 대해 많은 말을 하지만, 별로 사용하지는 않는다.

추정
사실 8. 폭주하는 프로젝트의 가장 흔한 원인 두 가지 중 하나는 부정확한 추정이다.
사실 9. 소프트웨어 추정은 보통 부적절한 시기에 수행된다.
사실 10. 소프트웨어 추정은 보통 부적절한 사람들에 의해 수행된다.
사실 11. 프로젝트가 진행되면서 소프트웨어 추정을 수정하는 경우는 거의 없다.
사실 12. 소프트웨어 추정이 부정확한 것은 별로 놀라운 일이 아니다. 그러나 우리는 추정에 죽고 산다!
사실 13. 경영진과 프로그래머 사이에는 단절이 있다.
사실 14. 타당성 조사에 대한 대답은 항상 "타당하다" 이다.

재사용
사실 15. 소규모 재사용은 잘 해결된 문제다.
사실 16. 대규모 재사용은 여전히 해결되지 않은 어려운 문제다.
사실 17. 대규모 재사용은 서로 관련 있는 시스템 사이에서 가장 잘 적용된다.
사실 18. 재사용 가능 컴포넌트는 만들기가 3배 어렵고, 3곳에 적용해봐야 한다.
사실 19. 재사용된 코드를 수정하는 것은 특히 오류를 범하기 쉽다.
사실 20. 디자인 패턴 재사용은 코드 재사용 문제에 대한 해결책이다.

복잡성
사실 21. 문제의 복잡성이 25% 증가하면 솔루션의 복잡성은 100% 증가한다.
사실 22. 소프트웨어 작업의 80%가 지적인 작업이다. 그 중 상당부분이 창조적인 작업이다. 사무적인 일은 거의 없다.

2장. 생명주기
요구사항
사실 23. 폭주하는 프로젝트에서 가장 흔한 원인 두 가지 중 하나는 불안정한 요구사항이다.
사실 24. 요구사항의 오류는 생산 단계에서 수정하는데 가장 비용이 많이 든다.
사실 25. 누락된 요구사항은 가장 수정하기 힘든 오류이다.

설계
사실 26. 명시적 요구사항을 설계로 옮겨갈 때 "파생 요구사항"이 폭발적으로 증가한다.
사실 27. 소프트웨어 문제에 있어서 최적의 솔루션이 하나 존재하는 경우는 거의 없다.
사실 28. 설계는 복잡하고 반복적인 과정이다. 초기 설계 솔루션은 보통 잘못 되었거나, 최적이 아닌 경우가 많다.

코딩
사실 29. 설계자의 기본단위(primitive)와 프로그래머의 기본단위가 일치하는 경우는 거의 없다.
사실 30. COBOL은 별로 훌륭한 언어가 아니지만, (비즈니스 데이터 처리에 대해서는) 다른 언어도 마찬가지다.

오류 제거
사실 31. 오류 제거는 생명주기 중 가장 시간이 많이 소모되는 단계이다.

테스트
사실 32. 프로그래머가 완전하게 테스트했다고 믿는 소프트웨어도 보통은 로직 경로의55~60%만 테스트된 경우가 많다.
사실 33. 100% 테스트 커버리지도 결코 충분하지 않다.
사실 34. 테스트 도구는 꼭 필요하지만, 많은 경우 거의 사용되지 않는다.
사실 35. 특정 테스트 프로세스는 자동화할 수 있고, 또 자동화해야 한다. 그러나 자동화할 수 없는 테스트 작업도 많다.
사실 36. 프로그래머가 작성한 디버그 코드는 테스트 도구에 대한 중요 보완 수단이다.

검토와 검사
사실 37. 엄격한 검사는 첫 번째 테스트 케이스를 실행시키기도 전에 소프트웨어 제품에 포함된 오류의 90%까지 제거할 수 있다.
사실 38. 엄격한 검사도 테스트를 대체할 수는 없다.
사실 39. 출시 후 검토(회고라 부르는 사람들도 있다)는 중요하지만, 거의 실행되지 않는다.
사실 40. 검토는 기술적 측면과 사회학적 측면을 모두 가지는데, 어느 쪽도 무시하면 안 된다.

유지보수
사실 41. 유지보수는 보통 소프트웨어 비용의 40~80%를 차지한다. 따라서, 유지보수는 아마도 소프트웨어 생명주기중 가장 중요한 단계일 것이다.
사실 42. 유지보수 비용의 60%는 개선 작업에 소요되는 비용이다.
사실 43. 유지보수는 문제가 아니라 해결책이다.
사실 44. 유지보수에서 가장 어려운 작업은 기존 시스템을 이해하는 것이다.
사실 45. 더 좋은 소프트웨어 공학 기술로 개발하면 더 많은(더 적은 게 아니라) 유지보수가 필요하다.

3장. 품질
품질
사실 46. 품질은 속성의 집합이다.
사실 47. 품질은 사용자 만족, 요구사항 충족, 비용과 일정 목표 달성, 또는 신뢰성이 아니다.

신뢰성
사실 48. 대부분의 프로그래머가 흔히 범하는 오류가 있다.
사실 49. 오류는 뭉치는 경향이 있다.
사실 50. 소프트웨어 오류 제거에 있어 단 하나의 최상의 방법은 없다.
사실 51. 오류는 항상 남아있다. 심각한 오류를 제거하거나 최소화하는 것이 목표가 돼야 한다.

효율
사실 52. 효율은 훌륭한 코딩보다는 훌륭한 설계에 더 많은 영향을 받는다.
사실 53. 고급 언어 코드도 어셈블리어 코드의 90%에 가까운 효율을 낼 수 있다.
사실 54. 크기와 속도 사이에는 트레이드오프가 있다.

4장. 연구
사실 55. 많은 연구자들이 연구보다는 옹호에 치중한다.

2부. 5+5개의 오해
5장. 관리
오해 1. 측정할 수 없는 것은 관리할 수 없다.
오해 2. 소프트웨어 품질은 관리로 해결할 수 있다.

사람
오해 3. 프로그래밍은 비자아적이 될 수 있고, 또 되어야 한다.

도구와 기술
오해 4. 도구와 기술: 한 가지로 모든 문제를 해결할 수 있다.
오해 5. 소프트웨어 분야에는 더 많은 방법론이 필요하다.

추정
오해 6. 비용과 일정을 추정하기 위해서는 먼저 LOC를 추정해야 한다.

6장. 생명주기
테스트
오해 7. 랜덤 테스트 입력은 테스트를 최적화하는 좋은 방법이다.

검토
오해 8. "보는 눈이 많으면, 모든 버그는 그 깊이가 얕다."

유지보수
오해 9. 과거의 비용 데이터를 살펴봄으로써 미래의 유지보수 비용을 예측할 수 있고 시스템교체 결정을 내릴 수 있다.

7장. 교육
오해 10. 프로그래밍을 가르칠 때 프로그램을 어떻게 작성하는지를 보여주며 가르친다.

결론
찾아보기

저자 소개

저자 : 로버트 글래스(Robert L. Glass)
Computing Trends의 설립자. 그는 소프트웨어 공학, 컴퓨팅 실패에 대한 교훈에 대한 주제로 12권 이상의 책을 저술했고, 소프트웨어 공학의 선도적 저자로 신뢰받고 있다. 「The Software Practitioner」라는 뉴스레터를 발행해 소프트웨어 공학 관련 사건에 대한 발언도 놓치지 않고 있다.
역자 : 윤성준
성균관대학교 전기전자컴퓨터 공학부 대학원에서 사용자 인터페이스 분석, 설계에 관한 연구로 석사학위를 취득했고, ThinkFree(http://www.thinkfree.com)에서 ThinkFree 오피스에 사용되는 공통 모듈 및 GUI 컴포넌트, WebDAV 클라이언트/서버 등을 개발했다. 저서로 『Java 세상을 덮치는 Eclipse』(인사이트), 번역서로 『생각하는 프로그래밍』(인사이트), 『리팩토링』(대청미디어)가 있다. 현재는 LG CNS에 근무하고 있다.
역자 : 조홍진
성균관대학교 정보공학과를 졸업하고 동 대학원 소프트웨어공학 연구실에서 사용자 인터페이스와 P2P 다중 에이전트에 관해 연구했다. 누리텔레콤에서 통합 전산자원 관리 시스템 개발에 참여했으며, 현재 KTH에서 모바일 개인화 서비스와 파란 메신저 아이맨의 서버를 개발 중이다.

품목정보

발행일
2004년 10월 09일
쪽수, 무게, 크기
336쪽 | 506g | 153*224*30mm
ISBN13
9788991268029

추천평

저자는 오랜 실무 경험과 학문적인 배경을 바탕으로 현실과 이론을 정확하게 이해하고 문제점을 지적한다. 그러면서 현명하게도 해결방법은 제시하지 않는다. 각 주제에 대한 생각이나 해결방법은 경우마다 상이할 수 있기 때문에 무모하게 일반적인 해결책을 내놓지 않는다는 데서 저자의 깊은 경험을 느낄 수 있다. 하지만 해결책을 제시하지 않으면서 문제를 인식시키는 것 자체가 해결책이기도 하다. 문제를 제시하고 그에 관해 토론하면서 해결책을 스스로 생각하도록 유도하는 것이 더 중요하기 때문이다.
저자는 진정한 소프트웨어의 전문가라고 할 수 있는 사람이다. 어설프게 이론이나 도구를 팔기 위해 합리화시키는 많은 사람들과는 본질적으로 차이가 난다. 이 책이 학문적인 책은 아니어서, 학문과 이론에 치우친 사람들은 공감대를 느끼지 못할 수도 있다. 평범한데 진리가 있다고 새로운 이론을 펼치는 것도 아니다. 하지만 이 책을 읽고도 중요성을 느끼지 못하는 사람이라면 소프트웨어의 실무를 경험해 보지 않았다고 할 수 있다.
소프트웨어 분야에 있는 사람이면 누구를 막론하고 꼭 읽어봐야 하는 필독서다.

-- 김익환, 컨설턴트, 『대한민국엔 소프트웨어가 없다』저자

리뷰/한줄평7

리뷰

8.8 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.