SlideShare a Scribd company logo
1 of 17
Download to read offline
Integration

Code Complete
Author : Steven C. McConnell.

Prof. Asha N

1
Integration


combine separate software components into
a single system

Prof. Asha N

2
1. Importance of the Integration
Approach




It doesn’t matter that
it would have been
strong enough by the
time it was done; it
needed to be strong
enough at each step
If you construct and
integrate software in
the wrong order, it’s
harder to code,
harder to test, and
harder to debug
The football stadium., at the
University of Washington
Prof. Asha N

3
Contd….


the benefits you can expect from careful integration:













Easier defect diagnosis
Fewer defects
Less scaffolding
Shorter time to first working product
Shorter overall development schedules
Better customer relations
Improved morale
Improved chance of project completion
More reliable schedule estimates
More accurate status reporting
Improved code quality
Less documentation
Prof. Asha N

4
2. Integration Frequency—Phased or
Incremental?


Programs are integrated by means of either
the phased or the incremental approach.


Phased Integration:
1.

2.

3.

Design, code, test, and debug each class. This step is
called “unit development.”
Combine the classes into one whopping-big system.
This is called “system integration.”
Test and debug the whole system. This is called
“system dis-integration.” (Thanks to Meilir Page-Jones
for this witty observation.)

Prof. Asha N

5
Contd….

Prof. Asha N

6
Contd….


Incremental Integration
1.

2.
3.

Develop a small, functional part of the system. It can be
the smallest functional part, the hardest part, a key part,
or some combination. Thoroughly test and debug it. It
will serve as a skeleton on which to hang the muscles,
nerves, and skin that make up the remaining parts of
the system.
Design, code, test, and debug a class.
Integrate the new class with the skeleton. Test and
debug the combination of skeleton and new class. Make
sure the combination works before you add any new
classes. If work remains to be done, repeat the process
starting at step 2.
Prof. Asha N

7
Contd….

Prof. Asha N

8
Contd….


Benefits of Incremental Integration







Errors are easy to locate
The system succeeds early in the project
You get improved progress monitoring
You’ll improve customer relations
The units of the system are tested more fully
You can build the system with a shorter
development schedule

Prof. Asha N

9
3. Incremental Integration Strategies


Top-Down Integration

Prof. Asha N

10
Contd….


Bottom-Up Integration

Prof. Asha N

11
Contd….


Sandwich Integration

Prof. Asha N

12
Contd….


Risk-Oriented Integration

Prof. Asha N

13
Contd….


Feature-Oriented Integration

Prof. Asha N

14
Contd….


T-Shaped Integration

Prof. Asha N

15
4. Daily Build and Smoke Test




a good approach to integrating the software
is the “daily build and smoke test.” Every file
is compiled, linked, and combined into an
executable program every day.
The program is then put through a “smoke
test,” a relatively simple check to see whether
the product “smokes” when it runs.

Prof. Asha N

16
Thank You

Prof. Asha N

17

More Related Content

What's hot

A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat applicationKumar Gaurav
 
Project proposal presentation(Quiz game)
Project proposal presentation(Quiz game)Project proposal presentation(Quiz game)
Project proposal presentation(Quiz game)Ikhtiar Khan Sohan
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSiddhesh Palkar
 
online news portal system
online news portal systemonline news portal system
online news portal systemArman Ahmed
 
Virus and antivirus final ppt
Virus and antivirus final pptVirus and antivirus final ppt
Virus and antivirus final pptaritradutta22
 
Software Engineering Assignment
Software Engineering AssignmentSoftware Engineering Assignment
Software Engineering AssignmentSohaib Latif
 
software testing methodologies
software testing methodologiessoftware testing methodologies
software testing methodologiesJhonny Jhon
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]Rajon
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development pptsaitej15
 

What's hot (20)

Bug Tracking System
Bug Tracking SystemBug Tracking System
Bug Tracking System
 
Project report on blogs
Project report on blogsProject report on blogs
Project report on blogs
 
Ppt on windows 8
Ppt on windows 8Ppt on windows 8
Ppt on windows 8
 
Software testing
Software testing Software testing
Software testing
 
A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat application
 
Windows 7 installation ppt
Windows 7 installation pptWindows 7 installation ppt
Windows 7 installation ppt
 
Project proposal presentation(Quiz game)
Project proposal presentation(Quiz game)Project proposal presentation(Quiz game)
Project proposal presentation(Quiz game)
 
Windows 8 ppt
Windows 8 pptWindows 8 ppt
Windows 8 ppt
 
Windows 7
Windows 7Windows 7
Windows 7
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Kali linux and hacking
Kali linux  and hackingKali linux  and hacking
Kali linux and hacking
 
Windows 7
Windows 7Windows 7
Windows 7
 
online news portal system
online news portal systemonline news portal system
online news portal system
 
Virus and antivirus final ppt
Virus and antivirus final pptVirus and antivirus final ppt
Virus and antivirus final ppt
 
Software Engineering Assignment
Software Engineering AssignmentSoftware Engineering Assignment
Software Engineering Assignment
 
Job portal
Job portalJob portal
Job portal
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
software testing methodologies
software testing methodologiessoftware testing methodologies
software testing methodologies
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 

Viewers also liked

高品質軟體的基本動作 101 + 102 for NUU
高品質軟體的基本動作 101 + 102 for NUU高品質軟體的基本動作 101 + 102 for NUU
高品質軟體的基本動作 101 + 102 for NUUSu Jan
 
Code tuning techniques
Code tuning techniquesCode tuning techniques
Code tuning techniquesAsha Sari
 
Defencive programming
Defencive programmingDefencive programming
Defencive programmingAsha Sari
 
Design in construction
Design in constructionDesign in construction
Design in constructionAsha Sari
 
MOST_OpenFoundry_version control system_Git
MOST_OpenFoundry_version control system_GitMOST_OpenFoundry_version control system_Git
MOST_OpenFoundry_version control system_GitSu Jan
 
程序员发展漫谈
程序员发展漫谈程序员发展漫谈
程序员发展漫谈Horky Chen
 
Java scriptcore brief introduction
Java scriptcore brief introductionJava scriptcore brief introduction
Java scriptcore brief introductionHorky Chen
 
代码大全(内训)
代码大全(内训)代码大全(内训)
代码大全(内训)Horky Chen
 
程序员实践之路
程序员实践之路程序员实践之路
程序员实践之路Horky Chen
 
Design in construction
Design in constructionDesign in construction
Design in constructionAsha Sari
 
A Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingA Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingFolio3 Software
 
Code tuning strategies
Code tuning strategiesCode tuning strategies
Code tuning strategiesAsha Sari
 
高品質軟體的基本動作 101 for NTHU
高品質軟體的基本動作 101 for NTHU高品質軟體的基本動作 101 for NTHU
高品質軟體的基本動作 101 for NTHUSu Jan
 
Code Tuning
Code TuningCode Tuning
Code Tuningbgtraghu
 
The pseudocode
The pseudocodeThe pseudocode
The pseudocodeAsha Sari
 
Rm 1 Intro Types Research Process
Rm   1   Intro Types   Research ProcessRm   1   Intro Types   Research Process
Rm 1 Intro Types Research Processitsvineeth209
 

Viewers also liked (19)

高品質軟體的基本動作 101 + 102 for NUU
高品質軟體的基本動作 101 + 102 for NUU高品質軟體的基本動作 101 + 102 for NUU
高品質軟體的基本動作 101 + 102 for NUU
 
Code tuning techniques
Code tuning techniquesCode tuning techniques
Code tuning techniques
 
Defencive programming
Defencive programmingDefencive programming
Defencive programming
 
Coding Style
Coding StyleCoding Style
Coding Style
 
Design in construction
Design in constructionDesign in construction
Design in construction
 
MOST_OpenFoundry_version control system_Git
MOST_OpenFoundry_version control system_GitMOST_OpenFoundry_version control system_Git
MOST_OpenFoundry_version control system_Git
 
程序员发展漫谈
程序员发展漫谈程序员发展漫谈
程序员发展漫谈
 
Java scriptcore brief introduction
Java scriptcore brief introductionJava scriptcore brief introduction
Java scriptcore brief introduction
 
代码大全(内训)
代码大全(内训)代码大全(内训)
代码大全(内训)
 
程序员实践之路
程序员实践之路程序员实践之路
程序员实践之路
 
Design in construction
Design in constructionDesign in construction
Design in construction
 
A Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingA Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer Testing
 
Variables
VariablesVariables
Variables
 
Code tuning strategies
Code tuning strategiesCode tuning strategies
Code tuning strategies
 
高品質軟體的基本動作 101 for NTHU
高品質軟體的基本動作 101 for NTHU高品質軟體的基本動作 101 for NTHU
高品質軟體的基本動作 101 for NTHU
 
Code Complete
Code CompleteCode Complete
Code Complete
 
Code Tuning
Code TuningCode Tuning
Code Tuning
 
The pseudocode
The pseudocodeThe pseudocode
The pseudocode
 
Rm 1 Intro Types Research Process
Rm   1   Intro Types   Research ProcessRm   1   Intro Types   Research Process
Rm 1 Intro Types Research Process
 

Similar to Integration

Lecture - 24-25.pptx
Lecture - 24-25.pptxLecture - 24-25.pptx
Lecture - 24-25.pptxFarHana74914
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesJérôme Kehrli
 
Growing Object Oriented Software
Growing Object Oriented SoftwareGrowing Object Oriented Software
Growing Object Oriented SoftwareAnnmarie Lanesey
 
Real software engineering
Real software engineeringReal software engineering
Real software engineeringatr2006
 
Glenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineeringGlenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineeringatr2006
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practicesjackcrews
 
IRJET - Neural Network based Leaf Disease Detection and Remedy Recommenda...
IRJET -  	  Neural Network based Leaf Disease Detection and Remedy Recommenda...IRJET -  	  Neural Network based Leaf Disease Detection and Remedy Recommenda...
IRJET - Neural Network based Leaf Disease Detection and Remedy Recommenda...IRJET Journal
 
Software presentation
Software presentationSoftware presentation
Software presentationJennaPrengle
 
Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"Peter Marshall
 
Naging The Development Of Large Software Systems
Naging The Development Of Large Software Systems Naging The Development Of Large Software Systems
Naging The Development Of Large Software Systems Software Guru
 
A New Software Engineeering Approach
A New Software Engineeering ApproachA New Software Engineeering Approach
A New Software Engineeering ApproachArunit Gupta
 
Managing Develop of Large Systems
Managing Develop of Large SystemsManaging Develop of Large Systems
Managing Develop of Large SystemsDaniloPereira341965
 
Software testing
Software testingSoftware testing
Software testingAshu Bansal
 
Online examination system
Online examination systemOnline examination system
Online examination systemRahul Khanwani
 
Different Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingDifferent Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingRachel Davis
 

Similar to Integration (20)

Lecture - 24-25.pptx
Lecture - 24-25.pptxLecture - 24-25.pptx
Lecture - 24-25.pptx
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 
Growing Object Oriented Software
Growing Object Oriented SoftwareGrowing Object Oriented Software
Growing Object Oriented Software
 
Real software engineering
Real software engineeringReal software engineering
Real software engineering
 
03. Agile Development
03. Agile Development03. Agile Development
03. Agile Development
 
Glenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineeringGlenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineering
 
agile methods.docx
agile methods.docxagile methods.docx
agile methods.docx
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
IRJET - Neural Network based Leaf Disease Detection and Remedy Recommenda...
IRJET -  	  Neural Network based Leaf Disease Detection and Remedy Recommenda...IRJET -  	  Neural Network based Leaf Disease Detection and Remedy Recommenda...
IRJET - Neural Network based Leaf Disease Detection and Remedy Recommenda...
 
Software presentation
Software presentationSoftware presentation
Software presentation
 
Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"
 
Testing &ampdebugging
Testing &ampdebuggingTesting &ampdebugging
Testing &ampdebugging
 
Naging The Development Of Large Software Systems
Naging The Development Of Large Software Systems Naging The Development Of Large Software Systems
Naging The Development Of Large Software Systems
 
A New Software Engineeering Approach
A New Software Engineeering ApproachA New Software Engineeering Approach
A New Software Engineeering Approach
 
Managing Develop of Large Systems
Managing Develop of Large SystemsManaging Develop of Large Systems
Managing Develop of Large Systems
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
Software testing
Software testingSoftware testing
Software testing
 
Online examination system
Online examination systemOnline examination system
Online examination system
 
Different Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingDifferent Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application Testing
 

Integration

  • 1. Integration Code Complete Author : Steven C. McConnell. Prof. Asha N 1
  • 2. Integration  combine separate software components into a single system Prof. Asha N 2
  • 3. 1. Importance of the Integration Approach   It doesn’t matter that it would have been strong enough by the time it was done; it needed to be strong enough at each step If you construct and integrate software in the wrong order, it’s harder to code, harder to test, and harder to debug The football stadium., at the University of Washington Prof. Asha N 3
  • 4. Contd….  the benefits you can expect from careful integration:             Easier defect diagnosis Fewer defects Less scaffolding Shorter time to first working product Shorter overall development schedules Better customer relations Improved morale Improved chance of project completion More reliable schedule estimates More accurate status reporting Improved code quality Less documentation Prof. Asha N 4
  • 5. 2. Integration Frequency—Phased or Incremental?  Programs are integrated by means of either the phased or the incremental approach.  Phased Integration: 1. 2. 3. Design, code, test, and debug each class. This step is called “unit development.” Combine the classes into one whopping-big system. This is called “system integration.” Test and debug the whole system. This is called “system dis-integration.” (Thanks to Meilir Page-Jones for this witty observation.) Prof. Asha N 5
  • 7. Contd….  Incremental Integration 1. 2. 3. Develop a small, functional part of the system. It can be the smallest functional part, the hardest part, a key part, or some combination. Thoroughly test and debug it. It will serve as a skeleton on which to hang the muscles, nerves, and skin that make up the remaining parts of the system. Design, code, test, and debug a class. Integrate the new class with the skeleton. Test and debug the combination of skeleton and new class. Make sure the combination works before you add any new classes. If work remains to be done, repeat the process starting at step 2. Prof. Asha N 7
  • 9. Contd….  Benefits of Incremental Integration       Errors are easy to locate The system succeeds early in the project You get improved progress monitoring You’ll improve customer relations The units of the system are tested more fully You can build the system with a shorter development schedule Prof. Asha N 9
  • 10. 3. Incremental Integration Strategies  Top-Down Integration Prof. Asha N 10
  • 16. 4. Daily Build and Smoke Test   a good approach to integrating the software is the “daily build and smoke test.” Every file is compiled, linked, and combined into an executable program every day. The program is then put through a “smoke test,” a relatively simple check to see whether the product “smokes” when it runs. Prof. Asha N 16