Software Development Processes For Embedded Development A checklist for efficient development using open-source tools
|
|
|
- Marcus Craig
- 10 years ago
- Views:
Transcription
1 Software Development Processes For Embedded Development A checklist for efficient development using open-source tools Senior Embedded Software Architect
2 Embedded evolution More processing power available for lower power and price Evolution from 8-bit and 16-bit to 32-bit CPUs Bigger flash memories for same price High resolution LCD screens Increased customer expectations Colorfull touchscreen GUIs USB & SD support Networking support A need for large software stacks as foundation for the actual application or appliance Building on FOSS is a good way to deal with this need
3 Bigger stacks in embedded When extending your software stack (with FOSS), the requirements on your development process will increase Much more code to deal with Including code which didn't originate in your organisation More developers to deal with Including external ones from the community Software becomes more defining for your product You'll become as much a software as a hardware company Product is judged on the software features Need to establish good processes for software development or improve existing ones to cope with this!
4 What's the goal today? Present a checklist for the development process You probably have some areas already covered You probably don't have all areas covered Share good practises established and observed at customers Focus on free tools Cost Extendability Avoiding vendor lock-in Focus on embedded development Will point out typical pitfalls If regular software development is already your main business, you'd better not need this presentation
5 Outline 1. Working with FOSS code 2. Hardware and drivers 3. Version control systems 4. Tracking requirements and bugs 5. Documenting the software 6. The build process 7. Release management 8. Regression testing and validation 9. Code optimization & debugging
6 1. Working with FOSS code FOSS advantages Don't need to reinvent the wheel No large investements or royalities needed Ability modify all parts of the software to own need No vendor lock in FOSS commoditizes the software foundation Portability can help commoditize the hardware too Must think about where you add value Hardware? Customization? Own IP?
7 1. Working with FOSS code License compliance as a policy Need policies in place for Feeding back code upstream What licenses are acceptable where Without them, developers will be too cautious, and you'll miss the advantages Without them, developers can be too enterprising, and the product might end up depending on a GPL library where you really didn't want it Remember where you add value License compliance as part of the process You should make tarballs of your open source components as part of the release process, NOT as an afterthought If you don't, you're guaranteed to end up violating a license sooner or later Results can be costly: just ask Cisco
8 1. Working with FOSS code Working with FOSS = working with the community Even reporting bugs is giving back Bug report from seasoned developer is aprox. 10 times as useful as one from a user People using your software = positive feedback When you patch or extend things, send back upstream If it gets accepted, rebasing will be easier for you Keeping a lot of patches for yourself may make upgrading painful If it doesn't get accepted, you'll be told why not Bugs or design mistakes you'd rather know about Gives information to upstream about what the people using his/her software want Can make your job easier, too
9 Outline 1. Working with FOSS code 2. Hardware and drivers 3. Version control systems 4. Tracking requirements and bugs 5. Documenting the software 6. The build process 7. Release management 8. Regression testing and validation 9. Code optimization & debugging
10 2. Hardware and drivers Selecting the right hardware is critical Proper driver support in your stack can make or break your embedded project So FOSS people should have a say! Not just hardware guys...or management Remember working with the community? How many people are using it? Worse solutions with better support or larger communities can be easier to get working This also applies to everything else you select
11 2. Hardware and drivers The levels of hardware support No driver Binary driver Quality can be bad, design mistakes, not up to date Public git Basically as good as not having a driver at all Can break on kernel config changes Tends to be badly documented Out of tree driver (unmaintained) Is there sufficiently complete documentation? Can be immature, more difficult upgrade path Mainline Frequency of updates? Lots Actively developed or still full of bugs Few Abandoned or working
12 2. Hardware and drivers When rolling your own kernel drivers... Contentious area regarding licensing Derived work of the kernel or not? Binary kernel modules are controversial What if a driver exposes significant trade secrets? Or embarassing hardware bugs Put as little as possible in the kernel Kernel driver acts as a conduit Have the actual driver work from userspace Less licensing worries and better design
13 Outline 1. Working with FOSS code 2. Hardware and drivers 3. Version control systems 4. Tracking requirements and bugs 5. Documenting the software 6. The build process 7. Release management 8. Regression testing and validation 9. Code optimization & debugging
14 3. Version control systems Why version control? Distributed vs. Centralized Nontrivial features Componentizing Integration
15 3. Version control systems Why? Trace the history of code and features Go back in time and reproduce an old version Find out who wrote a piece of code and why See changes between versions See removed things (no more commenting out) Allow parallel development Developers can work seperately and merge their work Can work on new features for new versions and fix bugs for old releases Place where developers can get the latest version
16 3. Version control systems Why version control? Distributed vs. Centralized Nontrivial features Componentizing Integration
17 3. Version control systems Centralized version control RCS, CVS, Subversion, Perforce, ClearCase Central repository to which everyone commits Distributed version control Git, Mercurial, Monotone, Bazaar, Darcs, BitKeeper Every developer has his/her own local respository Synchronizes local repository with others
18 3. Version control systems Advantages of distributed version control Allows working off-line Load on server is split (faster) No network required for most operations (faster) Developers can experiment and commit locally...and clean up before committing final versions Threshold to commit early is lower, lower risk of losing work Automatic backups Disadvantages Slightly harder to use No monotonic versions (uses cryptographic tags) Cannot revise history once a tree has been synchronized with others
19 3. Version control systems Speed matters more than you think Interruptions of workflow and loss of concentration Scaling in code size It will for sure get worse as your projects progress Scaling in number of developers Let's hope it gets worse Distributed systems are faster and scale better Embedded projects are often very big in terms of versionable source size Toolchains, kernel, bootloader, libraries, applications,...
20 3. Version control systems The only reason not to use a distributed system is misconceptions! Misconception 1: A distributed system gives less control because there is no central repository. Truth: You can designate central repositories with a distributed system, and force developers to synchronize with them. Easy to build hierarchies for subsystems and code review, too. Field proven in enormous project: Linux kernel Misconception 2: A distributed system might encourage developers to keep their work local and not publish or rebase it often. Truth: They can do this with centralized systems too, and it's easier to lose work if they don't commit at all.
21 3. Version control systems Why version control? Distributed vs. Centralized Nontrivial features Componentizing Integration
22 3. Version control systems Nontrivial features (that make your life easier) Interactive add Select chunk by chunk what to commit Allows splitting up a big patch in features Stashing Kind of a temporary commit Saves the state of tree, restores clean state Cherry-picking Pick individual commits from a branch onto another branch Bisecting Allows finding the exact commit that introduced a problem
23 3. Version control systems Why version control? Distributed vs. Centralized Nontrivial features Componentizing Integration
24 3. Version control systems Componentizing Don't put the entire source in one repository Analyze which parts you want to freeze individually Can then branch / tag individual components If upstream uses versioning, clone and track them (git!) Integration Develop features in branches, merge to the trunk The trunk must always compile Integrating (merging) should be done by the developer who knows the component best Consider doing code reviews
25 3. Version control systems We recommend git Linux kernel, GNOME, Perl, Qt, Samba, X Windows, Mercurial (Hg) Mozilla, Java, Solaris, OpenOffice, Symbian, Windows support for git is so-so, but rapidly improving Mercurial works fine Unix based: choose git
26 Outline 1. Working with FOSS code 2. Hardware and drivers 3. Version control systems 4. Tracking requirements and bugs 5. Documenting the software 6. The build process 7. Release management 8. Regression testing and validation 9. Code optimization & debugging
27 4. Tracking requirements and bugs Bug tracking systems Keep list of known issues and how to reproduce them Missing features are bugs too! Project management tool Can assign bugs to milestones and releases Can assign bugs to developers Getting most out of them Understand dependencies Can adapt bug states to your organisation Keep the link between commits and bugs Recommendation: Bugzilla (complex, powerful), Trac (simpler)
28 Outline 1. Working with FOSS code 2. Hardware and drivers 3. Version control systems 4. Tracking requirements and bugs 5. Documenting the software 6. The build process 7. Release management 8. Regression testing and validation 9. Code optimization & debugging
29 5. Documenting the software Code documentation Low level, implementation details can be documented inline /* */ Don't document the obvious, but document hidden assumptions and sideeffects (don't document what you can see document what you can't see) Assert() is an underestimated documentation tool Functions, API's and class hierarchies can be documented inline with tags and then processed into full-blown API docs Recommendation: Doxygen Even if you don't use it, some editors understand the format! Design documentation High level, coding, organisation or structuring guidelines Should be easily accessible, easily editable, and versioned Recommendation: use wikis like MediaWiki, or Trac
30 Outline 1. Working with FOSS code 2. Hardware and drivers 3. Version control systems 4. Tracking requirements and bugs 5. Documenting the software 6. The build process 7. Release management 8. Regression testing and validation 9. Code optimization & debugging
31 6. The build process Quick starting New developers arrive, to help make a critical deadline How long does it take for a new developer to make a working build? How long to set up a development PC? How long to get an environment similar to other developers? Do they even remember how? Are the same sources/versions still available? How long to install all dependencies? How long to figure out how to set the build environment? Need to install all crosscompilers for all supported devices This time is 100% lost!...and it happens more than you would like What if a laptop is stolen? What if a harddisk crashes?
32 6. The build process Quick starting Streamline the process Virtual machines with preconfigured build enviroments Recommendation: VirtualBox Shellscripts that automate most of the setup Make sure everything is documented
33 6. The build process Making the software Don't rely on IDE's for the build process Will run into automation problems sooner rather than later Wide choice of buildsystems Makefiles (manually constructed) Relatively easy to understand and learn No support for advanced configuration (porting, libraries, ) automake / autotools Very common in open source software Very powerful configuration Nobody really understands how they work Not so well supported on Windows
34 6. The build process SCons Python based Well-featured, but fairly slow Widely used in industry CMake Own scripting language Well-featured Outputs native buildsystem (Makefiles, Visual Studio projects) Used by some major open source projects Commercially supported Recommendations The jury is still out, but CMake appears to be winning You will want to write a wrapper To interact with your version control system To handle whatever further automation you need Write it in something most of your developers will be familiar with Probably shellscript, Perl or Python Not: Fashionable scripting language of the day
35 6. The build process Crosscompiling Distinction between host CC and target CC Add to, don't replace CFLAGS, LDFLAGS, Export usefull stuff: endianness, kernel version, architecture, libc style Autotools crosscompiling Override CC, CXX, AR, LD, etc, set --host and --target vars Might need to disable faulty tests Importance of DESTDIR for staging CMake crosscompiling Good support via toolchain configuration files Variables set at top level to find system, toolchain and libs Staging areas Prevent headers from cluttering the flash filesystem
36 Outline 1. Working with FOSS code 2. Hardware and drivers 3. Version control systems 4. Tracking requirements and bugs 5. Documenting the software 6. The build process 7. Release management 8. Regression testing and validation 9. Code optimization & debugging
37 7. Release management Reproducibility Make sure the builds can be 100% reproduced Tag all components in the VCS Make sure the build is from a clean state Virtual machines and dedicated buildservers can help Store everything Store all builds Store the debug information to get backtraces Diskspace is cheaper than developer time Automated nightly builds Build as much configurations, variations and platforms as you can Detect failures on exotic combinations early
38 Outline 1. Working with FOSS code 2. Hardware and drivers 3. Version control systems 4. Tracking requirements and bugs 5. Documenting the software 6. The build process 7. Release management 8. Regression testing and validation 9. Code optimization & debugging
39 8. Regression testing and validation Start testing immediately, should not be an afterthought Automated testing Couple with nightly builds Alert on regressions Keep statistics Code size Make sure it fits into flash Performance Boot time can be critical in embedded! Memory usage Leaks are deadly for long running devices
40 Outline 1. Working with FOSS code 2. Hardware and drivers 3. Version control systems 4. Tracking requirements and bugs 5. Documenting the software 6. The build process 7. Release management 8. Regression testing and validation 9. Code optimization & debugging
41 9. Code optimization & debugging Simulation enviroments Make sure you can crosscompile to & run on x86 Need to stub your hardware devices (and maybe the OS) Enables you to run the software on the development system Vastly increases the number of debugging and analysis tools you can use Debugging, tracing & logging GDB on target Can be tricky, gdb is nontrivial to crosscompile Remote debugging with gdbserver If you have networking... Keep nonstripped versions of the binaries and libs Valgrind On host
42 Code size optimizations -Os, strip and sstrip Platform specific switches 9. Code optimization & debugging For C++ Know the compiler options (-fno-rtti, -fno-exceptions, arch specifics) Beware of templates (see Qt) Avoid needless dependencies (./configure disable-foo) Can be worthwhile to strip packages manually Profiling First profile, then optimize Profiling tools OProfile Performance counters Valgrind, (K)Cachegrind, Callgrind Availability depends on architecture. If you can run on x86...
43 Conclusions FOSS is a great opportunity for embedded development... Allow focus on the application, not the stack Allow fast and low cost prototyping Freedom allows you to stay in control...which presents some challenges... Much more code to deal with From various external sources That will define look, feel and quality of the product...that can be efficiently dealt with! By using proper software development processes
44 Essensium NV Mind - Embedded Software Division [email protected]
Overview. Open source toolchains. Buildroot features. Development process
Overview Open source toolchains Buildroot features Development process 1 Tools in development process toolchain cross-compiler assembler & linker (filesystem) image generator boot loader / image writer
Continuous Integration. CSC 440: Software Engineering Slide #1
Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge
Version Control with Git. Dylan Nugent
Version Control with Git Dylan Nugent Agenda What is Version Control? (and why use it?) What is Git? (And why Git?) How Git Works (in theory) Setting up Git (surviving the CLI) The basics of Git (Just
Software configuration management
Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2015-09-30 2 Maintenance Requirements System Design (Architecture,
Software Configuration Management
Software Configuration Management 1 Software Configuration Management Four aspects Version control Automated build Change control Release Supported by tools Requires expertise and oversight More important
SOFTWARE DEVELOPMENT BASICS SED
SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2
Embedded Linux development with Buildroot training 3-day session
Embedded Linux development with training 3-day session Title Overview Duration Trainer Language Audience Embedded Linux development with training Introduction to Managing and building the configuration
Version Uncontrolled! : How to Manage Your Version Control
Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code
How To Test Your Code
Testing embedded software Overview 1 Testing = Efficient software development 2 Testing embedded software = special 3 Open source = more testing? 2 Testing is omnipresent in the software development process
Embedded Linux development training 4 days session
Embedded Linux development training 4 days session Title Overview Duration Trainer Language Audience Prerequisites Embedded Linux development training Understanding the Linux kernel Building the Linux
Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab
Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab Yocto Project Developer Day San Francisco, 2013 Jessica Zhang Introduction Welcome to the Yocto Project Eclipse plug-in
TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING
TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING NVIDIA DEVELOPER TOOLS BUILD. DEBUG. PROFILE. C/C++ IDE INTEGRATION STANDALONE TOOLS HARDWARE SUPPORT CPU AND GPU DEBUGGING & PROFILING
Easing embedded Linux software development for SBCs
Page 1 of 5 Printed from: http://www.embedded-computing.com/departments/eclipse/2006/11/ Easing embedded Linux software development for SBCs By Nathan Gustavson and Eric Rossi Most programmers today leaving
Embedded Linux Platform Developer
Embedded Linux Platform Developer Course description Advanced training program on Embedded Linux platform development with comprehensive coverage on target board bring up, Embedded Linux porting, Linux
CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)
Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source
How To Manage Source Code With Git
English Sign in (or register) Technical topics Evaluation software Community Events Manage source code using Git Toolset provides reliable revision control on Linux Eli M. Dow ([email protected]), Software
Valgrind BoF Ideas, new features and directions
Valgrind BoF Ideas, new features and directions Everybody! Valgrind developers and users are encouraged to participate by joining the discussion. And of course by kindly (or bitterly:) complain about bugs
Version Control Systems
Version Control Systems ESA 2015/2016 Adam Belloum [email protected] Material Prepared by Eelco Schatborn Today IntroducGon to Version Control Systems Centralized Version Control Systems RCS CVS SVN
Achieving business benefits through automated software testing. By Dr. Mike Bartley, Founder and CEO, TVS (mike@testandverification.
Achieving business benefits through automated software testing By Dr. Mike Bartley, Founder and CEO, TVS ([email protected]) 1 Introduction During my experience of test automation I have seen
Lab 0 (Setting up your Development Environment) Week 1
ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself
Developing Embedded Linux Devices Using the Yocto Project
It s not an embedded Linux distribution It creates a custom one for you. Developing Embedded Linux Devices Using the Yocto Project David Stewart Intel Corporation October, 2011 Agenda What is the Yocto
Monitoring, Tracing, Debugging (Under Construction)
Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.
Android: How To. Thanks. Aman Nijhawan
Android: How To. This is just a collection of useful information and tricks that I used during the time I was developing on the android ADP1. In some cases the information might be a little old and new
Report of the LHC Computing Grid Project. Software Management Process RTAG CERN
Report of the LHC Computing Grid Project Software Management Process RTAG Marco Cattaneo, Gabriele Cosmo, Simon George, Fons Rademakers (chair), Stephan Wynhoff CERN 6 May 2002 Table of Contents 1 Chair
Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.
Software Configuration Management Slides derived from Dr. Sara Stoecklin s notes and various web sources. What is SCM? SCM goals Manage the changes to documents, programs, files, etc. Track history Identify
Revision control systems (RCS) and
Revision control systems (RCS) and Subversion Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same computer
Software Engineering Practices for Python
Software Engineering Practices for Python Coding Experiences Good development practices help with the following situations: You swear that the code worked perfectly 6 months ago, but today it doesn't,
Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development
Introduction to -based solution for embedded software development Section 1 Eddy Real-Time, Lemonix Section 2 Eddy Integrated Development Environment, LemonIDE Section 3 Eddy Utility Programs Eddy Integrated
Developing tests for the KVM autotest framework
Lucas Meneghel Rodrigues [email protected] KVM Forum 2010 August 9, 2010 1 Automated testing Autotest The wonders of virtualization testing 2 How KVM autotest solves the original problem? Features Test structure
Developing Embedded Linux Devices Using the Yocto Project
It s not an embedded Linux distribu2on It creates a custom one for you. Developing Embedded Linux Devices Using the Yocto Project Mark Hatle [email protected] Wind River Systems September, 2012
Developing applications on Yocto. Lianhao Lu Intel Corporation Feb. 29th, 2012
Developing applications on Yocto Lianhao Lu Intel Corporation Feb. 29th, 2012 Agenda Embedded Linux Development The Yocto Project Offerings For Embedded Linux Development The Yocto Project Eclipse Plug-in
Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.
Git vs Subversion Andrey Kotlarski 13.XII.2011 Outline Annoyances with our current source control Can it get more comfortable? Git Appendix Rant Network traffic Hopefully we have good repository backup
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
Developer Workshop 2015. Marc Dumontier McMaster/OSCAR-EMR
Developer Workshop 2015 Marc Dumontier McMaster/OSCAR-EMR Agenda Code Submission 101 Infrastructure Tools Developing OSCAR Code Submission: Process OSCAR EMR Sourceforge http://www.sourceforge.net/projects/oscarmcmaster
Content. Development Tools 2(63)
Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)
Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink
Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink Session 1 Assembling and booting a small footprint Linux platform To join the teleconference -------------------------------------------------------
Software Engineering Process. Kevin Cathey
Software Engineering Process Kevin Cathey Where are we going? Last Week iphone Application Technologies Workshop This Week Software Engineering Process Thanksgiving Break Write some code, yo 2 Dec Options:
IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center
IOTIVITY AND EMBEDDED LINUX SUPPORT Kishen Maloor Intel Open Source Technology Center Outline Brief introduction to IoTivity Software development challenges in embedded Yocto Project and how it addresses
TEST AUTOMATION FRAMEWORK
TEST AUTOMATION FRAMEWORK Twister Topics Quick introduction Use cases High Level Description Benefits Next steps Twister How to get Twister is an open source test automation framework. The code, user guide
Git. A Distributed Version Control System. Carlos García Campos [email protected]
Git A Distributed Version Control System Carlos García Campos [email protected] Carlos García Campos [email protected] - Git 1 A couple of Quotes For the first 10 years of kernel maintenance, we literally
Documentation and Project Organization
Documentation and Project Organization Software Engineering Workshop, December 5-6, 2005 Jan Beutel ETH Zürich, Institut TIK December 5, 2005 Overview Project Organization Specification Bug tracking/milestones
Introduction to Version Control
Research Institute for Symbolic Computation Johannes Kepler University Linz, Austria Winter semester 2014 Outline General Remarks about Version Control 1 General Remarks about Version Control 2 Outline
2405 - Using Git with Rational Team Concert and Rational ClearCase in enterprise environments
2405 - Using Git with Rational Team Concert and Rational ClearCase in enterprise environments Bartosz Chrabski Executive IT Specialist WW Competitive Sales Team [email protected] Peter Hack ClearCase
Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF
1 Version Control with Svn, Git and git-svn Kate Hedstrom ARSC, UAF 2 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last
Version Control with. Ben Morgan
Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove
Selection Criteria for ZigBee Development Kits
Selection Criteria for ZigBee Development Kits This article gives an overview about different considerations, when it comes to prioritizing ZigBee Development Kits, supplied by different vendors. Before
Five standard procedures for building the android system. Figure1. Procedures for building android embedded systems
Standard Operating Procedures for Android Embedded Systems Anupama M. Kulkarni, Shang-Yang Chang, Ying-Dar Lin National Chiao Tung University, Hsinchu, Taiwan November 2012 Android is considered to be
MontaVista Linux 6. Streamlining the Embedded Linux Development Process
MontaVista Linux 6 WHITE PAPER Streamlining the Embedded Linux Development Process Using MontaVista Linux 6 to get the most out of open source software and improve development efficiencies ABSTRACT: The
Software Configuration Management Best Practices for Continuous Integration
Software Configuration Management Best Practices for Continuous Integration As Agile software development methodologies become more common and mature, proven best practices in all phases of the software
Network Station - Thin Client Computing - Overview
Network Station - Thin Client Computing - Overview Overview The objective of this document is to help develop an understanding of a Server Based Computing/Thin-Client environment using MS Windows NT 4.0,
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Version Control Your Jenkins Jobs with Jenkins Job Builder
Version Control Your Jenkins Jobs with Jenkins Job Builder Abstract Wayne Warren [email protected] Puppet Labs uses Jenkins to automate building and testing software. While we do derive benefit from
Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY
Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY C ontinuous delivery offers a number of opportunities and for organizations. By automating the software buildtest-deployment
Open Source vs. Collaborative Software: FOSS is Not Enough
Open Source vs. Collaborative Software: FOSS is Not Enough Peter F. Peterson Much of the software at user facilities is developed is released by making the source code available and decorated with one
Achieving Continuous Integration with Drupal
23 Au gu Achieving Continuous Integration with Drupal st 20 12 Achieving Continuous Integration with Drupal Drupalcon Munich 2012 Barry Jaspan [email protected] The Evolution of a Drupal Developer
Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat [email protected]
Version Control with Git Linux Users Group UT Arlington Rohit Rawat [email protected] Need for Version Control Better than manually storing backups of older versions Easier to keep everyone updated
What is new in Switch 12
What is new in Switch 12 New features and functionality: Remote Designer From this version onwards, you are no longer obliged to use the Switch Designer on your Switch Server. Now that we implemented the
Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration
ULI101 Week 06b Week Overview Installing Linux Linux on your Desktop Virtualization Basic Linux system administration Installing Linux Standalone installation Linux is the only OS on the computer Any existing
Global Software Change Management for PVCS Version Manager
Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.
Integrated version control with Fossil SCM
Integrated version control with Fossil SCM Tech Talk 2009-12-01 Arne Bachmann Folie 1 Overview Web address www.fossil-scm.org Author Dr. D.R. Hipp - Author of License GPL v2 Motto No information shall
Software Continuous Integration & Delivery
November 2013 Daitan White Paper Software Continuous Integration & Delivery INCREASING YOUR SOFTWARE DEVELOPMENT PROCESS AGILITY Highly Reliable Software Development Services http://www.daitangroup.com
The Tools For Continuous Delivery
The Tools For Continuous Delivery Table of Contents Introduction...3 Benefits of Continuous Delivery...4 Launching Continuous Delivery in Your Organization...6 The Tools for Continuous Delivery...8 Easier
using version control in system administration
LUKE KANIES using version control in system administration Luke Kanies runs Reductive Labs (http://reductivelabs.com), a startup producing OSS software for centralized, automated server administration.
DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014
DAVE Usage with SVN Presentation and Tutorial v 2.0 May, 2014 Required DAVE Version Required DAVE version: v 3.1.6 or higher (recommend to use the most latest version, as of Feb 28, 2014, v 3.1.10) Required
ANDROID DEVELOPER TOOLS TRAINING GTC 2014. Sébastien Dominé, NVIDIA
ANDROID DEVELOPER TOOLS TRAINING GTC 2014 Sébastien Dominé, NVIDIA AGENDA NVIDIA Developer Tools Introduction Multi-core CPU tools Graphics Developer Tools Compute Developer Tools NVIDIA Developer Tools
Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server
Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server Hardware Windows Windows NT 4.0 Linux Server Software and
Introduction to Software Development
C HAPTER 1 Introduction to Software Development S oftware development is a complicated process. It requires careful planning and execution to meet the goals. Sometimes a developer must react quickly and
Using Git for Project Management with µvision
MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time
Ubuntu Linux Reza Ghaffaripour May 2008
Ubuntu Linux Reza Ghaffaripour May 2008 Table of Contents What is Ubuntu... 3 How to get Ubuntu... 3 Ubuntu Features... 3 Linux Advantages... 4 Cost... 4 Security... 4 Choice... 4 Software... 4 Hardware...
Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer
Software Engineering Best Practices Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer 2 3 4 Examples of Software Engineering Debt (just some of the most common LabVIEW development
Version Control Systems: SVN and GIT. How do VCS support SW development teams?
Version Control Systems: SVN and GIT How do VCS support SW development teams? CS 435/535 The College of William and Mary Agile manifesto We are uncovering better ways of developing software by doing it
PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone
Standalone PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone Most developers are familiar with Visual SourceSafe. It's a popular version control
Best Practices for Deploying and Managing Linux with Red Hat Network
Best Practices for Deploying and Managing Linux with Red Hat Network Abstract This technical whitepaper provides a best practices overview for companies deploying and managing their open source environment
Beginners guide to continuous integration. Gilles QUERRET Riverside Software
Beginners guide to continuous integration Gilles QUERRET Riverside Software About the speaker Working with Progress and Java since 10 years Started Riverside Software 7 years ago Based in Lyon, France
Git Basics. Christopher Simpkins [email protected]. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22
Git Basics Christopher Simpkins [email protected] Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Version Control Systems Records changes to files over time Allows you to
Writing Open Source Software for BlackBerry
Writing Open Source Software for BlackBerry Derek Konigsberg, Software Engineer B10 Introduction About Me Derek Konigsberg Desktop developer by day (C#, with some Java and C++) Mobile developer by night
Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.
NETWORK OPERATING SYSTEM Introduction Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation. Network operating
Chapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
Source Control Systems
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy
@jenkinsconf. Maintaining huge Jenkins clusters - Have we reached the limit of Jenkins?
Maintaining huge Jenkins clusters - Have we reached the limit of Jenkins? Robert Sandell Sony Mobile Communications www.sonymobile.com www.rsandell.com @jenkinsconf 1 TOC! How We Work! Jenkins & topography
Managing Source Code With Subversion
Managing Source Code With Subversion May 3rd, 2005: Linux Users Victoria Source Code Management Source Code Management systems (SCMs) rock. Definitely the single most useful tool for a development team,
Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.
Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a
Version control with GIT
AGV, IIT Kharagpur September 13, 2012 Outline 1 Version control system What is version control Why version control 2 Introducing GIT What is GIT? 3 Using GIT Using GIT for AGV at IIT KGP Help and Tips
Continuous Integration
Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal
Lab 2 : Basic File Server. Introduction
Lab 2 : Basic File Server Introduction In this lab, you will start your file system implementation by getting the following FUSE operations to work: CREATE/MKNOD, LOOKUP, and READDIR SETATTR, WRITE and
An Embedded Wireless Mini-Server with Database Support
An Embedded Wireless Mini-Server with Database Support Hungchi Chang, Sy-Yen Kuo and Yennun Huang Department of Electrical Engineering National Taiwan University Taipei, Taiwan, R.O.C. Abstract Due to
The Deployment Production Line
The Deployment Production Line Jez Humble, Chris Read, Dan North ThoughtWorks Limited [email protected], [email protected], [email protected] Abstract Testing and deployment
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
