html5-img
1 / 29

Software Engineering in Practice CS 420 – Spring 2012

Software Engineering in Practice CS 420 – Spring 2012. Dr. Orest Pilskalns orest@vancouver.wsu.edu http://bitterroot.vancouver.wsu.edu. About the Course. TA – TBD: Syllabus In Practice? Group project, Time Management, Cost Estimation More OOAD, Testing, and Analysis

shima
Download Presentation

Software Engineering in Practice CS 420 – Spring 2012

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. Software Engineering in PracticeCS 420 – Spring 2012 Dr. Orest Pilskalns orest@vancouver.wsu.edu http://bitterroot.vancouver.wsu.edu

  2. About the Course • TA – TBD: • Syllabus • In Practice? • Group project, Time Management, Cost Estimation • More OOAD, Testing, and Analysis • Version Control and Bug Tracking

  3. Group Project • Group Project Proposals (so far): • Location based service framework • Server team (create framework) • Client team(s) create various apps • IDE

  4. Tentative Schedule For Start of the Semester 1. Define High Level Description of Problem 2. Team, Time, and Project Management (Select Teams) 3. Version Control and Bug Tracking (Start Project) 4. Learn About Testing, Analysis, and Maintenance along the way

  5. Peer Evaluation, how?

  6. What Should I Know About Java and Ant? • core syntax • packages • exceptions • create ant build file • javadoc • inner classes and event handling • swing

  7. What new technology will I learn? • Distributed computing • Java Application Servers (JSP/EJB) • Database/DB connections • Javascript (Google Maps API) • Mobile APIs

  8. What is the difference between software engineering and computer science? • Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software

  9. OOAD • UML vs. Thinking in Objects • UML = notation • OOD: Principles and Patterns • Object interactions • Responsibility driven design • Patterns = named problem-solution formulas

  10. OOAD • Use-Cases • Requirements analysis • Iterative Development • UP, Agile

  11. Most Important Learning Goal • A critical ability in OO development is to skillfully assign responsibilities to software objects.

  12. What is Analysis and Design • Analysis = investigation of the problem and requirements rather than a solution • Design = conceptual solution • OO Analysis = emphasis on find and describing objects • OO Design = emphasis on defining objects

  13. Software Development Process • Describes approach to building deploying and maintaining software • Rational Unified Process (RUP) • Extreme Programming • Spiral Model • Waterfall

  14. What is the Unified Process? 1. Iterative 2. Gives an example Structure 3. Flexible (Agile Methods can be Applied)

  15. What is Iterative and Evolutionary Dev • Iterative: dev organized into short, fixed length mini projects • Outcomes of each iteration: • Tested • Integrated • Executable Partial System • Each Iteration Includes: • Req’s analysis • Design • Implementation • Testing • Evolutionary/Spiral Models

  16. Fig. 2.1

  17. Benefits of Iterative • Less project failure • Early mitigation of risks • Visible Progress • Early Feedback, User Engagement • Manage Complexity • Methodically improve dev process

  18. What about the Waterfall? • Research shows: • 45% of req’s never used • Schedule and estimate vary up to 400% • Too much time on requirements may superimpose Waterfall on Iterative • Why all the problems? 25%-30% change in requirements • Need feedback and adaptation

  19. Iterative Approach Example (1) • Before Iteration 1: High Level Req’s (3 Days) • Chief Architect Names 10 – 20 Use-Cases • High business value, high risk • Deeply Analysis 10% of Req’s – 90% High Level • Before Iteration 1: Define Subset of Use-Cases (even parts of Use cases)

  20. Iterative Approach Example (2) • Do Iteration 1 • Model design in pairs – create UML docs • Program • Test unit, acceptance load usability and so forth • Code Freeze (Integration Test) • Show Progress (get feedback from stakeholders)

  21. Iterative Approach Example (3) • Do the second req’s workshop and adjust to feedback • Define Subset • Do Iteration 2

  22. Fig. 2.4

  23. What is Risk-Driven and Client Driven 1: Identify and drive down highest risks 2: Build Visible Features Architecture Centric – Start with the Core Features!

  24. Agile Principles • Highest priority is to satisfy customers. • Welcome changing req’s. • Deliver working software frequently • Customers and Developers work together • Build project around motivated people • Face to Face conversation best way to communicate • Working Software metric of progres • Agile method promotes sustainable development • Maintain constant pace • Continuous attention to technical excellence • Simplicity (Occam’s Razor) • Team reflects on becoming for effective

  25. Agile Modeling • Used to Understand • Promote communication • Model only tricky parts • Use Simplest Tool Possible • Model in groups • Create Models in Parallel (Structure and Behavior) • Exact Details May not Be Important • All Prior Diagrams may be incomplete • Developers should do OO design themselves

  26. What are the UP Phases • Inception – approximate vision, business case, scope , vague estimates • Elaboration – refined vision, iterative implantation of the core architecture, resolution of high risks and most requirements, realistic estimates • Construction –iterative implementation of the remaining lower risk elements and prep for deployment • Transition – more testing, deploy

  27. What are UP Disciplines • Business Modeling – domain model artifacts • Requirements – use-cases • Design

  28. Fig. 2.6

  29. Fig. 2.7

More Related