Your SlideShare is downloading. ×
Open Source Tools and the Software Engineering Process
Open Source Tools and the Software Engineering Process
Open Source Tools and the Software Engineering Process
Open Source Tools and the Software Engineering Process
Open Source Tools and the Software Engineering Process
Open Source Tools and the Software Engineering Process
Open Source Tools and the Software Engineering Process
Open Source Tools and the Software Engineering Process
Open Source Tools and the Software Engineering Process
Open Source Tools and the Software Engineering Process
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Open Source Tools and the Software Engineering Process

1,353

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,353
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Open Source Tools and the Software Engineering Process Stephen L Arnold Gentoo Linux Developer sci, dev-tools, comm-fax, ppc, embedded Lunch time Tech Talk, January 22, 2009 stephen.arnold@acm.org nerdboy@gentoo.org
  • 2. What Tools? • Emulators and interface tools • Configuration / document management • Text processing – from sed to python • Documentation and XML tools • Reverse engineering and design analysis • Static and dynamic code analysis/profiling • Compilers, libraries, development environments • Modeling, workflow, and process support
  • 3. Basic Analysis Process • Review/pre-process and configure source • Plan branch/tag strategy in advance • Checkouts start with head/trunk • Run metrics and documentation tools • Review stats and metrics for required language tools and potential problem areas • Use doxygen to extract design information • Define a project • Use your favorite editor, IDE, or Eclipse • Run static analysis tools (add stubs and instrument code as needed) • Determine build/runtime dependencies
  • 4. Software CM Tools • Many open source tools available: CVS, SVN, Monotone, and more • Excellent integration with other tools • Editors, IDEs, etc • Web interfaces, project management • Other SCM tools • Use the tool capabilities to perform: • Process support • Basic anaylses • Peer review • Status reporting
  • 5. Source Code Processing Stand-alone text-mode tools for statistics, metrics, and documentation • Easy to run and automate • Can produce voluminous output • Statistics and metrics • SLOCCount – line counts for multiple languages, project statistics • CCCC – Statistics and several software metrics • Documentation and design extraction • Doxygen – Source code (API) documentation, software design and structure diagrams (many output formats) • Robodoc, JavaDoc, other
  • 6. Projects and Artifacts • Editor or IDE? Use what works best... • emacs/Xemacs, vi(m), kate, other • Eclipse, Anjuta, Jdeveloper, Source Navigator, other • Analyze developer project files • Know what they build against • Define your own project • Source, header files • Toolchain and build system • Required libraries • Document the architecture and interfaces • Compare to design artifacts • Annotate source code
  • 7. Static Analysis Tools Variety of tools to choose from depending on source language: • Command-line tools, GUI tools, Eclipse plugins • Lint-style tools for Fortran, C, C++, etc • ftnchek, splint, cppcheck • Can incorporate in Makefiles, build hosts • GUI tools • Stand-alone, eg, Grasp, or plugins for existing development platforms • Eclipse (and other) plugins • Analysis – PMD, Findbugs, Jlint, CppChecker • Modeling – GMF, TOPCASED • Metrics, Visualization, Testing, Profiling, more...
  • 8. Example Java Analysis Example: Eclipse with Java code • Configure, count, and document code • SVN w/ apache, viewvc, trac, mod_auth_* • Doxygen, SLOCCount, CCCC • Create project • Eclipse Ganymede release with full JDT • Sun JDK 1.6, PMD, and FindBugs • Import sources, add libraries • Analyze build errors and any project artifacts • Add any additional libs/packages, repeat • Configure and run analysis tools • Analyze results and adjust as needed • Add annotations, modify analysis rules, create reports
  • 9. Resources • Statistics and metrics • SLOCCount - http://www.dwheeler.com/sloccount/ • CCCC - http://cccc.sourceforge.net/ • Documentation and design extraction • Doxygen - http://www.stack.nl/~dimitri/doxygen/ • JavaDoc - http://java.sun.com/j2se/javadoc/ • Eclipse - http://www.eclipse.org • Plugins - http://www.eclipseplugincentral.com • TOPCASED - http://www.topcased.org • Software engineering tools at tigris.org • Subversion, clients, plugins • ArgoUML (supports DoDAF notation)
  • 10. This work is an original work by Stephen L Arnold <nerdboy@gentoo.org> <http://dev.gentoo.org/~nerdboy> Portions copyright 2009 Stephen L Arnold. Some rights reserved. The Gentoo Linux logo is Copyright 2004 Gentoo Foundation, used with permission. This work is licensed under the Creative Commons Attribution- NonCommercial-ShareAlike License. To view a copy of this license, visit <http://creativecommons.org/licenses/by-nc-sa/1.0> or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Please contact Stephen L Arnold <stephen.arnold@acm.org> for commercial uses of this work.

×