Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSC307 Lecture 08

CSC307 Lecture 08

Introduction to Software Engineering
Software Design
(202307)

Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSC 307 Introduction to Software Engineering Lecture 08: Software

    Design Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.com Building 14 -227 Office Hours: By appointment
  2. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    4 Assignment 01 https://blockly-spiderworld.sourceforge.io/appengine/spider.html
  3. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    13 § Modeling or Design § Construction or Coding Activities
  4. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    14 Relationships Association Directed Association Reflexive Association Multiplicity Aggregation Composition Generalization Realization
  5. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    25 § public void mousePressed (MouseEvent e) {} § public void mouseClicked(MouseEvent e) { } § public void mouseReleased(MouseEvent e) { } § public void mouseEntered(MouseEvent e) { } § public void mouseExited(MouseEvent e) { } § public void mouseDragged(MouseEvent me) { } § public void mouseMoved(MouseEvent e) { } MouseListener
  6. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    26 § public void mouseDragged(MouseEvent me) { } § public void mouseMoved(MouseEvent e) { } MouseMotionListener
  7. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    30 Office Hours Tuesday and Thursday 3 - 5 pm But an appointment required Sent me an email – [email protected]
  8. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    31 § https://github.com/javiergs/GAME/blob/main/paint/src/DrawArea.java
  9. jgs

  10. jgs CSC 307 Introduction to Software Engineering Lab 07: Pair

    Programming Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.com Building 14 -227 Office Hours: By appointment
  11. jgs Pair Programming Reference: On Pair Programming by Martin Fowler

    (Agile, Architecture, Refactoring) https://martinfowler.com/articles/on-pair-programming.html
  12. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    35 § Best programs and designs are done in pairs because you can criticize each other, find each other’s errors, and use the best ideas. - Jean Bartik (one of the very first programmers) § Write all production programs with two people sitting at one machine. - Kent Beck (Agile, JUnit) Pair Programming
  13. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    36 § The process starts with the developers receiving a well-defined task. § They agree on one small goal at a time. § They take turns to code or review each other's work. § Rotating roles regularly helps keep both developers alert and engaged. § Enable senior developers to share their knowledge and working habits § Help new team members get up to speed on a project. Process
  14. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    37 § Driver (the person on the keyboard). Focused on completing the tiny goal at hand, ignoring larger issues for the moment. A driver should always talk through what they are doing while doing it. § Navigator (the person observing). They review the code on the go, gives directions, and shares thoughts. They have an eye on the larger issues, and bugs, and make notes of potential next steps or obstacles. They are in control of the strategic or architectural elements. As a navigator, leave the details of the coding to the driver – your job is to take a step back and complement the driver’s tactical mode with medium-term thinking. Roles
  15. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    38 • Equally engaging pairs. If both developers do not equally engage in the project, then there is less chance that knowledge will be shared • Social and interactive process. It is hard for those who work better alone. Problem
  16. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    39 Think about this 1. Select your pair 2. Understand the task (described before) 3. Chose and set up your environment 4. Be ready to work
  17. jgs CSC 307 Introduction to Software Engineering Javier Gonzalez-Sanchez, Ph.D.

    [email protected] Summer 2023 Copyright. These slides can only be used as study material for the class CSC308 at Cal Poly. They cannot be distributed or used for another purpose.