소프트웨어의 영향

  * 소프트웨어의 영향
 – 기업의 경영과 시장, 학교 교육, 사무실의 작업환경
 – 가정 생활과 여가 활동
 – 미래의 경제와 우리 생활

  * 소프트웨어의 개발
 – 전문적인 기술을 가진 엔지니어가 필요
 – 과거의 소프트웨어 : 개인의 특출한 솜씨로 게작 가능

  * 소프트웨어 개발과 오케스트라
 – 전체적인 하모니가 중요
 – 그 집단의 엔지니어링 숙달정도에 크게 좌우

    1.1 소프트웨어

  * 소프트웨어
 – 프로그램과 프로그램의 개발, 운용, 보수에 필요한 관련 정보 일체
 – 프로그램 +(문서, 정보)

  * SE 토픽 1.1 소프트웨어가 다른 점
 – 다른 엔지니어링 결과물에 비해 개념적이고 무형적임
 – 적은 비용으로 복제, 대량 생산 가능
 – 노동 집약적 산업
 – 초심자의 제품은 이해하기 어렵고, 수정하기 어려움
 – SW는 쉽게 변경 가능
 – SW는 닳아 없어지지 않음

  * 소프트웨어 특징
 – 품질 향상의 어려움
 – 사용자 수준에 못 미치는 품질

  * 소프트웨어 위기 현상(발생 원인)
 – 납기 미 준수
 – 예산 초과
 – 결함으로 인한 부적합, 폐기, 수정의 필요
 – 폭발적으로 늘어나는 수요
 – 기하급수적으로 커지는 공급
 – 느린 생산성 향상
 – 품질 향상의 어려움

  * 소프트웨어 위기 이유
 – 소프트웨어의 복잡성
 – 인간의 작업에 대한 예측의 어려움

  * 소프트웨어 공학의 목적
 – SW에 대한 공학적 접근 방법 습득

    1.1.1 소프트웨어의 유형

  * 주문형 소프트웨어
 – 특정 고객의 수요를 만족하기 위하여 개발된 SW
 – (예) 웹사이트, 대학의 종합정보시스템

  * 패키지형 소프트웨어
 – 공개된 시장에 내놓고 판매하기 위한 것
 – (예) 워드프로세서, 웹브라우저, 운영체제

  * 임베디드 소프트웨어
 – 시장에서 판매되는 하드웨어 장치
 – (예) 세탁기, VCR, 자동차 등에서 수행되는 소프트웨어

    1.2 소프트웨어 공학

  * 소프트웨어 개발 = 소프트웨어 공학(?)

  * 집안 연못에 다리 구조물 설치 vs 한강 다리 건설

  * 소프트웨어 엔지니어링이란?
 – 고객의 문제를 해결해주기 위하여 대규모의 품질 좋은 소프트웨어 시스템을 정해진 시간과 비용으로 개발하거나 발전시키는 체계적인 프로세스.

   1.2.1 고객의 문제를 해결

  * SW ENG. 목표
 – 고객의 문제 해결

  * SW ENGer. 의 역할
 – 현 시스템 그대로 사용, 새로 개발, 기성 제품 구입 판단 및 결정

   1.2.2 체계적인 개발과 발전

  * 소프트웨어 개발
 – 엔지니어링 작업
 – 개발자가 잘 이해하고 있는 기술을 조직된 원리와 방법으로 적용하는 과정

   1.2.3 대규모 고품질 소프트웨어 시스템

  * 소규모 시스템
 – 프로그래머 홀로 성공적으로 개발 가능

  * 대규모 시스템
 – 매우 복잡함
 – 엔지니어링 원리 적용이 필요
 – 팀워크의 중요성
 – 작업 분할 방법

   1.2.4 비용, 시간 제약

  * 엔지니어링 작업의 특징
 – 경제적 제약 사항 고려

  * 경제적인 제약이란?
 – 시간, 인력 등의 자원에 대한 제한
 – 비용 대비 이득이 있는가

  * 소프트웨어 엔지니어 약할
 – 정해진 예산과 시간 안에 완성
 – 실현 가능한 계획 작성
 – 시스템 개발 시 필요한 작업, 기간 예측 가능해야 함

Tags: ,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.