Lecture Notes - Copyright © 2005. S. C. Kothari, All rights reserved.1 Summary Lecture CPRE 416-Software Evolution and Maintenance-Lecture 6.

Slides:



Advertisements
Similar presentations
Homework 3 Solution Lecture Packet 16 © John W. Brackett.
Advertisements

CSE 332: C++ overview CSE 332 Overview and Structure CSE 332 emphasizes studio-based active learning –Introductory lecture material followed by hands-on.
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 18, 2008.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Object-Oriented Software Development CS 3331 Fall 2009.
1 Evolution: a Grand Challenge Pennine Forum September 2004 Keith Bennett School of Engineering, Durham
JProbe. 1. JProbe Use JProbe Profile –identify method and line level performance bottlenecks Use JProbe Memory Debugger –investigating memory leaks and.
SE382 Software Engineering Lecture 21b
Informatics 43 – April 16, Homework 1 What is the purpose and goal of each section in the document? Two audiences: non-technical users and technical.
Project activities and experiences in an Albanian software company Luan Jubica Zagreb 2004.
Software Design & Development Year 12. Structure of the Course Development and Impact of Software Solutions Development and Impact of Software Solutions.
Chapter 24 (lecture 16) Click To Close: A Fluency Summary.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
Software Testing and Quality Assurance: Introduction and Terminology
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
1 SWE Introduction to Software Engineering Lecture 11 - Requirements Engineering Processes.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Tester’s Role in Software Development and Acquisition Best Practice By Gabriel Rodriguez.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Label in Margin. Copyright © Houghton Mifflin Company. All rights reserved.5 | 2 Label in the Margin System Taking Notes From the Lecture Processing the.
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 17: Code Mining.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
S/W Project Management
ISBN Prentice-Hall, 2006 Chapter 10 Delivering the System Copyright 2006 Pearson/Prentice Hall. All rights reserved.
Product Quality, Testing, Reviews and Standards
1 Advanced Computer Programming Project Management: Software Life Cycle Copyright © Texas Education Agency, 2013.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CS4723 Software Validation and Quality Assurance
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
1 General Introduction CPRE 416-Software Evolution and Maintenance-Lecture 1.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Introduction to Java August 14, 2008 Mrs. C. Furman.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.
Graph Data Management Lab, School of Computer Science Add title here: Large graph processing
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Formal Methods in Software Engineering
Aspect-Oriented Requirements Engineering David Schaefer, Joao Araujo, Isabel Brito, Awais Rashid, Claudia Mesquita.
Problem Paramount to the success of your effort stated precisely address an important question advance knowledge.
Lecture Notes - Copyright © S. C. Kothari, All rights reserved.1 Efficient Debugging CPRE 556 Lecture 19.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
Testing Inheritance & Polymorphism in OO Software using Formal Specification Presented by : Mahreen Aziz Ahmad (Center for Software Dependability, MAJU)
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Advanced Software Engineering Lecture 4: Process & Project Metrics.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Instrumentation of the Controls Configuration Directory Service J. Luis González Arias BE3528 Software Developer for the Accelerator Controls Configuration.
Software Project Management
Presented by Ted Higgins, SQL Server DBA C Programming - Pointers.
Completing the Loop: Linking Software Features to Failures 20 July 2004 Copyright © 2004, Mountain State Information Systems, Inc. All rights reserved.
Copyright © 2011 Wolters Kluwer Health | Lippincott Williams & Wilkins Chapter 1 Research: An Overview.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
Chapter 16 Maintaining Information Systems. Objectives:  Explain and contrast four types of system maintenance.  Describe factors affecting maintenance.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
CSC 221: Computer Programming I Spring 2010
Midterm Review.
CSC 221: Computer Programming I Fall 2005
David Shepherd, Zachary P. Fry, Emily Hill, Lori Pollock, and K
Software Maintenance PPT By :Dr. R. Mall.
Defect Analysis: Memory Leaks
CSE 332 Overview and Structure
Section 2.5 Graphing Techniques; Transformations
Human Complexity of Software
Introduction to CS II Data Structures
Section 2.5 Graphing Techniques; Transformations
Lecture 06:Software Maintenance
CPRE 416-Software Evolution and Maintenance-Lecture 11
Presentation transcript:

Lecture Notes - Copyright © S. C. Kothari, All rights reserved.1 Summary Lecture CPRE 416-Software Evolution and Maintenance-Lecture 6

Lecture Notes - Copyright © S. C. Kothari, All rights reserved.2 Contents Summary of our program comprehension discussions: –First students will generate all the key points. –We will then organize the points. Discuss why developing program comprehension methods and tools has proved to be difficult.

Lecture Notes - Copyright © S. C. Kothari, All rights reserved.3 What have we discussed? Points listed by students: –An analysis tool for Java, memory leaks, dangling pointers, fixing code problems creates new problems, three types of reading techniques, significance of software evolution and maintenance, impact analysis, call graph, dependencies,..

Lecture Notes - Copyright © S. C. Kothari, All rights reserved.4 Organizing the Information Program Understanding: How do we understand: different reading techniques, structural analysis,.. What do we understand: structure, defects,.. Why is it important: critical in many activities - quality assurance, reverse engineering, analyzing impact of changes, etc.- consumes a lot of money and time.

Lecture Notes - Copyright © S. C. Kothari, All rights reserved.5 Challenging Problem PC has proved to be difficult: –Lack of specificity: program understanding problems have so far eluded precise formulations. Good solutions not possible without precise formulations. –It is well-known that certain formally defined program analysis techniques can be useful for program understanding. However, applying them in practice is a problem because the formal analysis techniques involve non-polynomial algorithms.

Lecture Notes - Copyright © S. C. Kothari, All rights reserved.6 Research Directions Specificity problem is being addressed by the so called concern-based approach. Concern is not an agreed upon term, similar research is being carried out under different names (aspect-oriented programming, feature analysis, etc.). More research is needed to add specificity and to develop practical analysis techniques.

Lecture Notes - Copyright © S. C. Kothari, All rights reserved.7 Empirical Studies Good problems should be extracted empirically and then generalized and formalized. As an illustration, we will discuss in class a concrete code understanding program. The code is from the Xinu operating system. In an upcoming homework students are expected to come up with other concrete examples.

Lecture Notes - Copyright © S. C. Kothari, All rights reserved.8 Concern-Based Understanding In the next few classes we will focus on concern- based understanding: We will discuss the FEAT project and the tool. It will give us a glimpse of advanced research and a practical tool. To understand FEAT, you we will need to master significant new terminology. It will help if you read the FEAT presentation and come up with questions to guide our discussions.