Software Engineering (CSI 321) Introduction to Software Engineering 1.

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

Lecture 2 1 Introduction to Software Engineering.
1 SWE Introduction to Software Engineering Lecture 3 Introduction to Software Engineering.
SWE Introduction to Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
SWE Introduction to Software Engineering
Software Engineering COMP 201
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
An Introduction to Software Engineering
Lecture 1.
Introduction/overview, Process model. What is Software Engineering? Why we need Software Engineering? Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
Chapter 1- Introduction Lecture 1 Ready, fire, aim (the fast approach to software development). Ready, aim, aim, aim, aim... (the slow approach to software.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
Software Engineering Methodologies (Introduction)
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.
SOFTWARE ENGINEERING Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Software EngineeringIntroduction Slide 1 Software Engineering Mr. Ahmad Al-Ghoul.
Chapter : Introduction to Software Engineering Ref. book : Software Engineering by Roger Pressman.
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
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.
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.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
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.
Chapter 1 The Product. 2 Product  What is it?  Who does it?  Why is it important?  How to ensure it be done right?
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
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.
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.
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.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
Chapter 1- Introduction Lecture 1. Topics covered  Professional software development  What is meant by software engineering.  Software engineering.
Rekayasa Perangkat Lunak Kuliah 2. Outline of this presentation Attributes of Good Software Why Software Engineering ? What is Software Product ? Software.
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.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
Introduction to Software Engineering
Chapter 1- Introduction
Software What Is Software?
Software Engineering (CSE 314)
Software Myths Deep Mann.
Chapter : Introduction to Software Engineering
Rekayasa Perangkat Lunak
An Introduction to Software Engineering
Overview: Software and Software Engineering
Software Testing and Maintenance Maintenance and Evolution Overview
Software Engineering (CSI 321)
CS385T Software Engineering Dr.Doaa Sami
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Rekayasa Perangkat Lunak
Introduction Software Engineering.
Presentation transcript:

Software Engineering (CSI 321) Introduction to Software Engineering 1

What is software?  Computer programs and associated documentation such as requirements, design models and user manuals.  Software is – instructions (computer programs) that when executed provide desired features, function, and performance, – data structures that enable the programs to adequately manipulate information, and – documents that describe the operation and use of the programs 2

Software Types Software products may be developed for a particular customer or may be developed for a general market.  Two fundamental types of software products – 1)Generic: developed to be sold to a range of different customers who is able to buy ( e.g. Software for PCs such as databases, word processors, drawings and project management tools). 2)Bespoke (custom): developed for a particular customer according to their specifications( e.g. Control system for electronic devices, air traffic control system) New software can be created by developing new programs, configuring generic software systems or reusing existing software. 3

Software ’ s Dual Role Software is a product – Transforms information - produces, manages, acquires, modifies, displays, or transmits information – Delivers computing potential of hardware and networks Software is a vehicle for delivering a product : Acts as the basis for : – Control of computer(operating system) – Communication of information (networking software) – Helps build and control other programs (software tools & environments) 4

What is software engineering? Software engineering is an engineering discipline that is concerned with all aspects of software production. Software engineering is the application of systematic, disciplined, quantifiable approach to software development, operation and maintenance. Designing, building and maintaining large software systems in a cost-effective way. 5

Why is software engineering important? To develop methods for developing s/w that can scale up and be used to consistently develop high-quality s/w at low cost. To avoid costly errors caused by software. Examples: – Lost Voyager Spacecraft (one bad line of code caused failure) – Commercial aircraft accidentally shot down during Gulf War (poor user interface) The earlier you detect errors, the lower the money you have to spend ( i.e. save money a lot ) 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. 6

Early Error Detection Saves Money 7

Hardware vs. Software Hardware Software  Manufactured  Wears out  Built using components  Relatively simple  Developed/engineered  Deteriorates  Custom built  Complex 8

Manufacturing vs. Development Once a hardware product has been manufactured, it is difficult or impossible to modify. In contrast, software products are routinely modified and upgraded. In hardware, hiring more people allows you to accomplish more work, but the same does not necessarily hold true in software engineering. Unlike hardware, software costs are concentrated in design rather than production. 9

Software Characteristics Software is both a product and a vehicle for developing a product. Software is developed/engineered, not manufactured. Software does not wear out, but it does deteriorate. Most software is still custom-built. 10

Failure curves for Hardware 11 Hardware wears out over time Figure 1 : Hardware Failure curve (the Bathtub curve)

Failure curves for Hardware Hardware Failure(the Bathtub curve): Initially high – Design/Manufacturing defects Then failure rate drops – Defects corrected Again increases – Dust, vibration, abuse, high temperatures & Environmental maladies 12

Failure curves for Software 13 Software deteriorates over time Figure 2 : Software Failure curve

Failure curves for Software Software Failures: High failure rates early in life – Due to undiscovered defects Then failure rates drops & flattens ( ideal curve ) – Defects are corrected ( without introduction of new bugs) Again failure rate increases ( actual curve ) – Due to CHANGE ( most software will eventually undergo change) 14

Failure curves for Software How to reduce software deterioration? – Do better software design – Software Engineering methods strive to reduce the magnitude of the spikes & slope of the actual curve ( Figure 2 ) 15

Legacy Software: Why must it change? – It must be fixed to eliminate errors. – It must be enhanced to implement new functional and non-functional requirements – 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 extended to make it interoperable with other more modern systems or databases. – Software must be re-architected to make it viable within a network environment. 16

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

Management Myths “ We already have a book of standards and procedures for building software. It does provide my people with everything they need to know …” “ If my project is behind the schedule, I always can add more programmers to it and catch up …” (a.k.a. “ The Mongolian Horde concept ” ) “ If I decide to outsource the software project to a third party, I can just relax: Let them build it, and I will just pocket my profits …” 18

Customer Myths “ A general statement of objectives is sufficient to begin writing programs - we can fill in the details later …” “ Project requirements continually change but this change can easily be accommodated because software is flexible …” 19

Practitioner ’ s Myths vs. Reality “ Let ’ s start coding ASAP, because once we write the program and get it to work, our job is done …” – It is only the beginning “ Until I get the program running, I have no way of assessing its quality …” – Practice formal technical review Project requirements change continually and change is easy to accommodate in the software design. – Understand the requirements first, then write codes. It costs more to change later. 20

Practitioner ’ s Myths vs. Reality “The only deliverable work product for a successful project is the working program …” – Working program is only one part of a software configuration that includes many elements “Software engineering is baloney. It makes us create tons of paperwork, only to slow us down …” – Software engineering in not about creating documents, it is about creating quality. Better quality leads to reduced rework and reduced rework results in faster delivery times 21

What are the costs of software engineering? Roughly 60% of costs are development costs, 40% are testing costs. 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. 22

What is CASE?  Computer-Aided Software Engineering Software systems that are intended to provide automated support for software process activities. Covers a wide range of different types of programs that are used to support software process activities such as requirements analysis, system modelling, debugging and testing. CASE systems are often used for method support. Upper-CASE – Tools to support the early process activities of requirements and design Lower-CASE – Tools to support later activities such as programming, debugging and testing 23

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 acceptable. Maintainability-Changing needs of customer Dependability-Safety, Security, Reliability Efficiency-Responsiveness, Processing time Usability- User friendly, adequate documentation Acceptability –Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems. 24

What are the key challenges in software development? High cost Difficult to deliver on time Low quality 25