1 / 29

CS427: Software Engineering I

CS427: Software Engineering I. Darko Marinov (slides from Ralph Johnson). Software process. Important part of software engineering Johnson: “The steps a particular group follows to develop software” Purpose of the courses Be able to follow your project’s process

Télécharger la présentation

CS427: Software Engineering I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS427:Software Engineering I Darko Marinov (slides from Ralph Johnson)

  2. Software process • Important part of software engineering • Johnson: “The steps a particular group follows to develop software” • Purpose of the courses • Be able to follow your project’s process • Be able to improve your process • Be able to choose the right process for your project CS427

  3. Two (of many) processes • Rational Unified Process (RUP) • Object oriented (OO) • Incremental • Commercial, popular • eXtreme Programming (XP) • Used mostly by OO developers, not OO • Incremental • Counterculture, popular CS427

  4. Reminder • Please read the material! • Suggested reading for this class • Extreme Programming Explained by Kent Beck • http://www.extremeprogramming.org/ • http://www.xProgramming.com CS427

  5. eXtreme Programming goals • Minimize unnecessary work • Maximize communication and feedback • Make sure that developers do most important work • Make system flexible, ready to meet any change in requirements CS427

  6. Components of a process • How to understand a new process? • How to compare processes? CS427

  7. Components of a process • Artifacts – what • Things people make • Roles – who • Roles people take • Activities – how • Tasks people do • Workflows – when • Order of steps people follow CS427

  8. Artifacts • Metaphor (XP is evolving) • Stories, sorted into “iterations” • Tasks • Unit tests • Functional tests • Code CS427

  9. Roles • Customer [for project: someone outside of course or someone from your group] • Tester • Developer • Coach • Tracker • Boss CS427

  10. Activities • Writing stories • Planning game • Standup meeting • Writing tests • Making tests work • Refactoring • Integrating CS427

  11. Overall workflow • Customer produces sequence of “stories” • Developers break stories into “tasks” • Developers implement tasks one at a time, working in pairs • Developers implement tasks by • Writing tests for it • Doing “simplest thing” to make tests work • Refactoring until design is simple again CS427

  12. XP practices • On-site customer • The Planning Game • Small releases • Testing • Simple design • Refactoring CS427

  13. XP practices • Metaphor • Pair programming • Collective ownership • Continuous integration • Energized work • Coding standards CS427

  14. Pair programming CS427

  15. Tests • Unit tests (xUnit) • Test each unit of software • Write code only if there is a unit test for it • All unit tests must always run • Written by developers • Functional tests • Test entire package • Written by customer CS427

  16. Continuous integration • Integrate your work after each task • Start with official “release” • Once task is completed, integrate changes with current official release • All unit tests must run after integration CS427

  17. Design Design occurs when developers • Develop metaphor • Break story into tasks • Decide how to implement a task • Refactor CS427

  18. Simple design • Do the simplest thing that could work • For each design problem: • What are some solutions? • Will it work? (yes, no, maybe) • Pick the simplest one that might work CS427

  19. XP planning game CS427

  20. XP planning game • Customer writes stories • Developers estimate • Effort (in man-weeks) • Risk (high, medium, low) • Budget for each iteration • Customer picks enough stories to fill iterations CS427

  21. Planning XP project • Write stories until they are “complete” • Estimate and plan • Execute and measure • Revise plan • Execute and measure • Revise plan • ... CS427

  22. Estimating • If you cannot estimate a story, work on it until you can • Group design session • Prototyping • If story is too long, break it into smaller stories • Divide, conquer… • …and integrate CS427

  23. Revise plan • Measure actual number of story-weeks implemented • Make sure next iteration does not require more than previous iteration • Customer can • Add stories • Revise, remove, reschedule stories • Only developers can estimate stories CS427

  24. Improved estimating • Requires a few iterations to make good estimates • Next iterations are easier to predict than iterations that are far away • Easy to change schedule by changing stories CS427

  25. Summary of XP • Values • Communication • Simplicity • Feedback • Courage • Respect (XP is evolving) • Principles • Practices CS427

  26. RUP vs. XP: Your opinions • How would you compare them? • Which one would you prefer (when)? CS427

  27. Keys to good software • Good people • Understand the problem • Understand the solution • Enough time • Good process CS427

  28. Course info • Wiki http://brain.cs.uiuc.edu:8080/SECourse • Announcements • Grade: 5 homework assignments (15%), project (35%), midterm (15%), final (35%) • Homework 0, create a page if you didn’t • Homework 1 • Project proposal, groups of 3 (may be 2 or 4) • Due September 21 CS427

  29. Next: Project initiation • Suggested reading • Chapters 4, 5, and 7 of Hamlet and Maybee, plus sections 2.3, 2.4, and 2.5 • Catch-up reading • Chapter 1 of Hamlet and Maybee • Some overview of RUP • Some overview of XP CS427

More Related