소프트웨어 엔지니어가 반드시 갖추어야 할 능력

카테고리 없음 2010. 2. 16. 15:12
  • 소프트웨어 요구사항(Software Requirements) : 소프트웨어에서 구현될 기능들의 발견, 기록, 분석.
  • 소프트웨어 설계(Software Design) : 아키텍처 레벨 또는 상세 레벨에서의 시스템 기본 구조 정의, 모듈별 분할, 모듈의 인터페이스 정의, 모듈 내의 알고리즘 선택.
  • 소프트웨어 구축(Software Construction) : 상세 설계, 코딩, 디버깅, 단위 테스팅, 테크니컬 리뷰, 성능 최적화를 포함하는 소프트웨어 구현. 이 영역은 소프트웨어 설계, 테스팅 영역과 조금은 겹친다.
  • 소프트웨어 테스팅(Software Testing) : 결점을 발견하고, 기능을 평가하기 위한 소프트웨어 실행과 관련한 모든 활동. 테스팅은 테스트 계획, 테스트 케이스 설계 외에 개발 테스트, 단위 테스트, 컴포넌트 테스트, 통합 테스트, 시스템 테스트, 회기 테스트(regression test), 스트레스 테스트, 인수 테스트 등 다양한 종류의 테스트를 포함한다.
  • 소프트웨어 유지보수(Software Maintenance) : 소프트웨어, 관련 문서들의 개정 및 개선.
  • 소프트웨어 형상관리(Software Configuration Management) : 소스코드, 컨텐츠(그래픽,사운드, 텍스트, 비디오), 요구사항, 설계, 테스트 자료, 추정, 계획, 사용자 설명서 등의 소프트웨어 프로젝트에서 생성된 지적 재산에 대한 식별, 기록, 변경 통제.
  • 소프트웨어 품질(Software Quality) : 소프트웨어가 기술적 요구사항을 만족한다는 확신을 부여하는 과정과 관련된 모든 활동들. 품질 관리는 품질보증 계획, 품직 측정, 신뢰성, 테스팅, 테크니컬 리뷰, 감사 및 오류 검증, 타당성 검증 등으로 구성된다.
  • 소프트웨어공학 관리(Software Engineering Management) : 소프트웨어 프로젝트, 소프트웨어 작업, 또는 소프트웨어 조직의 계획 추정, 통제.
  • 소프트웨어공학 툴과 방법론(Software Engineering Tools and Methods) : CASE 도구, 재사용 코드 라이브러리, 정형 방법론 같은 도구와 방법론의 지원, 조직 내에서 도구와 방법론을 채택, 전파하는 기법도 포함.
  • 소프트웨어공학 프로세스(Software Engineering Process) : 소프트웨어 개발 품질, 일정, 생산성 및 프로젝트와 제품의 특성을 향상 시키기 위한 관련 활동.

                                   
                                                               <출처 : Professional Software Development>


: