Tools Shane Cantrell Zach Crisman. Tools CVS FogBUGZ (Bug Tracking) Unit Testing (JUnit, Jakarta Cactus) Catalyst Web Tools (BB and Surveys) Mailman (E-mail.

Slides:



Advertisements
Similar presentations
•7/12 /07 F-1 © 2010 T. Horton CS 4240 Principles of SW Design Packages in Java and UML.
Advertisements

Chapter 1 - An Introduction to Computers and Problem Solving
Class 1: What this course is about. Assignments Reading: Chapter 1, pp 1-33 Do in Class 1: –Exercises on pages 13, 14, 22, 28 To hand in in Class 2: –Exercises.
Python Jordan Miller and Lauren Winkleman CS 311 Fall 2011.
Scripting Languages. Originally, a script was a file containing a sequence of commands that needed to be executed Control structures were added to make.
Guide To UNIX Using Linux Third Edition
Guide To UNIX Using Linux Third Edition
Guide to Linux Installation and Administration, 2e1 Chapter 6 Using the Shell and Text Files.
12-February-2003cse Construction © 2003 University of Washington1 Construction CSE 403, Winter 2003 Software Engineering
The Basic Tools Presented by: Robert E., & Jonathan Chase.
1 Outline 7.1 Introduction 7.2 Implementing a Time Abstract Data Type with a Class 7.3 Special Attributes 7.4Controlling Access to Attributes 7.4.1Get.
Prof. R. Willingale Department of Physics and Astronomy 2nd Year C+R 2 nd Year C and R Workshop Part of module PA2930 – 2.5 credits Venue: Computer terminal.
Data Structures and Programming.  John Edgar2.
- Chaitanya Krishna Pappala Enterprise Architect- a tool for Business process modelling.
 Knowledge and use of tools and resources in a system: standard libraries, system calls, debuggers, the shell environment, system programs and scripting.
CSE 403 Lecture 11 Static Code Analysis Reading: IEEE Xplore, "Using Static Analysis to Find Bugs" slides created by Marty Stepp
Cyclomatic Complexity Dan Fleck Fall 2009 Dan Fleck Fall 2009.
Advanced File Processing
By: Felegh Solomon ITEC SPRING 2013 CHAPTER 4: KEY CONSTRUCTION DECISIONS.
UML Tools ● UML is a language, not a tool ● UML tools make use of UML possible ● Choice of tools, for individual or group use, has a large affect on acceptance.
1 CSC 221: Introduction to Programming Fall 2012 Functions & Modules  standard modules: math, random  Python documentation, help  user-defined functions,
Chapter Three The UNIX Editors. 2 Lesson A The vi Editor.
Computer Programming I An Introduction to the art and science of programming with C++
Shell script
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
GNU Compiler Collection (GCC) and GNU C compiler (gcc) tools used to compile programs in Linux.
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
CSE 219 Computer Science III Program Design Principles.
Question of the Day  On a game show you’re given the choice of three doors: Behind one door is a car; behind the others, goats. After you pick a door,
Copyright (c) Cem Kaner. 1 Software Testing 1 CSE 3411 SWE 5411 Assignment #1 Replicate and Edit Bugs.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
4/1/05F-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Packages and Components in Java and UML.
Software Metrics Cmpe 550 Fall Software Metrics.
Eclipse 24-Apr-17.
Guide to Linux Installation and Administration, 2e1 Chapter 11 Using Advanced Administration Techniques.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
The HTTP is a standard that all Web browsers and Web servers must speak in order for the Web portion of the Internet to work.
Chapter Three The UNIX Editors.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
EGEE is a project funded by the European Union under contract IST Unit testing coordination and interface testing. David Collados Testing Team.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
INFSOM-RI WP 4 : Testing Tools and Methodologies Status Report ETICS Review – 15 February 2008 Éva Takács (4D SOFT)
Perl Lab #11 Intro to Perl Debbie Bartlett. Perl Lab #1 2 Perl Practical Extraction and Report Language –or- Pathologically Eclectic Rubbish Lister Created.
Software Metric Tools Joel Keyser, Jacob Napp, Carey Norslien, Stephen Owings, Tristan Paynter.
Advanced Data Communication Spring Due Date  April 9th, 2010.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Perl Ed Finegan. Overview of Pearl Perl is a high-level programming language written by Larry Wall. It derives from the C programming language and to.
Programming Languages Meeting 12 November 18/19, 2014.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
SG Introduction to ANT scmGalaxy Author: Rajesh Kumar
Software Development Languages and Environments. Computer Languages Just as there are many human languages, there are many computer programming languages.
CSE 303 Concepts and Tools for Software Development Richard C. Davis UW CSE – 10/9/2006 Lecture 6 – String Processing.
Development Environment
by C.A. Conley and L. Sproull
Software Configuration Management
Coupling and Cohesion Rajni Bhalla.
Tracking and Squashing Bugs
Guide To UNIX Using Linux Third Edition
The Linux Operating System
Unit# 8: Introduction to Computer Programming
Teaching Computing to GCSE
CSCE 315 – Programming Studio, Fall 2017 Tanzir Ahmed
CMSC 345 Programming.
Vocabulary Algorithm - A precise sequence of instructions for processes that can be executed by a computer Low level programming language: A programming.
the Java package design analyser
1. Cyclomatic complexity
Presentation transcript:

Tools Shane Cantrell Zach Crisman

Tools CVS FogBUGZ (Bug Tracking) Unit Testing (JUnit, Jakarta Cactus) Catalyst Web Tools (BB and Surveys) Mailman ( Lists) Ant (Build File Languages) Scripting Languages Shells Editors Code Metrics

FogBUGZ “At any given time, every case is assigned to one person who must resolve it or forward it to someone else. Cases can be prioritized, documented, sorted, discussed, edited, assigned, estimated, searched, and tracked.”

FogBUGZ – Example Case “A tester finds a bug, enters it, and assigns it to the development manager. The development manager assigns it to the programmer who is responsible for that area of the code. The programmer fixes it, and assigns it back to the tester to check that it's really fixed. The tester confirms that it's fixed and closes the bug.”

FogBUGZ - Demonstration

Debugging The tester needs to document actions that trigger bugs very clearly; otherwise you will need to interview the bug reporter in order to understand the problem, which takes time. You need to test a multitude of cases, even those that seem unlikely – if it is possible, then someone will probably find it (better you than a customer). Traces can be written to a file. Explain the code to someone else. Assume that your code is broken before blaming the system.

Unit Testing JUnit Regression Testing Artima SuiteRunner Conformance Testing Jakarta Cactus (Servlets) Extends JUnit and uses Ant

Catalyst Web Tools EPost – online discussion board QuickPoll – one question survey WebQ – full survey

UW Mailman Lists computing/mailman/ computing/mailman/

Scripting and Code Generators Scripting can be used to quickly implement tasks that could take much longer using a conventional language. Examples: Perl, awk, sed, Python, Tcl Shell Scripts (bash, csh, etc.) Code Generators Good for making tables. Good for reducing work. Bad if not understood.

Plain Text Easier to read and interpret when the original software application is lost. Easier to manipulate and test. Large (but can be compressed) Modifiable with languages like Perl

Editors Configurable Custom looks, all keyboard interface Extensible Works with all languages Programmable Modifiable through programming (Plug-ins) Emacs, VI, Eclipse, jEdit, etc? Do we believe this?

Code Metrics JavaNCSS JDepend

JavaNCSS Metrics Non Commenting Source Statements (NCSS). Cyclomatic Complexity Number (McCabe metric). Packages, classes, functions and inner classes are counted. Number of formal Javadoc comments per class and method.

JDepend Metrics CC - Concrete Class Count AC - Abstract Class (and Interface) Count Ca - Afferent Couplings (Ca) Ce - Efferent Couplings (Ce) A - Abstractness (0-1) I - Instability (0-1) D - Distance from the Main Sequence (0-1) V - Volatility (0-1) Cyclic - If the package contains a dependency cycle

Project Comments You may be using an emulator, but don’t make absurd design decisions unless you can justify them. We expect you to use some kind of bug tracking. We expect you to use CVS or something similar. Why? Well, don’t you want to learn these tools in this class? Don’t wait for your job.