tools
Post on 15-May-2015
1.024 Views
Preview:
TRANSCRIPT
Master on Free Software
Development & coordinationTools
Juan José Sánchez Penas
Master on Free Software
Coordination tools
Master on Free Software
Coordination tools (I)
● Goal: we group here the tools devoted to the work management of a hackers group
● There are multiple areas managed by these tools:● Work schedule● Documentation/information● Repositories● Tickets/bugs● Communications
Master on Free Software
Coordination tools (II)● Some tools cover various areas (sourceforge
and forges)
● Usually they try to integrate multiple services or collaborate with other tools
● These tools do not depend on the platform and are commonly shared by the communities
● Communities and projects inside companies decide which ones are interesting for them
● Agile methods and practices are very common
Master on Free Software
Coordination tools: work schedule
● Goal: organize and plan the work of the project
● Project organization using Agile methodologies and practices, very flexible (XP, SCRUM, DSDM, Lean software development, Post-agilism, etc.)
● Tools: wikis, agile tools, planning
● Examples: Twiki (XPTracker), Trac (Timing and Estimation, Burndown chart), planner, OpenProj, dotproject (web)
● Commercial: VersionOne and TargetProcess
Master on Free Software
Coordination tools:
documentation/information
● Goal: organize, create and maintain project documentation and information
● This repositories allows the fast development, reorganization and sharing of the information and documentation.
● Tools: wikis, content management systems
● Examples: TWiki, Trac, Mediawiki● Commercial: confluence
Master on Free Software
Coordination tools:
documentation/information
Master on Free Software
Coordination tools: Repositories
● Goal: store and manage the modifications of the code and documentation
● Key role in the software development● Different types of repositories examples:
● Decentralized: GNU arch, bazaar, git, SVK● Centralized: CVS, SVN
● Commercial: BitKeeper
Master on Free Software
Coordination tools: tickets/bugs● Goal: keep track of a pending tasks list or
bugs inside a project● Helps to the definition of list of tasks or
roadmaps (schedule tools)● It is important for the quality assurance of
the projects● Tools: bugtracker, issue tracker● Examples: bugzilla, request tracker,
CVSTrac
Master on Free Software
Coordination tools: Communications● Goals: direct communication between the
hackers in a project● These tools are important because they
allow the hackers to discuss and coordinate in the daily work
● Tools: mailing lists (archives), chats, instant messaging
● Examples: mutt, evolution, xchat, pidgin
Master on Free Software
Development tools
Master on Free Software
Development tools (I)● Goal: help the hackers to write code,
compile it and debug/profile it● These tools could depend on the platform
and community that you are working● It is interesting if we can use the same
tool for multiple platform/environments● Project development integration (from
compilation to testing)
Master on Free Software
Development tools (II)● We can classify the tools in the following
groups:
● Designing tools● Editors and environments (IDEs)● Building systems● Testing● Continuous integration (coordination)● Debugging● Profiling
Master on Free Software
Development tools: design● Goal: draw the design of the software we
are developing● It is important to draw the designs in
order to communicate and think about the developments
● Mainly OO designs● Examples: Umbrello, Dia, ArgoUML, xfig,
graphviz, kivio
Master on Free Software
Development tools: design● Goal: draw the design of the software we are
developing
● It is important to draw the designs in order to communicate and think about the developments
● Mainly OO designs● Examples: Umbrello, Dia, ArgoUML, xfig,
graphviz
Master on Free Software
Development tools: editors (IDEs)● Goal: interfaces that help writing the code and
integrate other development tools
● Different depending on platform and community
● Some try to be a multiplatform solution (GNU/Emacs, Eclipse)
● Others are focused in one platform (NetBeans, Anjuta, Monodevelop, Kdevelop)
● Important in order to do an efficient work to know well the tool we are going to use
Master on Free Software
Development tools:
building and testing● Goal: help with the construction of
software, mainly with not simple projects and development/execution of tests
● The main tools here are the GNU autotools (depends on the platform)
● Java community uses Ant● Unit and functional testings are usually
integrated with the building system
Master on Free Software
Development tools:
building and testing
Master on Free Software
Development tools:
continuous integration● Goal: manage the code automatically● One of the core pieces when working in a
agile group, allows the fast integration of the code
● The project must compile all the time ● It usually runs the tests ● Examples: buildbot, mozilla tinderbox● It can also integrate repository
information and profiling
Master on Free Software
Development tools:
continuous integration
Master on Free Software
Development tools:
debugging and profiling● Goal: find the bugs and problems of the
projects and solve them● Very important to use some basic tools
and its semantics to create good software● These tools depend on the platform and
the community, and can be integrated in the IDE
● Examples: gdb, valgrind, Electric Fence, kcachegrind, OProfile, Sysprof, gprof, exmap, iogrind
top related