Project Management Tools



Similar documents
Software Development Tools & Environments

Introduction to Programming Tools. Anjana & Shankar September,2010

Traditional Commercial Software Development. Open Source Development. Traditional Assumptions. Intangible Goods. Dr. James A.

TIME. Programming in the large. Lecture 22: Configuration Management. Agenda for today. About your Future. CM: The short version. CM: The long version

Eclipse Help

SAPM Overview Semester Summary

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

Software Configuration Management

Report of the LHC Computing Grid Project. Software Management Process RTAG CERN

Easing embedded Linux software development for SBCs

Effective feedback from quality tools during development

Global sourcing of software development - a review of tools and services. 13/07/2009 Robert Martignoni

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Java Software Quality Tools and techniques

Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development

The Importance of Source Code Control in Custom Systems Integration Projects

Axivion Bauhaus Suite Technical Factsheet

Installing (1.8.7) 9/2/ Installing jgrasp

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Software configuration management

Continuous Integration. CSC 440: Software Engineering Slide #1

Open Source: A Practical Foundation. Presented By : Amgad Madkour

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Eclipse. Software Engineering with an Integrated Development Environment (IDE) Markus Scheidgen

THE OPEN SOURCE DEVELOPER REPORT

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Documentation and Project Organization

SOFTWARE DEVELOPMENT BASICS SED

Teaming Up for Software Development

Solving the Source Control Issue David Shannon, Amadeus Software Limited

Software configuration Management as a Software Engineering Discipline

Why this lecture exists ITK Lecture 12: Open Source & Cross Platform Software Development

The care of open source creatures. Vincent Sanders

Executive Summary. Within IT Services, Cosmic Creation spotlights on the following:-

The Hitchhiker's Guide to Mobile Apps Test Automation Galaxy

Chapter 13: Program Development and Programming Languages

Leveraging Rational Team Concert's build capabilities for Continuous Integration

SOFTWARE TESTING PROCESSES PRESENTATION

Tools to support Requirements-Based Testing

Tutorial 5: Developing Java applications

Cross-Platform. Mac OS X ЧЯУ

Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

IBM Rational ClearCase, Version 8.0

Programming with the Dev C++ IDE

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

<Insert Picture Here> What's New in NetBeans IDE 7.2

HP ALM11 & MS VS/TFS2010

Barely Sufficient Software Engineering: 10 Practices to Improve Your Research CSE Software

CS 253: Intro to Systems Programming

Dr. U. Assmann, Software Engineering 1 Dr. U. Assmann, Software Engineering 2

The Essentials of File Management with LabVIEW

THE OPEN SOURCE DEVELOPER REPORT

Corso di Laurea Magistrale in Informatica, Università di Padova Tecnologie open-source, Anno accademico 2010/2011. Development Tools 1 / 35

Software infrastructure for Java development projects

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

Overview. Open source toolchains. Buildroot features. Development process

SA4 Software Developer Survey Survey Specification v2.2

Introduction to Software Configuration Management. CprE 556 Electrical and Computer Engineering Department Iowa State University

How To Develop A Project In A Production Environment

Software Engineering for LabVIEW Applications

How to Install Eclipse. Windows

JAVA/J2EE DEVELOPER RESUME

Eclipse IDE for Embedded AVR Software Development

HPC Wales Skills Academy Course Catalogue 2015

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Creating a Free, Dependable Software Engineering Environment for Building Java Applications

Software Development. COMP220/COMP285 Seb Coope Introducing Ant

Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net

Welcome Message. Overview

CPSC 330 Software Engineering

OHJ-1860: Software systems seminar: Used tools and mechanisms in Open Source projects

Table of Contents. The RCS MINI HOWTO

Getting Started with Open Source Compliance

Software Engineering I (02161)

Adopting Open Source Software Engineering (OSSE) Practices by Adopting OSSE Tools

Build management & Continuous integration. with Maven & Hudson

Announcement. SOFT1902 Software Development Tools. Today s Lecture. Version Control. Multiple iterations. What is Version Control

Software Development Processes For Embedded Development A checklist for efficient development using open-source tools

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition

Software Engineering talk

Software Life Cycles and Configuration Management

Maven or how to automate java builds, tests and version management with open source tools

Content. Development Tools 2(63)

How To Set Up An Outsourcing Center In China

Software Configuration Management. Context. Learning Objectives

A Tutorial on installing and using Eclipse

Simplifying development through activity-based change management

Improvement of the documentation process in a small software company. INF5181 Process Improvement and Agile Methods in Systems Development

ElectricCommander. Technical Notes MS Visual Studio Add-in Integration version version 3.5 or higher. October 2010

Jenkins on Windows with StreamBase

Java/J2EE or Web Developer. Formal Education. Technical knowledge. Spoken Languages

Sample Report. Header Search. Search Information SSN: Found 27 records. Record # 1

This position requires a minimum of 30% minimum documented disability. Resume to: Skip Rogers, Executive Director skip. rogers@ableforces.

Viewpoint. Choosing the right automation tool and framework is critical to project success. - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys

Continuous Integration (CI) and Testing - Configuring Bamboo, Hudson, and TestMaker

SOFTWARE TESTING SERVICES

Transcription:

Project Management Tools Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar SAPM Spring 2006: Tools 1

Automating Drudgery Most of the techniques in this course can benefit from automated tools, and some would be totally impractical without them (e.g. the continual code changes in XP). Discussing all relevant tools is outside of the scope of this course. We will look at a few extremely useful categories, focusing on baseline open-source packages that everyone should be using unless their organization has something better. We primarily consider useful individual tools, not integrated project management suites, because they are more widely applicable. SAPM Spring 2006: Tools 2

Tool Types Build control (e.g. make) Debuggers (e.g. gdb) Revision control (e.g. CVS) Unit/regression testing (e.g. JUnit) Bug/issue tracking (e.g. GNATS) Documentation generation (e.g. JavaDoc) Project management (e.g. MS Project) Integrated suites (e.g. RUP) Others SAPM Spring 2006: Tools 3

Build Control Build control tools like make automate the process of generating an executable or compiled version of a program or other document from source files: UNIX> make cc -c file1.c cc -c file2.c cc -o a.out file1.o file2.o UNIX> Does everyone know how to use make or gmake, and does everyone actually use them or tools like them for your own projects even when not required to do so? SAPM Spring 2006: Tools 4

Other Build Control Tools Java s ant is more portable in some sense, though it is not as widely used. For more complicated projects needing to compile across many UNIX-like systems, consider autoconf/automake. Integrated development environments (IDEs) like Visual C++ usually replace makefiles with project files, but those are not as easily shareable to other systems. SAPM Spring 2006: Tools 5

Debuggers Debuggers allow you to: Step through code line by line Set break points Allow state to be examined or changed They are essential for C/C++, but extremely useful even for interpreted languages. Many IDEs include integrated debuggers, but there are separate command-line debuggers: gdb, jdb, pdb, etc. and many graphical ones: ddd, Insight, etc. SAPM Spring 2006: Tools 6

Revision Control Revision control systems (aka configuration management systems) like CVS manage changes in your software system or documents during development and maintenance: UNIX> cvs diff -r 1.1 tools.tex 62,63d61 > cc -c file1.c UNIX> cvs commit -m "Added cc example" \ tools.tex UNIX> I would hope that people here are now using a revision control system for your own projects, even when not required to do so. SAPM Spring 2006: Tools 7

Other Revision Control Tools In the bad old days there was RCS and SCCS, but they had little support for teams of developers. Nowadays the default basic open-source tool is CVS. If you have managed to avoid it somehow, you should set up CVS and try it ASAP, so that you know what it can do. If you re adventurous, try Subversion, a newer and better CVS. Businesses often use commercial revision control tools, such as Rational ClearCase, which are often more tightly integrated into their process models. But if you do land somewhere without decent revision control, set up CVS ASAP! SAPM Spring 2006: Tools 8

Revision control suggestions From SAPM last year: VSS (Microsoft $$), Arch (GNU; claims to be better than CVS), StarTeam (Borland $$), TortoiseCVS (Windows CVS client, better than WinCVS ) SAPM Spring 2006: Tools 9

Unit/Regression Testing Unit regression testing frameworks make the testing process easy to do habitually, which is good for everyone (except maybe Cleanroom users!) and is required by XP. JUnit was developed for XP on Java, based on a Smalltalk original. It has been ported to many other languages: pyunit (Python), CppUnit (C++), NUnit (.NET), etc. Of course, regression and unit testing long predates XP, and does not require a testing framework. On the other hand, doing it yourself amounts to writing your own framework, so don t do that without a very good reason. SAPM Spring 2006: Tools 10

Bug/Issue Tracking Any software package with a decent-sized userbase will generate a lot of bug reports, complaints, and feature requests. Bug/issue tracking software keeps track of all of those for you; without it many fall through the cracks or end up dominating all your time and concentration. There is no standard, but GNATS and BugZilla/IssueZilla are widely used free tools; also: Mantis ( much less confusing than Bugzilla ), TestTrack Pro (Seapine $$). If your code is hosted at a site with an integrated configuration management package like SourceForge (discussed later), it will come with bug/issue tracking. SAPM Spring 2006: Tools 11

Documentation Generation No one actually writes documentation consistently, so it always gets out of sync with code. Same goes for comments. Documentation generation software like JavaDoc (Java), NDoc (.NET), PHPDoc (PHP), and Doxygen (C++, C, Java, etc.) automatically generates documentation from your source code and comments. Most of it is guaranteed to be up to date, and if developers know their comments are going to be used as-is for the reference manual then they won t consider it wasted effort to update their comments when the code changes. SAPM Spring 2006: Tools 12

Generated Documentation Traps Even though generated documentation is often quite impressive looking, it is crucial for a human to go over it eventually to make sure it is also readable. Often the result is nearly unusable because it is repetitive, lacks context, and is missing crucial transitions between sections. (E.g. see some parts of the Informatics web site.) It takes several passes between the source code comments and the generated output to make it all work ok. Note that only reference manuals can be generated; user manuals have to be written from scratch with the user in mind, and should never mirror the structure of the code. SAPM Spring 2006: Tools 13

Project Management SW development is usually part of larger projects. Keeping track of all the sub-tasks in these projects, such as who they are assigned to, what order they have to be done, and how long each will take, is a pain. Project management software like Microsoft Project ($$) helps with this. Main feature: automatic Gannt charts and PERT charts. Also many free programs, such as: GanttProject, KPlato, etc. SAPM Spring 2006: Tools 14

Integrated Suites For open-source projects, integrated suites like SourceForge are freely available that do all the above and add e.g.: Document release management Binary file release management Web hosting Proprietary workflow/process management tools like the IBM Rational Unified Process suite and Cruise Control (Automated integration suite that builds, runs tests, publishes results) are even more ambitious. Integrated packages are great if you need most of their features; separate tools can be used any time. SAPM Spring 2006: Tools 15

Summary Every sane person should be using build control and revision control tools Unit/regression testing is good and much easier with the right framework Bug/issue tracking can stop you from going mad Documentation generation is great, but does not eliminate hand cleanup At least use these tools until you find something better For a big list of project management tools for Linux, see http://linas.org/linux/pm.html SAPM Spring 2006: Tools 16

References SAPM Spring 2006: Tools 16