2. 소프트웨어 공학의 정의와 목표(1-2)
소프트웨어의 공학의 정의와 목표
소프트웨어공학의 정의
정의
"소프트웨어 개발, 운용, 유지 보수 및 파기에 대한 체계적인 접근 방법"
소프트웨어 공학의 목표
목표
- 소프트웨어의 생산성과 품질 향상
- 최소의 비용으로 최적의 기간(계획된 일정)에 우수한 품질의 소프트웨어를 개발하는 것
고품질 + 생산성
소프트웨어 공학에서 다루는 주제
네가지 주제
방법 |
도구 |
어떤 결과를 생성하기 위하여 적용되는 기법과 절차 |
더 좋은 방법으로 작업하기 위한 기구 또는 자동화된 시스템 |
프로세스 |
패러다임 |
도구와 기법을 사용하여 작업하는 순서 |
개발의 스타일 |
소프트웨어공학의 기본원칙
일곱가지 원칙
-현대적인 프로그래밍 기술을 적용
-높은 신뢰성
-사용의 편리성과 유지보수성이 높아야함
-지속적인 검증시행
-소프트웨어 개발비용의 최소화
-문서화를 통해 명확성을 유지
-시스템의 보안과 안전성 보장
------------> 좋은 소프트웨어를 만들기 위한 노력
=======================================================================
좋은 소프트웨어
좋은 소프트웨어의 특성
네 가지 특성
- 소프트웨어는 유지 보수가 용이해야 함
- 소프트웨어는 신뢰성이 높아야 함
- 소프트웨어는 효율적이어야 함
- 사용자 수준에 따른 적당한 사용자 인터페이스(UI)를 제공
품질
품질 평가 기준
정확성(Correctness)
-기능적으로 맞게 동작해야 함(표준)
-요구분석서의 기재된 기능과 일치하는지 점검
신뢰성(Reliability)
-소프트웨어가 운영되는 동안 고장없이 작동할 확률
강인성(Robustness)
-요구명세에 표시하지 않은 여러 가지 상황에서 제대로 작동하는지 확인
성능(Performance)
-수행속도
-알고리즘의 시간 복잡도
-시뮬레이션
사용용이성(Usability)
-시스템을 친근하게 느낄 수 있는 성질
-UI(UserInterface)
유지보수성(Maintainability)
-보수성
-정해진 시간에 소프트웨어 결함을 해결할 수 있는 성질
재사용성(Reusability)
-소프트웨어 부품(라이브러리, 모듈, 클래스 등)의 성질
-확장 가능성
-적응성
생산성(Productivity)
생산성에 영향을 미치는 요인
-생산과정(Process)에 크게 영향을 받음
-개발경험의 성숙도에 의해 좌우됨
-생산성에 영향을 미치는 5가지 요소
-프로그래머의 능력
-팀 내 커뮤니케이션 전달
-제품의 복잡도
-기술수준
-관리기술