SYSC 3100 Systems Analysis and Design 
Software Engineering Principles
Definitions of SW Engineering 
• Parnas 1987: “Multi-person construction of multi-version 
software” 
• Software Engineering means the construction of quality 
software with a limited budget and a given deadline in the 
context of constant change 
• Software Engineering [IEEE-93]: The application of a 
systematic, disciplined, quantifiable approach to the 
development, operation, and maintenance of software; that 
is, the application of engineering to software. 
• Highlights the difference between programming and 
software engineering
Importance of SW Engineering 
• Software is pervasive in our lives, in most systems 
surrounding us - we take it for granted! 
• US $500 Billion world-wide in 1995 
• This includes critical systems that affect our well-being 
and our lives 
• Many reported stories of poor software engineering 
practices leading to catastrophes
SW Engineering Principles 
• There are a number of general principles underlying and driving all 
software engineering techniques 
• They aim at dealing with the inherent complexity of software and help 
achieve quality goals, e.g., reliability, evolvability 
– Rigor and formality 
– Separation of concerns 
– Modularity 
– Abstraction 
– Anticipation of change 
– Generality 
– Incrementality
Rigor and Formality 
• More reliable products, control costs, increase our 
confidence in the product 
• Formality, the highest degree of rigor, require the software 
process to be driven by mathematical laws 
• No need to be always formal - tradeoff 
• Rigor: well-defined, repeatable, technically sound steps 
(based on method, technique) 
• Rigor and formality apply to both the SW process and 
product
Separation of Concerns 
• Decompose a complex problem into simpler problems 
• Concerns may be separated in time (e.g., life cycle phases), 
qualities, product views (e.g., UML views), product parts 
(subsystems, components) 
• However, many interdependencies among decisions in SE
Modularity 
• Software systems are decomposed into simpler pieces: 
modules, components 
• High cohesion and low coupling within/among 
components 
• Allow reuse, easier understanding, team work, etc. 
• Ideally, SW development could be based on composing 
reusable components
Abstraction 
• Identify important aspects and ignore non-relevant details 
for the task at hand 
• Equations, formalisms are forms of abstractions from 
reality, in all engineering disciplines 
• Software specifications and design representations: 
abstract away from programming details 
• Programming languages: abstract away from hardware 
details
Anticipation of Change 
• Software undergoes change constantly 
• How to account for potential change and limit the side 
effects? 
• Impact on design strategy 
– Layered architecture 
– Design patterns 
• Manage versions and revisions (Configuration 
management) 
• Process changes, e.g., personnel turnover: Analysis and 
Design documentation
Generality 
• General solutions mean more software reuse 
• Software solutions general to a given application domain 
• Different forms: libraries, executable components, 
frameworks (e.g., JavaCC) 
• Database management systems, spreadsheets, text 
processing and numerical analysis libraries 
• Overhead, acquisition cost versus reliability, reuse 
• Large, expending COTS market (Components Of The 
Shelf) in the software industry
Incremental Development 
• Stepwise development => early subsets of an application 
• Early feedback from customers, users 
• Initial requirements often not stable and fully understood 
• Incremental development requires special care for 
managing documents, programs, test data, etc. of 
successive versions (configuration management)

More Related Content

PPTX
The Design Phase
PPT
Se ii unit3-architectural-design
PPTX
Website's functional and non functional requirements
PPTX
IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13
PPT
Architectural design1
PDF
What Ability Connecton Does
PPT
Capturing Measurable Non Functional Requirements
PPT
Validating Non Functional Requirements
The Design Phase
Se ii unit3-architectural-design
Website's functional and non functional requirements
IT ELECT 4 NETWORK SECURITY LECTURE 6-5-13
Architectural design1
What Ability Connecton Does
Capturing Measurable Non Functional Requirements
Validating Non Functional Requirements

What's hot (19)

PPTX
Software Engineering - 1
PPTX
Basics Of Software Engineering
PPTX
Software Architecture Practices
PDF
An introduction to software engineering
PPTX
Non-Functional Requirements Are Important (with Explanatory Notes)
PPTX
Architectural Driver
PPT
Chapter 01
PDF
Non-Functional Requirements
PPTX
Lecture 01
PPT
Architecture design in software engineering
PPTX
What is software engineering
PPT
Software Engineering Lec 4-requirments
PPTX
Introduction to Software Engineering
PPTX
Software test engineer
PPTX
Software engineering
PDF
System Life Cycle
PPT
Unit 1 introduction tosoftengg_mba tech ii year
PPT
Unit 1 importance ofsoftengg_b.tech iii year
PPTX
Eliciting Non-Functional Requirements
Software Engineering - 1
Basics Of Software Engineering
Software Architecture Practices
An introduction to software engineering
Non-Functional Requirements Are Important (with Explanatory Notes)
Architectural Driver
Chapter 01
Non-Functional Requirements
Lecture 01
Architecture design in software engineering
What is software engineering
Software Engineering Lec 4-requirments
Introduction to Software Engineering
Software test engineer
Software engineering
System Life Cycle
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1 importance ofsoftengg_b.tech iii year
Eliciting Non-Functional Requirements
Ad

Viewers also liked (7)

PDF
Srs documentation
DOC
Grupo nutricion
PDF
Common testing pitfalls tsp-2014 - 2014-11-03 v10
PDF
SW_Documentation_GRASS
PDF
Technical Documentation Sample One
PPT
Sw Software Documentation
PPTX
Online examination system
Srs documentation
Grupo nutricion
Common testing pitfalls tsp-2014 - 2014-11-03 v10
SW_Documentation_GRASS
Technical Documentation Sample One
Sw Software Documentation
Online examination system
Ad

Similar to Software engineering (20)

PDF
PPSX
Scope of software engineering
PPTX
Greate Introduction to Software Engineering @ Track IT Academy
PDF
Software systems engineering PRINCIPLES
PPTX
Java learn from basic part chapter_01 short notes to understand the java quic...
PPTX
Software Architecture and Design -Development process
PPT
Lecture1 (SE Introduction)
PPTX
intro Software Development and Construtions
PPT
An introduction to software engineering
PPT
INTRODUCTION TO SOFTWARE ENGINEERING
PPTX
Introduction to Software engineering ch03
PDF
software engineering
DOC
SOFTWARE ENGINEERING
PDF
Kelis king - introduction to s.e.
PPT
Se lect11 btech
PPTX
unit 1.pptx regasts sthatbabs shshsbsvsbsh
PPTX
The first session of a software engineering module Presentation.pptx
PPTX
UNIT 1 - MPP.pptxdfvvnfuvbrrujfvbvndvnbn
PDF
Future Research Challenges in Software Evolution
Scope of software engineering
Greate Introduction to Software Engineering @ Track IT Academy
Software systems engineering PRINCIPLES
Java learn from basic part chapter_01 short notes to understand the java quic...
Software Architecture and Design -Development process
Lecture1 (SE Introduction)
intro Software Development and Construtions
An introduction to software engineering
INTRODUCTION TO SOFTWARE ENGINEERING
Introduction to Software engineering ch03
software engineering
SOFTWARE ENGINEERING
Kelis king - introduction to s.e.
Se lect11 btech
unit 1.pptx regasts sthatbabs shshsbsvsbsh
The first session of a software engineering module Presentation.pptx
UNIT 1 - MPP.pptxdfvvnfuvbrrujfvbvndvnbn
Future Research Challenges in Software Evolution

Recently uploaded (20)

PPTX
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
PDF
UEFA_Carbon_Footprint_Calculator_Methology_2.0.pdf
PPTX
Amdahl’s law is explained in the above power point presentations
PPTX
Building constraction Conveyance of water.pptx
PDF
August -2025_Top10 Read_Articles_ijait.pdf
PDF
Unit I -OPERATING SYSTEMS_SRM_KATTANKULATHUR.pptx.pdf
PDF
Applications of Equal_Area_Criterion.pdf
PPTX
Information Storage and Retrieval Techniques Unit III
PPTX
Management Information system : MIS-e-Business Systems.pptx
PPTX
Software Engineering and software moduleing
PPTX
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
PDF
Design Guidelines and solutions for Plastics parts
PDF
First part_B-Image Processing - 1 of 2).pdf
PPTX
Measurement Uncertainty and Measurement System analysis
PDF
Prof. Dr. KAYIHURA A. SILAS MUNYANEZA, PhD..pdf
PDF
Soil Improvement Techniques Note - Rabbi
PPTX
Chapter 2 -Technology and Enginerring Materials + Composites.pptx
PDF
Abrasive, erosive and cavitation wear.pdf
PPTX
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
PDF
distributed database system" (DDBS) is often used to refer to both the distri...
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
UEFA_Carbon_Footprint_Calculator_Methology_2.0.pdf
Amdahl’s law is explained in the above power point presentations
Building constraction Conveyance of water.pptx
August -2025_Top10 Read_Articles_ijait.pdf
Unit I -OPERATING SYSTEMS_SRM_KATTANKULATHUR.pptx.pdf
Applications of Equal_Area_Criterion.pdf
Information Storage and Retrieval Techniques Unit III
Management Information system : MIS-e-Business Systems.pptx
Software Engineering and software moduleing
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
Design Guidelines and solutions for Plastics parts
First part_B-Image Processing - 1 of 2).pdf
Measurement Uncertainty and Measurement System analysis
Prof. Dr. KAYIHURA A. SILAS MUNYANEZA, PhD..pdf
Soil Improvement Techniques Note - Rabbi
Chapter 2 -Technology and Enginerring Materials + Composites.pptx
Abrasive, erosive and cavitation wear.pdf
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
distributed database system" (DDBS) is often used to refer to both the distri...

Software engineering

  • 1. SYSC 3100 Systems Analysis and Design Software Engineering Principles
  • 2. Definitions of SW Engineering • Parnas 1987: “Multi-person construction of multi-version software” • Software Engineering means the construction of quality software with a limited budget and a given deadline in the context of constant change • Software Engineering [IEEE-93]: The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. • Highlights the difference between programming and software engineering
  • 3. Importance of SW Engineering • Software is pervasive in our lives, in most systems surrounding us - we take it for granted! • US $500 Billion world-wide in 1995 • This includes critical systems that affect our well-being and our lives • Many reported stories of poor software engineering practices leading to catastrophes
  • 4. SW Engineering Principles • There are a number of general principles underlying and driving all software engineering techniques • They aim at dealing with the inherent complexity of software and help achieve quality goals, e.g., reliability, evolvability – Rigor and formality – Separation of concerns – Modularity – Abstraction – Anticipation of change – Generality – Incrementality
  • 5. Rigor and Formality • More reliable products, control costs, increase our confidence in the product • Formality, the highest degree of rigor, require the software process to be driven by mathematical laws • No need to be always formal - tradeoff • Rigor: well-defined, repeatable, technically sound steps (based on method, technique) • Rigor and formality apply to both the SW process and product
  • 6. Separation of Concerns • Decompose a complex problem into simpler problems • Concerns may be separated in time (e.g., life cycle phases), qualities, product views (e.g., UML views), product parts (subsystems, components) • However, many interdependencies among decisions in SE
  • 7. Modularity • Software systems are decomposed into simpler pieces: modules, components • High cohesion and low coupling within/among components • Allow reuse, easier understanding, team work, etc. • Ideally, SW development could be based on composing reusable components
  • 8. Abstraction • Identify important aspects and ignore non-relevant details for the task at hand • Equations, formalisms are forms of abstractions from reality, in all engineering disciplines • Software specifications and design representations: abstract away from programming details • Programming languages: abstract away from hardware details
  • 9. Anticipation of Change • Software undergoes change constantly • How to account for potential change and limit the side effects? • Impact on design strategy – Layered architecture – Design patterns • Manage versions and revisions (Configuration management) • Process changes, e.g., personnel turnover: Analysis and Design documentation
  • 10. Generality • General solutions mean more software reuse • Software solutions general to a given application domain • Different forms: libraries, executable components, frameworks (e.g., JavaCC) • Database management systems, spreadsheets, text processing and numerical analysis libraries • Overhead, acquisition cost versus reliability, reuse • Large, expending COTS market (Components Of The Shelf) in the software industry
  • 11. Incremental Development • Stepwise development => early subsets of an application • Early feedback from customers, users • Initial requirements often not stable and fully understood • Incremental development requires special care for managing documents, programs, test data, etc. of successive versions (configuration management)