Overview and History of Software Engineering



Similar documents
Object-Oriented Software Engineering

CHAPTER 01 THE SCOPE OF SOFTWARE ENGINEERING

M.Tech. Software Systems

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

LONG BEACH CITY COLLEGE MEMORANDUM

What is Software? The Software Development Process. Definition of Software. Why Software?

Master of Science in Software Engineering (MSC)

Software Development Training Camp 1 (0-3) Prerequisite : Program development skill enhancement camp, at least 48 person-hours.

Doctor of Philosophy in Computer Science

ECS 165A: Introduction to Database Systems

Master of Science in Computer Science

Statistical Analysis on Curriculum of the National Model School of Software Engineering

Analysis of Software Process Models and Applications

CS4507 Advanced Software Engineering

Computer and Information Sciences

Computer Science. Master of Science

Page 1 of 5. (Modules, Subjects) SENG DSYS PSYS KMS ADB INS IAT

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014)

Management Information System Prof. Biswajit Mahanty Department of Industrial Engineering & Management Indian Institute of Technology, Kharagpur

Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.

Software: Driving Innovation for Engineered Products. Page

SE 367 Software Engineering Basics of Software Engineering

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

A Real Time, Object Oriented Fieldbus Management System

Overview of Software Engineering and the Software Development Process

2. Analysis, Design and Implementation

Course Description Bachelor in Management Information Systems

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Master's Degree Program in Computer Science

2. Analysis, Design and Implementation

What is a programming language?

Computer Science Introduction

Graduate Co-op Students Information Manual. Department of Computer Science. Faculty of Science. University of Regina

UNDERGRADUATE DEGREE PROGRAMME IN COMPUTER SCIENCE ENGINEERING SCHOOL OF COMPUTER SCIENCE ENGINEERING, ALBACETE

Depth and Excluded Courses

Department of Computer Science

Embedded Software development Process and Tools: Lesson-1

Department of CSE. Jaypee University of Information Technology, Waknaghat. Course Curricula

CSCI-485: Software Design

How To Get A Computer Engineering Degree

Core Curriculum to the Course:

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Embedded Software development Process and Tools: Lesson-3 Host and Target Machines

Bachelor Degree in Informatics Engineering Master courses

SOFTWARE ENGINEERING PROGRAM

Division of Mathematical Sciences

Software: Driving Innovation for Engineered Products

Masters in Human Computer Interaction

Masters in Advanced Computer Science

School of Computer Science

Online Computer Science Degree Programs. Bachelor s and Associate s Degree Programs for Computer Science

ASSESSMENT PLAN: M.S. in Computer Science

Masters in Artificial Intelligence

Chapter 6 Essentials of Design and the Design Activities

Design of Scalable, Parallel-Computing Software Development Tool

Master of Science in Information Systems management

Vdot A Revolutionary Tool for Space Logistics Campaign Planning and Simulation

the state of the practice Variations in Software Development Practices

Learning Outcome 1 The learner will: Understand the meaning of Information System and related terms. Indicative Content

ABET General Outcomes. Student Learning Outcomes for BS in Computing

Application Architectures

Chapter 13: Program Development and Programming Languages

Visualisation in the Google Cloud

SCHOOL OF INFORMATION TECHNOLOGY. Graduate Diploma in Information Technology (Level 7) 1 Semester Bachelor of Information Technology 3 Years

How To Test A Web Based System

M.Sc. Program in Informatics and Telecommunications

PROGRAMMES OFFERED BY DEPARTMENT OF COMPUTER SCIENCE SYSTEMS (Note: This document is for polytechnic students admitted in AY2004-5)

1. What are Data Structures? Introduction to Data Structures. 2. What will we Study? CITS2200 Data Structures and Algorithms

Appendix M INFORMATION TECHNOLOGY (IT) YOUTH APPRENTICESHIP

What is a life cycle model?

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Please Note: Temporary Graduate 485 skills assessments applicants should only apply for ANZSCO codes listed in the Skilled Occupation List above.

CHAPTER 8 CONCLUSION AND FUTURE ENHANCEMENTS

CAD and Creativity. Contents

Master of Science (M.S.), Major in Software Engineering

LONDON SCHOOL OF COMMERCE. Programme Specification for the. Cardiff Metropolitan University. BSc (Hons) in Computing

Software Project Models

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Information Systems Perspective 1. An Introduction to Information Systems in Organizations 2

Computer Science 1301 Computer Literacy. Student Learning Outcomes

Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 1 Outline

Computer Information Systems

Software: Systems and Application Software

Additional Software and Hardware Requirements

Software Safety Basics

DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING

Object-Oriented Software Engineering THE TOOLS OF THE TRADE CHAPTER 5. Stephen R. Schach 5.1 Stepwise Refinement.

Chapter 1 The Systems Development Environment

Masters in Networks and Distributed Systems

Masters in Computing and Information Technology

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Software Engineering. Software Reuse. Based on Software Engineering, 7 th Edition by Ian Sommerville

Bachelor of Bachelor of Computer Science

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

Computer Information Systems (CIS)

Information Systems: Definitions and Components

Transcription:

Overview and History of Software Engineering CS 230 Introduction to Software Engineering Slide 1

Outline Historical aspects - software crisis Software product Software process Software fault and failures Team aspects Structured versus object-oriented paradigm CS 230 Introduction to Software Engineering Slide 2

Historical Aspects A NATO study group coined the term software engineering in 1967 1968 NATO Conference in Garmisch, Germany Aim - to solve the SOFTWARE CRISIS Software is delivered olate o Over budget o With residual faults CS 230 Introduction to Software Engineering Slide 3

Examples of failures due to software Excessive radiotherapy doses (1985-1987) 9 hours outage of the long-distance in USA (1990) Scud missile missed by the Patriot (1991) Ariane 5 crash (1996) 8 hours delay in opening the London Stock Exchange (2000) CS 230 Introduction to Software Engineering Slide 4

Software Engineering Software engineering is a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the user s needs To achieve these goals, a software engineer has to acquire a broad range of skills, both technical and managerial CS 230 Introduction to Software Engineering Slide 5

Software Characteristics Software is developed or engineered, it is not manufactured in classical sense Most software continues to be custom built, although the industry is moving toward component-based assembly Software is complex Software doesn t wear out CS 230 Introduction to Software Engineering Slide 6

Software Poses Challenges How do we ensure the quality of the software that we produce? Why can t we find and fix all faults (bugs) before the software is released? How do we meet the budget and avoid disastrous time delays? Why the development costs so high? Why does it take so long to get software finished? How do we upgrade software? How do we successfully institute new software technologies? CS 230 Introduction to Software Engineering Slide 7

Economic Aspects Coding technique CT new is 10% faster than currently used technique CT old. Should it be used? Choose technique that reduce long - term cost Consider costs in introducing CT new into organization Consider the effect of CT new on maintenance CS 230 Introduction to Software Engineering Slide 8

Software Product Software is a set of items or objects that form a configuration that includes Programs that when executed provide desired function and performance Data structures that enable programs to adequately manipulate information Documents that describe the operation and use of the programs CS 230 Introduction to Software Engineering Slide 9

Software Applications System software collection of programs written to service other programs Heavy interaction with computer hardware, multiple users, concurrent operation, resource sharing, sophisticated process management, complex data structures, multiple external interfaces Examples: operating system components, drivers, telecommunications processors, compilers, editors, file management utilities Application software standalone programs that solve specific business or technical need Examples: data processing applications, point-of-sale transaction processing, real-time manufacturing process control CS 230 Introduction to Software Engineering Slide 10

Software Applications (contd) Business software business information processing Management information system (MIS) that accesses one or more databases containing business information (e.g., payroll, inventory) Engineering and scientific software (e.g., numerical estimations, simulation, etc.) PC software (word processing, spreadsheets, computer graphics, multimedia, entertainment, personal and business financial applications, etc.) Web-based software A set of linked hypertext files that present information using text and graphics, e-commerce, B2B applications CS 230 Introduction to Software Engineering Slide 11

Software Applications (contd) Real-time software monitors, analyzes, and controls real-world events as they occur in real-time Response time typically ranges from 1 millisecond to 1 second Embedded software control products and systems for consumer and industrial markets Artificial intelligence software uses non-numerical algorithms to solve complex problems Applications: robotics, expert systems, pattern recognition, adaptive control. Ubiquitous computing growth of wireless networking, use of small mobile devices, laptops, etc. CS 230 Introduction to Software Engineering Slide 12

Software Process Software process is the way we produce software product (a nontrivial piece of software) 1. Requirements phase 2. Specification phase 3. Design phase 4. Implementation phase 5. Integration phase (in parallel with 4) 6. Maintenance phase 7. Retirement CS 230 Introduction to Software Engineering Slide 13

Software Process (contd) Testing is not a separate phase, but an activity that takes place through software production Testing occurs towards the end of each phase (verification) and before the product is handed over to the client (validation) Although there are times when the testing predominates, there should never be the times when no testing is being performed CS 230 Introduction to Software Engineering Slide 14

Software Process (contd) There is no separate documentation phase Documentation for each phase must be completed by the team responsible for that phase, before the next phase starts Documentation must be updated continually to reflect the current version of the product CS 230 Introduction to Software Engineering Slide 15

Approximate Relative Cost of Each Phase 1976 1981 data Maintenance constitutes 67% of total cost CS 230 Introduction to Software Engineering Slide 16

Comparative Relative Cost of Each Phase CS 230 Introduction to Software Engineering Slide 17

Good and Bad Software Good software is maintained - Bad software is discarded Different types of maintenance Corrective maintenance [about 20%] Enhancement o Perfective maintenance [about 60%] o Adaptive maintenance [about 20%] CS 230 Introduction to Software Engineering Slide 18

Software fault and failures Failure - departure from the specific system behavior Fault - defect in the software that when executed under particular conditions causes a failure 60 to 70 % of faults are specification and design faults Inspection of JPL software for the NASA unmanned interplanetary space program detected (Data of Kelly, Sherif, and Hops [1992]) 1.9 faults per page of specification 0.9 faults per page of design 0.3 faults per page of code CS 230 Introduction to Software Engineering Slide 19

Software fault and failures (contd) Faults at end of the design phase of the new version of the product (Data of Bhandari et al. [1994]) 13% of faults from previous version of product 16% of faults in new specifications 71% of faults in new design The earlier we correct a fault, the better CS 230 Introduction to Software Engineering Slide 20

Cost to Detect and Correct a Fault CS 230 Introduction to Software Engineering Slide 21

Failure Curve for Software CS 230 Introduction to Software Engineering Slide 22

Team Aspects Products are too large to be written by one person in the available time Teams should be properly organized and managed Suppose that a single developer can complete a product in 1 year. How long it will take if it is assigned to a team of three developers? CS 230 Introduction to Software Engineering Slide 23

Structured versus Object-Oriented Paradigm Structured methods are action oriented or data oriented, but not both Object - software component that incorporates both data and the actions that are performed on that data Example: Bank account o Data: account balance o Actions: deposit, withdraw, determine balance CS 230 Introduction to Software Engineering Slide 24

Structured versus Object-Oriented Paradigm Data component of an object - Attribute (generic) Action component of an object - Method (generic) CS 230 Introduction to Software Engineering Slide 25

Structured versus Object-Oriented Paradigm Encapsulation conceptual independence Everything in the product that relates to the proportion of the real world modeled by that object can be found in the object itself Information hiding - physical independence Implementation details are hidden from everything outside that object Responsibility-driven design (or Design by contract) The way the action is carried out is entirely the responsibility of the object itself CS 230 Introduction to Software Engineering Slide 26

Example Send flowers to your aunt in Iowa City List of all florists in Iowa City Which florists do the delivery Which one is located close to aunt s home OR Call 1-800-FLOWERS and leave the entire responsibility for delivering flowers to that organization CS 230 Introduction to Software Engineering Slide 27

Structured versus Object-Oriented Paradigm CS 230 Introduction to Software Engineering Slide 28

Warning Do not use the object-paradigm to enhance a product developed using the structured paradigm Water and oil do not mix Exception: if the new part is totally disjoint Example: adding a GUI (graphical user interface) CS 230 Introduction to Software Engineering Slide 29