소프트웨어 공학의 소개

ZOE_:P·2022년 9월 20일
0

개발과 유지보수 중 무엇이 더 중요하고 어디에 더 많은 시간이 소요될까?

답은 유지보수 이다

소프트웨어 공학이란

소프트웨어란?
컴퓨터 프로그램과 관련한 문서들을 말한다 ( 프로그램 + 문서들 )

  • 좋은 소프트웨어란
    고객이 요구한 기능과 성능을 충족시키며 신뢰할 수 있고 사용이 쉬운 소프트웨어를 말한다

소프트웨어 공학이란?
초기 구상 단계부터 운영과 유지보수까지 포함하는 소프트웨어 생산의 모든 관점과 관련한 공학적인 학문 분야

  • 소프트웨어 명세화 , 소프트웨어 개발, 검증, 진화가 소프트웨어 공학 기본 활동에 포함된다

소프트웨어 공학 = 컴퓨터 과학? NO
- 컴퓨터 과학 : 이론, 기본
- 소프트웨어 공학 : 소프트웨어 개발, 인도하는 실무적인 내용

Software Products

  • Generic products ( 범용 SW )
    : 일단 만들고 고객들이 선택해서 사용하길 기다리는 소프트웨어 ( stand-alone systems )
    : 개발자가 니즈, 특징을 정하여 사용자에 맞추지 않고 일반적으로 필요로 하는 기능을 넣어 만드는 SW
    : 변화에 맞춰 빠르게 바꿀 수 있다

    주도권이 '개발자'에게 있다

    • ex. 포토샵, 워드, 아래한글 등
  • Customized products
    : 고객의 니즈를 바탕으로 만들어지는 소프트웨어

    주도권이 '고객'에게 있다

좋은 소프트웨어의 특성

  • 수용성 acceptability

    사용자가 수용할 수 있어야한다
    즉, 사용이 쉬워야하고 이해할 수 있어야하며, 사용자가 사용하는 다른 시스템과 호환되어야한다

  • 확실성, 보안성 (dependability , security)

    확실성 ] 신뢰성 ( 의도된 동작이 제대로 작동 ), 보안성 ( 시스템, 개인정보의 피해 x ) , 안전성 등 여러 특성들을 내포한다

    • '확실성'이 보장된다
      = 시스템에 장애가 발생하더라도 물리적, 경제적 피해를 야기하지 않는다
  • 효율성 (efficiency)

    시스템 자원을 낭비하면 안된다

  • 유지보수성 (maintainability)

    고객의 변화하는 니즈를 충족시킬 수 있도록 ( 진화할 수 있도록) 만들어져야한다.

소프트웨어 공학 ( Software Engineering )의 중요성

  • reliable and trustworthy (신뢰성있는) system 의 필요성이 늘어남
  • 장기적으로 봤을때, SE를 사용한 개발이 더 경제적이다.
    ( 통상적으로 개발기간보다 개발된 시스템을 사용하며 유지보수하는 기간이 더 긴데, 소프트웨어 공학은 유지보수까지 고려하여 유지보수가 수월하도록하는 기술이기 때문이다 )
profile
🖥️

0개의 댓글