Differences btwn mainteance and development Smaller configuration management units Understanding Impact analysis Smaller, more frequent decisions Show ROI Staffing Outsourcing more complicated
Techniques in maintenance Trace behaviour Code browsers Reverse engineering Reengineering Refactoring Cost estimation for maintenance Predicting maintainability
Software Configuration Management Identify and describe software items Identify and describe relations between items Keep an updated version of interfaces Version, revision, variant Baseline, intermediary release Change management Configuration auditing Research: advanced tool support
Software engineering management Measurement-based management Keep measurement–expertise at compatible levels Much project planning Supplier management Closure
Measurement programme Establish and sustain committment Plan the measurement process: –Characterize the organizational unit –Identify information needs –Select measures –Define procedures for data collection, analysis and reporting –Define criteria for the measurement process itself –Approve and provide resources –Select methods and tools Integrate with existing processes Feed results back!
Experience factory
Software engineering processes General discussion of processes for SE Software process management cycle: –Establish infrastructure, commitment, resources, eg experience factory –Plan based on an understanding of the organisation –Implement and change process –Evaluate process Assessment methods Notations
Process measurement Productivity Product measures Techniques: –Experiments –Review –Orthogonal defect classification –RCA –SPC Research-like methods
Issues in tools Integration, meta-tools, evaluation
Software quality Often: the static counterpart to testing SQA works much with processes and reviews Predict quality and prevent problems
Related disciplines Computer engineering – system view on environment Computer science – theoretical foundation Management – incl law Mathematics – esp statistics Project management – though with iterations Quality management – needs data Software ergonomics – incl usability, AI Systems engineering – integrates disciplines