1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission.

Slides:



Advertisements
Similar presentations
What is Software Engineering? And why is it so hard?
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
CS487 Software Engineering Omar Aldawud
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 1 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.
CS 501: Software Engineering Fall 2000 Lecture 1 Introduction to Software Engineering.
©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.
Lecture 1.
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.
Chapter 1- Introduction
1 Software Engineering CEN5035 copyright © 1996, 2001 R.S. Pressman & Associates, Inc.
PGD-1303 Software Project Management?. What is software? Software  Computer programs and associated documentation Documentation includes  requirements.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
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 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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
CEN st Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi What.
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.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and 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 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
An Introduction to Software Engineering. What is Software?
Chapter 1: Introduction Omar Meqdadi SE 2730 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 1 Introduction to Software Engineering.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 1 Introduction to Software Engineering.
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.
An Introduction to Software Engineering. Communication Systems.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
SOFTWARE ENGINEERING Chapter 1. Introduction We can’t run the modern world without software. Why? Discussion….
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 24 Delivering the System.
An Introduction to Software Engineering Support Lecture.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
1 SWE 513: Software Engineering People II. 2 Future Experience What will you be doing one year from now? Ten years from now?
An Introduction to Software Engineering (Chapter 1 from the textbook)
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.
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 Software Engineering, 8th edition. Chapter 1 Jan 28 th, 2009 Lecture # 1 Courtesy: ©Ian Sommerville 2006 An Introduction to Software Engineering.
Software Engineering Introduction.
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 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
HNDIT23082– Principals of Software Engineering
CS 501: Software Engineering Fall 199 Lecture 1 a) Administration b) Introduction to Software Engineering.
©Ian Sommerville 2004Software 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 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction As modified by Randy Smith.
CompSci 280 S Introduction to Software Development
An Introduction to Software Engineering
INTRODUCTION The economies of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned.
Chapter 1- Introduction
CS385T Software Engineering Dr.Doaa Sami
An Introduction to Software Engineering
Presentation transcript:

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 R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Chapter 1 The Product

2 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener What is Software? Software is a set of items or objects that form a “configuration” that includes programs documents data...

3 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener What is Software?  software is engineered  software doesn’t wear out  software is complex  software is a ‘differentiator’  software is like an ‘aging factory’

4 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Wear vs. Deterioration

5 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener The statistics

6 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener The Cost of Change

7 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Why does software fail (Charette 1989)  Terminated for convenience/ non-performance of contract.  Completed but the system is not deployed as users cannot or will not use it.  Completed but the system does not meet the originally promised cost.  Completed but the system does not meet the originally promised schedule.  Completed but the system does not meet the originally promised quality.  Completed but the system does not meet the originally promised capability.  Completed but the system could not be evolved in a cost- effective manner

8 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Software Applications  system software  real-time software  business software  engineering/scientific software  embedded software  PC software  AI software  WebApps (Web applications)

9 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Variety of Software Products Examples Real time: air traffic control Embedded systems: digital camera, GPS Data processing: telephone billing, pensions Information systems: web sites, digital libraries Sensors: weather data System software: operating systems, compilers Communications: routers, mobile telephones Offices: word processing, video conferences Scientific: simulations, weather forecasting Graphical: film making, design etc., etc., etc.,....

10 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Software Poses Challenges

11 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener What makes software special? The main differences in software engineering compared to other engineering disciplines are listed [BSI, 1995].  It is difficult for a customer to specify requirements completely.  It is difficult for the supplier to understand fully the customer needs.  In defining and understanding requirements, especially changing requirements, large quantities of information need to be communicated and assimilated continuously.  Software is seemingly easy to change.  Software is primarily intangible; much of the process of creating software is also intangible, involving experience, thought and imagination.  It is difficult to test software exhaustively

12 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener A Solution - Software Engineering:  Greater emphasis on systematic development.  Computer assistance for software development (CASE)  A concentration on finding out the user’s requirements  Formal/Semi Formal specification of the requirements of a system  Demonstration of early version of a system (prototyping)  Greater emphases on trying to ensure error free code

13 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Software Engineering  Definitions:  Simple Definition: Designing, building and maintaining large software systems  Others:  ‘Software engineering is concerned with the theories, methods and tools for developing, managing and evolving software products’ I. Sommerville  ‘The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them’ B.W.Boehm  ‘The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines’ F.L.Bauer

14 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Software Engineering cont.  Definitions cont.  ‘The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software’ IEEE Standard  ‘The technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost constraints’ R. Fairley

15 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Observations Most software development is by teams Effectiveness of team determines success Most large software projects are built on older ones It is rare to start a new suite of programs from scratch Building on the work of others is a fundamental skill of software development

16 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Observations about Big Projects A big project is 1,000+ person years. Every important program is written by many people, who are constantly changing. Before a big project is completed the requirements have changed many times. No large system is ever complete.

17 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Course Themes: Risk Risk (as Seen by a Manager) Problems Over budget Late delivery Does not work as expected Never used Does the wrong thing Needs change Users dislike to use it etc. Failures of software development projects can bankrupt companies!

18 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Course Themes: Visibility Visibility (as Seen by a Manager) Problem Must rely on others for reports of progress or difficulties Software Developers Have difficulty evaluating progress Optimistic Consider reporting a waste time etc. The people who take the responsibility must know what is happening!

19 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Course Themes: Process Process in Large Software Projects Software as a product Clients and their needs Quality Requirements and specification Usability Evolution Project management Personnel management Economic, legal, and social factors Nobody comprehends more than a fraction of the project!

20 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Course Themes: Scale Techniques for large and very large systems Software design Software architecture Object-oriented design Dependable systems Reliability Verification Legacy systems

21 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Software as a Product Software is expensive! The major cost is your salary! Every software project has a trade-off between: Functionality Resources (cost) Timeliness

22 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener What is Good Software? General characteristics Usability Maintainability Dependability Efficiency Good software products require good programming, but... Programming quality is the means to the end, not the end itself.

23 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener What is Good Software? Client (a.k.a. Customer) The client provides resources and expects some product in return. Client satisfaction is the primary measurement of success. Question: Who is the client for Microsoft Excel?

24 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Categories of Product Categories of client and software product: Generic (e.g., Microsoft Excel) Bespoke (customized) (e.g., BU registration) Many systems are customized versions of generic packages (e.g., a payroll system)

25 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener The Craft of Software Development Software products are very varied --> Client requirements are very different --> There is no standard process for software engineering --> There is no best language, operating system, platform, database system, development environment, etc. A skilled software developer knows about a wide variety of approaches, methods, tools. The craft of software engineering is to select appropriate methods for each project and apply them effectively.

26 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 and revised by Ayşe Bener Professional Responsibility Organizations put trust in software developers: Competence: Software that does not work effectively can destroy an organization. Confidentiality: Software developers and systems administrators may have access to highly confidential information (e.g., trade secrets, personal data). Legal environment: Software exists in a complex legal environment (e.g., intellectual property, obscenity). Acceptable use and misuse: Computer abuse can paralyze an organization (e.g., the Internet worm).