Software Engineering Fundamentals
Software Engineering Fundamentals
y.telerik.com
Practical Software
Engineering
Fundamentals
Svetlin Nakov
Telerik
Corporation
www.telerik
.com
Table of Contents
Requirements
Design
Construction
Testing
Project management
Development methodologies
overview
The waterfall development process
Heavyweight methodologies
Agile methodologies, SCRUM and XP
Software
Requirements, Design, Construction,
Engineering
Testing
What is Software
Engineering?
Software engineering is the
application of a systematic,
disciplined, quantifiable
approach to the development,
operation, and maintenance
Definition byof
IEEE
software
Software Engineering
Software Development
Activities
Requirements analysis
Software
Design
Project
Construction
Managemen
Testing (sometimes)
t
Software
Functional,
Non-functional
Requirements
Requirements, SRS
Software Requirements
Requirements Analysis
Software Requirements
Specification (SRS)
The Software Requirements
Specification (SRS) is a formal
requirements document
It describes in details:
Functional requirements
Business processes
Actors and use-cases
Non-functional requirements
E.g. performance, scalability,
constraints, etc.
Software Requirements
Software
Requirements
Specifications (SRS)
and UI Live
Prototypes
Demo
Software
Architecture and
Software Design
Software Architecture
and Software Design
Software design is a technical
description (blueprints) about how
the system will implement the
requirements
The system architecture describes:
System Architecture
Diagram Example
Software Architecture
Diagram Example
16
Software Design
Detailed Design
Describes the internal module
structure
Interfaces, data design, process
design
Object-Oriented Design
Describes the classes, their
responsibilities, relationships,
dependencies, and interactions
Software Design
Document (SDD)
It contains:
Architectural design
Modules and their interaction
(diagram)
Software Design
Document
Live Demo
Software
Construction
Implementation, Unit Testing,
Debugging, Integration
Software Construction
It includes:
Debugging
Steps in debugging:
Find the defect in the code
Identify the source of the problem
Identify the exact place in the code
causing it
Integration
Integration strategies
Big bang, top-down and
bottom-up
Continuous integration
Coding != Software
Engineering
Software
Verification and
Testing
Software Verification
Two approaches:
Formal reviews and inspections
Different kinds of testing
Software Testing
Testing checks whether the
developed software conforms to
the requirements
Testing aims to find defects (bugs)
Test planning
Software Testing
Process
Test development
Test procedures, test scenarios,
test cases, test scripts
Test execution
Test reporting
Retesting the defects
Software Project
Management
What is Project
Management?
Co
st
m
i
T
e
What is Software
Project Management?
Project planning
Identify the scope, estimate the
work involved, and create a project
schedule
Developmen
t
Methodolog
Waterfall, Extreme
ies
Programming,
Scrum
What is a Development
Methodology?
A development methodology is a
set of practices and procedures for
organizing the software
development process
A set of rules that developers have
to follow
A set of conventions the
organization decides to follow
A systematical, engineering
approach for organizing and
managing software projects
Development
Methodologies
The Waterfall
Development
Process
Softwa
Softwa
re
re
Design
Design
Implementa
Implementa
tion
tion
(Coding)
(Coding)
Verificat
Verificat
ion
ion
(Testing)
(Testing)
Operation
Operation
(Maintena
(Maintena
nce)
nce)
Formal Methodologies
Formal
methodologies are
heavyweight!
Set of documents,
Requireme
Requireme
System
System
nts
nts
Desi
diagrams, etc.
Desi
Requireme
Requireme
Analy
Analy
gn
gn
nts
nts
sis
Software
sis Detail
Software
Detail
Requireme
ed
Requireme
ed
nts
Desig
nts
DesigCodi
Codi
Prelimin
Prelimin
Software
Software
n
ng
n
ngIntegrati
Integrati
ary
ary
Requireme
Requireme
on
on Testi
Design
Testi
Design
Analy
nts
Analy
nts
ng
ng Usa
Usa
sis
Specificati
sis
Specificati
Progra
Progra
Preli
Preli
ge
ge
on
on
m
Prelimin
m
Prelimin
Operatin
Operatin
m.
m.
Desig
ary
Desig Codi
ary
g
g
Revie
Codi
Revie
n
Design
n
Design
Design
Design
Instructi
Instructi
ng
w
ng
w
Documen
Review
Documen
Review
Testi
Testi ons
ons
ttUI Design
ng
Test
ng
Final
Test
Final
UI Design
Code
Code
Plan
Desig
Documen
Plan
Desig
Documen
Revie
Revie
Operati
Operati
n
tt
n
w
w
ons
ons
Agile Development
Incremental
Cooperation
Straightforward
Adaptive
Agile Methodologies
eXtreme Programming (XP)
Scrum
Feature-Driven Development (FDD)
Crystal family of methodologies
Adaptive Software Development
(ASD)
Dynamic System Development Model
(DSDM)
Agile Unified Process (AUP)
Extreme Programming:
The 12 Key Practices
Scrum
Scrum roles:
Scrum Master maintains the
Scrum processes
Product Owner represents the
stakeholders
Team a group of about 7 people
The team does the actual
development: analysis, design,
49
Scrum Terminology
Sprint
An iteration in the
Scrum development
Usually few weeks
Product Backlog
All features that have to be
developed
Sprint Backlog
All features planned for the current
sprint
50
51
Scrum Practices
Software Engineering
Fundamentals
?
Questions
?
http://academy.telerik.com