System Integration and Build Management Special Thanks to Christian Schröder & Roman Antonov Teacher: Inam Ul Haq BSIT-6th University of Education Okara Campus SystemIntegrationandBuild Management 1
Outline • Continuous Integration • Continuous Builds • Continuous Tests • Tools for Build, Test and Integration SystemIntegrationandBuild Management 2
Continuous Integration • “Traditional” Integration methods • Integration before the end of iteration • Weekly integration • “Big Bang” Integration • Too many bugs and too little time to fix them SystemIntegrationandBuild Management 3
Continuous Integration • CI principles • Integrate more often: • Daily, Hourly • Integrate continuously: • After completion of every task SystemIntegrationandBuild Management 4
Continuous Integration • Advantages • Integration becomes trivial if you integrate small and simple tasks • Developers get a better overview of the system and its architecture • In turn, integration becomes easier SystemIntegrationandBuild Management 5
Continuous Builds • CB principles • Build your changes locally before checking in • If it doesn’t compile, don’t check it in • Build the entire system “from scratch” on a dedicated build server SystemIntegrationandBuild Management 6
Continuous Builds • Advantages • Reduces the problems with files that aren’t checked in • Reduces problems with debug and release versions • In an integrated and stable stage builds can serve as demo- versions SystemIntegrationandBuild Management 7
Continuous Tests • CT principles • Test your changes locally before checking in • If it doesn’t pass the tests at 100%, don’t check it in • Start the system and run the full test-suite • Advantages • Reduces bugs • Increases the chance to have a running system at every time SystemIntegrationandBuild Management 8
Build Tools • Cruise Control • Java based for continuous build process, free, open source, it automatically builds on development servers not on developer’s desktop • Ant • Pure build tool from Apache, it builds .jar file and you see “build successful” message • Maven • A lot functionality “out of the box”, from Apache, can be important as plug-in into Eclipse • MS Build Engine • Build Management = Project Management • (a BBA student may guide) SystemIntegrationandBuild Management 9
Test Tools • Maven • Runs xUnit test suites • xUnit • Suite of Test Frameworks for several languages (Java, C, C++, Perl, ….) • FindBugs A static code analysis tool SystemIntegrationandBuild Management 10
Maven (as build tool) 11 SystemIntegrationandBuild Management
Integration Tools • Subversion • Apache Subversion (often abbreviated SVN) is a software versioning and revision control system distributed as free software under the Apache License • CVS • CVS is a version control system, an important component of Source Configuration Management (SCM) SystemIntegrationandBuild Management 12
Subversion 13 SystemIntegrationandBuild Management

System Integration & Build Management

  • 1.
    System Integration and Build Management SpecialThanks to Christian Schröder & Roman Antonov Teacher: Inam Ul Haq BSIT-6th University of Education Okara Campus SystemIntegrationandBuild Management 1
  • 2.
    Outline • Continuous Integration •Continuous Builds • Continuous Tests • Tools for Build, Test and Integration SystemIntegrationandBuild Management 2
  • 3.
    Continuous Integration • “Traditional”Integration methods • Integration before the end of iteration • Weekly integration • “Big Bang” Integration • Too many bugs and too little time to fix them SystemIntegrationandBuild Management 3
  • 4.
    Continuous Integration • CIprinciples • Integrate more often: • Daily, Hourly • Integrate continuously: • After completion of every task SystemIntegrationandBuild Management 4
  • 5.
    Continuous Integration • Advantages •Integration becomes trivial if you integrate small and simple tasks • Developers get a better overview of the system and its architecture • In turn, integration becomes easier SystemIntegrationandBuild Management 5
  • 6.
    Continuous Builds • CBprinciples • Build your changes locally before checking in • If it doesn’t compile, don’t check it in • Build the entire system “from scratch” on a dedicated build server SystemIntegrationandBuild Management 6
  • 7.
    Continuous Builds • Advantages •Reduces the problems with files that aren’t checked in • Reduces problems with debug and release versions • In an integrated and stable stage builds can serve as demo- versions SystemIntegrationandBuild Management 7
  • 8.
    Continuous Tests • CTprinciples • Test your changes locally before checking in • If it doesn’t pass the tests at 100%, don’t check it in • Start the system and run the full test-suite • Advantages • Reduces bugs • Increases the chance to have a running system at every time SystemIntegrationandBuild Management 8
  • 9.
    Build Tools • CruiseControl • Java based for continuous build process, free, open source, it automatically builds on development servers not on developer’s desktop • Ant • Pure build tool from Apache, it builds .jar file and you see “build successful” message • Maven • A lot functionality “out of the box”, from Apache, can be important as plug-in into Eclipse • MS Build Engine • Build Management = Project Management • (a BBA student may guide) SystemIntegrationandBuild Management 9
  • 10.
    Test Tools • Maven •Runs xUnit test suites • xUnit • Suite of Test Frameworks for several languages (Java, C, C++, Perl, ….) • FindBugs A static code analysis tool SystemIntegrationandBuild Management 10
  • 11.
    Maven (as buildtool) 11 SystemIntegrationandBuild Management
  • 12.
    Integration Tools • Subversion •Apache Subversion (often abbreviated SVN) is a software versioning and revision control system distributed as free software under the Apache License • CVS • CVS is a version control system, an important component of Source Configuration Management (SCM) SystemIntegrationandBuild Management 12
  • 13.

Editor's Notes

  • #5 To get used to it, integrate daily or hourly. If you became used to it, integrate continuously It isessential to follow the XP principle “Keep tasks simple and small”
  • #7 Build the classes you changed locally, to ensure that you got no syntax errors Build the entire system on the build server “from scratch”. For huge projects, building the entire system is a time-consuming process.
  • #9 For these principles to work, you need to follow the XP principle “Test first”