Delivered System Documentation u One of the most important things that can be done to make a system maintainable is to create the best, most complete,

Slides:



Advertisements
Similar presentations
Software Re-engineering
Advertisements

CIS 376 Bruce R. Maxim UM-Dearborn
Configuration Management
SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
System Analysis (Part 1)
W5HH Principle As applied to Software Projects
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
Software Configuration Management
1 Software Engineering II Presentation Software Maintenance.
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Planning. SDLC Planning Analysis Design Implementation.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 18 Maintaining.
Software maintenance Managing the processes of system change.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
Basics of Good Documentation Document Control Systems
1 L07SoftwareDevelopmentMethod.pptCMSC 104, Version 8/06 Software Development Method Topics l Software Development Life Cycle Reading l Section 1.4 – 1.5.
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
Chapter 7 Software Engineering Objectives Understand the software life cycle. Describe the development process models.. Understand the concept of modularity.
Overview Coding Practices Balancing standards Configuration Management Providing Change Control Software Estimation Reasons why Programmers and Managers.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
S oftware Q uality A ssurance Part One Reviews and Inspections.
Concepts of Database Management, Fifth Edition Chapter 8: Database Administration.
Document Control Basics of Good Documentation and
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
Software Maintenance.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Feasibility Study.
SE: CHAPTER 7 Writing The Program
Team Software Process (TSPi) CS4320 Fall TSP Strategy Provide a simple process framework based on the PSP. Use modest, well-defined problems. Develop.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
1.  Interpretation refers to the task of drawing inferences from the collected facts after an analytical and/or experimental study.  The task of interpretation.
Copyright 2010, The World Bank Group. All Rights Reserved. Testing and Documentation Part II.
KUFA UNIVERSITY Department of Computer Science 09/12/2015.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
Software Engineering Lecture # 1.
Herriman High Computer Programming 1A Software Development Cycle Things to Know.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
© 2003 McGraw-Hill Australia Pty Ltd, PPTs t/a Accounting Information & Reporting Systems by A. Aseervatham and D. Anandarajah. Slides prepared by Kaye.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Describing a Pattern Lesson 2-1. Patterns and sequences We often need to spot a pattern in order to predict what will happen next. In maths, the correct.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
SYSTEM ANALYSIS AND DESIGN LAB NARZU TARANNUM(NAT)
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
In the Senior Design Center
Software Configuration Management
Chapter 18 Maintaining Information Systems
8.4 Management of Postdelivery Maintenance
Environment Assessment
DOCUMENTATION DEVELOPMENT LIFE CYCLE (DDLC)
Software Documentation
The V Model The V Model Damian Gordon Damian Gordon.
In the Senior Design Center
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Maintaining Information Systems (SAD- 18)
In the Senior Design Center
Systems Operations and Support
Introduction Software maintenance:
Software Re-engineering and Reverse Engineering
Chapter 18 Maintaining Information Systems
Presentation transcript:

Delivered System Documentation u One of the most important things that can be done to make a system maintainable is to create the best, most complete, set of documents that describes the system's design, development and testing.

Delivered System Documentation u In a well-done system, the documentation effort may equal the programming effort. u Documentation standards differ from one software organization to another.

Delivered System Documentation Wherever you go you will be expected to learn the local standards!

Technical Manual a) includes a re-examination of the software specifications and design, complete with any changes that have been made. b) The specifications and design should not be rewritten to reflect the final implementation.

Technical Manual c) Include explanations for changes that were made. d) Do everything you can to keep future software engineers from "reinventing the wheel" for this system.

Technical Manual u Table of Contents and Index u No matter how good your document and program is, it needs to be organized so that things can be found. u Report Testing Efforts u The major reason test documentation is needed during maintenance is so that regression testing can be conducted.

Technical Manual u Avoid re-inventing the wheel! u Include implementation failures so they need not be repeated.

User Support Some major reasons for maintenance are: u Unreasonable user expectations u Poor user training

User Support Maximize the chance that users will figure out what they need to know. Make manuals u clearly written, u well organized, u well indexed u SIMPLE.

Restructuring Software u Over time the quality of software deteriorates! WHY?

Restructuring Software Problem: what happens -- u If code is patched with unstructured methods – And/Or u With code that is NOT easily understood --

Restructuring Software u The code will become less and less understandable over time u The probability of change resulting in a defect increases and the cost of adequate testing increases. u Ultimately the software should be scrapped if the cost of upgrading it approaches the cost of starting over.

Restructuring Software Thoughts: What can we do? 1) If changes require increasing the size of the module, consider reorganizing the code and splitting out functionally cohesive subsections. 2) Remember to update the relevant sections of all associated documentation.

The Current Status of Maintenance Maintenance is somewhat of an art -- as is programming itself

The Current Status of Maintenance u Maintenance today includes work being done on programs that were written ten or twenty years ago. u These programs, including such things as payroll systems and compilers, are large enough and used widely enough to be worth maintaining.

The Current Status of Maintenance But, maintaining “old” code requires an understanding of the methodologies, languages and style in use at the time the software was written.

The Current Status of Maintenance Maintaining code is VERY hard work!

The Current Status of Maintenance u Sometimes, the only thing available for a system that needs maintenance is the object code u Sometimes, the only information you may have about how a program works and what it does is to consult with users who will give often conflicting responses.