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

SER516 S20 Lecture 13

SER516 S20 Lecture 13

Software Agility
Clean Design I
(202103)

Javier Gonzalez-Sanchez

February 17, 2019
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    SER 516
    Software Agility
    Lecture 13: Clean Design
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View full-size slide

  2. jgs
    516 00001101
    Announcement
    § Quiz 05 is open, and it is due tonight
    Individual Work
    § Midterm Exam - Thu March 11
    § Midterm Review – Tue March 9
    § Final Exam - Thu April 22
    § Final Review – Tue April 20

    View full-size slide

  3. jgs
    516 00001101
    Assignment 05
    § 2 Sprints
    Sprint Backlog
    Burndown Chart
    Retrospective
    Review
    Product – Source Code – Clean Source Code
    Product – Class Diagram– Clean Design
    Due date Assignment 5.1 – March 9
    Due date Assignment 5.2 – March 16

    View full-size slide

  4. jgs
    516 00001101
    Requirement
    Space 2 …
    Project 4 O
    X
    -
    Space 1
    (
    )
    <
    >
    | |
    -
    @
    Save
    Load
    New Space Compile
    4.
    Compile ?!

    View full-size slide

  5. jgs
    516 00001101
    Building a City
    § How to handle all the details?
    Team working
    § But some people is responsible for the big picture, while others focus on
    the details.
    § Architecture

    View full-size slide

  6. jgs
    516 00001101
    Goal
    § Be Careful:
    § Big Design Up Front (BDUF)
    § It could Inhibit adapting to
    change
    • Modularized domains
    of concerns
    • Integrated with minimal
    invasive aspects
    (dependencies)
    • It should feel like
    this is the simplest thing…

    View full-size slide

  7. jgs
    516 00001101
    Design Principles
    § Concerns and Separation of concerns
    § Dependencies and Dependency Injection
    § Low Coupling

    View full-size slide

  8. jgs
    Separation of concerns

    View full-size slide

  9. jgs
    516 00001101
    1. Separate concerns
    § Concern: a matter of interest or importance to someone.
    § Divide and Conquer: each unit should only talk to its friends; don't
    talk to strangers

    View full-size slide

  10. jgs
    516 00001101
    Requirement
    Space 2 …
    Project 4 O
    X
    -
    Space 1
    (
    )
    <
    >
    | |
    -
    @
    Save
    Load New Space Compile
    4.
    Compile ?!

    View full-size slide

  11. jgs
    516 00001101
    Step 1
    _____ to
    Icons
    _____ to a
    Working area
    _____ to a
    Menu

    View full-size slide

  12. jgs
    516 00001101
    Step 1
    PanelLeft
    JMenuBar Main
    JMenu
    JMenuItem JFrame
    JPanel
    Workspace

    View full-size slide

  13. jgs
    516 00001101
    Step 1
    PanelLeft
    JMenuBar Main
    JMenu
    JMenuItem JFrame
    JPanel
    Workspace Icon
    *
    A
    B
    C
    ____Listener

    View full-size slide

  14. jgs
    516 00001101
    Step 1
    PanelLeft
    JMenuBar Main
    JMenu
    JMenuItem JFrame
    JPanel
    Workspace
    Icon
    *
    A
    B
    C
    ____Listener Graph
    Edge
    Compiler

    View full-size slide

  15. jgs
    516 00001101
    Reference
    § Clean Code, Chapter 11.

    View full-size slide

  16. jgs
    SER 516 Software Agility
    Javier Gonzalez-Sanchez
    [email protected]
    Spring 2021
    Disclaimer. These slides can only be used as study material for the class SER516 at ASU. They cannot be distributed or used for another purpose.

    View full-size slide