- Slides: 11
THE OLD WAY AND THE NEW • Conventional software engineering has numerous well-established principles. Many are still valid; others are obsolete. • A modern software management process will incorporate many conventional principles but will also transition to some substantially new approaches.
• Many of the conventional management and technical practices have been replaced by new approaches that combine recurring themes of successful project experience with advances in software engineering technology. • This transition was motivated by the insatiable demand for more software features produced more rapidly under more competitive pressure to reduce cost.
Davis Top 30 principles 1. 2. 3. 4. 5. 6. Make quality #1 High-quality software is possible Evaluate design alternatives. Determine the problem before writing the requirements Evaluate design alternatives Use an appropriate process model
Davis Top 30 principles (Cont) 7. 8. 9. 10. 11. 12. Use different languages for different phases. Minimize intellectual distance. Put techniques before tools Get it right before you make it faster. Inspect code. Good management is more important than good technology 13. People are the key to success. 14. Follow with care.
Davis Top 30 principles (Cont) 15. 16. 17. 18. 19. 20. 21. 22. Take responsibility Understand the customer’s priorities. The more they see, the more they need. Plan to throw one away. Design for change. Design without documentation is not a design. Use tools, but be realistic. Avoid tricks
Davis Top 30 principles (Cont) 23. 24. 25. 26. 27. 28. 29. 30. Encapsulate. Use coupling and cohesion. Use the Mc. Cabe complexity measure. Don’t test your own software Analyze causes for errors. Realize that software entropy increases. People and time are not interchangeable. Excellent excellence.
Top 5 principles of modern process
6. Capture design attributes in rigorous, model based notation. 7. Instrument the process for objective quality control and progress assessment 8. Use a demonstration based approach. 9. Plan intermediate releases in groups of usage scenarios with evolving levels of details. 10. Establish a configurable process that is economically scalable.