SlideShare a Scribd company logo
1 of 8
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
 
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 & assemblerchetan birla
 
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
 
Software engg. pressman_ch-1
Software engg. pressman_ch-1Software engg. pressman_ch-1
Software engg. pressman_ch-1Dhairya Joshi
 
Waterfall model of Software Engineering
Waterfall model of Software EngineeringWaterfall model of Software Engineering
Waterfall model of Software EngineeringMahnoor Shaukat
 
Brisk software engineering model
Brisk software engineering modelBrisk software engineering model
Brisk software engineering modelPrerna-lakhotia
 
End user development
End user developmentEnd user development
End user developmentgavhays
 
Software developement life_cycle_v1.1
Software developement life_cycle_v1.1Software developement life_cycle_v1.1
Software developement life_cycle_v1.1Ganapathi 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

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 ConceptsShafiul Azam Chowdhury
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxAbdulRaheem254960
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshsagarjsicg
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSADEED AMEEN
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor Nazmy
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Developmentbsadd
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesDamian T. Gordon
 
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 developmentCeline George
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1Rupesh 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 (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

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
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
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
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...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
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
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

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.