Introduction to Software Engineering (2/2) Moonzoo Kim KAIST (slides from CS550 ‘06 taught by prof. D. Bae)

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

EEE 243B Applied Computer Programming Software engineering Life cycle and when to test.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
CS487 Software Engineering Omar Aldawud
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
Ch 4 The Process page 1CS 368 Building Software is Difficult often delivered late often over budget always with errors must be a custom solution complexity.
What is Software Engineering? And why is it so hard?
What do Computer Scientists and Engineers do? CS101 Regular Lecture, Week 10.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
Chapter 1 Principles of Programming and Software Engineering.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
1 CS453: Automated Software Testing Moonzoo Kim Software Testing and Verification Group CS Dept. KAIST.
Ch.11 Software Engineering A Preview. Ch.12 Outline Definitions of software engineering (SE) Historical origins of SE SE as part of systems engineering.
Software Verification and Validation (V&V) By Roger U. Fujii Presented by Donovan Faustino.
Verification and Validation
Use of Multimedia in Engineering. Mechatronics engineering is based on the combination from three basic engineering field that is mechaninal, electronics.
Software Engineering Introduction. Why are you here? …alternatively, why do we think you need to be here? Why a course on software engineering? How is.
Software Development Concepts ITEC Software Development Software Development refers to all that is involved between the conception of the desired.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
Chapter 2 The process Process, Methods, and Tools
Slide 1.1 CHAPTER 1 INTRODUCTION TO SOFTWARE ENGINEERING.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
EENG 1920 Chapter 1 The Engineering Design Process 1.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Ch.11 Software Engineering A Preview. Ch.12 Outline Definitions of software engineering (SE) Historical origins of SE SE as part of systems engineering.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
An Introduction to Software Engineering. Communication Systems.
1 Introduction to Software Engineering Lecture 1.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
 Programming - the process of creating computer programs.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Lectures 2 & 3: Software Process Models Neelam Gupta.
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Introduction to Software Engineering (2/2)
Software Life Cycle “What happens in the ‘life’ of software”
SYSTEM ANALYSIS AND DESIGN
CS453: Automated Software Testing
Rekayasa Perangkat Lunak
Software Design Methodology
Software Development Cycle
Information Systems Development
CS 1120: Computer Science II Software Life Cycle
Software Engineering Software Engineering is the science and art of
Software Engineering Software Engineering is the science and art of
Rekayasa Perangkat Lunak
CS 1120: Computer Science II Software Life Cycle
Software Development Cycle
Presentation transcript:

Introduction to Software Engineering (2/2) Moonzoo Kim KAIST (slides from CS550 ‘06 taught by prof. D. Bae)

Software Development Process 2 A SW Development Framework for SW with High Assurance Formal require- ment Spec. Formal require- ment Spec. Formal system modeling Formal system modeling Model analysis/ verification Model analysis/ verification Model- assisted code generation Model- assisted code generation Model- based testing Model- based testing Runtime monitoring and checking Runtime monitoring and checking Systemdesign Requirementanalysis Designanalysis Implement-ation Testing Monitoring

Sources of Errors in S/W Developments 3 Functionality & Misunderstanding 15% Documentation & Others 35% Coding 30% Logic design & Misunderstanding 20%

Ex. Requirement on Retail Chain Management Software Find ambiguous points in the following requirement Find ambiguous points in the following requirement If the sales for the current month are below the target sales, then a report is to be printed, If the sales for the current month are below the target sales, then a report is to be printed, unless the difference between target sales and actual sales is less than half of the difference between target sales and actual sales in the previous month unless the difference between target sales and actual sales is less than half of the difference between target sales and actual sales in the previous month or if the difference between target sales and actual sales for the current month is under 5 percent. or if the difference between target sales and actual sales for the current month is under 5 percent. 4

Scope of S/W Engineering Historical Aspects Historical Aspects Economic Aspects Economic Aspects Maintenance Aspects Maintenance Aspects Specification & Design Aspects Specification & Design Aspects Team Programming Aspects Team Programming Aspects 5

Historical Aspects 1967, A NATO group coined the term " Software Engineering" 1967, A NATO group coined the term " Software Engineering" 1968, NATO conference concluded that software engineering should use the philosophies and paradigms of established engineering disciplines, to solve the problem of software crisis 1968, NATO conference concluded that software engineering should use the philosophies and paradigms of established engineering disciplines, to solve the problem of software crisis 6

Economic Aspects Relationship between computer science and software engineering Relationship between computer science and software engineering cf: chemistry and chemical engineering cf: chemistry and chemical engineering Software engineer is intended in only those techniques which make sound economic sense, while computer scientists investigate a variety of ways of producing software, some good and some bad Software engineer is intended in only those techniques which make sound economic sense, while computer scientists investigate a variety of ways of producing software, some good and some bad 7

Maintenance Aspects 8 Maintenance 67 % Requirements 3% Specification 4% Planning 2% Module coding 5% Module Testing 7% Integration 6% Design 6%

9 Specification and Design Aspects Requirements Specification Planning Design Implementation Integration Maintenance Approximate relative cost to detect and correct a fault

Team Programming Aspect Parnas, "Multi-person construction of multiversion software." Parnas, "Multi-person construction of multiversion software." Programming : personal activity Programming : personal activity S/W engineering : team activity S/W engineering : team activity 10

Team Programming Aspect (Cont.) (From programming to sw engineering) Programming in early days Programming in early days The problem is well understood. The problem is well understood. Mostly scientific applications. Mostly scientific applications. By a person, who is an expert in that area. By a person, who is an expert in that area. User = programmer = maintainer User = programmer = maintainer User and programmer separation User and programmer separation User: specify the problem(tasks) User: specify the problem(tasks) Programmer: interpret and translate into code Programmer: interpret and translate into code 11

Team Programming Aspect (Cont.) Team project started in late 1960's Team project started in late 1960's IBM360 Operating system IBM360 Operating system Software crisis observed Software crisis observed ``Software Engineering'' coined ``Software Engineering'' coined Solutions to software crisis Solutions to software crisis Management techniques Management techniques Team organization Team organization Chief programmer team Chief programmer team Democratic team Democratic team Hierarchical team Hierarchical team Better languages and tools Better languages and tools Standards Standards ==> Applying engineering approach ==> Applying engineering approach 12

Team Programming Aspect (Cont.) Requirements in the programming-in-the-small Requirements in the programming-in-the-small Good programming skill Good programming skill Skilled in data structures and algorithms Skilled in data structures and algorithms Fluent in programming languages Fluent in programming languages Requirements in the programming-in-the large Requirements in the programming-in-the large Needs communication skills and interpersonal skills Needs communication skills and interpersonal skills Be familiar with design approaches (i.e. system abstraction) Be familiar with design approaches (i.e. system abstraction) Top-down design Top-down design Divide and conquer paradigm Divide and conquer paradigm Component based integration Component based integration Be able to translate vague requirements and desires into precise spec. Be able to translate vague requirements and desires into precise spec. Be able to build and use a model of the application Be able to build and use a model of the application Needs ability to schedule work Needs ability to schedule work 13

Three Elements of S/W Development 14 Technology Resources Process Quality/ProductivityImprovement ProductProduct Product Facilities Staff Budget Water-fall process Incremental process Evolutionary process OOP Model based testing

Special Software Domain:Commercial Electronics and Embedded System

/19 Strong IT Industry in South Korea 16 Moonzoo Kim Time-to- Market? SW Quality?

What’s Different About Embedded Systems Embedded systems have different design constraints than general purpose systems Embedded systems have different design constraints than general purpose systems Cost may matter more than speed Cost may matter more than speed Long life cycle may dominate design decision Long life cycle may dominate design decision Since ubiquitous computing paradigm occurred, this aspect is changing Since ubiquitous computing paradigm occurred, this aspect is changing Reliability/safety may constraint design choice Reliability/safety may constraint design choice Because applications are often unique, software development may wait for hardware to become available Because applications are often unique, software development may wait for hardware to become available need for simulator/emulators/etc need for simulator/emulators/etc Time to market constraints Time to market constraints Rapid redesign for changing form factors Rapid redesign for changing form factors Rapid redesign for changing control algorithms Rapid redesign for changing control algorithms 17

Software Characteristics by Domain Ordinary IT Software System(e.g. systems developed by SI organizations) Ordinary IT Software System(e.g. systems developed by SI organizations) Size : Very Large Size : Very Large Domain consistency: Low Domain consistency: Low New technology sensitivity: High New technology sensitivity: High Hardware dependency: Low Hardware dependency: Low Time-to-market pressure: Low Time-to-market pressure: Low 18

Software Characteristics by Domain Commercial Software(e.g. systems developed by software vendors) Commercial Software(e.g. systems developed by software vendors) Size : Large Size : Large Domain consistency: High Domain consistency: High New technology sensitivity: High New technology sensitivity: High Hardware dependency: Low Hardware dependency: Low Time-to-market pressure: Moderate Time-to-market pressure: Moderate 19

Software Characteristics by Domain Controller Systems/Automation Systems Controller Systems/Automation Systems Size : Medium Size : Medium Domain consistency: High Domain consistency: High New technology sensitivity: Low New technology sensitivity: Low Hardware dependency: Moderate Hardware dependency: Moderate Time-to-market pressure: Moderate Time-to-market pressure: Moderate 20

Software Characteristics by Domain Embedded Systems /Commercial Electronics Embedded Systems /Commercial Electronics Size : Small Size : Small Domain consistency: High (-> Moderate) Domain consistency: High (-> Moderate) New technology sensitivity: High New technology sensitivity: High Hardware dependency: High Hardware dependency: High Time-to-market pressure: High Time-to-market pressure: High 21

Software Engineering Applicability In general, Controller Systems/Automation Systems (and Embedded Systems /Commercial Electronics) can give much higher rewards for software engineering activity In general, Controller Systems/Automation Systems (and Embedded Systems /Commercial Electronics) can give much higher rewards for software engineering activity Domain consistency is high and new technology sensitivity is low Domain consistency is high and new technology sensitivity is low Ease of accumulating empirical data Ease of accumulating empirical data High reusability in accumulated developments assets(e.g. requirements specification, domain model, test cases, modules) High reusability in accumulated developments assets(e.g. requirements specification, domain model, test cases, modules) Ease of continuous improvement Ease of continuous improvement 22

General Obstacles Hardware dependency is high Hardware dependency is high Software development may wait for hardware to become available Software development may wait for hardware to become available Confident testing environment is not supported even until complete hardware is ready Confident testing environment is not supported even until complete hardware is ready May need for effective simulator/emulator for testing May need for effective simulator/emulator for testing Time-to-market pressure is high Time-to-market pressure is high High schedule pressure causes difficulties in software engineering activities High schedule pressure causes difficulties in software engineering activities Overcome the hardware dependency as much as possible Overcome the hardware dependency as much as possible Set up process to reduce redundant time consumption Set up process to reduce redundant time consumption Asset reuse Asset reuse 23

/19 Embedded Software in Two Different Domains 24 Consumer Electronics Safety Critical Systems ExamplesSmartphones, flash memory platforms Nuclear reactors, avionics, cars Market competition HighLow Life cycleShortLong Development time ShortLong Model-based development NoneYes Important value Time-to-marketSafety Moonzoo Kim Model checking Conventional Testing Concolic testing