SlideShare ist ein Scribd-Unternehmen logo
1 von 37
AN INTRODUCTION TO
SOFTWARE ENGINEERING
CUSTOMER
Sponsors system
development

USER
Uses
system

$$
$
Co nee ,
ds
ob nt
lig rac
at tu
io al
n

DEVELOPER

Needs
Software system
Figure 1.7 Participants in software development.

Builds
system
SOFTWARE DEVELOPMENT STEPS

System Design

ANALYST

DESIGNER
PROGRAMMER

Program Design
Program Implementation

TESTER

Unit Testing
Integration Testing
System Testing

TRAINER
System Delivery
Maintenance

Figure1.11 The roles of the development team

DEVELOPER ROLES

Requirements Analysis
and Definition
Object technology

Desktop computing

Problems with waterfall

CHANGES IN
SOFTWARE
ENGINEERING

Time to market

Networking

Shifts in economics
User interfaces

Figure1.12 The key factors that have changed software development
OBJECTIVES
SOFTWARE ENGINEERING
FAQS ABOUT SOFTWARE ENGINEERING
FAQS ABOUT SOFTWARE ENGINEERING
FAQS ABOUT SOFTWARE ENGINEERING
FAQS ABOUT SOFTWARE ENGINEERING
WHAT IS SOFTWARE?
SOFTWARE PRODUCT DEVELOPED
FOR
TYPE OF SOFTWARE PRODUCTS
CREATING NEW SOFTWARE
VARIETY OF SOFTWARE PRODUCTS
VARIETY OF SOFTWARE PRODUCTS











Real time
Embedded systems
Data processing
pensions
Information systems
libraries
Sensors
System software
compilers
Communications
telephones
Offices
conferences
Scientific
forecasting
Graphical

: air traffic control
: digital camera, GPS
: telephone billing,
: web sites, digital
: weather data
: operating systems,
: routers, mobile
: word processing, video
: simulations, weather
: film making, design
CATEGORIES OF SOFTWARE PRODUCT


Generic (e.g., Microsoft Excel)



Packages (e.g., Mathematica)



Customized versions of generic packages (e.g.,
UTeM's payroll system)



Bespoke (customized) (e.g., IRS internal system)



Demonstration, prototype, research, …
WHAT IS SOFTWARE ENGINEERING?

Software engineering is an

engineering discipline that is
concerned with all aspects of software
production.
WHAT IS SOFTWARE ENGINEERING?

Software engineers should adopt a

systematic and organised approach
to their work and use appropriate tools and
techniques depending on the problem to
be solved, the development constraints and the
resources available.
Computer Science

Theories

Customer

Compute
r
Function
s
Software
Engineering

Tools and
Techniques
to Solve
Problem

Problem
SOFTWARE ENGINEERING VS COMPUTER
SCIENCE?
Computer Science

Software Engineering

Computer science is
concerned with theory and
fundamentals;
 Computer science theories
are still insufficient to act as
a complete underpinning for
software engineering (unlike
e.g. physics and electrical
engineering).





Software engineering is
concerned with the
practicalities of developing
and delivering useful
software.
SOFTWARE ENGINEERING VS SYSTEM
ENGINEERING?
System engineering




Concerned with all aspects
of computer-based systems
development including
hardware, software and
process engineering.
System engineers are
involved in system
specification, architectural
design, integration and
deployment.

Software engineering


concerned with developing
the software infrastructure,
control, applications and
databases in the system.
WHAT IS A SOFTWARE PROCESS?

A set of activities whose goal is the
development or evolution of
software.
WHAT IS A SOFTWARE PROCESS?
WHAT IS A SOFTWARE PROCESS?
WHAT IS A SOFTWARE PROCESS MODEL?

A simplified representation of a
software process, presented
from a specific perspective.
EXAMPLE OF PERSPECTIVES
GENERIC PROCESS MODELS
can lead to

Human Error

can lead to

Fault

Failure
SOFTWARE COSTS
Software costs often dominate computer 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 engineering is concerned with cost-effective software
development.

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.
WHAT IS CASE (COMPUTERAIDED 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.
Correctness
Reliability
Efficiency
Integrity
Usability
Maintainability
Testability
Flexibility
Portability
Reusability
Interoperability

Traceability
Completeness
Consistency
Accuracy
Error Tolerance
Execution Efficiency
Storage efficiency
Access control
Access audit
Operability
Training
Communicativeness
Simplicity
Conciseness
Instrumentation
Self-descriptiveness
Expandability
Generality
Modularity
Software System Independence
Machine Independence
Communications commonality
Data commonality

Figure 1.5 McCall’s quality model.
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
◦



Dependability
◦



Software must be trustworthy;

Efficiency
◦



Software must evolve to meet changing needs;

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 KEY
CHALLENGES FACING SOFTWARE
ENGINEERING?
Heterogeneity, delivery and trust.
 Heterogeneity


◦



Delivery

◦



Developing techniques for building software that can cope with
heterogeneous platforms and execution environments;
Developing techniques that lead to faster delivery of software;

Trust

◦

Developing techniques that demonstrate that software can be trusted
by its users.
KEY POINTS
 Software

engineering 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.
CONTINUE..
•

•

The software process consists of activities that are involved in
developing software products. Basic activities are software
specification, development, validation and evolution.
Methods are organised ways of producing software. They
include suggestions for the process to be followed, the
notations to be used, rules governing the system descriptions
which are produced and design guidelines.

Weitere ähnliche Inhalte

Was ist angesagt?

INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGPreeti Mishra
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringAchmad Solichin
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisischandan sharma
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineeringJennifer Polack
 
Characteristics of Software
Characteristics of SoftwareCharacteristics of Software
Characteristics of SoftwareUpekha Vandebona
 
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
 
Need for Software Engineering
Need for Software EngineeringNeed for Software Engineering
Need for Software EngineeringUpekha Vandebona
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - BasicsPurvik Rana
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineeringJennifer Polack
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1IIUI
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringMajane Padua
 
Software testing and software development process
Software testing and software development processSoftware testing and software development process
Software testing and software development processGen Aloys Ochola Badde
 

Was ist angesagt? (20)

Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
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
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisis
 
Agile software process
Agile software processAgile software process
Agile software process
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Characteristics of Software
Characteristics of SoftwareCharacteristics of Software
Characteristics of Software
 
Slides chapter 1
Slides chapter 1Slides chapter 1
Slides chapter 1
 
software engineering
software engineeringsoftware engineering
software engineering
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
SECh123
SECh123SECh123
SECh123
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
Need for Software Engineering
Need for Software EngineeringNeed for Software Engineering
Need for Software Engineering
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software testing and software development process
Software testing and software development processSoftware testing and software development process
Software testing and software development process
 

Ähnlich wie Software engineering

Ähnlich wie Software engineering (20)

香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
Intro
IntroIntro
Intro
 
software engineering
software engineeringsoftware engineering
software engineering
 
17CS45_CBCS_Moulde 1 ppt
17CS45_CBCS_Moulde 1 ppt17CS45_CBCS_Moulde 1 ppt
17CS45_CBCS_Moulde 1 ppt
 
Soft Eng - Introduction
Soft Eng - IntroductionSoft Eng - Introduction
Soft Eng - Introduction
 
Ch1
Ch1Ch1
Ch1
 
Ch1
Ch1Ch1
Ch1
 
software engineering
 software engineering software engineering
software engineering
 
C0371019027
C0371019027C0371019027
C0371019027
 
Introducing Software Engineering
Introducing Software EngineeringIntroducing Software Engineering
Introducing Software Engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
M017548895
M017548895M017548895
M017548895
 
Importance of software engineering
Importance of software engineeringImportance of software engineering
Importance of software engineering
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro ppt
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 

Mehr von Nur Aqilah Ahmad Khairi (8)

Boston matrix analysis
Boston matrix analysisBoston matrix analysis
Boston matrix analysis
 
Sains pemakanan dalam islam
Sains pemakanan dalam islamSains pemakanan dalam islam
Sains pemakanan dalam islam
 
The effects of social interaction to productivity at work
The effects of social interaction to productivity at workThe effects of social interaction to productivity at work
The effects of social interaction to productivity at work
 
Customer intimacy
Customer intimacyCustomer intimacy
Customer intimacy
 
Software project management
Software project managementSoftware project management
Software project management
 
Asp.net
Asp.netAsp.net
Asp.net
 
Web services
Web servicesWeb services
Web services
 
The information systems life cycle
The information systems life cycleThe information systems life cycle
The information systems life cycle
 

Kürzlich hochgeladen

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 

Kürzlich hochgeladen (20)

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 

Software engineering

  • 2. CUSTOMER Sponsors system development USER Uses system $$ $ Co nee , ds ob nt lig rac at tu io al n DEVELOPER Needs Software system Figure 1.7 Participants in software development. Builds system
  • 3. SOFTWARE DEVELOPMENT STEPS System Design ANALYST DESIGNER PROGRAMMER Program Design Program Implementation TESTER Unit Testing Integration Testing System Testing TRAINER System Delivery Maintenance Figure1.11 The roles of the development team DEVELOPER ROLES Requirements Analysis and Definition
  • 4. Object technology Desktop computing Problems with waterfall CHANGES IN SOFTWARE ENGINEERING Time to market Networking Shifts in economics User interfaces Figure1.12 The key factors that have changed software development
  • 7. FAQS ABOUT SOFTWARE ENGINEERING
  • 8. FAQS ABOUT SOFTWARE ENGINEERING
  • 9. FAQS ABOUT SOFTWARE ENGINEERING
  • 10. FAQS ABOUT SOFTWARE ENGINEERING
  • 13. TYPE OF SOFTWARE PRODUCTS
  • 16. VARIETY OF SOFTWARE PRODUCTS           Real time Embedded systems Data processing pensions Information systems libraries Sensors System software compilers Communications telephones Offices conferences Scientific forecasting Graphical : air traffic control : digital camera, GPS : telephone billing, : web sites, digital : weather data : operating systems, : routers, mobile : word processing, video : simulations, weather : film making, design
  • 17. CATEGORIES OF SOFTWARE PRODUCT  Generic (e.g., Microsoft Excel)  Packages (e.g., Mathematica)  Customized versions of generic packages (e.g., UTeM's payroll system)  Bespoke (customized) (e.g., IRS internal system)  Demonstration, prototype, research, …
  • 18. WHAT IS SOFTWARE ENGINEERING? Software engineering is an engineering discipline that is concerned with all aspects of software production.
  • 19. WHAT IS SOFTWARE ENGINEERING? Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.
  • 21. SOFTWARE ENGINEERING VS COMPUTER SCIENCE? Computer Science Software Engineering Computer science is concerned with theory and fundamentals;  Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).   Software engineering is concerned with the practicalities of developing and delivering useful software.
  • 22. SOFTWARE ENGINEERING VS SYSTEM ENGINEERING? System engineering   Concerned with all aspects of computer-based systems development including hardware, software and process engineering. System engineers are involved in system specification, architectural design, integration and deployment. Software engineering  concerned with developing the software infrastructure, control, applications and databases in the system.
  • 23. WHAT IS A SOFTWARE PROCESS? A set of activities whose goal is the development or evolution of software.
  • 24. WHAT IS A SOFTWARE PROCESS?
  • 25. WHAT IS A SOFTWARE PROCESS?
  • 26. WHAT IS A SOFTWARE PROCESS MODEL? A simplified representation of a software process, presented from a specific perspective.
  • 29. can lead to Human Error can lead to Fault Failure
  • 30. SOFTWARE COSTS Software costs often dominate computer 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 engineering is concerned with cost-effective software development. 
  • 31. 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.
  • 32. WHAT IS CASE (COMPUTERAIDED 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.
  • 33. Correctness Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability Traceability Completeness Consistency Accuracy Error Tolerance Execution Efficiency Storage efficiency Access control Access audit Operability Training Communicativeness Simplicity Conciseness Instrumentation Self-descriptiveness Expandability Generality Modularity Software System Independence Machine Independence Communications commonality Data commonality Figure 1.5 McCall’s quality model.
  • 34. 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 ◦  Dependability ◦  Software must be trustworthy; Efficiency ◦  Software must evolve to meet changing needs; 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.
  • 35. WHAT ARE THE KEY CHALLENGES FACING SOFTWARE ENGINEERING? Heterogeneity, delivery and trust.  Heterogeneity  ◦  Delivery ◦  Developing techniques for building software that can cope with heterogeneous platforms and execution environments; Developing techniques that lead to faster delivery of software; Trust ◦ Developing techniques that demonstrate that software can be trusted by its users.
  • 36. KEY POINTS  Software engineering 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.
  • 37. CONTINUE.. • • The software process consists of activities that are involved in developing software products. Basic activities are software specification, development, validation and evolution. Methods are organised ways of producing software. They include suggestions for the process to be followed, the notations to be used, rules governing the system descriptions which are produced and design guidelines.