Ch01. 서론

728x90

Ch01. 서론

📌 소프트웨어 공학 10판- 한티미디어

[소프트웨어 공학]

▶소프트웨어

  • 기반 시설이 컴퓨터 기반 시스템으로 제어
  • 많은제품에 컴퓨터와 제어 SW를 탑재
  • 제조, 유통, 금융 등 분야의 컴퓨터화
  • 소프트웨어는 추상적이며 무형. 물리적 제약이 없으므로 시스템이 되려 극도로 복잡해질 수 있음

▶다양한 종류의 소프트웨어 시스템

  • 단순한 임베디드 시스템부터 복잡한 정보 시스템까지다양한 소프트웨어 시스템 존재
  • 소프트웨어 시스템 종류에 따라 다른 접근법 필요
  • 소프트웨어 공학에는 보편적 표기법, 방법, 기법 존재 X

[소프트웨어 프로젝트 실패 요인]

⇒ 시스템 복잡도 증가

  • 더 크고 복잡한 시스템 구축 가능해짐에 따라 계속 ‘요구사항이 변함’
  • 시스템 더 신속하게 공급해야 함. 더 크고 복잡한 시스템이 필요함
  • 이전에 불가능하게 여겨지던 새로운 기능을 가져야 함

⇒ 소프트웨어 공학 방법론 사용의 실패

  • 소프트웨어 공학 방법과 기술 사용 없이도 프로그램 작성 쉬움
  • 많은 기업들이 제품과 서비스 진화시키면서 동시에 SW 개발함
  • 일상 업무에 SW 공학 방법을 사용 X
  • 결과적으로 SW는 더 비싸지고, 안정성, 신뢰성 부족하게 됨

[소프트웨어 공학의 역사]

  • 1968년 소프트웨어 위기(software crisis), 70-80년대 본격적 개발
  • 구조적 프로그래밍, 정보 은닉, 객체지향 개발, 표준 표기법과 도구

1.1 전문적 소프트웨어 개발

[소프트웨어 제품]

  1. 일반 제품

-수평적(horizontal) 제품 : 응용분야에 관계없이 사용되는 애플리케이션

-수직적(vertical) 제품 : 특정 응용분야를 위한 애플리케이션

  1. 맞춤식 소프트웨어

[좋은 소프트웨어의 필수적 특성]

⇒ 수용성 (acceptability)

  • SW는 해당 사용자에 의해 수용 가능해야 함
  • 이해 쉽고 사용 쉽고 기존 시스템과 호환성 있어야 함

⇒ 확실성 (dependability)과 보안성(security)

  • 신뢰성. 보안성, 안정성을 포함하는 여러 특성을 의미
  • 확실성 있는 SW는 시스템 장애 시에도 물리적/경제적 손실 야기 X
  • 악의적 사용자가 시스템에 접근하거나 피해 줄 수 없도록 해야 함

⇒ 효율성 (effciency)

  • SW는 메모리. CPU 등 시스템 자원 낭비해서는 안된다.

⇒ 유지보수성(maintatinability)

  • 소프트웨어는 고객 변경 요구에 맞도록 진화. 변화하는 비즈니스 환경에 맞게 작성

[소프트웨어 공학]

소프트웨어 공학

  • 초기 시스템 명세 작성부터 시스템 사용.유지보수되는 것까지

소프트웨어 제품화와 관련된 모든 관점을 다루는 공학 분야

소프트웨어 생산.개발의 모든 관점

[소프트웨어 공학의 중요성]

  • 개인과 사회가 SW 시스템에 더 많이 의존한다.
  • 전문적 SW 개발을 위해 소프트웨어 공학 기법 사용하는 것이 보통 비용 적게 든다.(장기적)

[소프트웨어 프로세스 기본 활동] : 공통적인 활동 (*)****

소프트웨어 명세화(specification) (요구사항 분석 ) 고객과 개발자가 소프트웨어의 기능.운영 제약조건을 정의
소프트웨어 개발(development) (설계. 구현) 소프트웨어를 설계하고 프로그램 작성
소프트웨어 검증(validation) (테스팅) 소프트웨어가 고객이 요구하는 것이 맞는지 확인
소프트웨어 진화(evolution) (유지보수) 고객/시장 요구에 따라 SW 수정
728x90