SlideShare a Scribd company logo
272: Software Engineering
Fall 2012
Instructor: Tevfik Bultan
Lecture 0: Introduction
Software Engineering
• In 1968 a seminal NATO Conference was held in Germany.
– Purpose: to look for a solution to software crisis
– 50 top computer scientists, programmers and industry leaders got
together to look for a solution to the difficulties in building large
software systems (i.e., software crisis)
– The term “software engineering” was first used in that
conference to indicate a systematic, disciplined, quantifiable
approach to the production and maintenance of software
• Three-decades later (1994) an article in Scientific American (Sept.
94, pp. 85-96) by W. Wayt Gibbs was titled:
– “Software’s Chronic Crisis’’
How Do We Build Software?
Let’s look at an example:
• Sometime ago I asked our IT folks if they can do the following:
– Every year all the PhD students in our department fill out a
progress report that is evaluated by the graduate advisors. We
want to make this online.
• After I told this to our IT manager, he said “OK, let’s have a meeting
so that you can explain us the functionality you want.”
• We scheduled a meeting and at the meeting we went over
– The questions that should be in the progress report
– Type of answers for each question (is it a text field, a date, a
number, etc?)
– What type of users will access this system (students, faculty,
staff)?
– What will be the functionality available to each user?
Requirements Analysis and Specification
• This meeting where we discussed the functionality, input and output
formats, types of users, etc. is called requirements analysis
– During requirements analysis software developers try to figure out
the functionality required by the client
• After the requirements analysis all these issues can be clarified as a
set of Requirements specifications
– Maybe the IT folks who attended the requirements analysis
meeting are not the ones who will develop the software, so the
software developers will need a specification of what they are
supposed to build.
• Writing precise requirements specifications can be very challenging:
– Formal (mathematical) specifications are precise, but hard to read
and write
– English is easy to read and write, but ambiguous
Design
• After figuring out the requirements specifications, we have to build the
software
• In our example, I assume that the IT folks are going to talk about the
structure of this application first.
– There will be a backend database, the users will first login using
an authorization module, etc.
• Deciding on how to modularize the software is part of the
Architectural Design.
– It is helpful (most of the time necessary, since one may be
working in a team) to document the design architecture (i.e.,
modules and their interfaces) before starting the implementation.
• After figuring out the modules, the next step is to figure out how to
build those modules.
• Detailed Design involves writing a detailed description of the
processing that will be done in each module before implementing it.
– Generally written in some structured pseudo-code.
Implementation and Testing
• Finally, the IT folks are going to pick an implementation language
(PHP, Java Servlets, etc) and start writing code.
• This is the Implementation phase:
– Implement the modules defined by the architectural design and
the detailed design.
• After the implementation is finished the IT folks will need to check if
the software does what it is supposed to do.
• Use a set of inputs to Test the program
– When are they done with testing?
– Can they test parts of the program in isolation?
Maintenance
• After they finished the implementation, tested it, fixed all the bugs, are
they done?
• No, I (client) may say, “I would like to add a new question to the PhD
progress report” or “I found a bug when I was using it” or “You know,
it would be nice if we can also do the MS progress reports online” etc.
– The difficulty of changing the program may depend on how we
designed and implemented it:
• Are the module interfaces in the program well defined? Is
changing one part of the code effect all the other parts?
• This is called the Maintenance phase where the software is
continually modified to adopt to the changing needs of the customer
and the environment.
Software Process
• Then there is the question of how to organize the activities we
mentioned before (requirements analysis, design, implementation,
testing).
• There have been significant research on how to organize these
activities
– Waterfall model, spiral model, agile software development,
extreme programming, Scrum, etc.

More Related Content

What's hot

Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)
Rajkumar Pawar
 
software process
software process software process
software process
Muhammad Sikandar Mustafa
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Sibel Kuzgun AKIN
 
system software and application software, compiler, interpreter & assembler
system software  and application software, compiler, interpreter & assemblersystem software  and application software, compiler, interpreter & assembler
system software and application software, compiler, interpreter & assembler
chetan birla
 
Software design
Software designSoftware design
Software design
Benazir Fathima
 
Program logic formulation
Program logic formulationProgram logic formulation
Program logic formulationSara Corpuz
 
Game development (Game Architecture)
Game development (Game Architecture)Game development (Game Architecture)
Game development (Game Architecture)
Rajkumar Pawar
 
Waterfall Model
Waterfall ModelWaterfall Model
Software engg. pressman_ch-1
Software engg. pressman_ch-1Software engg. pressman_ch-1
Software engg. pressman_ch-1Dhairya Joshi
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Dharmalingam Ganesan
 
Waterfall model of Software Engineering
Waterfall model of Software EngineeringWaterfall model of Software Engineering
Waterfall model of Software Engineering
Mahnoor Shaukat
 
Iterative software development
Iterative software developmentIterative software development
Iterative software development
Mohamad Charaf AWS Certified
 
Brisk software engineering model
Brisk software engineering modelBrisk software engineering model
Brisk software engineering modelPrerna-lakhotia
 
The V Model
The V ModelThe V Model
The V Model
Damian T. Gordon
 
End user development
End user developmentEnd user development
End user developmentgavhays
 
System software and Application software
System software and Application softwareSystem software and Application software
System software and Application software
baabtra.com - No. 1 supplier of quality freshers
 
Bai giang-se-13feb14
Bai giang-se-13feb14Bai giang-se-13feb14
Software developement life_cycle_v1.1
Software developement life_cycle_v1.1Software developement life_cycle_v1.1
Software developement life_cycle_v1.1
Ganapathi M
 

What's hot (20)

Chap1
Chap1Chap1
Chap1
 
Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)
 
software process
software process software process
software process
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
system software and application software, compiler, interpreter & assembler
system software  and application software, compiler, interpreter & assemblersystem software  and application software, compiler, interpreter & assembler
system software and application software, compiler, interpreter & assembler
 
Software design
Software designSoftware design
Software design
 
Program logic formulation
Program logic formulationProgram logic formulation
Program logic formulation
 
Sdlc
SdlcSdlc
Sdlc
 
Game development (Game Architecture)
Game development (Game Architecture)Game development (Game Architecture)
Game development (Game Architecture)
 
Waterfall Model
Waterfall ModelWaterfall Model
Waterfall Model
 
Software engg. pressman_ch-1
Software engg. pressman_ch-1Software engg. pressman_ch-1
Software engg. pressman_ch-1
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Waterfall model of Software Engineering
Waterfall model of Software EngineeringWaterfall model of Software Engineering
Waterfall model of Software Engineering
 
Iterative software development
Iterative software developmentIterative software development
Iterative software development
 
Brisk software engineering model
Brisk software engineering modelBrisk software engineering model
Brisk software engineering model
 
The V Model
The V ModelThe V Model
The V Model
 
End user development
End user developmentEnd user development
End user development
 
System software and Application software
System software and Application softwareSystem software and Application software
System software and Application software
 
Bai giang-se-13feb14
Bai giang-se-13feb14Bai giang-se-13feb14
Bai giang-se-13feb14
 
Software developement life_cycle_v1.1
Software developement life_cycle_v1.1Software developement life_cycle_v1.1
Software developement life_cycle_v1.1
 

Similar to Lo 20

SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
SanskarBhushankar
 
software engineering
software engineeringsoftware engineering
software engineering
Azad public school
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
KelisKing
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
Shafiul Azam Chowdhury
 
Software engineering
Software engineeringSoftware engineering
Software engineering
DivyaSharma458
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptx
AbdulRaheem254960
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
sagarjsicg
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
SADEED AMEEN
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
Taymoor Nazmy
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Developmentbsadd
 
Software engineering
Software engineeringSoftware engineering
Software engineering
Mandavi Classes
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesDamian T. Gordon
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
KarumuriJayasri
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
Phases of software development
Phases of software developmentPhases of software development
Phases of software development
Celine George
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
saranive23
 
SE UNIT-1.pptx
SE UNIT-1.pptxSE UNIT-1.pptx
SE UNIT-1.pptx
SherinRappai
 
computer software
computer softwarecomputer software
computer software
MdArifHossain30
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
Rupesh Vaishnav
 

Similar to Lo 20 (20)

SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
software engineering
software engineeringsoftware engineering
software engineering
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptx
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Development
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Phases of software development
Phases of software developmentPhases of software development
Phases of software development
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 
SE UNIT-1.pptx
SE UNIT-1.pptxSE UNIT-1.pptx
SE UNIT-1.pptx
 
computer software
computer softwarecomputer software
computer software
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 

More from liankei

Lo 19
Lo 19Lo 19
Lo 19
liankei
 
Lo 18
Lo 18Lo 18
Lo 18
liankei
 
Lo 13
Lo 13Lo 13
Lo 13
liankei
 
Lo 12
Lo 12Lo 12
Lo 12
liankei
 
Lo 11
Lo 11Lo 11
Lo 11
liankei
 
Lo 06
Lo 06Lo 06
Lo 06
liankei
 
Lo 05
Lo 05Lo 05
Lo 05
liankei
 
Lo 04
Lo 04Lo 04
Lo 04
liankei
 
Lo 01
Lo 01Lo 01
Lo 01
liankei
 
Lo 16
Lo 16Lo 16
Lo 16
liankei
 
Lo 15
Lo 15Lo 15
Lo 15
liankei
 
Lo 09
Lo 09Lo 09
Lo 09
liankei
 
Lo 08
Lo 08Lo 08
Lo 08
liankei
 
Lo 03
Lo 03Lo 03
Lo 03
liankei
 
Lo19
Lo19Lo19
Lo19
liankei
 
Lo20
Lo20Lo20
Lo20
liankei
 
Lo17
Lo17Lo17
Lo17
liankei
 
Lo18
Lo18Lo18
Lo18
liankei
 
Lo15
Lo15Lo15
Lo15
liankei
 
Lo16
Lo16Lo16
Lo16
liankei
 

More from liankei (20)

Lo 19
Lo 19Lo 19
Lo 19
 
Lo 18
Lo 18Lo 18
Lo 18
 
Lo 13
Lo 13Lo 13
Lo 13
 
Lo 12
Lo 12Lo 12
Lo 12
 
Lo 11
Lo 11Lo 11
Lo 11
 
Lo 06
Lo 06Lo 06
Lo 06
 
Lo 05
Lo 05Lo 05
Lo 05
 
Lo 04
Lo 04Lo 04
Lo 04
 
Lo 01
Lo 01Lo 01
Lo 01
 
Lo 16
Lo 16Lo 16
Lo 16
 
Lo 15
Lo 15Lo 15
Lo 15
 
Lo 09
Lo 09Lo 09
Lo 09
 
Lo 08
Lo 08Lo 08
Lo 08
 
Lo 03
Lo 03Lo 03
Lo 03
 
Lo19
Lo19Lo19
Lo19
 
Lo20
Lo20Lo20
Lo20
 
Lo17
Lo17Lo17
Lo17
 
Lo18
Lo18Lo18
Lo18
 
Lo15
Lo15Lo15
Lo15
 
Lo16
Lo16Lo16
Lo16
 

Recently uploaded

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 

Recently uploaded (20)

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 

Lo 20

  • 1. 272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 0: Introduction
  • 2. Software Engineering • In 1968 a seminal NATO Conference was held in Germany. – Purpose: to look for a solution to software crisis – 50 top computer scientists, programmers and industry leaders got together to look for a solution to the difficulties in building large software systems (i.e., software crisis) – The term “software engineering” was first used in that conference to indicate a systematic, disciplined, quantifiable approach to the production and maintenance of software • Three-decades later (1994) an article in Scientific American (Sept. 94, pp. 85-96) by W. Wayt Gibbs was titled: – “Software’s Chronic Crisis’’
  • 3. How Do We Build Software? Let’s look at an example: • Sometime ago I asked our IT folks if they can do the following: – Every year all the PhD students in our department fill out a progress report that is evaluated by the graduate advisors. We want to make this online. • After I told this to our IT manager, he said “OK, let’s have a meeting so that you can explain us the functionality you want.” • We scheduled a meeting and at the meeting we went over – The questions that should be in the progress report – Type of answers for each question (is it a text field, a date, a number, etc?) – What type of users will access this system (students, faculty, staff)? – What will be the functionality available to each user?
  • 4. Requirements Analysis and Specification • This meeting where we discussed the functionality, input and output formats, types of users, etc. is called requirements analysis – During requirements analysis software developers try to figure out the functionality required by the client • After the requirements analysis all these issues can be clarified as a set of Requirements specifications – Maybe the IT folks who attended the requirements analysis meeting are not the ones who will develop the software, so the software developers will need a specification of what they are supposed to build. • Writing precise requirements specifications can be very challenging: – Formal (mathematical) specifications are precise, but hard to read and write – English is easy to read and write, but ambiguous
  • 5. Design • After figuring out the requirements specifications, we have to build the software • In our example, I assume that the IT folks are going to talk about the structure of this application first. – There will be a backend database, the users will first login using an authorization module, etc. • Deciding on how to modularize the software is part of the Architectural Design. – It is helpful (most of the time necessary, since one may be working in a team) to document the design architecture (i.e., modules and their interfaces) before starting the implementation. • After figuring out the modules, the next step is to figure out how to build those modules. • Detailed Design involves writing a detailed description of the processing that will be done in each module before implementing it. – Generally written in some structured pseudo-code.
  • 6. Implementation and Testing • Finally, the IT folks are going to pick an implementation language (PHP, Java Servlets, etc) and start writing code. • This is the Implementation phase: – Implement the modules defined by the architectural design and the detailed design. • After the implementation is finished the IT folks will need to check if the software does what it is supposed to do. • Use a set of inputs to Test the program – When are they done with testing? – Can they test parts of the program in isolation?
  • 7. Maintenance • After they finished the implementation, tested it, fixed all the bugs, are they done? • No, I (client) may say, “I would like to add a new question to the PhD progress report” or “I found a bug when I was using it” or “You know, it would be nice if we can also do the MS progress reports online” etc. – The difficulty of changing the program may depend on how we designed and implemented it: • Are the module interfaces in the program well defined? Is changing one part of the code effect all the other parts? • This is called the Maintenance phase where the software is continually modified to adopt to the changing needs of the customer and the environment.
  • 8. Software Process • Then there is the question of how to organize the activities we mentioned before (requirements analysis, design, implementation, testing). • There have been significant research on how to organize these activities – Waterfall model, spiral model, agile software development, extreme programming, Scrum, etc.