1. 소프트웨어의 정의
: 프로그램, 문서, 데이터 등을 중심으로 구성된느 집합이나 객체를 말함
2. 소프트웨어 역할의 진화
- 1970s ~ 1980s
- 새로운 산업혁명 → 제 3의 물결
- 정보 사회
- 전자 정부
- 1990s
- 권력 이동
- 지식의 민주화
- 세기 말 시간폭탄(2000년에 되기 전 여러가지 괴담, 가설 생성)
- 2000s
- 보다 지능적인, 보다 유연한
- 새로운 형식의 과학 → 컴퓨터 시뮬레이션 (digital Twin, Metaverse), AI(딥러닝)
Alvin Toffler(미래학자)의 제 4차 산업혁명 선언
: 제 3의 물결, 권력 이동, 부의 미래 → "4차 산업혁명"
- 오늘날
- 상호 이해와 소통
- SNS, IoT
- 쓰레기 정보/ 지식 ( Obsoledge → Obsolete + Knowledge )
- 초대형 소프트웨어 업체
→ 아마존 , 구글, 애플, UAM/ 자율 주행차 - 개개의 프로그래머에서 소프트웨어 전문가 팀으로 재편
3. 소프트웨어의 본질적 문제와 현실
문제점
- SW완성되기까지의 많은 시간
- SW의 개발 비용
- SW를 고객에게 전달 전 모든 에러를 찾지 못함
- 개발된 프로그래밍 유지보수 시 많은 시간과 노력이 필요
- SW를 개발하고 유지보수를 할 때 진척 정도를 측정하는 것의 어려움
현실
- SW is developed or engineered → not maunfactured in the classical sense.
: 소프트웨어는 제조되지 않고 개발되고 엔지니어링 되지만 하드웨어와 유사한 점이 존재한다. - SW doesn't 'wear out'
: 소프트웨어는 '닳아 없어지지 않는다.' 하지만 기능이 저하된다.
소프트웨어는 spare parts가 없다 ( → 하드웨어는 교체할 수 있는 부품이 있지만 SW는 없다 ! )
소프트웨어 유지는 하드웨어 유지보다 더 복잡하다
→ Bathtub curve - 산업이 component-based(구성요소기반) 형식을 추구하지만 SW는 custom built(맞춤형 제작)이다.
: 소프트웨어에서 구성요소는 여러 프로그램에서 재사용할 수 있도록 설계되고 구현되어야한다
→ 구성요소는 여러 프로젝트에서 재사용될 수 있으므로 생산성을 높이고 비용을 절감하는데 도움을 준다
하드웨어에서 구성요소 재사용은 자연스럽다!
소프트웨어에서는 구성요소 재사용이 최근에 들어서야 널리 적용되기 시작했다 !
** 욕조커브
강의자료만 봐서 '욕조 커브'에 대한 개념이 다가오지 않아서 Chat GPT에게 물어보았다 ..
인공지능 짱이다 .. 근데 슬푸다 나는 얘 못이겨 ~~
4. 소프트웨어 응용 분야
- System S/W
: 다른 프로그램을 지원하기 위해 작성된 프로그램의 모음
- 컴파일러, 편집기, 파일 관리 유틸리티 등
- 운영체제 구성 요소, 드라이버, 네트워킹 소프트웨어, 통신 처리기 등
- Application S/W
: 응용 소프트웨어는 비즈니스나 기술 데이터, 관리/ 기술 결정 등에 사용되는 소프트웨어
- 판매점 거래 처리, 실시간 제조 공정 제어 등이 포함
- 특정한 업무나 작업을 처리하기 위해 설계되며 일반적으로 사용자에게 직접적인 가치를 제공
-Engineering/scientific S/W
: 주로 과학적 또는 엔지니어링적인 문제를 해결하기 위해 설계된 소프트웨어
- 숫자를 계산하는 알고리즘 포함
- 천문학부터 화산학, 자동차 응력 분석, 스페이스 셔틀 궤도 역학, 분자 생물학, 자동화 제조 등 다양한 분야에서 사용
- 대규모 데이터 처리, 복잡한 시뮬레이션, 수치 해석 등에 사용
- Embedded S/W
: 제한적이고 특수한 기능을 구현하고 제어하는 데 사용
- ex . 전자레인지의 키패드 제어
- 자동차의 디지털 기능(연료 제어, 대시보드 디스플레이, 브레이크 시스템 등)과 같이 중요한 기능과 제어 능력을 제공
- Product-line S/W
: 재고관리 제품과 같은 한정적이고 독특한 시장에서 적용되는 제품 라인 소프트웨어
반면 대중적인 소비자 시장에서는 워드 프로세싱, 스프레드시트, 컴퓨터 그래픽스, 멀티 미디어, 엔터테인먼트, 데이터베이스 관리, 개인 및 비즈니스 재무 애플리케이션과 같은 소프트웨어가 많이 사용
- Artificial intelligence S/W
: 인공 지능 소프트웨어
- 로봇공학, 전문가 시스템, 패턴 인식, 인공 신경망, 정리 증명, 게임 이론, 딥러닝 모델(AlphaGo, chatGPT)과 같은 분야에서 사용
- Ubiqutious computing
- 무선 네트워크
- distributed computing( 여러 컴퓨터 또는 장치가 네트워크를 통해 연결되어 하나의 작업을 수행하는 컴퓨팅 모델)
- Web-application S/W
- 가장 간단한 형식
- sophisticated computing environments (복잡하고 고도화된 컴퓨팅 환경)
- 웹 어플리케이션이 최종 사용자에게 제공하는 기능
Standalones features(어플리케이션 자체가 가지고 있는 기능)
Computing functions(어플리케이션이 수행하는 계산 기능)
Content to the end user(최종 사용자에게 제공되는 콘텐츠 ) - 데이터베이스, 비즈니스 어플리케이션
- Open source
: 소프트웨어의 소스 코드가 공개되어 있고 누구나 자유롭게 복사, 수정, 배포, 판매할 수 있는 소프트웨어 라이선스
- Operating system, database, 개발환경
- 고객이 로컬에서 필요한 부분을 수정하여 사용할 수있다.
- self-descriptive(소프트웨어 자체가 스스로 설명할 수 있는 특징)
- The 'new economy'
: 인터넷과 정보기술이 급속도로 발전함에 따라 새로운 경제활동이 등장하는 현상
→ 소프트웨어 엔지니어들에게는 새로운 경제 환경에서 대량의 통신과 제품 분배를 가능하게 하는 애플리케이션을 개발하는 것이 중요한 과제임 ! 이러한 애플리케이션은 현재 형성 중인 개념을 사용하여 개발되어야한다 ~ !
5. 소프트웨어 본질의 변화
- Web Apps
- 웹 기반 시스템과 응용 프로그래밍
- Mobile Apps
- 모바일 플랫폼
→ iOS, 안드로이드, 윈도우 모바일 - 모바일 웹 응용프로그램
- Cloud Computing
- Front-end Service → 클라이언트 디바이스용 응용 SW
- Back-end Service → 서버 관련 컴퓨팅 자원, 저장 및 관리, 미들웨어 포함 SW
* 4차 산업혁명 신기술 분야
IoT, AI, Robot, Auto-Driving, Digital Twin, Metaverse
'[지식창고] > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어공학] Chapter2-2. 소프트웨어 공학 개요(2) (0) | 2023.04.17 |
---|---|
[소프트웨어공학] Chapter 5 - (1) . 프로젝트 관리 (0) | 2023.04.05 |
[소프트웨어 공학] Chapter 4. 프로젝트 관리 개념(2) - 프로젝트 측정 (0) | 2023.04.03 |
[소프트웨어공학] Chapter 4. 프로젝트 관리 개념(1) - 4P (0) | 2023.03.29 |
[소프트웨어 공학] Chapter1. SW공학 강의 소개 (0) | 2023.03.27 |