SlideShare a Scribd company logo
1 of 43
An Introduction to Software 
Engineering
Objectives 
 Introduce software engineering and to explain its 
importance 
 Set out the answers to key questions about software 
engineering
FAQs about software engineering 
 What is software engineering? 
 What is the difference between software engineering, 
computer science, and systems engineering? 
 What is the software crisis? 
 What are the costs of software engineering? 
 What is software and what are the attributes of good 
software? 
 What is a software process and a software process model? 
 What are software engineering methods? 
 What is CASE (Computer-Aided Software Engineering) 
 What are the key challenges facing software engineering?
What is software engineering? 
From Wikipedia 
“Software engineering is the application of a systematic, disciplined, 
quantifiable approach to the development, operation, and 
maintenance of software.’’ 
Classic Definition (1969) 
“The establishment and use of sound engineering principles in 
order to obtain economically built software that is reliable and 
works efficiently on real machines.” 
IEEE Definition (1993) 
“Software Engineering: (1) The application of a systematic, 
disciplines, quantifiable approach to the development, operation, 
and maintenance of software; that is the application of 
engineering to software. (2) The study of approaches as in (1).”
Software Engineering vs. 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 theories are still insufficient to 
act as a complete underpinning for software 
engineering (unlike e.g. physics and electrical 
engineering).
Software Engineering vs. Computer Science 
COMPUTER 
SCIENCE 
CUSTOMER 
SOFTWARE 
ENGINEERING 
Theories 
Computer 
Functions 
Problem 
Tools and 
Techniques to 
Solve Problem
Software vs. Hardware 
 You can’t see, touch, or feel software 
 Software is only engineered, not manufactured 
 Software doesn’t wear out 
 Software is complex 
 Software is a differentiator 
 Software can behave like an aging factory
Communication is a critical element.
Software Engineering vs. 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 
concerned with developing the software 
infrastructure, control, applications and databases in 
the system. 
 System engineers are involved in system 
specification, architectural design, integration and 
deployment.
What to Study in Software Engineering? 
 Products produced 
The final products are software components. They may be fully 
executables components, programs, modules, systems, or simply 
methods. There are many software deliverables between the 
specification of the products and the actual products. 
 Processes used to produce the products 
The software development life cycle describes the development 
process for producing software products. However there are many 
other items within the process. We will investigate the full process 
of software engineering.
Some core questions 
 What is the software product? 
 Who does software engineering of the product? 
 Why is software important? 
 What are the steps in software engineering? 
 What is the work product of the engineering 
process? 
 How do we ensure products are built correctly and 
that the correct product is built?
Problems Behind the “Software Crisis” 
 Increased size and complexity of systems 
 Cost overruns 
 Design bugs after implementation 
 Maintenance ripple effect 
 Requirements and design needed 
development tools, not just in the 
programming tools
Software Crisis 
 Research from Standish Group Data on 9236 development projects 
completed in 2004.
Abandoned or Cancelled Projects 
http://articles.directorym.net/An_Introduction_to_Catastrophe_Disentanglement 
_Lynchburg_VA-r923574-Lynchburg_VA.html
Software Crisis 
 2002 survey of information technology 
organizations by Cutter Consortium Data 
 78% have been involved in disputes ending in 
litigation 
o In 67% of the disputes, the functionality of the 
information system as delivered did not meet up to the 
claims of the developers 
o In 56% of the disputes, the promised delivery date 
slipped several times 
o In 45% of the disputes, the defects were so severe 
that the information system was unusable
New Aspects of Crisis 
 (In)security - we have allowed ourselves to become too 
dependent on software (and hardware) that was never 
designed to be robust or secure 
 Over complexity - competition for more features, ease of 
use, and integration are making products too large to 
comprehend and maintain 
 Internationalization – this is a problem for the US, which has 
been presumptuously complacent about its leadership 
 Software patents - these legal "land mines" are beginning to 
choke the software industry 
 Rapid changes – tower of Babel, multicore, etc.
Weapons Against Software Crisis 
 Improving software engineering 
methodologies 
 High-level languages and tools that 
encourage and enforce these principles
Software Engineering Definition 
The software crisis yielded yet another 
definition of software engineering: 
 Discipline whose aim is the production of fault-free 
software, delivered on time and within 
budget, that satisfies the client’s needs.
Costs of Software Engineering 
 Software costs dominate computer systems 
costs. 
 Roughly 60% of costs are development costs, 40% are 
testing costs. For custom software, evolution costs 
often exceed development costs. 
 Software maintenance costs are more than 
software development costs. 
 For systems with a long life the maintenance may be 
several times the development costs. And often even 
bad software has a long life.
Costs of Software Engineering 
 Costs vary depending on the type of system being 
developed. 
 The costs depend of the requirements of system attributes 
such as performance and system reliability as well as the 
complexity of the type of system being developed. 
 Distribution of costs depends on the development 
model that is used.
Activity cost distribution
Product development costs
Maintenance Costs 
(a) Between 1976 and 1981 
(b) Between 1992 and 1998
Changing View of Maintenance 
 Postdelivery maintenance 
 Development-then-maintenance model 
 Temporal definition 
 Modern maintenance 
 Occurs whenever a fault is fixed or the 
requirements change, irrespective of whether 
it takes place before or after installation of 
the product
Slide 1.15 
Cost to Detect and Correct a Fault 
© The McGraw-Hill Companies, 2002
Why So Costly? 
 To correct a fault early in the life cycle 
 Usually just a document needs to be changed 
 To correct a fault late in the life cycle 
 Change the code and the documentation 
 Test the change itself 
 Perform regression testing 
 Reinstall the product on the client’s computer(s)
Wear vs. Deterioration 
idealized curve 
change 
actual curve 
Failure 
rate 
Time 
increased failure 
rate due to side effects 
Roger S. Pressman, Software Engineering: A 
Practitioner's Approach, Fourth Edition 1997
The Cost of Change 
1x 
1.5-6x 
60-100x 
Definition Development After release 
Roger S. Pressman, Chapter 1 Page 19, Software 
Engineering: A Practitioner's Approach, Fourth Edition 1997
What is a Software Product? 
A set of items or objects called a configuration. It 
includes things like: 
 Multiple separate programs 
 Configuration files which are used to set up these programs 
 System documentation which describes the structure of 
the system 
 Developer and User documentation which explains how to 
use the system 
 Data for the system 
 Web sites for users to download recent product 
information
What is software? 
 Computer programs and associated documentation 
such as requirements, design models and user 
manuals. 
 Software products may be developed for a 
particular customer or may be developed for a 
general market. 
 New software can be created by developing new 
programs, configuring generic software systems or 
reusing existing software.
What is software? 
Software products may be 
 GENERIC 
 developed to be sold to a range of different customers 
e.g. PC software such as Excel or Word. 
 referred to as commercial off-the-shelf (COTS) 
software or clickware supplied by a vendor 
BESPOKE (custom) - developed for a single customer 
according to their specification. 
Product specification controlled by the product developer
Software Terminology 
 Open-source software 
 Developed and maintained by a team of 
volunteers 
 May be downloaded and used free of charge 
 Examples: 
o Linux operating system 
o Firefox web browser 
o Apache web server
Software Types 
o system software 
o real-time software 
o business software 
o engineering/scientific software 
o embedded software 
o PC software 
o AI software 
o WebApps (Web applications)
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 
 Software must evolve to meet changing needs; 
 Dependability 
 Software must be trustworthy; 
 Efficiency 
 Software should not make wasteful use of system resources; 
 Acceptability 
 Software must accepted by the users for which it was designed. This 
means it must be understandable, usable and compatible with other 
systems.
What are the attributes of good software? 
 From the Users Perspective 
 Correctness 
 Reliability 
 Efficiency 
 Maintainability 
 Usability 
 Robustness 
 From the Developers Perspective 
 Consistency 
 Understandability 
 Testability 
 Compactness 
 Compatibility 
 Integrity
Software Process 
 A set of activities and associated results 
which produce a software product 
 Incorporates a software life-cycle model, 
techniques, the tools used, and the 
software developers
What is a software process model? 
 A simplified representation of a software process, presented 
from a specific perspective. 
 Examples of process perspectives are 
 Workflow perspective - sequence of activities; 
 Data-flow perspective - information flow; 
 Role/action perspective - who does what. 
 Generic process models 
 Waterfall; 
 Iterative development; 
 Component-based software engineering.
Software Life-cycle Models 
 Specifies the various phases of the 
software process and the order in which 
they are to be carried out. 
 Covered in Chapter 1 Dennis
What are software engineering methods? 
 Structured approaches to software development which 
include system models, notations, rules, design advice and 
process guidance. 
 Model descriptions 
 Descriptions of graphical models which should be produced; 
 Rules 
 Constraints applied to system models; 
 Recommendations 
 Advice on good design practice; 
 Process guidance 
 What activities to follow.
What is CASE? 
 Computer-Aided Software Engineering 
 Software systems that are intended to provide automated 
support for software process activities. 
 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.
What are the key challenges facing 
software engineering? 
 Heterogeneity - platforms and execution environments 
 Delivery – faster time to market 
 Trust –includes reliability, security 
 Shifts in economics of computing 
 Lower hardware costs and greater development and 
maintenance costs. 
 Shifts in technology 
 Extensive networking 
 Availability and adoption of OO technology 
 Graphical user interfaces 
 Budgets and costs 
 Maintaining quality
Key points 
 SWE is an engineering discipline that is concerned with all 
aspects of software production. 
 Software products consist of developed programs and 
associated documentation. Essential product attributes are 
maintainability, dependability, efficiency and usability. 
 The software process consists of activities that are involved 
in developing software products. Basic activities are software 
specification, development, validation and evolution. 
 CASE tools are software systems which are designed to 
support routine activities in the software process such as 
editing design diagrams, checking diagram consistency and 
keeping track of program tests which have been run.

More Related Content

What's hot

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringZahoor Khan
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringAchmad Solichin
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-softwareAlenaDion
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisischandan sharma
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareengPINKU29
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notesAmmar Shafiq
 
SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)ghayour abbas
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyMohamed Shahpoup
 
Software evolution and maintenance
Software evolution and maintenanceSoftware evolution and maintenance
Software evolution and maintenanceFeliciano Colella
 
Online Software development training
Online Software development trainingOnline Software development training
Online Software development trainingvibrantuser
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGPreeti Mishra
 
Introduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyIntroduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyGaditek
 

What's hot (20)

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software Engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Ch1 introduction
Ch1 introductionCh1 introduction
Ch1 introduction
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
software engineering ch-1
software engineering ch-1software engineering ch-1
software engineering ch-1
 
software
softwaresoftware
software
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisis
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 
Slides chapter 1
Slides chapter 1Slides chapter 1
Slides chapter 1
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)
 
Greate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT AcademyGreate Introduction to Software Engineering @ Track IT Academy
Greate Introduction to Software Engineering @ Track IT Academy
 
Software evolution and maintenance
Software evolution and maintenanceSoftware evolution and maintenance
Software evolution and maintenance
 
Online Software development training
Online Software development trainingOnline Software development training
Online Software development training
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Introduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyIntroduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information Technology
 

Similar to Intro

香港六合彩
香港六合彩香港六合彩
香港六合彩pchgmf
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideSharehcslenk
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩tnxaht
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩eqhnwl
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩bxuket
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩ohtpwshx
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SEAbhishekTripathi709328
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineeringJennifer Polack
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt23017156038
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 
Software Engineering
Software EngineeringSoftware Engineering
Software EngineeringMohamed Essam
 

Similar to Intro (20)

SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
SE
SESE
SE
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 

Recently uploaded

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 

Recently uploaded (20)

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 

Intro

  • 1. An Introduction to Software Engineering
  • 2. Objectives  Introduce software engineering and to explain its importance  Set out the answers to key questions about software engineering
  • 3. FAQs about software engineering  What is software engineering?  What is the difference between software engineering, computer science, and systems engineering?  What is the software crisis?  What are the costs of software engineering?  What is software and what are the attributes of good software?  What is a software process and a software process model?  What are software engineering methods?  What is CASE (Computer-Aided Software Engineering)  What are the key challenges facing software engineering?
  • 4. What is software engineering? From Wikipedia “Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.’’ Classic Definition (1969) “The establishment and use of sound engineering principles in order to obtain economically built software that is reliable and works efficiently on real machines.” IEEE Definition (1993) “Software Engineering: (1) The application of a systematic, disciplines, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to software. (2) The study of approaches as in (1).”
  • 5. Software Engineering vs. 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 theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).
  • 6. Software Engineering vs. Computer Science COMPUTER SCIENCE CUSTOMER SOFTWARE ENGINEERING Theories Computer Functions Problem Tools and Techniques to Solve Problem
  • 7. Software vs. Hardware  You can’t see, touch, or feel software  Software is only engineered, not manufactured  Software doesn’t wear out  Software is complex  Software is a differentiator  Software can behave like an aging factory
  • 8. Communication is a critical element.
  • 9.
  • 10. Software Engineering vs. 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 concerned with developing the software infrastructure, control, applications and databases in the system.  System engineers are involved in system specification, architectural design, integration and deployment.
  • 11. What to Study in Software Engineering?  Products produced The final products are software components. They may be fully executables components, programs, modules, systems, or simply methods. There are many software deliverables between the specification of the products and the actual products.  Processes used to produce the products The software development life cycle describes the development process for producing software products. However there are many other items within the process. We will investigate the full process of software engineering.
  • 12. Some core questions  What is the software product?  Who does software engineering of the product?  Why is software important?  What are the steps in software engineering?  What is the work product of the engineering process?  How do we ensure products are built correctly and that the correct product is built?
  • 13. Problems Behind the “Software Crisis”  Increased size and complexity of systems  Cost overruns  Design bugs after implementation  Maintenance ripple effect  Requirements and design needed development tools, not just in the programming tools
  • 14. Software Crisis  Research from Standish Group Data on 9236 development projects completed in 2004.
  • 15. Abandoned or Cancelled Projects http://articles.directorym.net/An_Introduction_to_Catastrophe_Disentanglement _Lynchburg_VA-r923574-Lynchburg_VA.html
  • 16. Software Crisis  2002 survey of information technology organizations by Cutter Consortium Data  78% have been involved in disputes ending in litigation o In 67% of the disputes, the functionality of the information system as delivered did not meet up to the claims of the developers o In 56% of the disputes, the promised delivery date slipped several times o In 45% of the disputes, the defects were so severe that the information system was unusable
  • 17. New Aspects of Crisis  (In)security - we have allowed ourselves to become too dependent on software (and hardware) that was never designed to be robust or secure  Over complexity - competition for more features, ease of use, and integration are making products too large to comprehend and maintain  Internationalization – this is a problem for the US, which has been presumptuously complacent about its leadership  Software patents - these legal "land mines" are beginning to choke the software industry  Rapid changes – tower of Babel, multicore, etc.
  • 18. Weapons Against Software Crisis  Improving software engineering methodologies  High-level languages and tools that encourage and enforce these principles
  • 19. Software Engineering Definition The software crisis yielded yet another definition of software engineering:  Discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the client’s needs.
  • 20. Costs of Software Engineering  Software costs dominate computer systems costs.  Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs.  Software maintenance costs are more than software development costs.  For systems with a long life the maintenance may be several times the development costs. And often even bad software has a long life.
  • 21. Costs of Software Engineering  Costs vary depending on the type of system being developed.  The costs depend of the requirements of system attributes such as performance and system reliability as well as the complexity of the type of system being developed.  Distribution of costs depends on the development model that is used.
  • 24. Maintenance Costs (a) Between 1976 and 1981 (b) Between 1992 and 1998
  • 25. Changing View of Maintenance  Postdelivery maintenance  Development-then-maintenance model  Temporal definition  Modern maintenance  Occurs whenever a fault is fixed or the requirements change, irrespective of whether it takes place before or after installation of the product
  • 26. Slide 1.15 Cost to Detect and Correct a Fault © The McGraw-Hill Companies, 2002
  • 27. Why So Costly?  To correct a fault early in the life cycle  Usually just a document needs to be changed  To correct a fault late in the life cycle  Change the code and the documentation  Test the change itself  Perform regression testing  Reinstall the product on the client’s computer(s)
  • 28. Wear vs. Deterioration idealized curve change actual curve Failure rate Time increased failure rate due to side effects Roger S. Pressman, Software Engineering: A Practitioner's Approach, Fourth Edition 1997
  • 29. The Cost of Change 1x 1.5-6x 60-100x Definition Development After release Roger S. Pressman, Chapter 1 Page 19, Software Engineering: A Practitioner's Approach, Fourth Edition 1997
  • 30. What is a Software Product? A set of items or objects called a configuration. It includes things like:  Multiple separate programs  Configuration files which are used to set up these programs  System documentation which describes the structure of the system  Developer and User documentation which explains how to use the system  Data for the system  Web sites for users to download recent product information
  • 31. What is software?  Computer programs and associated documentation such as requirements, design models and user manuals.  Software products may be developed for a particular customer or may be developed for a general market.  New software can be created by developing new programs, configuring generic software systems or reusing existing software.
  • 32. What is software? Software products may be  GENERIC  developed to be sold to a range of different customers e.g. PC software such as Excel or Word.  referred to as commercial off-the-shelf (COTS) software or clickware supplied by a vendor BESPOKE (custom) - developed for a single customer according to their specification. Product specification controlled by the product developer
  • 33. Software Terminology  Open-source software  Developed and maintained by a team of volunteers  May be downloaded and used free of charge  Examples: o Linux operating system o Firefox web browser o Apache web server
  • 34. Software Types o system software o real-time software o business software o engineering/scientific software o embedded software o PC software o AI software o WebApps (Web applications)
  • 35. 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  Software must evolve to meet changing needs;  Dependability  Software must be trustworthy;  Efficiency  Software should not make wasteful use of system resources;  Acceptability  Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.
  • 36. What are the attributes of good software?  From the Users Perspective  Correctness  Reliability  Efficiency  Maintainability  Usability  Robustness  From the Developers Perspective  Consistency  Understandability  Testability  Compactness  Compatibility  Integrity
  • 37. Software Process  A set of activities and associated results which produce a software product  Incorporates a software life-cycle model, techniques, the tools used, and the software developers
  • 38. What is a software process model?  A simplified representation of a software process, presented from a specific perspective.  Examples of process perspectives are  Workflow perspective - sequence of activities;  Data-flow perspective - information flow;  Role/action perspective - who does what.  Generic process models  Waterfall;  Iterative development;  Component-based software engineering.
  • 39. Software Life-cycle Models  Specifies the various phases of the software process and the order in which they are to be carried out.  Covered in Chapter 1 Dennis
  • 40. What are software engineering methods?  Structured approaches to software development which include system models, notations, rules, design advice and process guidance.  Model descriptions  Descriptions of graphical models which should be produced;  Rules  Constraints applied to system models;  Recommendations  Advice on good design practice;  Process guidance  What activities to follow.
  • 41. What is CASE?  Computer-Aided Software Engineering  Software systems that are intended to provide automated support for software process activities.  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.
  • 42. What are the key challenges facing software engineering?  Heterogeneity - platforms and execution environments  Delivery – faster time to market  Trust –includes reliability, security  Shifts in economics of computing  Lower hardware costs and greater development and maintenance costs.  Shifts in technology  Extensive networking  Availability and adoption of OO technology  Graphical user interfaces  Budgets and costs  Maintaining quality
  • 43. Key points  SWE is an engineering discipline that is concerned with all aspects of software production.  Software products consist of developed programs and associated documentation. Essential product attributes are maintainability, dependability, efficiency and usability.  The software process consists of activities that are involved in developing software products. Basic activities are software specification, development, validation and evolution.  CASE tools are software systems which are designed to support routine activities in the software process such as editing design diagrams, checking diagram consistency and keeping track of program tests which have been run.