5. Software maintenance 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 6. 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 7. 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: – – – – Feed results back! 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 8. 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 9. Software engineering models and methods • Using abstractions • Perspectives of models: Information, Structure, Behavior • Analysis: Completeness, Consistency, Correctness, Traceability, Interaction • Methods: Heuristic, formal, prototyping, agile 10. Software quality • Often: the static counterpart to testing • SQA works much with processes and reviews • Predict quality and prevent problems • Characterizing quality • Characterizing deviations 11. Software engineering professional practice • • • • • • Authoritizations Code of ethics Life-long learning: technical societies Business and legal issues Teamwork Communication: Read, understand, summarize, write, present. 12. Software engineering economics • Guide decision making for the goal of the organization • Basic terminology in English • Software is often an investment • Software is hard to estimate • “Good enough” • “Friction-free market” • “Ecosystems” • “Outsourcing” Bottom-line is reuse worth the investment? money income rest value time investment cash flow per time unit NPV = Σ CFi/(1+k)i - I0 k reflects: Compensation for waiting Compensation for inflation Compensation for risk 13. Computing foundations • Check weak points in previous education • Individual profile 14. Mathematical foundations • Time to rehearse from earlier years • Goal: make sure you can find information given that you need to solve a problem • Challenge? Terms in English. 15. Engineering foundations • Experiments: controlled, case-study, archive study • Statistical analysis: hypothesis testing, model building • Measurement theory: scales, validity • Engineering design: alternatives, tradeoffs, optimizations 15. Engineering foundations • • • • • Models: iconic, analogic, symbolic Simulation: Discrete, Continuous Prototyping: purpose, stage in life cycle Standards Root-Cause-Analysis (RCA) Appendix A • Ideas and structure behind SWEBOK • Process of writing • Relation to education curriculae Appendix B • • • • Related standards ISO/IEC IEEE KA - > standards 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 • Systems engineering – integrates disciplines