Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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)

Slide 3

Slide 3 text

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!

Slide 4

Slide 4 text

jgs Review

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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; } }

Slide 22

Slide 22 text

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.