본문 바로가기

cs

소프트웨어 공학 - 개요

소프트웨어 공학


  소프트웨어를 개발하고 운영 · 유지 · 보수하는 데 적용하는 체계적이고 원리적인 접근방법

정의

    1.  신뢰성 있고 요구기능을 효율적으로 수행하는 소프트웨어를 경제적으로 생산하기 위해 건전한 공학적 원리와 방법을 만들고 사용하는 것이다 (Bauer)

    2. 소프트웨어의 개발, 운영, 유지, 보수에 체계적이고 숙달되고 정량화된 접근방법을 적용하는 것, 즉 소프트웨어에 공학기술을 적용하는 것 또는 그러한 접근방법에 관한 연구분야 (IEEE)

    3. 컴퓨터 프로그램을 설계하고 개발, 운영, 유지, 보수에 관련된 문서를 작성하는 데 필요한 과학적인 지식의 실용화이다 (Boehm)

    4. 인간에게 유용한 소프트웨어 제품을 만드는 과정에 과학적 지식을 적용함으로써 실제적인 문제의 비용 효율적 해결책을 다루는 일이다

 

특성

    1. 공학적인 지식을 소프트웨어 설계와 제작에 응용, 이를 개발, 운영 및 유지 보수하는 데 필요한 문서화 과정이다

    2. 소프트웨어는 무형의 인공물이며 물질적인 성질을 가지지 않으므로 물질적인 성질과 형태를 가지는 하드웨어와는 그 특성이 다르다

    3. 비교적 큰 규모의 소프트웨어 시스템을 대상으로 한다

    4. 소프트웨어는 상대적으로 변경이 용이하기 때문에 버그 수정이 상대적으로 쉽고 요구사항이나 환경의 변화에따라 적절히 변경될 수 있다 (유연성, 순응성), 그러나 변경을 위해 필요한 소프트웨어 테스트 작업과 요구사항 검증 작업은 쉽지 않다

    5. 소프트웨어는 마모되지 않는다, 그러나 환경이 변화하면서 소프트웨어가 쓸모없게 되거나 품질이 저하될 수 있다

    6. 소프트웨어 유지, 보수는 하드웨어와 달리 잦은 설계의 변경이 요구된다. 소프트웨어의 쓸모가 유지되려면 주위 환경의 변화에 대처해야 하며, 유지 보수작업을 수행해야 한다

 

소프트웨어 위기

  프리츠 바우어(Fritz Bauer) 교수가 1968년 NATO 컨퍼런스에서 처음 사용한 용어이다.

  급격한 컴퓨터 하드웨어 기술의 발전으로 사용자의 요구사항이 다양해지면서 해결해야 할 문제는 복잡해졌으나, 상대적으로 소프트웨어 기술의 진보가 더딤을 일컫는 말이다

 

  소프트웨어 위기현상

    1. 개발 일정이 계획보다 지연된다

    2. 초기비용이 발생한다

    3. 제품의 신뢰도가 결여된다

    4. 빈번하게 명세와 불일치하는 부분이 나타난다

    5. 품질 저하와 유지, 보수의 어려움이 생긴다

 

  소프트웨어 위기현상의 주요 요인

    1. 소프트웨어 공학의 훈련을 받은 전문 인력의 부족

    2. 소프트웨어에 관한 경영층의 인식 부족

    3. 일관성 있는 방법론 및 자원 도구의 문제

    4. 소프트웨어 개발 생선상 저하

    5. 소프트웨어 자체의 복잡성 증가

 

 

'cs' 카테고리의 다른 글

network - 아날로그 / 디지털 신호 (물리계층)  (0) 2022.07.05
인공지능 - 개요  (0) 2022.07.04
network - 주소 지정  (0) 2022.07.02
network - 프로토콜 & 표준  (0) 2022.07.02
network - 스위칭  (0) 2022.07.02