Collaborative Software Design & Development. *Collaboration*



Similar documents
Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Introducing Formal Methods. Software Engineering and Formal Methods

Customer retention. Case study. Executive summary. General issue

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

Develop Project Charter. Develop Project Management Plan

ITSM Maturity Model. 1- Ad Hoc 2 - Repeatable 3 - Defined 4 - Managed 5 - Optimizing No standardized incident management process exists

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

Introduction to Software Engineering. 8. Software Quality

Faculty Strategies for Balancing Workload When Teaching Online

Project Audit & Review Checklist. The following provides a detailed checklist to assist the PPO with reviewing the health of a project:

Central Bank of Ireland Guidelines on Preparing for Solvency II Pre-application for Internal Models

Criticality of Schedule Constraints Classification and Identification Qui T. Nguyen 1 and David K. H. Chua 2

Business Analyst Work Plan. Presented by: Billie Johnson, CBAP CSM

Early Software Product Improvement with Sequential Inspection Sessions: An empirical Investigation of Inspector Capability and Learning Effects

Software Engineering 9.1. Quality Control

Guidance Note: Stress Testing Class 2 Credit Unions. November, Ce document est également disponible en français

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Final Report. Cluster Scheduling. Submitted by: Priti Lohani

Specific amendments to the Capacity Allocation and Congestion Management Network Code

ABSTRACT 1. INTRODUCTION. Kamil Bajda-Pawlikowski

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules

Using Measurement to translate Business Vision into Operational Software Strategies

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings

Case 1 Business Aircraft: Maintenance, Repair and Overhaul

CHAPTER 1 INTRODUCTION

Transforming change: four steps toward more effective change management

Chapter 7 Application Protocol Reference Architecture

Towards a Next- Generation Inter-domain Routing Protocol. L. Subramanian, M. Caesar, C.T. Ee, M. Handley, Z. Mao, S. Shenker, and I.

Requirements engineering

Two case studies of Open Source Software Development: Apache and Mozilla

GROUPWARE. Ifeoluwa Idowu

Online Course Rubrics, Appendix A in DE Handbook

Software Testing. System, Acceptance and Regression Testing

TAMRI: A Tool for Supporting Task Distribution in Global Software Development Projects

Building a Data Quality Scorecard for Operational Data Governance

ELA I-II English Language Arts Performance Level Descriptors

Operating Systems CSE 410, Spring File Management. Stephen Wagner Michigan State University

How To Improve Software Quality

File System Client and Server

Computer Science Department CS 470 Fall I

An Oracle White Paper February Rapid Bottleneck Identification - A Better Way to do Load Testing

Market Definition Does Not Yield Evidence of Class-Wide Impact

The Total Economic Impact Of SAS Customer Intelligence Solutions Intelligent Advertising For Publishers

Operating System Components

Quality Management. Lecture 12 Software quality management

Milestone Edge Storage with flexible retrieval

Industry Services Quality Management System

1 File Processing Systems

Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application. Author: Fung, King Pong

Oracle Insurance Policy Administration System Quality Assurance Testing Methodology. An Oracle White Paper August 2008

Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Virtual Team Collaboration Glossary

Interconnection Trading System (S.I.B.) MARKET MODEL. Equities, Rights and Latibex market

Programming Without a Call Stack: Event-driven Architectures

Testing Metrics. Introduction

Communication Protocol

Robotic assembly. Assembly cost per product. Manual assembly. Automatic assembly using special purpose machines. Annual Production Volume

Economic Impact Of A BlackBerry Solution In North American Enterprises

Supporting Workflow Overview. CSC532 Fall06

Object-Oriented Software Engineering THE TOOLS OF THE TRADE CHAPTER 5. Stephen R. Schach 5.1 Stepwise Refinement.

Communication Diagrams

Software Project Management Matrics. Complied by Heng Sovannarith

Applied Software Project Management

Removing The Linux Routing Cache

Understanding the Benefits of IBM SPSS Statistics Server

PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >

Rapid Bottleneck Identification A Better Way to do Load Testing. An Oracle White Paper June 2009

Rapid Bottleneck Identification

Empirical Software Engineering Introduction & Basic Concepts

Introduction to the ITS Project Management Methodology

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

Improving the Predictability of the CapEx Portfolio

Framework for Short-Line Railroad Track Asset Management and Condition Reporting

SwanLink: Mobile P2P Environment for Graphical Content Management System

IP-Telephony Real-Time & Multimedia Protocols

MNLARS Project Audit Checklist

Transcription:

Collaborative Software Design & Development Lecture 5 Collaborative Software Design & Development *Collaboration* Dewayne E Perry ENS 623A Office Hours: T/Th 10:00-11:00 perry @ ece.utexas.edu www.ece.utexas.edu/~perry/education/382v-s08/ 2005, Dewayne E Perry EE 382V Spring 2008 1

Environment Support Model of software development environments SDE model = { policies, mechanisms, structures } Policies Requirements imposed on the user of an environment Eg, static linker/loaders require all externally referenced names to be resolved before successful linking Need not be hardwired Eg, in Darwin (Minsky s law-governed system), policies are defined by declarative rules Eg, Osterweil s process programming enables explicit programming of the desired policies Supported vs enforced policies Supported: provides means of satisfying the policy Directly enforced: no other way to do it Indirectly enforced: environment supported, management enforced 2

Environment Support Structures Objects or object aggregates that mechanisms operate Eg, files in Unix basic ubiquitous structure Eg, abstract syntax trees in integrated environments Problem difficulty integrating new tools if use different structure Partial solution: Garlan s mechanism for generating a common underlying structure for integrated tools The more sophisticated and plentiful the objects, The more comprehensive the mechanisms The richer the possible set of policies Eg, an object base (and extension of a database) Eg, Inscape s semantic interconnection structure Structures impose limitations on the kinds of policies Eg, Infuse enables richer policies regarding interaction and coordination but do not allow policy definition 3

Environment Support Mechanisms The languages, tools and tool fragments Implement with structures the supported and enforced policies Some visible, some hidden Unix all available Smile hidden beneath a facade that provides higher level mechanisms Policies can be encoded explicitly or implicitly Explicit - Darwin and Marvel s rules Implicit most SDEs are implicitly coded 4

Environment Support 4 classes of SDEs Individual Family City State Individual: ( {tool-induced policies}, {implementation tools}, {single structure} ) Primary issue: construction Mechanisms dominate Examples: Tool-kit environments (eg, Unix) Interpretive environments (eg, Interlisp) Language-oriented environments (eg, Cornell synthesizer) Transformational environments (eg, Refine) 5

Environment Support Family: ( {, coordination policies}, {, coordination mechanisms}, {, special-purpose databases} ) Primary issue: coordination Generally laissez faire ie, loose coordination On a farm, can do pretty much want you want with respect to vehicles and driving rules Structures dominate Examples Extended toolkit environments (eg, Unix with SCCS} Integrated environments (eg, Gandalf Prototype) Distributed environments (eg, DSEE [now ClearCase]) Project management environments 6

City: ( Environment Support {, cooperation policies}, {, cooperation mechanisms}, {, structures for cooperation} ) Primary issue: cooperation Often much more enforcement involved Policies dominate Examples Infuse enforced cooperation ISTAR contract model of cooperation 7

Environment Support State: ( {, commonality policies}, {, supporting mechanisms), {, supporting structures} ) Primary issue: commonality Enables cross project movement Reduces new project training Higher-order policies dominate Examples Product line environments 8

Environment Support Contributions of the model Distinguishes those aspects of an environment useful in evaluating SDEs The taxonomy delineates 4 important classes of interactions Individual and family models are [still] the current state of the art City models provide qualitative differences Proposed state model starting to see examples here 9

Tool Supported Collaboration Codified by Fagan 1976 peer review of code Fresh look with no/few assumptions Less expensive to detect fault when inserted Versus cost of testing, isolating, repair and retest Code inspection process Generate inspection package Individual preparation Team analysis fault collection Repair Follow up Factors in code inspections Structures how steps are organized into a process Techniques how each step is carried out Inputs reviewer ability, code quality Context interactions, project schedule, personal calendars Technology tool support 10

Inspection Considerations Code inspections in geographically separated projects Time-zone mismatches Travel for inspection meetings expensive Long distance mailing of inspection packages These factors affect project interval Possible solutions Tele-conferencing 2 hours on the speakerphone: mind-numbing Video conferencing Groupware Unknown factors Affect on effectiveness Underlying costs 11

Technology Pull instead of Push Our tool development approach Select improvement criteria Often reducing cost and increasing quality Ours: reducing interval Model the cost-benefit drivers of the process Need theories that are General Causal Suggestive of control strategies Theories factors manipulation Understand current process and identify key problems Enables prioritization Explore and evaluate alternative improvements Empirical studies key Key issues, risks and costs Build and evaluate preferred improvement 12

Potential Drivers Process structure Team size key factor Coordination of multiple teams requires time Some changes had adverse effect on interval Overall, little effect on interval Process inputs Code size explained 50% of variation But little effect on interval Techniques with, without meetings Traditionally more faults found in meetings Experiment: meetingless more effective When effort for meeting applied to individual analysis, more defects found 13

Potential Drivers Techniques defect detection methods Scenarios: higher detection rate more effective for what scenario covered No less effective Checklist no more effective than ad hoc Process environment Influences choices of developers Hence, does influence interval Tasks have priorities Under heavy load, low priority tasks deferred Lengthened interval Approaching deadlines affects work priorities 14

Key Problems Process Overhead Creating and distributing inspection documents Particularly a problem in geographically distributed projects Inspection data used by other processes Defects must be collected, processed and managed Eg change management to ensure all defects fixed Entered, fixed, closed and signed off Blocking due to synchronization and sequencing Blocking can lengthen interval General problem Many tasks sequentially ordered Some tasks must by synchronized Eg, group meetings Inspection tasks sometimes coordinated 15

Solution Space Possible ways of reducing interval Eliminate paper generation Eliminate inspection meeting Share preparation results Overlap preparation and repair Justification Opportunistic study Desk vs meeting inspections No difference in average fault density Argument for sharing results sharing would be no worse than keeping them private Useful process gains in sharing Overlapping inspection and repair Problems: premature repair and consistency Given risks, decided not to do this 16

17

18

19

Experience and Evaluation Initial acceptance was excellent Cost savings hypecode integrated seamlessly into the existing environment New possibilities for concurrency and inherent speedups Web a natural and ubiquitous platform Anecdotal evidence interviewing users 10-25% reduction in total inspection interval Eliminates time spent in reproduction and distribution Improves effectiveness and reduces time spent Can see others comments Time spent detecting same defects eliminated 20

Experience and Evaluation Primary work product of meetings a by-product here Eliminates about a day needed to prepare the meeting report Inspection report improved More low, medium and observation category defects No fewer severe category defects Defect descriptions more detailed and complete Recorded discussions of defects Need for collection meeting often eliminated Reduces interval eliminating delay for meeting When there is a meeting, very focused Quality often higher more focused on a few unresolved issues Meeting significantly shorter, and less lapse time to meeting Average about a half hour Overall a run away success lost control of it Used on at least a dozen projects in half a dozen countries 21