SlideShare a Scribd company logo
1 of 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.

More Related Content

What's hot

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
 

What's hot (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
 

Similar to Software engineering

Similar to 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
 

More from 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
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

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.