11_software_engineering

11_software_engineering - Part 11: Software Engineering...

Info iconThis preview shows pages 1–10. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Part 11: Software Engineering CS252: Systems Programming Ramana Kompella Computer Science Department Purdue University Joel ` s Test q Joel Spolsky is a software developper who has written several books on Software Engineering. q His blog is in http://www.joelonsoftware.com q He is a proponent of l Extreme Programming z a Software Engineering Technique for software development. q This is l Joel ` s Test z that summarizes what is important in practical Software Engineering. q See http://www.joelonsoftware.com/ articles/fog0000000043.html Joel Test The Joel Test 1. Do you use source control? 2. Can you make a build in one step? 3. Do you make daily builds? 4. Do you have a bug database? 5. Do you fix bugs before writing new code? 6. Do you have an up-to-date schedule? 7. Do you have a spec? 8. Do programmers have quiet working conditions? 9. Do you use the best tools money can buy? 10. Do you have testers? 11. Do new candidates write code during their interview? 12. Do you do hallway usability testing? Total = 100* (#Yes/12) What is Extreme Programming (XP)? q XP stands for l Extreme Progamming z q It is a practical methodology for software development. q It gives a list of rules that have been proven successful in software development. q Instead of emphasizing a straight l design- and- program z approach, it encourages an iterative approach. When to use XP Programming? q It is for projects that have some risk of completion Design changes continuously. Customer does not have a clear idea of what has to be accomplished. q Used for small groups (2-12 people) q Requires good communication between customers and programmers. Rules and Practices of XP q Planning User Stories Release Planning Frequent Small Releases Measure Project Development Iterative Development q Managing Dedicated work space Standup meeting Move People Around Daily Standup Meeting Fix XP when it breaks q Designing Keep it Simple Choose System Metaphor Use Class Responsibility Collaboration cards Create l Spike Solutions z Do not add functionality early Refactor Rules and Practices in XP (cont.) q Testing All code must have unit tests All code must pass all unit tests before integration q When a bug is found create a test. Create acceptance tests See l Extreme Programming: A gentle introduction z ; http:// www.extremeprogramming.org/ q Coding Have customer available Follow coding standards Code unit-test first Use pair programming One code integration at a time Integrate often Collective ownership Leave optimization until the end. No overtime Code integration Values of Extreme Programming q Simplicity Do whats asked for and not anything more Small steps to our goal q Communication Frequent communication among developers Collective responsibility q Feedback Demonstrate early and obtain early feedback Iteratively design, code, test q Respect Everybody is a valuable team member...
View Full Document

Page1 / 55

11_software_engineering - Part 11: Software Engineering...

This preview shows document pages 1 - 10. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online