01 Introduction to SE.pdf
Document Details
Uploaded by FancierAestheticism
Pusan National University
2005
Tags
Full Transcript
Introduction Keunhyuk Yeom Computer Science & Engineering Pusan National University [email protected] 2005년 4월 St. Peter’s Square as Pope John Paul II’s body was carried into the Basilica for public viewing in the days following his dea...
Introduction Keunhyuk Yeom Computer Science & Engineering Pusan National University [email protected] 2005년 4월 St. Peter’s Square as Pope John Paul II’s body was carried into the Basilica for public viewing in the days following his death 2 출처: NBC News 2013년 3월 13일 St. Peter's Basilica at the Vatican, Pope Francis made his inaugural appearance on the Vatican balcony, 3 출처: NBC News – Witnessing papal history changes with digital age 소프트웨어 중심 사회 스마트폰은 일상의 필수 : 문명사적 변화 ? 전 세계 휴대전화 약160억대 (2022) 앱 사용이 보편화 “스마트폰은 우리 일상을 변화시켰습니다” 커뮤니케이션 새로운 정보 습득 엔터테인먼트 4 소프트웨어 중심 사회 Apple의 성공 요인 컴퓨터 회사로서 SW 능력 보유 모바일폰을 컴퓨터로 해석 다양한 센서와 이를 활용하는 SW 제공 플랫폼 비지니스를 이해 기기 판매 후 SW 공급 생태계 Appstore를 통하여 외부 개발자 활용 Apple 기기의 통합 콘텐츠 공급체계 iTunes 음악, 비디오, 앱, 온라인 강의 시장 가치 1위 회사로 (현재 Amazon, Google 등과 1위 다툼) 5 소프트웨어 중심 사회 소프트웨어 능력으로 경쟁의 법칙을 바꾸고 소프트웨어 혁명 기존 시장 질서를 파괴하며 시장을 석권 “Software is eating the world” 소프트웨어가 세상을 먹어 치우고 있다 By Marc Andressen, Wall Street Journal, Essay, 2011.8.20 경제·사회 등에서 급격한 변화를 경험 6 소프트웨어 혁명 : 자동차 산업 Self-Driving Car, Connected Car, Electric Car Tesla 7 소프트웨어 혁명 : 자동차 산업 자동차는 이제 가솔린이 아니라 SW로 달린다 8 자율주행의 반응과 예상 미래에는 인간의 자동차 운전이 불법이 될 수도 있다 - Tesla CEO Elon Musk (2015) 9 Computer Engineering, Pusan National University 소프트웨어중심 자동차 (SDV) SDV (Software Defined Vehicle) 전통적인 자동차는 출시 이후에 치명적인 버그 이외에는 거의 수정되지 않은 반면, 출시 이후 업그레이드를 자유롭게 수행 지속적인 차량 소프트웨어 개발 인공지능화 인포테인먼트 운전자보조 시스템 (ADAS) 원격시동 등 자동차도 스마트폰처럼 주기적인 업데이트를 통한 성능 개선이 가능해짐 10 Computer Engineering, Pusan National University 소프트웨어 혁명 : 항공산업 Functionality implemented by SW (%) 2400만 Line of Code 100 F-35 90 F-22 80 70 B-2 60 50 F-16 40 F-15 30 F-111 20 A-7 10 F-4 0 1960 1964 1970 1975 1982 1990 2000 2007 Year of introduction 11 항공 임베디드 소프트웨어 출처: 디지털타임스 12 소프트웨어 혁명: 영화 산업 컴퓨터 그래픽의 일상적 사용 36000대의 Linux 컴퓨터가 영화 Avatar 제작에 이용 13 금융업의 경쟁력은 소프트웨어 ! 고객 접점의 신규서비스를 새로운 진입자가 차지 PayPal의 온라인 지급 결제 Starbucks, Facebook, Google 등 현금카드 사업 중국 Alibaba의 알리페이 – Escrow 서비스 Apple Pay, Samsung Pay, etc. 이 때문에 기존 금융사 이익이 1/3 정도 감소 추정 14 로보 어드바이저의 활약 Harvard Business Review “Banks’ New Competitors: Starbucks, Google and Alibaba 주식거래 컴퓨터가 스스로 사고 팔고를 결정 – Algorithm Trading 주식거래의 70%이상을 SW알고리즘으로 수행(미국) 자율SW에이전트들은 새로운 경제체제를 지탱하는 근본으로 기능할 것 - 프로그램 경제(programmable economy) 15 Computer Engineering, Pusan National University 소프트웨어 혁명 : 빅데이터의 분석 Google Flu Trends Track Influenza Faster Than CDC (Center for Disease Control and Prevention) 특정 검색어가 독감 유행 수준을 파악하는 좋은 지표 전 세계 독감 유행 수준을 거의 실시간으로 예측 지금은 더 이상 지원 안함 향후, AI기법을 이용한 방법 제공 예정 16 http://www.google.org/flutrends/ Massive Open Online Courses (MOOC) 수강 인원의 제한없이(Massive), 모든 사람이 수강 가능하며(Open), 웹 기반으로(Online) 미리 정의된 학습목표를 위해 구성된 강좌(Course) 교육 플랫폼 - 인터넷 강좌 비디오 강의 수강이 기본 대화, 숙제, 시험(신원 확인 후) 자동 채점과 동료 평가로 학점 부여 전세계에서 수 만명이 동시 수강 증서 발급 및 취업 알선 Coursera, edX, Udacity 등 많은 기관에서 대학 수준 인터넷 무료 강의 진행 Coursera 7천만명 이상 등록 COVID-19로 최근 2달 1000만명 신규가입, 작년의 7배 More than 5900 courses (2020) “50년 내에 전세계에서 10개 대학만 남는다” 17 AI 시대 “AI 주도권 유지가 미국 경제와 국가 안보에서 최상의 과제” 트럼프 미합중국 대통령, 2019년 2월 AI Initiative 행정명령을 발표하면서 “AI는 새로운 과학기술 혁명과 산업 개혁의 중요한 동력, AI는 현대인의 생산과 생활, 학습 방식에 큰 변화를 가져오고 있다” “AI 발전과 발전 방향을 제시할 고급 인재를 양성하는 것은 교육계의 중요한 사명" 시진핑 중화인민공화국 주석, 2019.5.17 국제인공지능∙교육대회 축사에서 18 AI 시대 인공지능이 무엇을 할 수 있고 무엇을 할 수 없는지를 기업 리더들이 이해한다면, 경제 전반에 걸쳐 수조 달러의 가치를 창출할 수 있는 잠재력이 있다. Artificial intelligence has the potential to create trillions of dollars of value across the economy—if business leaders work to understand what AI can and cannot do. The real-world potential and limitations of artificial intelligence @McKinsey Quarterly April 2018 19 AI가 자연어로 토론하는 수준까지 토론 대회에서 인간과 맞짱 주어진 주제에 대하여 상대방과 논쟁을 퀴즈대회에서 인간 대표에게 승리 주고 받으며 청중을 설득 2019년2월 사람의 말을 이해하고 사람이 쓰는 언어로 대답. 인간만의 고유 능력이었던 지적판단의 영역까지 컴퓨터에 내어주는 순간. 2011년2월 20 GPT란? Large Language Models (LLMs) 대화형 AI 3천억 단어, 5조개의 문서 학습 다음에 나올 단어를 확률적으로 계산 1초에 312조번 계산 생성 AI(Generative AI)의 대표적 모델인 GPT(Generative Pre-trained Transformer)기술을 기반으로 자가학습하여 답변을 생성하고 대량의 데이터와 맥락을 처리할 수 있는 트랜스포머(변환기) 기술을 활용한 chatGPT가 2022년 11월 발표됨 21 Computer Engineering, Pusan National University chatGPT란? 22 Computer Engineering, Pusan National University AI의 가공할 성능 개선 치열한 생성AI (LLM) 경쟁 OpenAI – chatGPT - GPT Google – Bard – PaLM2 Meta – LLaMA2 LG – EXAONE 2.0 4500만건의 특허, 논문 등 전문 문헌과 3억500만장의 이미지 학습 Naver – HyperCLOVA X 23 Computer Engineering, Pusan National University GPT가 만드는 새로운 생태계 (1/2) 2007년 GPT+API chatGPT기능을 외부에 제공하여 새 서비스 창출 GPT-4기반 AI 챗봇 서비스 아숙업(AskUP) 등 2023년 GPT+PlugIn 반대로 외부서비스를 챗GPT에 붙이는 방식 쇼핑 주문, 여행 예약 등 개인화 서비스 가능 익스피디아 등 400개사 플러그인 스토어 합류 AI비서를 통한 독점 구조 강화 AI비서의 탄생은 기존 모델과 결합하여 생산성 혁신 “신제품 PPT만들어줘” – 몇 초만에 뚝딱 24 Computer Engineering, Pusan National University GPT가 만드는 새로운 생태계 (2/2) AI 의료혁명 10년 걸리던 백신을 1년만에 46일만에 신약 설계 (기존 15년) 글로 설명하면 그림으로 25 Computer Engineering, Pusan National University AI의 부작용 가짜 뉴스 및 정보 생성 잘못된 의학적 진단을 내리며, 가짜 논문을 근거로 제시 과제 시험 등 부정행위 서울대 재학생 과제로 챗GPT로 제출 후 A+성적 미국 및 국내 일부 대학에서 사용 금지 방침 각종 저작물 등 정보 무단 도용 생성형 AI는 기존 콘텐츠를 대량으로 학습해야 동작할 수 있어서 관련 저작권 소송 예상 혐오 발언, 성적 인종적 편견 확산 AI가 만든 작품 저작권 문제 26 Computer Engineering, Pusan National University AI가 쓴 (가짜)이야기 사람이 준 주제 충격적인 발견에서, 과학자들은 이전에 탐험되지 않았던 안데스 산맥의 외딴 계곡에 살고 있는 유니콘 무리들을 발견했다. 연구자들에게 더욱 놀 라운 것은 유니콘들이 완벽한 영어를 구사한다는 사실이었다. 번역 by Naver Papago AI가 쓴 이야기 그 과학자는 개체군의 이름을 그들의 독특한 뿔인 오비드의 유니콘의 이 름을 따서 지었다. 이 네 개의 뿔이 달린 은백색의 유니콘들은 이전에는 과학에 알려지지 않았다. 이제 거의 2세기가 지난 후, 무엇이 이 기묘한 현상을 촉발시켰는지에 대 한 미스터리가 마침내 풀리게 된다. 라파즈 대학의 진화생물학자 조르헤 페레스 박사와 여러 동료들이 안데스 산맥을 탐험하고 있을 때 그들은 다른 동물이나 인간이 없는 작은 계곡을 발견했다. 페레즈는 그 계곡에 암봉과 은설기 두 봉우리에 둘러싸인 자연 분수로 보이는 것이 있다는 것을 알아챘다. 그러자 페레즈와 다른 사람들은 위험을 무릅쓰고 계곡으로 더 들어갔다. 페레즈는 "한 봉우리 꼭대기에 다다랐을 때 물이 푸른색으로 보였고 결정 체도 몇 개 있었다"고 말했다. 페레즈와 그의 친구들은 유니콘 무리를 보고 놀랐다. 이 생물들은 너무 많이 움직이지 않고도 공중에서 볼 수 있었다. – 그들은 너무 가까이 있 어서 뿔을 만질 수 있었다. … 과학자들은 이 기괴한 생물들을 조사하는 동안 이 생물들이 꽤 규칙적인 영어를 구사한다는 것을 발견했다. 페레즈는 예를 들어 그들이 방언이나 변증법 같은 공통의 '언어'를 가지고 있다는 것을 알 수 있다고 말했다. 27 … 증강현실이 여러분의 핸드폰으로 28 소프트웨어가 세상을 지배한다 영화산업 금융산업 콘텐츠산업 …. 자동차산업 SW산업 항공산업 SW기술 산업의 지식화 지식의 산업화 SW는 모든 산업의 기반기술 29 소프트웨어가 세상을 지배한다 “Program or be programmed” by 더글라스 러시코프 (미디어 이론가) SW의 발전에 따라 사회와 문화, 경제의 패러다임이 바뀌고 있다 SW, 미래를 위한 대비가 아니라 현재의 문제다 30 소프트웨어 개발 고객의 요구 요구사항 분석 설계 구현 테스팅 S/W 제품 31 개발자에 따라 달라지는 구현 형태 예제 프로그램 B 예제 프로그램 C 예제 프로그램 A 32 Computer Engineering, Pusan National University Software Engineering: Historical Aspects 1967, A NATO group coined the term "Software Engineering“ NATO hosted a conference devoted to the problems of the computer industry that was having a great deal of trouble in producing large and complex programs 1968, NATO conference concluded that software engineering should use the philosophies and paradigms of established engineering disciplines, to solve the problem of software crisis 33 Computer Engineering, Pusan National University Forces Behind the Emergence of S/W Engineering The inability of organizations to predict the time, effort, and cost in software development. The poor quality of the software. Changes in the ratio of hardware to S/W costs The increasingly important role of maintenance Advances in hardware Increased demands for software The demand for larger and more complex S/W systems 34 Computer Engineering, Pusan National University Problems in Engineering Software Cost Overruns Late Delivery Inadequate Performance Unreliability Backlog Impossible Maintenance Prohibitive Maintenance Costs ⇒ Software Crisis (위기, 危機) Quality of software is generally unacceptably low and deadlines and cost limits are not being met 55% of projects cost more than expected, 68% overran their schedule, and 88% had to be substantially redesigned Has software engineering technology made so little progress in the last 30 years or so? 35 Computer Engineering, Pusan National University Software Crisis DoD Announcement on Software Projects (1980s early) A 2% E 30% B 3% D 20% C 45 % A : worked on delivery B : worked after some corrections C : delivered but never successfully used D : used but either extensively reworked or abandoned E : paid for, but never delivered 36 Computer Engineering, Pusan National University Software Crisis (cont.) 2001년 미국 소프트웨어 프로젝트 결과 200% 이상 지연: 6% 20% 이하 지연: 6% 21~50% 지연: 8% 취소 됨: 29% 51~100% 지연: 9% 101~200% 지연: 16% 일정 준수: 26% 출처: Software Industry Benchmarking Study 2001 37 Computer Engineering, Pusan National University 대규모 프로젝트의 어려움 수백 명의 개발자 - 의사소통 및 상호 협력의 어려움 - 조직 및 팀 구조 SM PM Member Member Member 오랜 개발 시간 모호하고 복잡한 요구사항 - 프로젝트 관리 - 수백 페이지의 요구사항 - 비용 및 효과의 산정 - 빈번한 요구사항의 변화 38 Computer Engineering, Pusan National University Software Engineering: Definitions The disciplined application of engineering, scientific, and mathematical principles and methods to the economical production of quality software. - Watts Humphrey The systematic approach to the development, operation, maintenance, and retirement of software. - IEEE Computer Society Multi-person construction of multi-version software. - D.L. Parnas Design, building, and maintaining large software systems. - Ian Sommerville …… 39 Computer Engineering, Pusan National University Goal of Software Engineering Producing a quality software system at a low cost (within a budget), i.e., cost- effective on time that satisfies user’s need. 40 Computer Engineering, Pusan National University Why is SE important? The economies of ALL developed nations are dependent on software Software engineering expenditure represents a significant fraction of GNP in all developed countries Software costs often dominate system costs Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs More and more systems are software controlled 41 Computer Engineering, Pusan National University Aspects of Software Engineering Software engineering is a broad and interdisciplinary subject requiring knowledge on software process design, coding, and analysis tools and environments software project management configuration management quality assurance Other knowledge hardware characteristics human factors (i.e., GUI) technical communication and documentation 42 Computer Engineering, Pusan National University Software Characteristics Software is a set of items or objects that form a “configuration” that includes Program Documents Data, etc. Software is developed or engineered, it is not manufactured, in the classical sense Focus on process development Focus on the activities by people Most S/W is custom built, rather than being assembled from existing components 43 Computer Engineering, Pusan National University Software Characteristics (cont.) Software doesn’t “wear out”. "Infant "WEAR Failure rate Failure rate Mortality" OUT" Change Ideal curve Time Time Hardware Failure Software Failure 44 Computer Engineering, Pusan National University Software Characteristics (cont.) Documentation is an important aspect However, usually not regarded as interesting / rewarding activity A system is supposed to solve always (almost) changes as the system is being built 45 Computer Engineering, Pusan National University Why S/W Development is So Difficult? Because of Software Characteristics Software is invisible(invisibility) Inherent complexity cannot be reduced: Nonlinearly growing efforts(complexity) Not manufactured/Mostly one-off systems(conformity) Software is evolving right after its completion(changeability) Sequential nature of software development Cannot be fully automated Communication requirements Management issues Short history of software engineering 46 Computer Engineering, Pusan National University Why S/W development is So Difficult? Testing Example Testing of a module with two input parameters - Word size 32 bits - Test completed automated - Time to test one test case: 0.0000001 second - Total time required: 58, 494 years! Depending on tester’s capability, the performance varies in 40 times. In embedded systems development, testing becomes more complicated: no way of testing completed; hard to repeat the failures; H/W is not stable; without H/W ready, not easy to build testing environment 47 Computer Engineering, Pusan National University Software Myths Managers We have standards and procedures for building software, so developer have everything they need to know. We have state-of-the-art software development tools. If we are behind schedule, we can add more programmers to catch up. A good manager can manage any project. Clients A general statement of objectives is sufficient to begin writing programs -- we can fill in the details later. Requirements changes are easy to accommodate because software is flexible. Practitioners Once the program is written and run, our job is done. Until a program is running, there is no way of assessing its quality. The only deliverable for a software project is a working program. 48 Computer Engineering, Pusan National University Costs of S/W Development (1970’s) Analysis & Design 40% Coding 20% Testing 40% 49 Computer Engineering, Pusan National University Shift in Effort Distribution Requirements Premininary Detailed Coding and Integration System Analysis Design Design Unit Testing Testing Testing Years 1960s – 10% 80% 10% 1970s 1980s 20% 60% 20% 1990s 40% 30% 30% The Economic Impacts of Inadequate Infrastructure for Software Testing, NIST, 2002 50 Computer Engineering, Pusan National University Development vs. Maintenance Software maintenance cost is generally twice as expensive as development cost Partly, due to the length of time the software is in use. ⇒ Software product is not the final goal. Maintenance becomes a significant issue. 67% 33% Development Maintenance Lientz and Swanson 1980 51 Computer Engineering, Pusan National University Sources of Errors in S/W Developments Functionality & Logic design Misunderstanding & Misunderstanding 15% 20% Documentation & Others 35% Coding 30% 52 Computer Engineering, Pusan National University Costs to Fix Errors The sooner an error is discovered, the better. More errors are found by outside testers and users than by developers. More errors are found in the two latest stages. Costs to Fix Err (Relative to Base) Requirement Design Code Test Acceptance Operation Test 53 Computer Engineering, Pusan National University Software Applications (1/3) System Software A collection of programs written to service other program Operating Systems, Drivers, File Managers, etc. Real-Time Software Program that monitors, analyzes and controls real world events as they occur Must respond within strict time constraints Military Systems Business Software Facilitates business operations or management decision making Conventional Data Processing, MIS(Management Information Systems), etc. 54 Computer Engineering, Pusan National University Software Applications (2/3) Engineering and Scientific Software Characterized by Number Crunching CAD, Automobile Street Test, etc. Embedded Software Resides in read-only memory, and is used to control products and systems for consumer and industrial markets Performs very limited and esoteric functions 55 Computer Engineering, Pusan National University Embedded Software: Example 56 Embedded Software: Example From 2000’s, premium cars have More than 2000 functions are realized or controlled by software More than 10 M LOC Electronics and software: up to 40 % of the production cost of a car Software cost: 50-70% of the development costs of the software/hardware systems Challenges in Automotive Software Engineering, ICSE 2006 57 Software Applications (3/3) Product-Line Software Service-Oriented Software Web/Mobile Application Artificial Intelligence Software Uses non-numerical algorithms to solve complex problems that are amenable to computation or straightforward analysis Expert Systems, Neural Networks, Deep Learning, etc. 58 Computer Engineering, Pusan National University 소프트웨어공학 기술 추세 59 Computer Engineering, Pusan National University Review of Introduction to SE Role of Software Gluing / Integrating all Hardware 61 Computer Engineering, Pusan National University Analogy of SE with Civil Engineering There are various kinds of construction from a house to a building complex 62 Computer Engineering, Pusan National University Analogy with Civil Engineering (cont.) When building a small house, …… With simple tools From just a blueprint Some failures By small group of are endurable novice workers 63 Computer Engineering, Pusan National University Analogy with Civil Engineering (cont.) When constructing a building complex, …… we must re-think everything 64 Computer Engineering, Pusan National University Analogy with Civil Engineering (cont.) With scalable tools as well as simple ones Use different materials 65 Computer Engineering, Pusan National University Analogy with Civil Engineering (cont.) By a big group of various technicians With collaborations and guides Set of blueprints As well as careful plans 66 Computer Engineering, Pusan National University Differences with Civil Engineering SW는 디지털 상품이다. 한 번 개발한 후 복제를 통한 재생산 비용이 저렴 재사용이 많을수록 경쟁력 향상 및 수익 증대 이노베이션이 중요한 상품이다 단계별 완성 작업이 어렵다 중간 결과물의 완성 여부 확인이 어렵다 SW개발현황은 개발자의 말에 종속된다. 즉, 문서나 코드 등의 존재 여부와 같은 형식적인 확인만 가능 그러므로, 개발자의 능력과 개인의 특성이 중요하다 67 Computer Engineering, Pusan National University What is Software Engineering The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software (IEEE, 1991) What you do when you have two or more people working on a project (Institute for Information Technology, NRC Canada, 1997) What Software Engineers do (Industri- Matematik International, 1997) 68 Computer Engineering, Pusan National University Goal of Software Engineering Produce quality software on time within budget that satisfies user’s needs 69 Computer Engineering, Pusan National University SW공학 기술 추세 SW공학은 ‘SW생산성 향상’ 단계와 ‘SW품질 개선’ 단계를 거쳐 현재 ‘SW가치 창출’ 단계의 핵심기술들을 제시하면서 발전하고 있음 70 Computer Engineering, Pusan National University