(1) A “Software ICU” for assessing and maintaining software project health Philip Johnson Collaborative Software Development Laboratory Information and.

Slides:



Advertisements
Similar presentations
WHAT IS DRS? Thermoflow, Inc.
Advertisements

Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
Systems Analysis, Prototyping and Iteration Systems Analysis.
A more efficient you. Introducing EmployerAccess Anthem’s easy-to-use online benefits management system Anthem Blue Cross is the trade name of Blue Cross.
Advancing Excellence in America’s Nursing Homes A Review of 2 Clinical Tools: Pressure Ulcer and Restraints.
MCTS GUIDE TO MICROSOFT WINDOWS 7 Chapter 10 Performance Tuning.
WIFI WIFI (wireless-fidelity) is used in hospitals to connect multiple computers and tablets to the same network so that doctors can access their patients.
Soft. Eng. II, Spr. 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Quality Reading: I. Sommerville, Chap: 24.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 11: Monitoring Server Performance.
Copyright © 1998 Wanda Kunkle Computer Organization 1 Chapter 2.1 Introduction.
(NHA) The Laboratory of Computer Communication and Networking Network Host Analyzer.
A Case Study of HPC Metrics Collection and Analysis Philip Johnson and Michael Paulding, University of Hawaii, Honolulu, Hawaii. Goals of the case study.
Implementation. We we came from… Planning Analysis Design Implementation Identify Problem/Value. Feasibility Analysis. Project Management. Understand.
Maintaining and Updating Windows Server 2008
LSU 10/09/2007Project Schedule1 The Project Schedule Project Management Unit #4.
How to Establish a Blog. What is a Blog A blog is a collection of informational articles/ideas intended to update a viewer on new information associated.
National Public Health Performance Standards Local Assessment Instrument Essential Service: 1 Monitor Health Status to Identify Community Health Problems.
Working with SharePoint Document Libraries. What are document libraries? Document libraries are collections of files that you can share with team members.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Welcome to the Southeastern Louisiana University’s Online Employment Site Applicant Tutorial!
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
MCTS Guide to Microsoft Windows 7
Microsoft Office 2013 ®® Access Tutorial 4 Creating Forms and Reports.
Build a Free Website1 Build A Website For Free 2 ND Edition By Mark Bell.
(1) Automated Quality Assurance Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
1 Quality Health Indicators Brought to you by… Hosted by Sally Perkins.
Chapter 6 : Software Metrics
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 11: Monitoring Server Performance.
UNIT 5 SEMINAR.  According to your text, in an acute care setting, an electronic health record integrates electronic data from multiple clinical systems.
Microsoft Office Word 2013 Expert Microsoft Office Word 2013 Expert Courseware # 3251 Lesson 3: Customizing Document Elements.
Issue Manager Presented By: Shaun McAnulty. Goals for Understanding Issue Manager is the ticketing & tracking system for issues between PI Employees and.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Tutorial 4 Creating Forms and Reports
SVN in Eclipse Presented by David Eisler 10/09/2014.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 11: Monitoring Server Performance.
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
Andrea Capiluppi Dipartimento di Automatica e Informatica Politecnico di Torino, Italy & Computing Dept. The Open University, UK AICA 2004, Benevento,
(1) A beginners guide to testing Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Google Docs & Zoho Nicole Rausch Literacy & Technology.
University of Southern California Center for Systems and Software Engineering Software Metrics and Measurements Supannika Koolmanojwong CS577 1.
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
0 eCPIC User Training: Portfolios Module These training materials are owned by the Federal Government. They can be used or modified only by FESCOM member.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
Click to add text Systems Analysis, Prototyping and Iteration.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
A Business Case To Maximize Practice Profits.  These are established, yet underutilized programs that are integrated and delivered via automated software.
All the dSoftArk Tools Getting started!. Tools dSoftArk is a semi-realistic, agile, development project –Industrial strength software (programming, TDD,
(1) Installing the Software ICU Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Vital Signs. 1. Vital signs are named as such because: a) They are normal b) They tell a lot about a person c) They provide info on adaptations to the.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Informative Workspaces Code Review Jianfei Liao Nathan Britton.
(1) Introduction to Robocode Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Microsoft Corporation. Announcement Visual Studio® Team System 2008 Enables you to Build Quality Code Be More Productive Collaborate at the Next Level.
(1) Code Walkthrough robocode-pmj-dacruzer Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
------TAO, MARKUS Project IT. JavaDoc ‣ JavaDoc is a standard method of commenting source code (interfaces, classes, methods, instances variables). ‣
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
Maintaining and Updating Windows Server 2008 Lesson 8.
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
Group collaborative Projects: TECHNOLOGICAL TOOLS TO ASSESS INDIVIDUAL CONTRIBUTION.
Part 1: Download a Specification Download the specification from the OCR website using the following link. You will need a printed copy which you can store.
Welcome to HICAPS CSS!.
Computer Science Part 1 : Download a Specification
Why should we test? How should we test?
Concurrent Version Control
Module 01 ETICS Overview ETICS Online Tutorials
Presentation transcript:

(1) A “Software ICU” for assessing and maintaining software project health Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu HI 96822

(2) Medical ICUs & Vital Signs Intensive care units are designed to monitor patient health via “vital signs” Temperature Heart (pulse) rate Blood pressure Respiration (and others, depending on particular patient) Why are vital signs interesting? Vital signs in a “healthy” patient are “normal” or “improving” Change in one vital sign may or may not be significant. Change in multiple vital signs is almost certainly significant. In an ICU, vital signs monitored automatically and continuously.

(3) An ICU Room

(4) ICU Vital Signs Instrumentation Recent History and Trends Current Values

(5) Characteristics of a “healthy” development project High efficiency: Software development proceeds “as fast as possible, but no faster” - Don’t sacrifice quality for speed. High effectiveness Effort is focused on most important issues. Minimal re-work. High quality Software conforms to specifications. Software can be easily installed, adapted, maintained.

(6) Software Project “Vital Signs” ICS 413 “vital signs” for a “healthy” project include: Everyone works consistently; Everyone works equally; Code is committed consistently; Progress is regular; Quality remains high; No last minute “rush” to finish; Up to now, vital signs were assessed informally and manually: Blog entries about project Review of “Updates” and “Issues” pages in Google Project Hosting This will now change!

(7) A Software ICU for ICS 413 Approach: Attach Hackystat software “sensors” to your development tools: Eclipse Ant Hudson Automatically gather “vital signs” about the state of your software project. Display trends and current values of “vital signs” for all projects in ICS 413. Learn which projects are “healthy” and (hopefully) how to improve health of those that aren’t.

(8) Monitoring Project Vital Signs with Hackystat Portfolio Analysis We will build our “Software ICU” using Hackystat Portfolio Analysis

(9) Software ICU Concepts Display 10 software vital signs: Coverage, Complexity, Coupling, Churn, Code Issues, Builds, Commits, Unit Tests, Size, and Dev Time. Show both current value and historical trend. When possible for the vital sign: Color the current value Red/Yellow/Green Color the trend Red/Yellow/Green Projects that are mostly green are “healthy”. Projects that are mostly red are “sick”.

(10) Vital signs for project health Indicators whose relationship to “health” can be easily assessed: Coverage, Complexity, Code Issues, Coupling, Churn. The system automatically colors these red,yellow, or green. Indicators with more subtle relationship to health: Commit, Test, Build, Size, DevTime. These are always colored white.

(11) Vital Sign: Coverage Measures percentage of code executed by tests. A healthy project should have HIGH coverage. Healthy: Above 90%; trend: stable or rising. Unhealthy State: Below 40%; trend falling. Tool to collect coverage: Emma

(12) Vital Sign: Complexity Measures the density of branches and loops in your code (called the “cyclomatic” complexity). A healthy project should have LOW complexity. Healthy: Average CC below 10; trend stable or falling. Unhealthy: Average CC above 20; trend rising. Tool to collect complexity: JavaNCSS

(13) Vital Sign: Coupling Measures the number of dependencies between classes: How many classes are used by a class How many classes does a class use? A healthy project should have LOW coupling. Healthy: average < 10; trend stable or falling Unhealthy: average > 20; trend rising. Tool to collect coupling: DependencyFinder.

(14) Vital Sign: Churn Churn is a measure of the lines of code added, deleted, and modified in a commit. A healthy project should have LOW churn. Healthy: Churn < 400 LOC; trend stable or falling. Unhealthy: Churn > 900 LOC; trend rising. Tool to collect churn: SVN

(15) Vital Sign: Code Issues Code Issues is a measure of the number of warnings generated by QA tools like Checkstyle, FindBugs, PMD. A healthy project should have LOW Code Issues. Healthy: Code Issues < 10; trend stable or falling. Unhealthy: Code Issues > 30; trend rising. Tool to collect churn: Checkstyle, FindBugs, PMD In 413, your code issues should stay around ZERO.

(16) Vital Sign: Commits Measures the number of commits to the repository made by developers. Healthy projects should commit “early and often”. Not easy to colorize. Tool to collect commits: SVN

(17) Vital Sign: Builds Measures the number of builds of the system made by the developers and/or CI system. Healthy projects should be built regularly by all developers and CI system. Not easy to colorize. Tool to collect build info: Ant

(18) Vital Sign: UnitTests A measure of the number of unit tests invoked on the system. A healthy project should be tested regularly. Not easy to colorize. Tool to collect test information: JUnit

(19) Vital Sign: Size A measure of the amount of code in the system. There is no general relationship between size and health! Tool to collect size information: SCLC

(20) Vital Sign: DevTime A measure of the time spent by developers editing their source code. A healthy 413 project will have developers editing source code regularly and spending an approximately equal amount of time on it. Tool to collect DevTime: Eclipse, Ant.

(21) Things to note Color of current state and trend are generated independently: A single “red” indicator is weak evidence of project dis-health. But many red indicators provide strong evidence of problems:

(22) A running Software ICU What can you tell about these projects?

(23) Some points of interest

(24) Drilling down to get more details The portfolio analysis provides an overall view of project “health” and vital signs, but what do you do once you see something “interesting”? Two ways to get more information: Clicking on a histogram trend runs a “telemetry” analysis with more information about that trend. Running a “DailyProjectData” analysis provides more information on how the current value of a measure was computed.

(25) Drilling Down: Telemetry Click any trend histogram to display “telemetry” with more details. This one shows a break-down of DevTime by project member.

(26) Drilling Down: DPD DailyProjectData analysis can provide a breakdown of how the current value was computed. This shows there are 20 highly coupled classes in the hackystat-analysis-dailyproject data project.

(27) Drilling Down: DPD Clicking a link shows the files in the specified category of coupling.

(28) A Software ICU for ICS 413 Your remaining development will be supported by a Software ICU for all the projects in this class. To do this, you must: Read the Hackystat tutorials to learn more about the system. Download and install the Eclipse sensor. Download and install Ant sensors. - Update your *.build.xml files. Define a Hudson -dailybuild task to gather sensor data every day. Define a Hackystat project to represent your group’s development. Run Portfolio analyses to see how your project is doing.

(29) ICS 413 Software ICU goals Get a better sense for the “health” of your group’s development process. More easily see how your project health compares to other projects in the class. Be able to identify unhealthy trends easier and earlier. However, it’s still up to you to take action!

(30) ICS 413 Software ICU