밍경송의 E.B
<1> Introduction of Software Engineering 본문
이 글은 시험이 약 13시간 남은 학부생이 중간고사 암기를 위해 적은 글입니다...........내용은 지현박 교수님의 강의자료를 참고하였음을 밝힙니다.
✔️소프트웨어란?
: 프로그램 자체 + 프로그램을 유용하게 쓰는 데 필요한 환결 성정 데이터, 관련 문서들, 라이브러리 .. 등
✔️소프트웨어 제품 유형
1) 일반제품(Generic) : 범용으로 판매되는 시스템으로 어떠한 고객이든 원하면 구매 가능
2) 맞춤식 소프트웨어(Customized -) : 특정 고객을 위해 해당 고객에게 맞추어 개발하는 시스템
*임베디드 시스템은 1) , 2) 둘 다에 해당되지 않음.
✔️어떻게 만들 수 있을까?
: 완전히 새롭게 개발하거나 기존의 소프트웨어를 재사용하여 만들 수 있음.
✔️좋은 소프트웨어의 필수적 특성
유지보수성 | 고객의 변화하는 요구를 얼마나 잘 충족시킬 수 있는지. |
확실성과 보안성 | 확실성은 시스템에 장애 등과 같은 충격에 얼마나 강한지, 고장이 나더라도 얼마나 빨리 회복할 수 있는지. 보안성은 악의적인 사용자가 시스템에 접근하여 피해를 주는 것을 막을 수 있는지. |
효율성 | 시스템 자원을 낭비하지 않는지. (응답성, 처리 시간 등) |
수용성 | 설계 목적에 부합하는 사용자 유형이 얼마나 잘 수용할 수 있는지 (이해, 호환 등) |
✔️ 소프트웨어공학이란?
: 고품질 소프트웨어 시스템의 비용 효율적인 개발에 중점을 둔 공학 분야
✔️ SW Engineer가 해야 하는 일
: 작업에 대해 체계적이고 조직적인 접근 방식 채택 + 해결해야 할 문제, 고려해야 하는 사항(개발 제약 조건 및 사용 가능한 리소스)에 따른 적절한 도구/기술 활용
✔️컴퓨터 과학과 소프트웨어 공학의 차이
컴퓨터 과학 : 컴퓨터와 소프트웨어 시스템이 가지고 있는 이론/방법을 다룸(학문적).
소프트웨어공학 : 유용한 소프트웨어를 만드는데 필요한 실제적문제를 다룸(실용적).
*컴퓨터 과학의 이론이 소프트웨어 해결방안에 잘 맞지 않을 수 있음 -> 임시 접근 방식(ad hoc approaches) 사용
✔️소프트웨어 개발 프로젝트가 실패하는 원인
- SW 규모의 대형화/복잡화에 따른 개발 비용 ↑
- HW 기술의 급진전 -> SW 개발 기술의 상대적 부진
- HW 비용 대비 SW 가격 상승 폭 ↑
- SW 유지 보수의 어려움 + 개발 정체 현상 발생
- SW 개발 프로젝트의 기간 및 소요 예산에 대한 정확한 예측 어려움
- 신기술에 대한 기술/훈련 부족
- SW에 대한 사용자의 기대치 ↑
- SW에 대한 사용자의 요구사항의 빈번한 변경 및 반영
✔️소프트웨어공학과 시스템 공학의 차이
시스템공학 : 컴퓨터 기반 시스템 개발의 모든 관점을 다루므로 SW , HW, 정책과 프로세스 설계 등을 모두 다룸
소프트웨어공학 : 시스템에 포함된 W 인프라, 제어, ... 및 DB 개발과 관련됨
✔️소프트웨어 공학에서의 비용(COST)
- 전체 비용 중 60%는 개발. 40%는 테스트 비용
- SW는 개발보다 유지관리 비용이 더 많이 들어감.(sys의 수명이 길면, 몇 배 차이가 날 수도 있음)
- 개발 중인 시스템 속성의 요구사항에 따라 다름
- 비용의 분포는 개발 모델에 따라 다름
--> SW 시스템은 매우 다양한 유형이 존재 + 다양한 유형의 SW에 모두 적용 가능한 보편적인 SW 기법은 없다! ⭐
✔️어플리케이션 유형
- 독립형 어플리케이션 : PC나 모바일 기기와 같은 개발환경에서 동작. 네트워크 연결 불필요
- 대화형 트랜잭션 기반 어플리케이션 : 원경 컴퓨터에서 실행. 사용자의 컴퓨터/모바일 기기 등을 이용해 접근. 웹 어플도 해당됨
- 임베디드 제어 시스템 : 하드웨어 기기와 함께 동작. 시스템 유형 중 가장 많은 비중 차지
- 일괄처리 시스템 : 대규모의 데이터를 처리하도록 설계된 시스템, 많은 수의 개별 입력 가공을 통한 출력.
- 엔터테인먼크 시스템 : 사용자의 즐거움을 위해 개인적으로 사용하는 시스템
✔️어플리케이션 타입
- 모델링 및 시뮬레이션 시스템 : 물리적 진행이나 상황을 모델링하기 위함.
- 데이터 수집 및 분석 시스템 : 환경으로부터 데이터 수집 후 처리를 위해 다른 시스템으로 전달
- 복함 시스템(SoS) : 여러 다른 SW 시스템으로 구성
⭐요약정리 ⭐
- 소프트웨어란 = 컴퓨터 프로그램과 관련된 문서들. 특정 고객을 위하거나 일반적인 시장을 고려해서 제품을 개발할 수 있음.
- '좋은' 소프트웨어란 = 요구받은 기능과 성능을 사용자에게 제공 + 높은 유지보수성 + 높은 신뢰성 + 높은 사용성
- 소프트웨어공학이란 = 초기 구상 단계부터 운영과 유지보수까지 포함하는 소프트웨어 생산의 모든 관점과 관련한 공학적인 학문 분야
- 소프트웨어 공학의 기본 활동에는 '명세화, 개발, 검증과 진화' 가 있음.
- 소프트웨어와 컴퓨터과학/시스템 공학의 차이 바로 알기 (위에 적어놓음)
'CSE > 소프트웨어공학' 카테고리의 다른 글
<5> Architecture design (0) | 2023.10.16 |
---|---|
<4> Requirements Engineering (0) | 2023.10.16 |
<3> Software Processes (0) | 2023.10.16 |
<2> Project Planning of Software Engineering 1 (0) | 2023.10.16 |
<2> Project Planning of Software Engineering 1 (0) | 2023.10.16 |