Using Development History StickyNotes to Understand Software Architecture Ahmed E. Hassan and Richard C. Holt University Of Waterloo.

Slides:



Advertisements
Similar presentations
DWebSpec Why dWebSpec? It could be asked,with all the web application alternatives.
Advertisements

Lectures on File Management
Requirements Specification and Management
A Toolbox for Blackboard Tim Roberts
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
CSC340: Tutorial 1 Software Lifecycles TA: Yuan An Date: 9:00-10:00am, Fri. Oct. 3, 2003 Location: BA1130.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Raymond Martin Purpose The report documents the research process. It contains:
Introduction To System Analysis and Design
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
Copyright ©2004 Cezary Z Janikow 1 Domain Model n Visualization of entities and relationships n In UP presented as Class Diagrams – Classes, Relationships,
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
Manipulatives – Making Math Fun Dr. Laura Taddei.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Defect prediction using social network analysis on issue repositories Reporter: Dandan Wang Date: 04/18/2011.
Change Request Management
1 Project Planning CIS 375 Bruce R. Maxim UM-Dearborn.
The Game Development Process. Typical Development Cycle Idea Proposal Design Evaluation Coding Testing Release.
Source Code Revision Control Software CVS and Subversion (svn)
© Copyright 2013 TONE SOFTWARE CORPORATION. Confidential and Proprietary. All rights reserved. ® Operator Training – Release Priority Traceroute.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
Open source administration software for education next generation student system Using the Kuali Student Configurable User Interaction Model & Framework.
Mining Software Repositories to Assist Developers and Support Managers Ahmed E. Hassan SoftWare Architecture Group (SWAG) University Of Waterloo
Chapter 2 The process Process, Methods, and Tools
1 Chapter 9 Database Design. 2 2 In this chapter, you will learn: That successful database design must reflect the information system of which the database.
Code Reuse as a Practice within Extreme Programming Gerald DeHondt Kent State University Vijayan Sugumaran Oakland University.
Secure Systems Research Group - FAU Classifying security patterns E.B.Fernandez, H. Washizaki, N. Yoshioka, A. Kubo.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Margaret Martin Gardiner Assessment Librarian The University of Western Ontario LibQUAL+2007 Canada 25 October 2007.
 Three-Schema Architecture Three-Schema Architecture  Internal Level Internal Level  Conceptual Level Conceptual Level  External Level External Level.
1 Introduction to Software Engineering Lecture 1.
Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University,
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved. Computer Software Chapter 4.
© Drexel University Software Engineering Research Group (SERG) 1 A. E. Hassan and R. C. Holt A Reference Architecture for Web.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
© 2005 course technology1 1 1 University Of Palestine UML for The IT Business Analyst A practical guide to Object Oriented Requirement Gathering Hoard.
1 Chapter 4 Analyzing End-to-End Business Processes.
System Context and Domain Analysis Abbas Rasoolzadegan.
SCIENCE THE STUDY OF LIVING THINGS!. GROWTH VS DEVELOPMENT Growth is the process by which an organism becomes larger. Development is the process of change.
Concrete Architecture of PostgreSQL. Overview – Derivation Process – Conceptual Architecture Revisited – High Level Conceptual Dependencies – High Level.
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
Welcome. Communication Work Number: X Work
SSQSA present and future Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics Faculty of Sciences University of Novi Sad
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Team SHARP February 10,  Sponsor ◦ Dr. Will Tracz  Faculty Coach ◦ Robert Kuehl  Members ◦ Samuel Goshen ◦ Leo Torbochkin ◦ Dan Edenhofer ◦ Dominic.
Copyright © by Holt, Rinehart and Winston. All rights reserved. Resources Chapter menu Section 2 Scientific Methods Chapter 1 Bellringer Complete these.
Ahmed Hassan and Richard Holt Software Architecture Group University of Waterloo CANADA A Reference Architecture for Web Servers.
Migrating Web Frameworks Using Water Transformations Ahmed E. Hassan Richard C. Holt School of Computer Science University Of Waterloo.
Chapter 2 Database Environment.
Observing the Current System Benefits Can see how the system actually works in practice Can ask people to explain what they are doing – to gain a clear.
Software architecture is the high- level structure of a software system. It has no concrete definition but can be best described as an organizational.
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
Software Design and Architecture
Exploring Software Evolution Using Spectrographs Jingwei Wu, Richard C. Holt, Ahmed Hassan School of Computer Science University of Waterloo Waterloo ON.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Change Request Management
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Software Design Principles
Software Documentation
CSCI/CMPE 3334 Systems Programming
Bryan Burlingame 28 November 2018
Proposed Specification Framework for TGac – Introductory Comments
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
MPATE-GE 2626: Thesis in Music Technology
Logical Architecture & UML Package Diagrams
Message Passing Systems
Presentation transcript:

Using Development History StickyNotes to Understand Software Architecture Ahmed E. Hassan and Richard C. Holt University Of Waterloo

Operating System Architecture Conceptual (proposed) Concrete (reality)

Architecture Understanding Process Propose conceptual architecture Compare conceptual with concrete architecture Investigate gaps

Software Reflexion Framework

Investigating Gaps Absences: rarely occur in large systems Convergences: usually not a concern Divergences: must investigate dependencies

Dependency Investigation Questions (W4 Approach) Which low level code entity is responsible for the dependency? –Network (SendData)  Scheduler (PrintToLog) Who added/removed the dependency? –Junior vs. senior/experienced developer When was the dependency modified? –Late night / Just before release Why was the dependency added/removed? –The rationale!

History as a guide “History is a guide to navigation in perilous times. History is who we are and why we are the way we are”, David C. McCullough Can we use the development history of a project to assist in understanding its current state? How can we get the development history of a project?

Source StickyNotes Static dependency give only a current static view of the system – not enough detail! Need to extend static dependencies, but how? –Ask developers to fill StickyNotes for each change –Use software repositories to build these notes automatically

StickyNotes Recovery Map code changes to entities and dependencies instead of lines Two pass analysis of the source control repository data, to recover: –All entities defined throughout the lifetime of a project – Historical Symbol Table –All dependencies between these entities and attach source control meta-data such as: Name of developer performing the change Text entered by developer describing the change –the rationale Time of the change

Case Study – NetBSD Large long lived system with hundreds of developers Case study used to demonstrate usefulness of the reflexion model: –Reuse prior results! –Focus on investigating gaps to show the strength of our approach

NetBSD Conceptual and Reflexion Model Why? Who? When? Where?

Unexpected Dependencies Eight unexpected dependencies All except two dependencies existed since day one: –Virtual Address Maintenance  Pager –Pager  Hardware Translations

StickyNotes Usage Patterns First note to understand the reason for unexpected dependencies Last note to understand missing dependencies All notes when first and last notes do not have enough information to assist in understanding

Limitations Quality of comments and text entered by developers in the past In most open source projects, CVS comments are used for: –Communicating new features –Narrating the progress of a project

Conclusions Development history can help understand the current structure of a software system Traditional dependency graphs and program understanding models usually do not use historical information Proposed StickyNotes and presented a case study to show the strength of the approach