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

CSE460 Lecture 37

CSE460 Lecture 37

Software Analysis and Design
Final Review
(202012)

Javier Gonzalez-Sanchez

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
  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)
  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!
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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.
  9. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 11 jgs

    Note: There are 3 classes and 1 interface 10. Connecting the Dots
  10. 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
  11. 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
  12. 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
  13. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 15 jgs

    Model 11, 12 Software Architecture View Controller Blackboard KnowledgeSource Control
  14. 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
  15. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 18 jgs

    13. Quality Metrics Instability = Cout (Cin + Cout) D = A + I – 1
  16. 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
  17. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 20 jgs

    14, 15. Model-Driven Development and EMF
  18. 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; } }
  19. 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.