Software Engineering Facilitator Faisal Shafique Butt.

Slides:



Advertisements
Similar presentations
Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Advertisements

Software Engineering Course Instructor: Aisha Azeem.
What is Software Engineering? And why is it so hard?
SWE Introduction to Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Engineering COMP 201
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant Professor, CSIS Department, BITS-Pilani.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
SE 112 Slide 1 SE 112 l
An Introduction to Software Engineering
Introduction/overview, Process model. What is Software Engineering? Why we need Software Engineering? Software Process Models.
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
CS4/542- Software Engineering  Software Design and Development  Required Text -- Code Complete by Steve McConnell  (Focuses on the problems of designing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
Introduction to Software Engineering. Topic Covered What is software? Attribute of good S/w? Computer Software? What is Software Engineering? Evolving.
Software Engineering Methodologies (Introduction)
Objectives of the Lecture
SOFTWARE ENGINEERING Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
UNIVERSITI TENAGA NASIONAL “Generates Professionals” CHAPTER 4 : Part 1 INTRODUCTION TO SOFTWARE DEVELOPMENT: SYSTEM ANALYSIS & DESIGN.
Software EngineeringIntroduction Slide 1 Software Engineering Mr. Ahmad Al-Ghoul.
1 An Introduction to Software Engineering. 2 Objectives l To introduce software engineering and to explain its importance l To set out the answers to.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
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.
2-Oct-15 1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts ICS Software Engineering.
2-Oct-15 Introduction to SWE1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
What is Software?  Computer programs and associated documentation such as requirements, design models and user manuals  Software products may be developed.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
An Introduction to Software Engineering. What is Software?
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 1 Software and Software Engineering Discussion of the Software Product.
Chapter 1: Introduction Omar Meqdadi SE 2730 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring Chapter 1 u define software engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction.
Lecture 1 The University of Lahore Software Engineering Saeed Akhtar
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
Lecture 4. Software Engineering Body of Knowledge SWEBOK  Articulating a body of knowledge is an essential step toward developing a profession because.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
An Introduction to Software Engineering Support Lecture.
An Introduction to Software Engineering (Chapter 1 from the textbook)
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
An Introduction to Software Engineering. Objectives  To introduce software engineering and to explain its importance  To set out the answers to key.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
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.
Introduction to Software Engineering Syed Salman Ali B.E, MBA ( MIS, Mktg), PMP.
1 CSC 4700 Software Engineering John Lewis These slides are based on originals provided by Ian Sommerville.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction As modified by Randy Smith.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Engineering Introduction Slide 1 Software Engineering Introduction.
L ECTURE 1 Introduction Getting started with software engineering.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
CompSci 280 S Introduction to Software Development
An Introduction to Software Engineering
Chapter 1- Introduction
MISY 301 Mr.Mohammed Rafeeque.
Frequently asked questions about software engineering
An Introduction to Software Engineering
Overview: Software and Software Engineering
CS385T Software Engineering Dr.Doaa Sami
An Introduction to Software Engineering
Software and Software Engineering
Presentation transcript:

Software Engineering Facilitator Faisal Shafique Butt

Software Engineering Introduction

What is Software? Software is the collection of computer programs,rules,and associated documentation and data. What is Software Engineering? It is the systematic approach to the development, operations. Maintenance and retirement of software.

Software Engineering As defined in IEEE Standard : As defined in IEEE Standard : (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. As defined in Schach As defined in Schach 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 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

Software Engineering Software engineering is concerned with theories, methods and tools for professional software development. The cost of software on a PC are often greater than the hardware cost. Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs: 60% of costs are development costs, 40% are testing costs.

Software Engineering For custom software, evolution costs often exceed development costs. Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability. Distribution of costs depends on the development model that is used. Software engineering is concerned with cost- effective software development.

Software Engineering Software products may be developed for a particular customer or may be developed for a general market. Software products may be Generic - developed to be sold to a range of different customers. Bespoke (custom) - developed for a single customer according to their specification

Software Engineering Software engineers should adopt a systematic and organized approach to their work and Use appropriate tools and techniques depending on The problem to be solved, The development constraints and The resources available.

Software Engineering The basic goal of software engineering is to produce a high quality software at low cost. The basic goal of software engineering is to produce a high quality software at low cost. Two basic factors are quality and cost. Two basic factors are quality and cost. Cost of a completed project can be calculated easily if proper accounting procedure are followed Cost of a completed project can be calculated easily if proper accounting procedure are followed

The evolving role of software Today, software takes on dual role Today, software takes on dual role It is a product It is a product At the same time, the vehicle for delivering a product. At the same time, the vehicle for delivering a product. Software delivers what many believe will be the most important product of 21 st century Information Software delivers what many believe will be the most important product of 21 st century Information

The evolving role of software Software transform personal data. Software transform personal data. It provides a gateway to the worldwide networks(Internet) It provides a gateway to the worldwide networks(Internet) The role of computer software has undergone significant change through the 2 nd half of 20 th century. The role of computer software has undergone significant change through the 2 nd half of 20 th century.

The evolving role of software Osborne called a new industrial revolution. Osborne called a new industrial revolution. Toffler called the advent of microelectronics Toffler called the advent of microelectronics

Different Eras During first era software was viewed an afterthought During first era software was viewed an afterthought A few systematic methods existed A few systematic methods existed Software development was virtually unmanaged Software development was virtually unmanaged No cost scheduling techniques No cost scheduling techniques Software was custom design for each application Software was custom design for each application Limited distribution. Limited distribution.

The evolving role of software Product software was not common Product software was not common Documentation was uncommon Documentation was uncommon

The evolving role of software The 2 nd era of computer system evolution spanned the decade from mid-1950s to the late 1970s The 2 nd era of computer system evolution spanned the decade from mid-1950s to the late 1970s Multiprogramming,multi-user systems introduced Multiprogramming,multi-user systems introduced Real time systems Real time systems DBMS DBMS

The evolving role of software The 2 nd era was also characterized by the use of product software and advent of software houses The 2 nd era was also characterized by the use of product software and advent of software houses Wide distribution. Wide distribution.

The evolving role of software The 3 rd era began in 1970s and spanned more than half a decade The 3 rd era began in 1970s and spanned more than half a decade Distributed systems Distributed systems Global and local area networks Global and local area networks High Bandwidth digital communication. High Bandwidth digital communication. The conclusion of the 3 rd era was characterized by the advent and wide spread use of microprocessors. The conclusion of the 3 rd era was characterized by the advent and wide spread use of microprocessors.

The evolving role of software The 4 th era of computer systems includes powerful Desktop computers controlled by sophisticated OS The 4 th era of computer systems includes powerful Desktop computers controlled by sophisticated OS Network locally and globally Network locally and globally Internet Internet Change in computer architecture Change in computer architecture

The evolving role of software MS put billions of dollars at risk MS put billions of dollars at risk OOP OOP Expert systems Expert systems AI with fuzzy logic has opened pattern matching and human like information like qualities AI with fuzzy logic has opened pattern matching and human like information like qualities Virtual Reality programming and multimedia systems Virtual Reality programming and multimedia systems

Ongoing Problems Hardware advances outpace ability to build software to tap potential Hardware advances outpace ability to build software to tap potential Ability to build new programs cannot meet demand for new programs, nor do we build fast enough to meet business and market needs Ability to build new programs cannot meet demand for new programs, nor do we build fast enough to meet business and market needs Widespread use of computers has made society increasingly dependent Widespread use of computers has made society increasingly dependent Struggle to build software with high reliability & quality Struggle to build software with high reliability & quality Ability to support and enhance programs is threatened by poor design and few resources Ability to support and enhance programs is threatened by poor design and few resources

Why Study Software Engineering? Software Crisis - Software hard to create well - budget over runs - time over runs - faulty products e.g., billing example Why Study Software Engineering? Software Crisis - Software hard to create well - budget over runs - time over runs - faulty products e.g., billing example

Programming methods do not scale up "Toy" programs 100's of lines "Toy" programs 100's of lines Small programs10,000 lines Small programs10,000 lines Medium programs100,000 lines Medium programs100,000 lines Large programs1,000,000 lines Large programs1,000,000 lines Very Large programs10,000,000 lines Very Large programs10,000,000 lines Small programs are typically implemented by individuals. Medium and larger programs are implemented by teams. Small programs are typically implemented by individuals. Medium and larger programs are implemented by teams.

COST EFFORT LINES Product ($million) (Person Year) (of code) Lotus Ver k NASA Space Shuttle k CitiBank ATM k IBM Checkout k Scanner Scanner

dBase II took two programmers and 50,000 lines of code s dBase IV took 100 people, 500,000 lines of code in 1986

Software Development

The Software Crisis It became clear in the mid-60s that: It became clear in the mid-60s that:  software systems were developed far too slowly  many software projects failed  most projects were delivered late and cost far more than was budgeted  delivered systems were often of very low quality This collection of maladies (which is still with us) was labeled the “software crisis” This collection of maladies (which is still with us) was labeled the “software crisis”

A view of the software crisis Experts tried to resolve such as : Experts tried to resolve such as : Why does software development take so long? Why does software development take so long? Why does it cost so much? Why does it cost so much? Why does software has bugs? Why does software has bugs? Why do we have difficulty managing software development efforts? Why do we have difficulty managing software development efforts? The software crisis prompted the creation of “software engineering” as a discipline The software crisis prompted the creation of “software engineering” as a discipline

Eight years ago From a 1995 American General Accounting Office report: From a 1995 American General Accounting Office report: more than 50% of SW contracts had cost overruns more than 50% of SW contracts had cost overruns more than 60% of SW contracts had schedule overruns more than 60% of SW contracts had schedule overruns more than 45% of delivered SW could not be used more than 45% of delivered SW could not be used more than 28% of SW was never delivered more than 28% of SW was never delivered

A recent IEEE survey found that 30% of all software development projects are canceled, 50% are more than 150% over budget and, on average, only 60% of desired functionality is achieved. A recent IEEE survey found that 30% of all software development projects are canceled, 50% are more than 150% over budget and, on average, only 60% of desired functionality is achieved.

Hardware versus Software Costs While the cost of hardware has come down dramatically, the cost of software is increasing While the cost of hardware has come down dramatically, the cost of software is increasing Most SW errors and cost of repair are traceable to failures in the initial requirements Most SW errors and cost of repair are traceable to failures in the initial requirements 2/3 of lifetime SW cost comes after installation 2/3 of lifetime SW cost comes after installation

Challenges The key challenges facing software engineering are: Coping with legacy systems -old, valuable systems must be maintained and updated Coping with increasing diversity - systems are distributed and include a mix of hardware and Software coping with demands for reduced delivery times. There is increasing pressure for faster delivery of software.