1 Software Maintenance and Evolution CSSE 575: Session 1, Part 1 Course Introduction Steve Chenoweth Office Phone: (812) 877-8974 Cell: (937) 657-3885.

Slides:



Advertisements
Similar presentations
Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Advertisements

Secure Operating Systems Lesson 1: Introductions and Expectations.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
1 CSSE 477: Swre Arch – This year’s course… Steve Chenoweth Tuesday, 11/8/11 Week 10, Day 2 Right – Sunset at the Louvre, in Paris From
1 Software Maintenance and Evolution CSSE 575: Session 4, Part 1 Software Maintenance – Big Issues served up, Side order of Reifer Steve Chenoweth Office.
Software Configuration Management
Spreadsheets in Finance and Forecasting Presentation 8 Buttons, Boxes and Bars.
General information CSE 230 : Introduction to Software Engineering
1 Course Intro Construction & Evolution CSSE 375 Steve Chenoweth.
1 Software Maintenance and Evolution CSSE 575: Session 5, Part 1 Reverse Engineering and Reengineering Approaches Steve Chenoweth Office Phone: (812)
Course Syllabus January 24, 2012 CS 426/CPE 426 Senior Projects in Computer Science/Computer Engineering University of Nevada, Reno Department of Computer.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
CIS 310 Management Information Systems Course Overview Guthrie, Summer 2014.
Object-Oriented Enterprise Application Development Course Introduction.
CS & ECE Senior Design Project Winter 2008 Karen Davis Chia Han Altan Ferendeci.
Software Construction and Evolution - CSSE 375 Software Documentation 1 Shawn & Steve Right – For programmers, it’s a cultural perspective. He’d feel almost.
Software Construction and Evolution - CSSE 375 Reverse Engineering and Reengineering Approaches Shawn & Steve In long-term software developments, the “elephant.
CS4/542- Software Engineering  Software Design and Development  Required Text -- Code Complete by Steve McConnell  (Focuses on the problems of designing.
1 KAN’S INTRO AND OVERVIEW MODELS Ch1 & 2 in his book Steve Chenoweth, CSSE.
Conducting Usability Tests ITSW 1410 Presentation Media Software Instructor: Glenda H. Easter.
Introduction to Interactive Media 02. The Interactive Media Development Process.
CSCI 347 – Data Mining Lecture 01 – Course Overview.
IT Introduction to Website Development Welcome!
Dr Andy Brooks1 FOR0383 Software Quality Assurance Lecture 1 Introduction Forkröfur/prerequisite: FOR0283 Programming II Website:
Math 125 Statistics. About me  Nedjla Ougouag, PhD  Office: Room 702H  Ph: (312)   Homepage:
Software Engineering II (Spring 2008) Instructor: Instructor:Dr. Damla Turgut Office: Office:450 ENGR 1 Bldg Office Phone: Office Phone:(407)
SYSE 802 John D. McGregor Module 0 Session 1 Course Introduction.
Bala Kappagantula CGS 1000 Introduction to Computers and Technology Fall 2007.
1 General Introduction CPRE 416-Software Evolution and Maintenance-Lecture 1.
Software Requirements Southern Methodist University CSE 5316/7316.
Course Introduction Software Engineering
 ET 501 Using Technology: Fundamentals of Integration.
Prof. Barbara Bernal NEW Office in J 126 Office Hours: M 4pm - 5:30 PM Class Lecture: M 6 PM - 8:30 in J133 Weekly Web Lecture between Tuesday to Sunday.
MIS 300: Introduction to Management Information Systems Yong Choi School of Business Administration CSU, Bakersfield.
CSSE 513 – COURSE INTRO With homework and project details Wk 1 – Part 2.
How to start Milestone 1 CSSE 371 Project Info There are only 8 easy steps…
Dana Nau: CMSC 722, AI Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
B. Prabhakaran1 Multimedia Systems Textbook Any/Most Multimedia Related Books Reference Papers: Appropriate reference papers discussed in class from time.
COMP 208/214/215/216 – Lecture 8 Demonstrations and Portfolios.
16 Ways To Take To Work. How Would You Use PBwiki At Work? Over 1,000 non-business users were surveyed How would you use PBwiki at work? All responses.
CSSE 375 Software Construction and Evolution: More SCM, and a loop back to Feathers! Shawn and Steve Left – On big systems, SCM is a well-defined process.
SE-280 Dr. Mark L. Hornick 1 SE-280 Software Engineering Process Dr. Mark L. Hornick web: myweb.msoe.edu/hornick SE280 info syllabus,
CSSE 371/372 – Software Requirements and Specification/Software Project Management Steve Chenoweth/Sriram Mohan RHIT.
Advanced Legal Writing Seminar: Wednesdays, 10:00 p.m. EST Office Hours: Mondays from 3 – 5 p.m. EST, and by appointment AIM sign-in: cssouthall
INF 117 Project in Software Engineering Lecture Notes -Winter Quarter, 2008 Michele Rousseau Set 1.
An Introduction to Software Engineering (Chapter 1 from the textbook)
Project Management Inspections and Reviews 1 February.
1 Software Maintenance and Evolution CSSE 575: Session 3, Part 3 Dealing with Generalization Steve Chenoweth Office Phone: (812) Cell: (937)
Project 1 (CGNB 413) Briefing
Software Construction and Evolution CSSE 375: Course Introduction Steve Chenoweth Office: Meonch Room F220 Phone: (812)
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Now what? 1.  I have short-listed projects I am interested in  I know the types of projects I would like to pursue  I have an idea of the resources.
Research Experience Program (REP) Spring 2008 Psychology 100 Ψ.
B. Prabhakaran1 Multimedia Systems Reference Text “Multimedia Database Management Systems” by B. Prabhakaran, Kluwer Academic Publishers. – Kluwer bought.
Research Experience Program (REP) Fall 2007 Psychology 100 Ψ.
Dana Nau: CMSC 722, AI Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
PDA IN APPLICATIONS OF ICT IN LIBRARIES Levels 7 & 8.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
INTRODUCTION to Operations Management MT435 – 02 Week 1 Instructor – Dr. Stuart Childers 1-1.
Steve Chenoweth Office Phone: (812) Cell: (937)
Software Configuration Management
Software Project Configuration Management
Evaluation Case Analysis 25% Mid-term (individual problem analysis;
Software Requirements
Chapter 18 Maintaining Information Systems
Software Maintenance and Evolution CSSE 575: Session 1, Part 1 Course Introduction Steve Chenoweth Office Phone: (812) Cell: (937)
Introduction to New Product Development (Portfolio)
Multimedia Systems Reference Text
Chapter 8 Software Evolution.
Software Usability Course notes for CSI University of Ottawa
Presentation transcript:

1 Software Maintenance and Evolution CSSE 575: Session 1, Part 1 Course Introduction Steve Chenoweth Office Phone: (812) Cell: (937)

22 Agenda What’s Happening With You? Software – A Problem of Change Course Outcomes Guidelines and Expectations Term Schedule What’s Coming Up Soon?

33 Candid shot from the Creation Museum, Hebron, KY What’s happening with you? What are you working on? Where’s your project going? What else interesting are you doing? Your system maintenance experience – Oldest system you have made changes to (either individually or with a team) – Weirdest software change you’ve done

4 Software – A problem of change The source code and the software artifacts… Software is part of a computer system that is intended to change Intangible Engineered, not manufactured Complex Software is supposed to change… otherwise it would be in the hardware! Software is supposed to change… otherwise it would be in the hardware!

55 Software Doesn’t Wear Out Software doesn’t change with age or “wear out” with use! Software “ages” or becomes “obsolete” with a changing environment Software deteriorates or “degrades” with continued changes

66 Problem: Software Degradation The Original Software Design... Easy to Understand Components well isolated to facilitate change Isolation supports change validation...Plus a few “Changes” Increased size and complexity...but it works (for awhile) Reliability of system degrades, errors creep in At some point, it’s unmaintainable...effort to make the next change becomes prohibitive

77 Information Lose Due to Relentless Change Code Design Spec’s Baseline Change Set 1 Change Set 2 Change Set N

88 Learning Outcomes 1.By testing on a project, verify best practices of maintenance and evolution 2.Use sophisticated refactoring techniques to resolve design problems in code. 3.Apply heuristics selectively and pragmatically to enhance and modernize existing code. 4.Use ancillary tasks such as user documentation to extend system lifetime. 5.Describe and apply the theory of system evolution. 6.Use impact analysis, statistical analysis, and software source analysis to strategize software change. 7.Perform software modernization approaches such as reverse engineering, reengineering, salvaging, and restructuring. 

99 Learning Outcome: Try best practices 1.By testing on a project, verify best practices of maintenance and evolution – Try everything possible on your project! – Document that in a journal

10 Learning Outcome: Refactor well 2.Use sophisticated refactoring techniques to resolve design problems in code. What are the issues when you move a method to another class? …

11 Learning Outcomes: Use heuristics 3.Apply heuristics selectively and pragmatically to enhance and modernize existing code. “This thing isn’t object-oriented. Where do I start?” “How do I add a feature?” “I can’t test this method!”

12 Learning Outcomes: Around the code 4. Use ancillary tasks such as user documentation to extend system lifetime. What documentation changes support system longevity?

13 Learning Outcomes: Know the theory 5. Describe and apply the theory of system evolution. How do “E Systems” really progress?

14 Learning Outcomes: Judge impact 6. Strategize software change using: Impact analysis, statistical analysis, and software source analysis

15 Learning Outcomes: Salvage 7. Perform software modernization approaches such as: reverse engineering, reengineering, salvaging, and restructuring.

16 Course Mechanics Project-based course – On your project of choice – Your journal will be the main mechanism to record your activities Find most material: – Grades and drop boxes will be on Angel Check for special course updates Demanding Course ALERT: 9+ hours/week outside of class Read the assigned material before class

17 Grading and Evaluation Examinations (2) 30% Project Deliverables – Journals and working samples50% Project Mtgs., Class Participation, Final Presentation 20% Grade Scale The usual point scale will apply. Late Work Please let me know ahead of time of any special situations!

18 Course Textbooks and Readings Refactoring: Improving the Design of Existing Code, by Martin Fowler Publisher: Addison-Wesley Professional; 1 edition (July 8, 1999) Second Book – Still to Pick! Proposed: Working Effectively with Legacy Code, by Michael C. Feathers •Readings will also be assigned from two other good textbooks and from relevant papers. 18 Stuff you should be facile with More complex Code maint ideas

19 Tentative Summer Quarter Timeline Refactoring is just the first 3 weeks! 

20 What’s coming up soon? Journal – Applying what we discuss in class, to your system: – Describe changes you make to your code Include a couple coding examples demonstrating you know how to apply key methods – Describe related changes to design and testing – Describe changes made to related documents (e.g., design changes – refactoring often causes these) – Date entries, turn in cumulative journal each time – Turn in weekly before class, in Angel drop box – Maybe 2 -3 pages / week of description + coding examples In class – Each week, describe in class how you applied / tried to apply the topics from the prior week (to me, or preferably in class, as appropriate)