$30 off During Our Annual Pro Sale. View Details »

CSE460 Lecture 37

CSE460 Lecture 37

Software Analysis and Design
Final Review
(202012)

Javier Gonzalez-Sanchez
PRO

August 06, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSE 460
    Software Analysis and Design
    Lecture 37: Final Review
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 2
    jgs
    Announcements
    § November 30. No lecture that day
    § December 02. Final Exam (during the lecture starting time 9:40 am)

    View Slide

  3. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 3
    jgs
    Announcements
    Before the exam
    § Sample Exam is available. Test your system ASAP
    § Read the Guidelines for Midterm exam on Canvas
    During the exam
    § Show your environment.
    § It is a CLOSED-BOOK exam. Do not use any material
    § Scratch paper is allowed. Empty White Paper. Show it on camera when you
    show your environment!

    View Slide

  4. jgs
    Review

    View Slide

  5. jgs
    The following slides shows some examples
    related to some topics
    This is NOT a comprehensive list of topics
    Topics in the exam can be found
    Weeks 1 to 9 :: Lectures 1 to 23

    View Slide

  6. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 6
    jgs
    Part A (Review Lecture 23)
    Presentation 1. Complexity 2. Antipatterns
    3. Requirement Analysis
    4. Object Model 5. Object-Oriented Programming
    Assignment 02 6. Object-Oriented Principles
    and Clean Code Principles 7. Dependency Principles Practice
    8. Design Patterns
    Practice
    Assignment 03 Midterm Review

    View Slide

  7. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 7
    jgs
    Part B
    9. Additional Design Patterns 10. Connecting the Dots
    11. Software Architecture 12. Architecture Patterns
    Assignment 04 13. Metrics
    14. Model-Driven Development 15. Eclipse Modeling Framework
    Final Review

    View Slide

  8. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 8
    jgs
    9. Design Patterns
    § Chain of Responsibilities (code and diagram)
    § Factory (code and diagram)
    § Adapter (code and diagram)
    § Singleton
    § Decorator
    § Observer

    View Slide

  9. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 9
    jgs
    9. Design Patterns
    § Students and Staff members can request the Library to notify him/her when a Book becomes
    available.
    § Also, they can reserve the book. Before reserving a Book for someone the Library check, for
    students, with the Registrar, if the Student is currently enrolled, and for employees, with Human
    Resources if the employee has an active contract.

    View Slide

  10. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 10
    jgs
    10. Connecting the Dots

    View Slide

  11. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 11
    jgs
    Note:
    There are 3 classes and 1 interface
    10. Connecting the Dots

    View Slide

  12. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 12
    jgs
    10. Connecting the Dots
    wrapper2
    Main wrapper1
    Factory
    decoration
    Envelope
    Box
    Gift
    wrapper3
    ball
    Supervisor
    Is big > 10, box Is small < 5, envelop

    View Slide

  13. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 13
    jgs
    Model
    10. Connecting the Dots
    Main
    Factory
    Gift Ball Box Envelop
    Handler
    Supervisor
    Bin
    View
    GUI
    Controllers
    Listener

    View Slide

  14. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 14
    jgs
    11, 12 Software Architecture
    § Architecture vs Design
    § Architecture Patterns
    § Model-View-Controller (Code and Diagrams)
    § Layered Architecture
    § Blackboard (Code and Diagrams)
    § Client-Server (Code and Diagrams)
    § Java Swing/AWT

    View Slide

  15. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 15
    jgs
    Model
    11, 12 Software Architecture
    View Controller
    Blackboard
    KnowledgeSource
    Control

    View Slide

  16. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 16
    jgs
    13. Quality Metrics
    Metrics
    Size
    LOC
    eLOC
    lLOC
    Understandability
    Comments
    Whitespaces
    Complexity
    Average, Max, Min LOC
    Interface Complexity
    Cyclomatic Complexity

    View Slide

  17. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 17
    jgs
    13. Quality Metrics

    View Slide

  18. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 18
    jgs
    13. Quality Metrics
    Instability = Cout
    (Cin + Cout)
    D = A + I – 1

    View Slide

  19. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 19
    jgs
    14, 15. Model-Driven Development and EMF
    § What is?
    § How they work?
    § Patterns involve?
    § Interfaces?
    § Class diagram

    View Slide

  20. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 20
    jgs
    14, 15. Model-Driven Development and EMF

    View Slide

  21. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 21
    jgs
    14, 15. Model-Driven Development and EMF
    package myModel.impl;
    public class StudentImpl extends MinimalEObjectImpl.Container implements Student {
    protected boolean hasScholarship = HAS_SCHOLARSHIP_EDEFAULT;
    protected Computer computer;
    @Override
    public void setComputer(Computer newComputer) {
    Computer oldComputer = computer;
    computer = newComputer;
    if (eNotificationRequired())
    eNotify(new ENotificationImpl
    (this, Notification.SET, MyModelPackage.STUDENT__COMPUTER, oldComputer, computer));
    }
    @Override
    public Computer getComputer() {
    if (computer != null && computer.eIsProxy()) {
    InternalEObject oldComputer = (InternalEObject)computer;
    computer = (Computer)eResolveProxy(oldComputer);
    if (computer != oldComputer) {
    if (eNotificationRequired())
    eNotify(new ENotificationImpl
    (this, Notification.RESOLVE, MyModelPackage.STUDENT__COMPUTER, oldComputer, computer));
    }
    }
    return computer;
    }
    }

    View Slide

  22. jgs
    CSE 564 Computer Systems Fundamentals
    Javier Gonzalez-Sanchez
    [email protected]
    Fall 2020
    Disclaimer. These slides can only be used as study material for the class CSE564 at ASU. They cannot be distributed or used for another purpose.

    View Slide