SlideShare a Scribd company logo
1 of 23
Download to read offline
Software Engineering
CSE 2205
Md. Shafiuzzaman
Lecture #1
Today
• CSE 2205 educational objectives (and why)
• Overview of the course
• Quick overview of software engineering
• Why we study it
Who I am
• Md. Shafiuzzaman (md.shafiuzzaman.cse@just.edu.bd)
• Email is the best way to contact me (Put a relevant subject
of your email)
• Background
• Please ask questions during class the lectures should be
interactive
Software Engineering (SE) rumors and myths
• What is the worst thing that you’ve heard about SE?
• What is the best thing that you’ve heard about SE?
• Software Engineering is not rocket science and not
something to learn from a textbook
• Software Engineering is the use of common sense and
discipline
Educational Objective of CSE 2205
• Learn that building large software systems is not a mere
matter of programming
• My goal is to have you more than just intellectually know
it but really feel it and believe it
How to teach Software Engineering
• There is not a single right way to teach software
engineering
• My approach is to teach what I’ve learned from experience
and not simple textbook solutions
• All engineering, including software engineering, is
concerned with building useful artifacts under constraints
(some people even define engineering to be “design under
constraints”)
• If it weren’t for the constraints, there might be a single
right way to engineer software systems
How we will meet our educational objectives
• There is a big multi-person project
• Lectures and sections
– formal lectures
– group project days and oral presentations.
– quizzes and class tests
– Attend lectures is key to get the most out of the class because a
lot of the material is not covered in the readings
More on the class
• Project
– I will form groups depending on your interest and knowledge
– I will give you a high-level description, you refine it
– Strict milestones
– Weekly reports (email is fine)
– Not primarily graded on whether your program works
What is Software Engineering?
• The practical application of scientific knowledge to the
design and construction of computer programs and the
associated documentation required to develop, operate, and
maintain them [Boehm].
• The systematic approach to the development, operation,
maintenance, and retirement of software [IEEE].
• The establishment and use of sound engineering principles
(methods) in order to obtain economically software that is
reliable and works on real machines [Bauer].
• Multi-person construction of multi-version software
[Parnas].
• “Software from womb to tomb.”
Why study Software Engineering?
• Building software without discipline is crazy
• Software is critical to society
• Building a large complete software project is hard
• There is a perceived crisis in our ability to build software
• It’s fun!
• $$$$
Software is critical to society
• Economically important
• Essential for running most enterprises
• Key part of most complex systems
• Essential for designing many engineering products
• In many if not in most cases, the software is embedded in
the system you are using — you don’t see the software
Software is big
KLOC = 1000 lines of code; MLOC = 1,000,000 lines of code
Bar code scanners 10-50KLOC
4-speed transmissions 20KLOC
ATC ground system 130KLOC
Automatic teller machine 600KLOC
Call router 2.1MLOC
B-2 Stealth Bomber 3.5MLOC
Seawolf submarine combat 3.6MLOC
NT 4.0 10MLOC
NT 5.0
(NTFS alone)
60+LMLOC
(250K source lines or 100KLOC )
Software it big, so what?
• Delivered source lines per person
• Common estimates are that a person can deliver about
1000 source lines per year (including documentation,
scaffolding, etc.)
• Therefore, most complex systems require many people to
build
• This would be true even with an order of magnitude
increase in productivity
• Hence the critical need for coordination
• Brooks reminds us that people  time
“The Software Crisis”
• We’ve been in the midst of a crisis ever since the 1968
NATO meeting that christened software engineering
• “We are unable to produce or maintain high-quality
software at reasonable price and on schedule.”
• “Software systems are like cathedrals; first we build them
and they we pray. [Redwine]"
To some degree this is accurate
• We’ll look at some classic software failures later on
• But it’s not fully accurate
• Given the context, we do pretty well
• We surely can, should and must improve
• Some so-called software “failures” are not
– They are often management errors (the choice not to do something
that would have helped)
• In some areas, in particular safety-critical real-time
embedded systems, we may indeed have a looming crisis
Some “crisis” issues
• Relative cost of hardware/software
• Low productivity
• “Wrong” products
• Poor quality
• Constant maintenance
• Technology transfer is slow
Why is it hard?
• There is no single reason software engineering is hard—
it’s a “wicked problem”
• Lack of well-understood representations of software makes
customer and engineer interactions hard [Brooks]
• Still a relatively young field
• Software intangibility is deceptive
– Norman Augustine [Wulf]: “Software is like entropy. It is difficult
to grasp, weighs nothing, and obeys the second law of
thermodynamics; i.e., it always increases.” [Law XXIII]
As the size of the software system grows, the dominant
discipline changes (due to Stu Feldman)
Code Size (LOC) Dominant Discipline
103 Mathematics
104 Science
105 Engineering
106 Social Science
107 Politics
108 Legal?
Your CSE classes to date
• In CSE so far you have mostly implemented carefully
defined specifications
• In most cases, the central objective was to build an
implementation that satisfied specific speed and space
requirements
Software lifecycle
• A software engineering lifecycle model describes how one
might put structure on the software engineering activities
• The classic lifecycle model is the waterfall model (roughly
due to Royce in 1956), which is structured by a set of
activities and is inherently document-driven
Software lifecycle
Software lifecycle
• Limited feedback increases risk
• “You start at the top and it’s all downhill from there.”
[uncertain origin]
• The cost of fixing errors at later lifecycle phases is much
higher than at earlier stages
– Boehm’s 1976 data still hold — the differences are often an order
of magnitude
– Must increase feedback in the lifecycle to reduce these costs (and
other risks)
Text Books
• Software Engineering: A practitioner’s approach by Roger
S. Pressman

More Related Content

What's hot

An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineeringSHREEHARI WADAWADAGI
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
Lecture 1 introduction to software engineering 1
Lecture 1   introduction to software engineering 1Lecture 1   introduction to software engineering 1
Lecture 1 introduction to software engineering 1IIUI
 
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
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2Rupesh Vaishnav
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - BasicsPurvik Rana
 
Unit 1 sepm the generic process model
Unit 1 sepm the generic process modelUnit 1 sepm the generic process model
Unit 1 sepm the generic process modelKanchanPatil34
 
Non functional requirements. do we really care…?
Non functional requirements. do we really care…?Non functional requirements. do we really care…?
Non functional requirements. do we really care…?OSSCube
 
LetsGrow Non-functional requirements
LetsGrow Non-functional requirementsLetsGrow Non-functional requirements
LetsGrow Non-functional requirementsPatrick Kalkman
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-softwareAlenaDion
 
Lesson 2 software processes
Lesson 2   software processesLesson 2   software processes
Lesson 2 software processesanointon
 
Introduction to SDLC
Introduction to SDLC Introduction to SDLC
Introduction to SDLC Ajeng Savitri
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software qualityBabak Khorrami
 
How do Software Architects consider Non-Functional Requirements
How do Software Architects consider Non-Functional RequirementsHow do Software Architects consider Non-Functional Requirements
How do Software Architects consider Non-Functional RequirementsGESSI UPC
 

What's hot (20)

An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Lecture 1 introduction to software engineering 1
Lecture 1   introduction to software engineering 1Lecture 1   introduction to software engineering 1
Lecture 1 introduction to software engineering 1
 
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 engineering
software engineeringsoftware engineering
software engineering
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
 
Unit 1 sepm the generic process model
Unit 1 sepm the generic process modelUnit 1 sepm the generic process model
Unit 1 sepm the generic process model
 
Non functional requirements. do we really care…?
Non functional requirements. do we really care…?Non functional requirements. do we really care…?
Non functional requirements. do we really care…?
 
LetsGrow Non-functional requirements
LetsGrow Non-functional requirementsLetsGrow Non-functional requirements
LetsGrow Non-functional requirements
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
Lesson 2 software processes
Lesson 2   software processesLesson 2   software processes
Lesson 2 software processes
 
Introduction to SDLC
Introduction to SDLC Introduction to SDLC
Introduction to SDLC
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERINGSOFTWARE ENGINEERING
SOFTWARE ENGINEERING
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
How do Software Architects consider Non-Functional Requirements
How do Software Architects consider Non-Functional RequirementsHow do Software Architects consider Non-Functional Requirements
How do Software Architects consider Non-Functional Requirements
 

Similar to Introduction to Software Engineering Course

Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor Nazmy
 
What is the Future of Systems Engineering?
What is the Future of Systems Engineering?What is the Future of Systems Engineering?
What is the Future of Systems Engineering?Elizabeth Steiner
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckUtrecht University
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringMd.Nazmul Islam
 
Lec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptxLec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptxAbdullah Khan
 
Technical stories v1.2
Technical stories v1.2Technical stories v1.2
Technical stories v1.2Jim Brisson
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringAchmad Solichin
 
The Path to Digital Engineering
The Path to Digital EngineeringThe Path to Digital Engineering
The Path to Digital EngineeringElizabeth Steiner
 
Software engineering the genesis
Software engineering  the genesisSoftware engineering  the genesis
Software engineering the genesisPawel Szulc
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineeringfindclick read
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentZahid Hussain
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesDamian T. Gordon
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsUwe Friedrichsen
 
Introductie slides Agile Software Architecture
Introductie slides Agile Software ArchitectureIntroductie slides Agile Software Architecture
Introductie slides Agile Software ArchitectureMaikel Meeuwse
 

Similar to Introduction to Software Engineering Course (20)

Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
What is the Future of Systems Engineering?
What is the Future of Systems Engineering?What is the Future of Systems Engineering?
What is the Future of Systems Engineering?
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide Deck
 
SEOC 2004-2011
SEOC 2004-2011SEOC 2004-2011
SEOC 2004-2011
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Lec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptxLec 1 Introduction to Software Engg.pptx
Lec 1 Introduction to Software Engg.pptx
 
Technical stories v1.2
Technical stories v1.2Technical stories v1.2
Technical stories v1.2
 
No silver bullet
No silver bulletNo silver bullet
No silver bullet
 
Lecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software EngineeringLecture 01 Introduction to Software Engineering
Lecture 01 Introduction to Software Engineering
 
The Path to Digital Engineering
The Path to Digital EngineeringThe Path to Digital Engineering
The Path to Digital Engineering
 
Software engineering the genesis
Software engineering  the genesisSoftware engineering  the genesis
Software engineering the genesis
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
 
Ch01
Ch01Ch01
Ch01
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
 
Introductie slides Agile Software Architecture
Introductie slides Agile Software ArchitectureIntroductie slides Agile Software Architecture
Introductie slides Agile Software Architecture
 
01_IT4557.pptx
01_IT4557.pptx01_IT4557.pptx
01_IT4557.pptx
 

More from Md. Shafiuzzaman Hira (20)

Introduction to Web development
Introduction to Web developmentIntroduction to Web development
Introduction to Web development
 
Software measurement and estimation
Software measurement and estimationSoftware measurement and estimation
Software measurement and estimation
 
Why do we test software?
Why do we test software?Why do we test software?
Why do we test software?
 
Software architectural patterns
Software architectural patternsSoftware architectural patterns
Software architectural patterns
 
Class based modeling
Class based modelingClass based modeling
Class based modeling
 
Class diagram
Class diagramClass diagram
Class diagram
 
State diagram
State diagramState diagram
State diagram
 
Use case Modeling
Use case ModelingUse case Modeling
Use case Modeling
 
User stories
User storiesUser stories
User stories
 
C files
C filesC files
C files
 
C pointers
C pointersC pointers
C pointers
 
C structures
C structuresC structures
C structures
 
How to Create Python scripts
How to Create Python scriptsHow to Create Python scripts
How to Create Python scripts
 
Regular expressions using Python
Regular expressions using PythonRegular expressions using Python
Regular expressions using Python
 
Password locker project
Password locker project Password locker project
Password locker project
 
Dictionaries in Python
Dictionaries in PythonDictionaries in Python
Dictionaries in Python
 
Lists in Python
Lists in PythonLists in Python
Lists in Python
 
Manipulating string with Python
Manipulating string with PythonManipulating string with Python
Manipulating string with Python
 
Introducing ict
Introducing ictIntroducing ict
Introducing ict
 
Function in Python
Function in PythonFunction in Python
Function in Python
 

Recently uploaded

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
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
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
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
 
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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 

Introduction to Software Engineering Course

  • 1. Software Engineering CSE 2205 Md. Shafiuzzaman Lecture #1
  • 2. Today • CSE 2205 educational objectives (and why) • Overview of the course • Quick overview of software engineering • Why we study it
  • 3. Who I am • Md. Shafiuzzaman (md.shafiuzzaman.cse@just.edu.bd) • Email is the best way to contact me (Put a relevant subject of your email) • Background • Please ask questions during class the lectures should be interactive
  • 4. Software Engineering (SE) rumors and myths • What is the worst thing that you’ve heard about SE? • What is the best thing that you’ve heard about SE? • Software Engineering is not rocket science and not something to learn from a textbook • Software Engineering is the use of common sense and discipline
  • 5. Educational Objective of CSE 2205 • Learn that building large software systems is not a mere matter of programming • My goal is to have you more than just intellectually know it but really feel it and believe it
  • 6. How to teach Software Engineering • There is not a single right way to teach software engineering • My approach is to teach what I’ve learned from experience and not simple textbook solutions • All engineering, including software engineering, is concerned with building useful artifacts under constraints (some people even define engineering to be “design under constraints”) • If it weren’t for the constraints, there might be a single right way to engineer software systems
  • 7. How we will meet our educational objectives • There is a big multi-person project • Lectures and sections – formal lectures – group project days and oral presentations. – quizzes and class tests – Attend lectures is key to get the most out of the class because a lot of the material is not covered in the readings
  • 8. More on the class • Project – I will form groups depending on your interest and knowledge – I will give you a high-level description, you refine it – Strict milestones – Weekly reports (email is fine) – Not primarily graded on whether your program works
  • 9. What is Software Engineering? • The practical application of scientific knowledge to the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them [Boehm]. • The systematic approach to the development, operation, maintenance, and retirement of software [IEEE]. • The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines [Bauer]. • Multi-person construction of multi-version software [Parnas]. • “Software from womb to tomb.”
  • 10. Why study Software Engineering? • Building software without discipline is crazy • Software is critical to society • Building a large complete software project is hard • There is a perceived crisis in our ability to build software • It’s fun! • $$$$
  • 11. Software is critical to society • Economically important • Essential for running most enterprises • Key part of most complex systems • Essential for designing many engineering products • In many if not in most cases, the software is embedded in the system you are using — you don’t see the software
  • 12. Software is big KLOC = 1000 lines of code; MLOC = 1,000,000 lines of code Bar code scanners 10-50KLOC 4-speed transmissions 20KLOC ATC ground system 130KLOC Automatic teller machine 600KLOC Call router 2.1MLOC B-2 Stealth Bomber 3.5MLOC Seawolf submarine combat 3.6MLOC NT 4.0 10MLOC NT 5.0 (NTFS alone) 60+LMLOC (250K source lines or 100KLOC )
  • 13. Software it big, so what? • Delivered source lines per person • Common estimates are that a person can deliver about 1000 source lines per year (including documentation, scaffolding, etc.) • Therefore, most complex systems require many people to build • This would be true even with an order of magnitude increase in productivity • Hence the critical need for coordination • Brooks reminds us that people  time
  • 14. “The Software Crisis” • We’ve been in the midst of a crisis ever since the 1968 NATO meeting that christened software engineering • “We are unable to produce or maintain high-quality software at reasonable price and on schedule.” • “Software systems are like cathedrals; first we build them and they we pray. [Redwine]"
  • 15. To some degree this is accurate • We’ll look at some classic software failures later on • But it’s not fully accurate • Given the context, we do pretty well • We surely can, should and must improve • Some so-called software “failures” are not – They are often management errors (the choice not to do something that would have helped) • In some areas, in particular safety-critical real-time embedded systems, we may indeed have a looming crisis
  • 16. Some “crisis” issues • Relative cost of hardware/software • Low productivity • “Wrong” products • Poor quality • Constant maintenance • Technology transfer is slow
  • 17. Why is it hard? • There is no single reason software engineering is hard— it’s a “wicked problem” • Lack of well-understood representations of software makes customer and engineer interactions hard [Brooks] • Still a relatively young field • Software intangibility is deceptive – Norman Augustine [Wulf]: “Software is like entropy. It is difficult to grasp, weighs nothing, and obeys the second law of thermodynamics; i.e., it always increases.” [Law XXIII]
  • 18. As the size of the software system grows, the dominant discipline changes (due to Stu Feldman) Code Size (LOC) Dominant Discipline 103 Mathematics 104 Science 105 Engineering 106 Social Science 107 Politics 108 Legal?
  • 19. Your CSE classes to date • In CSE so far you have mostly implemented carefully defined specifications • In most cases, the central objective was to build an implementation that satisfied specific speed and space requirements
  • 20. Software lifecycle • A software engineering lifecycle model describes how one might put structure on the software engineering activities • The classic lifecycle model is the waterfall model (roughly due to Royce in 1956), which is structured by a set of activities and is inherently document-driven
  • 22. Software lifecycle • Limited feedback increases risk • “You start at the top and it’s all downhill from there.” [uncertain origin] • The cost of fixing errors at later lifecycle phases is much higher than at earlier stages – Boehm’s 1976 data still hold — the differences are often an order of magnitude – Must increase feedback in the lifecycle to reduce these costs (and other risks)
  • 23. Text Books • Software Engineering: A practitioner’s approach by Roger S. Pressman