- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
반응형
소프트웨어 공학의 개념
소프트웨어 개념
컴퓨터를 동작시키고 어떤 일의 처리 순서와 방법을지시하는 명령어의 집함인 프로그램과 프로그램의 수행에 필요한 정차,규칙,관련 문서 등을 총칭하는말
- 프로그램 : 컴퓨터를 통해 일련의 작업을 처리하기 위한 명령어와 관련된 데이터의 집합
- 자료구조 : 컴퓨터 내 기억장치 내에 자료의 표현, 처리, 저장방법 등을 총칭하는 것
- 문서 : 소프트웨어를 개발 함에 있에서 사용자 설명서 소프트웨어 요구분석서, 평가서, 명세서, 프로젝트 계획서, 검사 계획서 등을 의미함
소프트웨어 특징
상품성,복잡성,변경 가능성, 복제성
소프트웨어 위기
컴퓨터 발달 과정에서 소프트웨어의 개발 속도가 하드웨어의 개발 속도를 따라가지 못해 사용자들의 요구사항을 감당할 수 었는 문제가 발생함을 의미함
- 위기 원인:
- 하드웨어 비용을 초과하는 개발 비용의 증가
- 개발 기간의 지연
- 개발 인력 부족 및 인건비 상승
- 성능 및 신뢰성 부족
- 유지보수의 여려움에 따른 엄청난 비용
소프트웨어 공학
경제적으로 신뢰도 높은 소프트웨어를 만들기 위한방법, 도구롸 정차들의 체계를 말한다.
IEEE(전기전자학회)는 소프트웨어의 개발,운용,유지보수 및 파기에 대한 체계적인 접근 방법이라 정읨
소프트웨어 공학의 기본 원칙
- 현대적인 프로그래밍 기술을 적용
- 신뢰성이 높아야함
- 사용의 편리성과 유지보수성이 높아야함
- 지속적인 검증 시행을 해야 함
- 결과에 대한 명확한 기록을 유지해야 함
- 사용자가 원하는대로 동작해야함
- 시스템의 안전성과 보안에 만전을 기해야함
- 최신 프로그램 언어, 최신 알고리즘 사용 현황을 확인
- 소프트웨어 개발 비용을 최소화 하도록 노력
- 개발 단계와 소스코드 등의 문서화를 통해 명확성을 유지