SlideShare a Scribd company logo
Introduction to Software Engineering
Syed Saqib Raza Rizvi
What is Engineering?
What is Software?
What is software engineering?
What is a software process?
Different types of process models?
Different Models with Strengths and Weaknesses
Agile Software Development
Engineering is the application of scientific
and practical knowledge in order to invent,
design, build, maintain, and improve
systems, processes, etc.
The software is collection of Integrated programs
Software consists of carefully-organized instructions and
code written by programmers in any of various special
computer languages.
Computer programs and associated documentation such
as requirements, design models and user manuals.
Software engineering is an engineering discipline that is
concerned with all aspects of software production.
According to IEEE's definition software engineering can
be defined as the application of a systematic, disciplined,
quantifiable approach to the development, operation, and
maintenance of software, and the study of these
approaches; that is, the application of engineering to
software.
 A framework that describes the activities performed at each stage of
a software development project.
 A set of activities whose goal is the development or evolution of
software.
 Generic activities in all software processes are:
 Specification - what the system should do and its development
constraints
 Development - production of the software system
 Validation - checking that the software is what the customer
wants
 Evolution - changing the software in response to changing
demands.
Waterfall Model
Incremental Model
RAD Model
Spiral Model
Scrum Model
Lean Development Methodology
Extreme Programming
Etc
 .
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Good for management control (plan, staff, track)
Works well when quality is more important than cost or
schedule
All requirements must be known upfront
Deliverables created for each phase are considered frozen
inhibits flexibility
Can give a false impression of progress
Does not reflect problem-solving nature of software
development – iterations of phases
Integration is one big bang at the end
Little opportunity for customer to preview the system
(until it may be too late)
Requirements are very well known
Product definition is stable
Technology is understood
New version of an existing product
Porting an existing product to a new platform.
High risk for new systems because of specification
and design problems
Whole requirement is divided into various builds
Multiple development cycles take place here, making the
life cycle a “multi-waterfall” cycle.
Cycles are divided up into smaller, more easily managed
modules.
Each module passes through the requirements, design,
implementation and testing phases.
A working version of software is produced during the first
module, so you have working software early on during the
software life cycle.
Introduction to Software Engineering
Generates working software quickly and early during the
software life cycle.
More flexible – less costly to change scope and
requirements.
Easier to test and debug during a smaller iteration.
Customer can respond to each built.
Lowers initial delivery cost.
Needs good planning and design.
Needs a clear and complete definition of the whole system
before it can be broken down and built incrementally.
Total cost is higher than waterfall.
Requirements of the complete system are clearly defined
and understood.
Major requirements must be defined; however, some
details can evolve with time.
There is a need to get a product to the market early.
A new technology is being used
Resources with needed skill set are not available
Rapid Application Development model
type of incremental model
In RAD model the components or functions are developed
in parallel as if they were mini projects.
The developments are time boxed, delivered and then
assembled into a working prototype.
This can quickly give the customer something to see and
use and to provide feedback regarding the delivery and
their requirements.
Introduction to Software Engineering
Reduced development time.
Increases reusability of components
Quick initial reviews occur
Encourages customer feedback
Depends on strong team and individual performances for
identifying business requirements.
Only system that can be modularized can be built using
RAD
Requires highly skilled developers/designers.
High dependency on modeling skills
Inapplicable to cheaper projects as cost of modeling and
automated code generation is very high.
RAD should be used when there is a need to create a
system that can be modularized in 2-3 months of time.
It should be used if there’s high availability of designers
for modeling and the budget is high enough to afford their
cost along with the cost of automated code generating
tools.
RAD SDLC model should be chosen only if resources with
high business knowledge are available and there is a need
to produce the system in a short span of time (2-3 months).
The spiral model is similar to the incremental model, with
more emphasis placed on risk analysis.
The spiral model has four phases: Planning, Risk Analysis,
Engineering and Evaluation.
A software project repeatedly passes through these phases
in iterations (called Spirals in this model).
The baseline spiral, starting in the planning phase,
requirements are gathered and risk is assessed.
Introduction to Software Engineering
High amount of risk analysis hence, avoidance of Risk is
enhanced.
Good for large and mission-critical projects.
Strong approval and documentation control.
Additional Functionality can be added at a later date.
Can be a costly model to use.
Risk analysis requires highly specific expertise.
Project’s success is highly dependent on the risk analysis
phase.
Doesn’t work well for smaller projects.
When costs and risk evaluation is important
For medium to high-risk projects
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and
exploration)
Traditional approach to managing software development
projects was failing far too often, and there had to be a
better way
Agile development is a different way of managing IT
development teams and projects
Came up with the agile manifesto, which describes 4
important values that are as relevant today
 Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
1. Active user involvement is imperative
2. The team must be empowered to make decisions
3. Requirements evolve but the timescale is fixed
4. Capture requirements at a high level
5. Develop small, incremental releases and iterate
6. Focus on frequent delivery of products
7. Complete each feature before moving on to the next
8. Apply the 80/20 rule
9. Testing is integrated throughout the project lifecycle – test
early and often
10. A collaborative & cooperative approach between all
stakeholders is essential
 Is also an agile development method, which concentrates
particularly on how to manage tasks within a team-based
development environment.
Scrum is the most popular and widely adopted agile
method
Relatively simple to implement and addresses many of the
management issues that have plagued IT development
teams for decades
•A product owner creates a prioritized wish list called a product backlog.
•During sprint planning, the team pulls a small chunk from the top of that
wish list, a sprint backlog, and decides how to implement those pieces.
•The team has a certain amount of time — a sprint (usually two to four
weeks) — to complete its work, but it meets each day to assess its progress
(daily Scrum).
•Along the way, the Scrum Master keeps the team focused on its goal.
•At the end of the sprint, the work should be potentially shippable: ready
to hand to a customer, put on a store shelf, or show to a stakeholder.
•The sprint ends with a sprint review.
•As the next sprint begins, the team chooses another chunk of the product
backlog and begins working again-
Introduction to Software Engineering
XP (Extreme Programming) is a more radical agile
methodology,
Focusing more on the software engineering process
 Addressing the analysis, development and test phases
with novel approaches that make a substantial difference
to the quality of the end product.
1. You need to improve communication.
2. You need to seek simplicity.
3. You need to get feedback on how well you are doing.
4. You need to always proceed with courage.
In XP these four basic activities are implemented by using
practices which are traditional software engineering
practices but elevated to embody and encourage XP
values.
Although practices of Extreme Programing they can be
compacted into twelve simple rules
1. User stories (planning): User stories can be viewed as a smaller version of use case. In this way, the
customer define as briefly as possible the specification of the new application (features, value, priority).
These stories will be the base for the project team to do cost estimation and management of the project.
2. Small releases (building blocks): XP emphasizes on small, simple but frequent versions updates of the
application. Each newly added requirement will instantly incorporated and the system is re-released.
3. Metaphor (standardized naming schemes): Developers and programmers must adhere to standards on
names, class names and methods.
4. Collective ownership: In XP methodology, all code is considered to be owned by the whole team and not
an individual property. Hence, all code is reviewed and updated by everyone.
5. Coding standard: Styles and formats of coding must be the same in order to enable compatibility
between team members. This approach results in more rapid collaboration.
6. Simple design: Always look for system implementation that is as easy as possible implementation of
the system yet meets all required functionality.
7. Refactoring: The application should be continually adjusted and improved by all team
members. This requires extremely good communication between members to avoid work
duplication.
8. Testing: Every small release (called building block) must pass tests before being released.
XP’s uniqueness in this aspect is that tests are created first and then application code is
developed to meet and pass the challenges of those pre-written tests.
9. Pair programming: XP programmers work in pairs. All code is developed by two
programmers who work together at a single machine. The expectation is that pair programming
produces higher quality code at the same or less cost.
10. Continuous integration: Software builds are completed several times a day. In this way all
developers can avoid work fragmentations because they continuously releasing and integrating
code together.
11. 40-hour workweek: Keep mental and physical conditions to be up and running by not
working more than what the bodies can handle.
12. On-site customer: The customer must be viewed as an integral part of the project. The
customer must be arranged to be available at all times in order to ensure that the project is in the
right track.
Introduction to Software Engineering
Introduction to Software Engineering
Introduction to Software Engineering
Ad

More Related Content

What's hot (20)

Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
koolkampus
 
Agile software development
Agile software developmentAgile software development
Agile software development
Muhammad Amjad Rana
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
koolkampus
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
Er. Shiva K. Shrestha
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary models
Pihu Goel
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
swatisinghal
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
Swarnima Tiwari
 
Chapter 5 Syntax Directed Translation
Chapter 5   Syntax Directed TranslationChapter 5   Syntax Directed Translation
Chapter 5 Syntax Directed Translation
Radhakrishnan Chinnusamy
 
Software process
Software processSoftware process
Software process
Jennifer Polack
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
Rajeev Sharan
 
Deadlock ppt
Deadlock ppt Deadlock ppt
Deadlock ppt
Sweetestangel Kochar
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
Sudarsun Santhiappan
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
srijavel
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Hassan A-j
 
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
Dr. C.V. Suresh Babu
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
bhadjaashvini1
 
Fundamental software engineering activities
Fundamental software engineering activitiesFundamental software engineering activities
Fundamental software engineering activities
sommerville-videos
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
SHREEHARI WADAWADAGI
 
Risk management(software engineering)
Risk management(software engineering)Risk management(software engineering)
Risk management(software engineering)
Priya Tomar
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
JAINAM KAPADIYA
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
koolkampus
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
koolkampus
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
Er. Shiva K. Shrestha
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary models
Pihu Goel
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
Swarnima Tiwari
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
Rajeev Sharan
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
srijavel
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Hassan A-j
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
bhadjaashvini1
 
Fundamental software engineering activities
Fundamental software engineering activitiesFundamental software engineering activities
Fundamental software engineering activities
sommerville-videos
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
SHREEHARI WADAWADAGI
 
Risk management(software engineering)
Risk management(software engineering)Risk management(software engineering)
Risk management(software engineering)
Priya Tomar
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
JAINAM KAPADIYA
 

Viewers also liked (20)

Visualisera & arbeta smartare
Visualisera & arbeta smartareVisualisera & arbeta smartare
Visualisera & arbeta smartare
Fredrik Cederlöf
 
Iffis14 datavisualisering
Iffis14 datavisualiseringIffis14 datavisualisering
Iffis14 datavisualisering
Chalmers Library
 
Intro till EA och Sigma Target Architecture
Intro till EA och Sigma Target ArchitectureIntro till EA och Sigma Target Architecture
Intro till EA och Sigma Target Architecture
Johan Hallberg
 
Capability Maturity Model Integartion
Capability Maturity Model IntegartionCapability Maturity Model Integartion
Capability Maturity Model Integartion
Saqib Raza
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
Hitesh Mohapatra
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza
 
Model driven software engineering in practice book - chapter 7 - Developing y...
Model driven software engineering in practice book - chapter 7 - Developing y...Model driven software engineering in practice book - chapter 7 - Developing y...
Model driven software engineering in practice book - chapter 7 - Developing y...
Marco Brambilla
 
AUTOMATIC METER READING BY SAIKIRAN PANJALA
AUTOMATIC METER READING BY SAIKIRAN PANJALAAUTOMATIC METER READING BY SAIKIRAN PANJALA
AUTOMATIC METER READING BY SAIKIRAN PANJALA
Saikiran Panjala
 
Software Engineering-R.D.Sivakumar
Software Engineering-R.D.SivakumarSoftware Engineering-R.D.Sivakumar
Software Engineering-R.D.Sivakumar
Sivakumar R D .
 
FSE 2016 Panel: The State of Software Engineering Research
FSE 2016 Panel: The State of Software Engineering ResearchFSE 2016 Panel: The State of Software Engineering Research
FSE 2016 Panel: The State of Software Engineering Research
Margaret-Anne Storey
 
Introduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyIntroduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information Technology
Gaditek
 
Carnaval recife2017
Carnaval recife2017Carnaval recife2017
Carnaval recife2017
Meio & Mensagem
 
Genocidio Armenio Goya
Genocidio Armenio GoyaGenocidio Armenio Goya
Genocidio Armenio Goya
jorgecaldeprofe
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml Overview
Dang Tuan
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-Engineering
Saqib Raza
 
Bpr
BprBpr
Bpr
Dr. Atif Hassan
 
Modul rpl (final 2013)
Modul rpl (final 2013)Modul rpl (final 2013)
Modul rpl (final 2013)
Ikka Utamy
 
Project Management Concepts
Project Management ConceptsProject Management Concepts
Project Management Concepts
Saqib Raza
 
Calendario enero abril - 2do. lapso educacion media general (1)
Calendario enero abril - 2do. lapso educacion media general (1)Calendario enero abril - 2do. lapso educacion media general (1)
Calendario enero abril - 2do. lapso educacion media general (1)
U.E. Colegio Teresiano Nuestra Señora de Coromoto El Paraíso
 
Visualisera & arbeta smartare
Visualisera & arbeta smartareVisualisera & arbeta smartare
Visualisera & arbeta smartare
Fredrik Cederlöf
 
Intro till EA och Sigma Target Architecture
Intro till EA och Sigma Target ArchitectureIntro till EA och Sigma Target Architecture
Intro till EA och Sigma Target Architecture
Johan Hallberg
 
Capability Maturity Model Integartion
Capability Maturity Model IntegartionCapability Maturity Model Integartion
Capability Maturity Model Integartion
Saqib Raza
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
Hitesh Mohapatra
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza
 
Model driven software engineering in practice book - chapter 7 - Developing y...
Model driven software engineering in practice book - chapter 7 - Developing y...Model driven software engineering in practice book - chapter 7 - Developing y...
Model driven software engineering in practice book - chapter 7 - Developing y...
Marco Brambilla
 
AUTOMATIC METER READING BY SAIKIRAN PANJALA
AUTOMATIC METER READING BY SAIKIRAN PANJALAAUTOMATIC METER READING BY SAIKIRAN PANJALA
AUTOMATIC METER READING BY SAIKIRAN PANJALA
Saikiran Panjala
 
Software Engineering-R.D.Sivakumar
Software Engineering-R.D.SivakumarSoftware Engineering-R.D.Sivakumar
Software Engineering-R.D.Sivakumar
Sivakumar R D .
 
FSE 2016 Panel: The State of Software Engineering Research
FSE 2016 Panel: The State of Software Engineering ResearchFSE 2016 Panel: The State of Software Engineering Research
FSE 2016 Panel: The State of Software Engineering Research
Margaret-Anne Storey
 
Introduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyIntroduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information Technology
Gaditek
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml Overview
Dang Tuan
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-Engineering
Saqib Raza
 
Modul rpl (final 2013)
Modul rpl (final 2013)Modul rpl (final 2013)
Modul rpl (final 2013)
Ikka Utamy
 
Project Management Concepts
Project Management ConceptsProject Management Concepts
Project Management Concepts
Saqib Raza
 
Ad

Similar to Introduction to Software Engineering (20)

Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashed
livgeni
 
Incremental model
Incremental modelIncremental model
Incremental model
Sajid Ali Laghari
 
devops notes.docx LECTURE NOTE S OF 2025
devops notes.docx LECTURE NOTE S OF 2025devops notes.docx LECTURE NOTE S OF 2025
devops notes.docx LECTURE NOTE S OF 2025
alekyachowdarykonaka
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Compare Infobase Limited
 
reaserch ppt.pptx
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
BinyamBekele3
 
Agile Software Development in Bachelor of Computer Applications.ppt
Agile Software Development in Bachelor of Computer Applications.pptAgile Software Development in Bachelor of Computer Applications.ppt
Agile Software Development in Bachelor of Computer Applications.ppt
JASVEERSINGHVU21CSCI
 
Software engineering MODULE3__Agile.pptx
Software engineering MODULE3__Agile.pptxSoftware engineering MODULE3__Agile.pptx
Software engineering MODULE3__Agile.pptx
ssuser2801af1
 
Lect7
Lect7Lect7
Lect7
Sulman Ahmed
 
Lect7
Lect7Lect7
Lect7
Sulman Ahmed
 
4_59247024118127714222222222222222255.pptx
4_59247024118127714222222222222222255.pptx4_59247024118127714222222222222222255.pptx
4_59247024118127714222222222222222255.pptx
berihufsaha12
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
Compare Infobase Limited
 
SE notes by k. adisesha
SE notes by k. adiseshaSE notes by k. adisesha
SE notes by k. adisesha
Prof. Dr. K. Adisesha
 
Software development process basic
Software development process basicSoftware development process basic
Software development process basic
Anurag Tomar
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
Muhammed Afsal Villan
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
swatisinghal
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Sibel Kuzgun AKIN
 
software engineering
software engineering software engineering
software engineering
bharati vidhyapeeth uni.-pune
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
yedej15330
 
Agile Project Management for IT Projects
Agile Project Management for IT ProjectsAgile Project Management for IT Projects
Agile Project Management for IT Projects
rachna_nainani
 
Agile Methodologies & Key Principles
Agile Methodologies & Key Principles Agile Methodologies & Key Principles
Agile Methodologies & Key Principles
Orchestrate Mortgage and Title Solutions, LLC
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashed
livgeni
 
devops notes.docx LECTURE NOTE S OF 2025
devops notes.docx LECTURE NOTE S OF 2025devops notes.docx LECTURE NOTE S OF 2025
devops notes.docx LECTURE NOTE S OF 2025
alekyachowdarykonaka
 
Agile Software Development in Bachelor of Computer Applications.ppt
Agile Software Development in Bachelor of Computer Applications.pptAgile Software Development in Bachelor of Computer Applications.ppt
Agile Software Development in Bachelor of Computer Applications.ppt
JASVEERSINGHVU21CSCI
 
Software engineering MODULE3__Agile.pptx
Software engineering MODULE3__Agile.pptxSoftware engineering MODULE3__Agile.pptx
Software engineering MODULE3__Agile.pptx
ssuser2801af1
 
4_59247024118127714222222222222222255.pptx
4_59247024118127714222222222222222255.pptx4_59247024118127714222222222222222255.pptx
4_59247024118127714222222222222222255.pptx
berihufsaha12
 
Software development process basic
Software development process basicSoftware development process basic
Software development process basic
Anurag Tomar
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
swatisinghal
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Sibel Kuzgun AKIN
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
yedej15330
 
Agile Project Management for IT Projects
Agile Project Management for IT ProjectsAgile Project Management for IT Projects
Agile Project Management for IT Projects
rachna_nainani
 
Ad

More from Saqib Raza (20)

Lecture-2-Types of Research-Computing Research.pdf
Lecture-2-Types of Research-Computing Research.pdfLecture-2-Types of Research-Computing Research.pdf
Lecture-2-Types of Research-Computing Research.pdf
Saqib Raza
 
Lecture-1-Introduction to Computing Research
Lecture-1-Introduction to Computing ResearchLecture-1-Introduction to Computing Research
Lecture-1-Introduction to Computing Research
Saqib Raza
 
The Design and Analysis of Algorithms.pdf
The Design and Analysis of Algorithms.pdfThe Design and Analysis of Algorithms.pdf
The Design and Analysis of Algorithms.pdf
Saqib Raza
 
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
Saqib Raza
 
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdfData_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Saqib Raza
 
Social Impacts of Artificial intelligence
Social Impacts of Artificial intelligenceSocial Impacts of Artificial intelligence
Social Impacts of Artificial intelligence
Saqib Raza
 
Professional Practice Course Outline
Professional Practice Course OutlineProfessional Practice Course Outline
Professional Practice Course Outline
Saqib Raza
 
Ethical hacking
Ethical hackingEthical hacking
Ethical hacking
Saqib Raza
 
12 security policies
12 security policies12 security policies
12 security policies
Saqib Raza
 
11 Computer Privacy
11 Computer Privacy11 Computer Privacy
11 Computer Privacy
Saqib Raza
 
Software Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional PracticeSoftware Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional Practice
Saqib Raza
 
7 Engineering Profession
7 Engineering Profession7 Engineering Profession
7 Engineering Profession
Saqib Raza
 
6 software contracts
6 software contracts6 software contracts
6 software contracts
Saqib Raza
 
Introduction to Intellectual Property
Introduction to Intellectual PropertyIntroduction to Intellectual Property
Introduction to Intellectual Property
Saqib Raza
 
Itroduction to Business Ethics
Itroduction to Business EthicsItroduction to Business Ethics
Itroduction to Business Ethics
Saqib Raza
 
Types of Ethics
Types of EthicsTypes of Ethics
Types of Ethics
Saqib Raza
 
Introduction to ethics
Introduction to ethicsIntroduction to ethics
Introduction to ethics
Saqib Raza
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
Saqib Raza
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design
Saqib Raza
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
Saqib Raza
 
Lecture-2-Types of Research-Computing Research.pdf
Lecture-2-Types of Research-Computing Research.pdfLecture-2-Types of Research-Computing Research.pdf
Lecture-2-Types of Research-Computing Research.pdf
Saqib Raza
 
Lecture-1-Introduction to Computing Research
Lecture-1-Introduction to Computing ResearchLecture-1-Introduction to Computing Research
Lecture-1-Introduction to Computing Research
Saqib Raza
 
The Design and Analysis of Algorithms.pdf
The Design and Analysis of Algorithms.pdfThe Design and Analysis of Algorithms.pdf
The Design and Analysis of Algorithms.pdf
Saqib Raza
 
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
An Introduction to the Analysis of Algorithms (2nd_Edition_Robert_Sedgewick,_...
Saqib Raza
 
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdfData_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Data_Mining: Practical Machine Learning Tools and Techniques 2ndEd.pdf
Saqib Raza
 
Social Impacts of Artificial intelligence
Social Impacts of Artificial intelligenceSocial Impacts of Artificial intelligence
Social Impacts of Artificial intelligence
Saqib Raza
 
Professional Practice Course Outline
Professional Practice Course OutlineProfessional Practice Course Outline
Professional Practice Course Outline
Saqib Raza
 
Ethical hacking
Ethical hackingEthical hacking
Ethical hacking
Saqib Raza
 
12 security policies
12 security policies12 security policies
12 security policies
Saqib Raza
 
11 Computer Privacy
11 Computer Privacy11 Computer Privacy
11 Computer Privacy
Saqib Raza
 
Software Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional PracticeSoftware Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional Practice
Saqib Raza
 
7 Engineering Profession
7 Engineering Profession7 Engineering Profession
7 Engineering Profession
Saqib Raza
 
6 software contracts
6 software contracts6 software contracts
6 software contracts
Saqib Raza
 
Introduction to Intellectual Property
Introduction to Intellectual PropertyIntroduction to Intellectual Property
Introduction to Intellectual Property
Saqib Raza
 
Itroduction to Business Ethics
Itroduction to Business EthicsItroduction to Business Ethics
Itroduction to Business Ethics
Saqib Raza
 
Types of Ethics
Types of EthicsTypes of Ethics
Types of Ethics
Saqib Raza
 
Introduction to ethics
Introduction to ethicsIntroduction to ethics
Introduction to ethics
Saqib Raza
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
Saqib Raza
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design
Saqib Raza
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
Saqib Raza
 

Recently uploaded (20)

Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 

Introduction to Software Engineering

  • 3. What is Engineering? What is Software? What is software engineering? What is a software process? Different types of process models? Different Models with Strengths and Weaknesses Agile Software Development
  • 4. Engineering is the application of scientific and practical knowledge in order to invent, design, build, maintain, and improve systems, processes, etc.
  • 5. The software is collection of Integrated programs Software consists of carefully-organized instructions and code written by programmers in any of various special computer languages. Computer programs and associated documentation such as requirements, design models and user manuals.
  • 6. Software engineering is an engineering discipline that is concerned with all aspects of software production. According to IEEE's definition software engineering can be defined as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.
  • 7.  A framework that describes the activities performed at each stage of a software development project.  A set of activities whose goal is the development or evolution of software.  Generic activities in all software processes are:  Specification - what the system should do and its development constraints  Development - production of the software system  Validation - checking that the software is what the customer wants  Evolution - changing the software in response to changing demands.
  • 8. Waterfall Model Incremental Model RAD Model Spiral Model Scrum Model Lean Development Methodology Extreme Programming Etc
  • 10. Easy to understand, easy to use Provides structure to inexperienced staff Milestones are well understood Good for management control (plan, staff, track) Works well when quality is more important than cost or schedule
  • 11. All requirements must be known upfront Deliverables created for each phase are considered frozen inhibits flexibility Can give a false impression of progress Does not reflect problem-solving nature of software development – iterations of phases Integration is one big bang at the end Little opportunity for customer to preview the system (until it may be too late)
  • 12. Requirements are very well known Product definition is stable Technology is understood New version of an existing product Porting an existing product to a new platform. High risk for new systems because of specification and design problems
  • 13. Whole requirement is divided into various builds Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed modules. Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle.
  • 15. Generates working software quickly and early during the software life cycle. More flexible – less costly to change scope and requirements. Easier to test and debug during a smaller iteration. Customer can respond to each built. Lowers initial delivery cost.
  • 16. Needs good planning and design. Needs a clear and complete definition of the whole system before it can be broken down and built incrementally. Total cost is higher than waterfall.
  • 17. Requirements of the complete system are clearly defined and understood. Major requirements must be defined; however, some details can evolve with time. There is a need to get a product to the market early. A new technology is being used Resources with needed skill set are not available
  • 18. Rapid Application Development model type of incremental model In RAD model the components or functions are developed in parallel as if they were mini projects. The developments are time boxed, delivered and then assembled into a working prototype. This can quickly give the customer something to see and use and to provide feedback regarding the delivery and their requirements.
  • 20. Reduced development time. Increases reusability of components Quick initial reviews occur Encourages customer feedback
  • 21. Depends on strong team and individual performances for identifying business requirements. Only system that can be modularized can be built using RAD Requires highly skilled developers/designers. High dependency on modeling skills Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.
  • 22. RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time. It should be used if there’s high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools. RAD SDLC model should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short span of time (2-3 months).
  • 23. The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed.
  • 25. High amount of risk analysis hence, avoidance of Risk is enhanced. Good for large and mission-critical projects. Strong approval and documentation control. Additional Functionality can be added at a later date.
  • 26. Can be a costly model to use. Risk analysis requires highly specific expertise. Project’s success is highly dependent on the risk analysis phase. Doesn’t work well for smaller projects.
  • 27. When costs and risk evaluation is important For medium to high-risk projects Users are unsure of their needs Requirements are complex New product line Significant changes are expected (research and exploration)
  • 28. Traditional approach to managing software development projects was failing far too often, and there had to be a better way Agile development is a different way of managing IT development teams and projects Came up with the agile manifesto, which describes 4 important values that are as relevant today
  • 29.  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan
  • 30. 1. Active user involvement is imperative 2. The team must be empowered to make decisions 3. Requirements evolve but the timescale is fixed 4. Capture requirements at a high level 5. Develop small, incremental releases and iterate
  • 31. 6. Focus on frequent delivery of products 7. Complete each feature before moving on to the next 8. Apply the 80/20 rule 9. Testing is integrated throughout the project lifecycle – test early and often 10. A collaborative & cooperative approach between all stakeholders is essential
  • 32.  Is also an agile development method, which concentrates particularly on how to manage tasks within a team-based development environment. Scrum is the most popular and widely adopted agile method Relatively simple to implement and addresses many of the management issues that have plagued IT development teams for decades
  • 33. •A product owner creates a prioritized wish list called a product backlog. •During sprint planning, the team pulls a small chunk from the top of that wish list, a sprint backlog, and decides how to implement those pieces. •The team has a certain amount of time — a sprint (usually two to four weeks) — to complete its work, but it meets each day to assess its progress (daily Scrum). •Along the way, the Scrum Master keeps the team focused on its goal. •At the end of the sprint, the work should be potentially shippable: ready to hand to a customer, put on a store shelf, or show to a stakeholder. •The sprint ends with a sprint review. •As the next sprint begins, the team chooses another chunk of the product backlog and begins working again-
  • 35. XP (Extreme Programming) is a more radical agile methodology, Focusing more on the software engineering process  Addressing the analysis, development and test phases with novel approaches that make a substantial difference to the quality of the end product.
  • 36. 1. You need to improve communication. 2. You need to seek simplicity. 3. You need to get feedback on how well you are doing. 4. You need to always proceed with courage.
  • 37. In XP these four basic activities are implemented by using practices which are traditional software engineering practices but elevated to embody and encourage XP values. Although practices of Extreme Programing they can be compacted into twelve simple rules
  • 38. 1. User stories (planning): User stories can be viewed as a smaller version of use case. In this way, the customer define as briefly as possible the specification of the new application (features, value, priority). These stories will be the base for the project team to do cost estimation and management of the project. 2. Small releases (building blocks): XP emphasizes on small, simple but frequent versions updates of the application. Each newly added requirement will instantly incorporated and the system is re-released. 3. Metaphor (standardized naming schemes): Developers and programmers must adhere to standards on names, class names and methods. 4. Collective ownership: In XP methodology, all code is considered to be owned by the whole team and not an individual property. Hence, all code is reviewed and updated by everyone. 5. Coding standard: Styles and formats of coding must be the same in order to enable compatibility between team members. This approach results in more rapid collaboration. 6. Simple design: Always look for system implementation that is as easy as possible implementation of the system yet meets all required functionality.
  • 39. 7. Refactoring: The application should be continually adjusted and improved by all team members. This requires extremely good communication between members to avoid work duplication. 8. Testing: Every small release (called building block) must pass tests before being released. XP’s uniqueness in this aspect is that tests are created first and then application code is developed to meet and pass the challenges of those pre-written tests. 9. Pair programming: XP programmers work in pairs. All code is developed by two programmers who work together at a single machine. The expectation is that pair programming produces higher quality code at the same or less cost. 10. Continuous integration: Software builds are completed several times a day. In this way all developers can avoid work fragmentations because they continuously releasing and integrating code together. 11. 40-hour workweek: Keep mental and physical conditions to be up and running by not working more than what the bodies can handle. 12. On-site customer: The customer must be viewed as an integral part of the project. The customer must be arranged to be available at all times in order to ensure that the project is in the right track.