소프트웨어 공학 Chapter01
Software products
Generic products
Stand-alone 시스템으로 대부분의 프로그램이 이에 해당합니다. 작업의 명세는 소프트웨어 개발자가 소유하며 변경에 대한 결정도 개발자가 내립니다.
Customized products
특정 사용자들에 맞춰진 프로그램으로 냉장고나 밥솥, 교통관리 시스템 등등이 있습니다. 작업의 명세는 소프트웨어에 대한 고객이 소유하며 필요한 변경점의 결정도 고객이 내립니다.
보통 General로 개발을 진행하고 이후 특정 고객의 요구사항을 반영합니다. 예를 들면 ERP(Enterprise Resource Planning) 시스템
Software Cost
- Hardware < Software
- Develop < Maintenance
Software Project Failure
Increasing system complexity
복잡한 시스템일수록 시간이 많이 들어가게 됩니다. 그에 따라 인건비가 올라갑니다.
Failure to use software engineering methods
소프트웨어 공학적인 방법을 사용하지 않고 프로그램을 만드는 것은 매우 쉽습니다. 하지만 그에 따라 예상보다 비싸질 수 있고 신뢰성이 떨어집니다.
Software Engineering
소프트웨어 엔지니어링은 전문 소프트웨어 개발을 위한 이론, 방법 및 도구와 관련됩니다. 소프트웨어 엔지니어링은 소프트웨어 생산의 모든 측면과 관련된 엔지니어링 분야입니다.
소프트웨어 엔지니어링 활동
- Software Specification
- Software Development
- Software Validation
- Software Evolution
Importance of software engineering
신뢰성, 경제성, 빠른 개발이 점점 더 중요해지고 있습니다. 비용의 대부분은 소프트웨어를 유지보수하는데 들어가는 비용입니다. 그러므로 소프트웨어 공학적인 방법들을 통해 시행착오를 덜 겪는게 중요합니다.