## EclipseCon Presentations about OSEE

  - [Open System Engineering Environment: An Integrated
    Solution](http://www.eclipsecon.org/2008/?page=sub/&id=422) -
    [*slides*](http://www.eclipsecon.org/2008/sub/attachments/Open_System_Engineering_Environment_An_Integrated_Solution.ppt)

<!-- end list -->

  - [The Cure for Your Disconnected Toolset
    Headache](http://www.eclipsecon.org/2008/?page=sub/&id=421) -
    [*slides*](http://www.eclipsecon.org/2008/sub/attachments/The_Cure_for_Your_Disconnected_Toolset_Headache.ppt)

<!-- end list -->

  - [Top 10 Deployment Secrets They Don't Want You To
    Know](http://www.eclipsecon.org/2008/?page=sub/&id=428) -
    [*slides*](http://www.eclipsecon.org/2008/sub/attachments/Top_10_Deployment_Secrets_They_Dont_Want_You_To_Know.ppt)

<!-- end list -->

  - [Enterprise Open Source: Making the case for companies to create
    open source
    projects](http://www.eclipsecon.org/2008/?page=sub/&id=87)

<!-- end list -->

  - [An Integrated Test Environment for Systems
    Engineering](http://www.eclipsecon.org/2009/sessions?id=675) -
    [*slides*](http://www.eclipse.org/osee/OTE_eclipsecon2009_slides.pdf)

<!-- end list -->

  - [Unlocking the OSEE Core
    Framework](http://www.eclipsecon.org/2009/sessions?id=676) -
    [*slides*](http://www.eclipse.org/osee/Unlocking_the_OSEE_Core_Framework.pdf)

<!-- end list -->

  - [XViewer - An SWT Widget with the power of the
    spreadsheet](http://www.eclipsecon.org/2009/sessions?id=672) -
    [*slides*](http://www.eclipse.org/osee/xviewer/XViewer.pdf)

<!-- end list -->

  - [Tutorial: OSEE, from www.eclipse.org/osee to
    deployment...](http://www.eclipsecon.org/2009/sessions?id=680) -
    [*slides*](http://www.eclipse.org/osee/OSEE_eclipsecon2009_tutorial_slides.pdf)
    - [Wiki version](/docs/OSEE/Tutorial.md "wikilink")

<!-- end list -->

  - [Xtext and GEF deliver editors for the Open System Engineering
    Environment](http://www.eclipsecon.org/2010/sessions/?page=sessions&id=1507)
    -
    [*slides*](http://www.eclipse.org/osee/Xtext_and_GEF_deliver_editors_for_the_Open_System_Engineering_Environment.ppt)

<!-- end list -->

  - [iCTeam: Eclipse ALM on
    wheels](http://www.eclipsecon.org/2012/sessions/icteam-eclipse-alm-wheels)
    -