120 likes | 235 Views
System Maintenance. Modifications or corrections made to an information system after it has been released to its customers Changing an information system while it is in operation Evolving an information system to adapt to changing business conditions and user needs.
E N D
System Maintenance • Modifications or corrections made to an information system after it has been released to its customers • Changing an information system while it is in operation • Evolving an information system to adapt to changing business conditions and user needs
Systems Development Lifecycle Models • Waterfall • Iterative Enhancement • Prototyping • Spiral model • Rapid Application Development • Inspections and Reviews
Systems Lifecycle Software Engineering Lifecycle Project Identification & Selection Feasibility Analysis Project Initiation & Planning Requirements Design Analysis Logical Design Coding & Integration Physical Design Test Implementation Installation Maintenance Maintenance
IEEE Maintenance Process Modification request • Classification and Identification • Analysis • Design • Implementation • System Test • Acceptance Test • Delivery
Categories of Maintenance • Corrective - fixing bugs • Adaptive - no change to functionality, but now works under new conditions • Perfective - adds something new; makes the system “better” • Preventive - enhances internal structure of system without affecting external behavior “Enhancements”
Maintenance Terms • Configuration Control Board (CCB) - organizational unit that makes decisions about what proposed maintenance changes will actually be made • Regression testing - testing a modified system with some of the test cases with which it was originally tested to make sure that only those functions that were meant to change actually behave differently • Releases - planned collections of maintenance changes that are applied to a system before it is delivered to customers • Patches - emergency fixes to a system that are delivered to customers between scheduled releases • Configuration management - the process of keeping track of different versions of a system that have been supplied to different customers and that must be maintained separately
Maintenance Terms (cont.) • Ripple effect - the (usually unintended) effects that a change in one part of a system has on other parts of the system • Impact analysis - analysis of a planned modification to a system in an effort to determine all of the components of the system that will be affected by the modification, including ripple effects • System decay - a degradation of system structure and quality over time due to poorly planned and executed changes • Program comprehension - the human process of understanding a piece of software code • Porting - a type of adaptive maintenance in which a system is translated from one operating system, language, or platform to another
Impact analysis • During planning - determine modules that will need to be modified, to estimate time and resources needed • During analysis - understand data and control flow in order to follow chain of ripple effects • During design & implementation - keep track of what ripple effects have been accounted for • During test - known ripple effects guide testing; further testing reveals unknown ripple effects
Impact Analysis Strategies • Data flow - follow changed pieces of data (variables) from one module to another to see what other variables are affected • Control flow - follow the “call chain,” i.e. what modules are called by affected modules • Program slicing - based on data flow and/or control flow
Course Logistics • Meet every Tuesday at 7:00pm for 2-3 hours • Group project - small-to-medium maintenance task • Leading class - lecture, discussion, and class exercises • Exams - non-traditional • Class participation - I take this seriously!
Student-led Class Sessions • Part I: 30-minute (~10-12 slides) lecture on textbook chapter • Part II: Class discussion based on 3 research papers • Part III: Class exercise from textbook • By Friday: send me an email with first and second preferences for topic, date, and part
Information for Forming Project Teams • Name • Department • Degree Program • Programming experience (languages, length of experience, type of experience) • Other skills • Times you could meet regularly