Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Facilitator Faisal Shafique Butt.

Similar presentations


Presentation on theme: "Software Engineering Facilitator Faisal Shafique Butt."— Presentation transcript:

1 Software Engineering Facilitator Faisal Shafique Butt

2 Software Engineering Introduction

3 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.

4 Software Engineering As defined in IEEE Standard 610.12: As defined in IEEE Standard 610.12: (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

5 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.

6 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.

7 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

8 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.

9 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

10 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

11 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.

12 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

13 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.

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

15 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

16 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.

17 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.

18 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

19 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

20 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

21 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

22 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.

23 COST EFFORT LINES Product ($million) (Person Year) (of code) Lotus 1-2-3 Ver 3 22 263 400k NASA Space Shuttle 1200 22096 25.6k CitiBank ATM 13.2 50 780k IBM Checkout 3 58 90k Scanner Scanner

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

25 Software Development

26 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”

27 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

28 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

29 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.

30 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

31

32 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.


Download ppt "Software Engineering Facilitator Faisal Shafique Butt."

Similar presentations


Ads by Google