1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 6/e Part 1 Supplementary Slides for Software Engineering: A Practitioner's.

Slides:



Advertisements
Similar presentations
These courseware materials are to be used in conjunction with Software Engineering: A Practitioners Approach, 6/e and are provided with permission by R.S.
Advertisements

Lecture 2 1 Introduction to Software Engineering.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
What is Software Engineering? And why is it so hard?
1 SWE Introduction to Software Engineering Lecture 3 Introduction to Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
SWE Introduction to Software Engineering
CS487 Software Engineering Omar Aldawud
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Modified from Sommerville’s slidesSoftware Engineering, 7th edition. Chapter 1 Slide 1 An 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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
SE 112 Slide 1 SE 112 l
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Software Engineering Methodologies (Introduction)
1 Chapter 1 Software and Software Engineering. 2 Scope of Software Engineering Historical Aspects 1968 NATO Conference, Garmisch Aim: to solve the “Software.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6/e.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CPSC 871 John D. McGregor MMS1 Maintenance & a new trend.
Objectives of the Lecture
Chapter : Introduction to Software Engineering Ref. book : Software Engineering by Roger Pressman.
1 Software Engineering: A Practitioner's Approach R.S. Pressman Textbook.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
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.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
Introduction to Software Engineering
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
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.
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.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction.
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.
1M.Sc(I.T.) VNSGU, Surat. Software is instructions (computer programs) that when executed provide desired function and performance, data structures that.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.
Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.
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.
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.
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.
1 CSC 4700 Software Engineering John Lewis These slides are based on originals provided by Ian Sommerville.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
©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.
Part 1 Introduction to Software Engineering 1 copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Introduction to Software Engineering.
An Introduction to Software Engineering
Chapter 1- Introduction
MISY 301 Mr.Mohammed Rafeeque.
Chapter 1 The Nature of Software
Chapter : Introduction to Software Engineering
Chapter : Introduction to Software Engineering
Software What Is Software?
Chapter : Introduction to Software Engineering
For University Use Only
Overview: Software and Software Engineering
Chapter : Introduction to Software Engineering
Chapter : Introduction to Software Engineering
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Software and Software Engineering
Presentation transcript:

1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 6/e Part 1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 6/e Part 1 copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited. This presentation, slides, or hardcopy may NOT be used for short courses, industry seminars, or consulting purposes.

2 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.

3 Software’s Dual Role Software is a product Software is a product Delivers computing potential Delivers computing potential Produces, manages, acquires, modifies, displays, or transmits information Produces, manages, acquires, modifies, displays, or transmits information Software is a vehicle for delivering a product Software is a vehicle for delivering a product Controls other programs (e.g., an operating system) Controls other programs (e.g., an operating system) Effects communications (e.g., networking software) Effects communications (e.g., networking software) Helps build other software (e.g., software tools) Helps build other software (e.g., software tools)

4 What is Software? Software is a set of items or objects that form a “configuration” that includes programs documents data

5 What is Software? software is engineered, it is not manufactured in the classical sense. software is engineered, it is not manufactured in the classical sense. software doesn’t “wear out.” It declines, because of changes. software doesn’t “wear out.” It declines, because of changes. software is complex: although the industry is moving toward component- based construction, most software continues to be custom built. software is complex: although the industry is moving toward component- based construction, most software continues to be custom built.

Wear vs. Deterioration 6

The Cost of Change 7

Software Poses Challenges 8

Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost Software costs often dominate system costs. The costs 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 Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs Software engineering is concerned with cost-effective software development Software engineering is concerned with cost-effective software development Software costs 9

What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production Software engineering is an engineering discipline which is concerned with all aspects of software production Software engineers should Software engineers should adopt a systematic and organised approach to their work and adopt a systematic and organised approach to their work and use appropriate tools and techniques use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available depending on the problem to be solved, the development constraints and the resources available 10

What is the difference between software engineering and computer science? Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software Computer science theories are currently insufficient to act as a complete underpinning for software engineering Computer science theories are currently insufficient to act as a complete underpinning for software engineering 11

What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process System engineers are involved in system specification, architectural design, integration and deployment System engineers are involved in system specification, architectural design, integration and deployment 12

What are the attributes of good software? The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable Maintainability Maintainability Software must evolve to meet changing needs Software must evolve to meet changing needs Dependability Dependability Software must be trustworthy Software must be trustworthy Efficiency Efficiency Software should not make wasteful use of system resources Software should not make wasteful use of system resources Usability Usability Software must be usable by the users for which it was designed Software must be usable by the users for which it was designed 13

What are the key challenges facing software engineering? Coping with legacy systems, coping with increasing diversity and coping with demands for reduced delivery times Coping with legacy systems, coping with increasing diversity and coping with demands for reduced delivery times Legacy systems Legacy systems Old, valuable systems must be maintained and updated Old, valuable systems must be maintained and updated Heterogeneity Heterogeneity Systems are distributed and include a mix of hardware and software Systems are distributed and include a mix of hardware and software Delivery Delivery There is increasing pressure for faster delivery of software There is increasing pressure for faster delivery of software 14

Professional and ethical responsibility Software engineering involves wider responsibilities than simply the application of technical skills Software engineering involves wider responsibilities than simply the application of technical skills Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals Ethical behaviour is more than simply upholding the law. Ethical behaviour is more than simply upholding the law. 15

16 Software Applications system software system software application software application software engineering/scientific software engineering/scientific software embedded software embedded software product-line software product-line software WebApps (Web applications) WebApps (Web applications) AI software AI software

system software system software Service other programs Service other programs Usually: Usually: heavy interaction with computer hardware, heavy interaction with computer hardware, heavy usage by multiple users, heavy usage by multiple users, concurrent operation concurrent operation scheduling, resource sharing, process management, scheduling, resource sharing, process management, complex data structures, complex data structures, multiple external interfaces multiple external interfaces 17

application software application software Standalone programs that solve a specific business need. Standalone programs that solve a specific business need. Conventional data processing Conventional data processing Control business functions in real-time Control business functions in real-time 18

engineering/scientific software engineering/scientific software Numerical algorithms Numerical algorithms Newly: real-time and system software characteristics Newly: real-time and system software characteristicsIncluding: Astronomy Astronomy Volcano logy Volcano logy Automotive stress analysis Automotive stress analysis Space shuttle orbital dynamics Space shuttle orbital dynamics Molecular biology Molecular biology 19

embedded software embedded software Resides within a product or system Resides within a product or system 20

product-line software product-line software Provide a specific capability for use by many different customers Provide a specific capability for use by many different customers Inventory control, word processing, spreadsheets, computer graphics, … Inventory control, word processing, spreadsheets, computer graphics, … 21

WebApps (Web applications) WebApps (Web applications) … 22

AI software AI software Robotics, expert systems, pattern recognition (image and voice), artificial neural networks, theorem proving, and game playing Robotics, expert systems, pattern recognition (image and voice), artificial neural networks, theorem proving, and game playing 23

24 Software—New Categories Ubiquitous (everywhere) computing—wireless networks Ubiquitous (everywhere) computing—wireless networks Open source—”free” source code open to the computing community (a blessing, but also a potential curse!) Open source—”free” source code open to the computing community (a blessing, but also a potential curse!) Also … (see Chapter 32) Also … (see Chapter 32) Data mining Data mining Software for nanotechnologies Software for nanotechnologies

25 Legacy Software software must be adapted to meet the needs of new computing environments or technology. software must be adapted to meet the needs of new computing environments or technology. software must be enhanced to implement new business requirements. software must be enhanced to implement new business requirements. software must be extended to make it interoperable with other more modern systems or databases. software must be extended to make it interoperable with other more modern systems or databases. software must be re-architected to make it feasible within a network environment software must be re-architected to make it feasible within a network environment. Why must it change?

26 Software Evolution The Law of Continuing Change (1974): E-type systems must be continually adapted else they become progressively less satisfactory. The Law of Continuing Change (1974): E-type systems must be continually adapted else they become progressively less satisfactory. The Law of Increasing Complexity (1974): As an E-type system evolves its complexity increases unless work is done to maintain or reduce it. The Law of Increasing Complexity (1974): As an E-type system evolves its complexity increases unless work is done to maintain or reduce it. The Law of Self Regulation (1974): The E-type system evolution process is self-regulating with distribution of product and process measures close to normal. The Law of Self Regulation (1974): The E-type system evolution process is self-regulating with distribution of product and process measures close to normal. The Law of Conservation of Organizational Stability (1980): The average effective global activity rate in an evolving E-type system is invariant over product lifetime. The Law of Conservation of Organizational Stability (1980): The average effective global activity rate in an evolving E-type system is invariant over product lifetime. The Law of Conservation of Familiarity (1980): As an E-type system evolves all associated with it, developers, sales personnel, users, for example, must maintain mastery of its content and behavior to achieve satisfactory evolution. The Law of Conservation of Familiarity (1980): As an E-type system evolves all associated with it, developers, sales personnel, users, for example, must maintain mastery of its content and behavior to achieve satisfactory evolution. The Law of Continuing Growth (1980): The functional content of E-type systems must be continually increased to maintain user satisfaction over their lifetime. The Law of Continuing Growth (1980): The functional content of E-type systems must be continually increased to maintain user satisfaction over their lifetime. The Law of Declining Quality (1996): The quality of E-type systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes. The Law of Declining Quality (1996): The quality of E-type systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes. The Feedback System Law (1996): E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement over any reasonable base. The Feedback System Law (1996): E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement over any reasonable base. Source: Lehman, M., et al, “Metrics and Laws of Software Evolution—The Nineties View,” Proceedings of the 4th International Software Metrics Symposium (METRICS '97), IEEE, 1997, can be downloaded from:

27 Software Myths Affect managers, customers (and other non-technical stakeholders) and practitioners Affect managers, customers (and other non-technical stakeholders) and practitioners Are believable because they often have elements of truth, Are believable because they often have elements of truth, but … Invariably lead to bad decisions, Invariably lead to bad decisions, therefore … Insist on reality as you navigate your way through software engineering Insist on reality as you navigate your way through software engineering

Manager myths Manager myths A book full of standards and procedures provide everything we need. A book full of standards and procedures provide everything we need. If we get behind schedule, we can add programmers. If we get behind schedule, we can add programmers. We can outsource the software project to a third party and relax. We can outsource the software project to a third party and relax. Customer myths Customer myths To begin programming, a general statement of objectives is sufficient, we can fill the details later. To begin programming, a general statement of objectives is sufficient, we can fill the details later. Project requirements continually change, but change can be easily accommodated because software is flexible. Project requirements continually change, but change can be easily accommodated because software is flexible. Practitioner’s myth Practitioner’s myth Writing the program and get it to work, then our job is done. Writing the program and get it to work, then our job is done. Until we get the program running, we have no way of assessing the quality. Until we get the program running, we have no way of assessing the quality. The only deliverable work product is the working program. The only deliverable work product is the working program. Software engineering forces us to create documents and slows us down. Software engineering forces us to create documents and slows us down. 28