Slide 1

Slide 1 text

jgs CSE 460 Software Analysis and Design Lecture 28: Software Architecture 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 | CSE460 | Fall 2020 | 2 jgs Software Design

Slide 3

Slide 3 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 3 jgs Software Architecture Java.util javax.swing java.awt

Slide 4

Slide 4 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 4 jgs Definition § Software design It is responsible for the code level design: what each class is doing, its relationships, and scope. § Software architecture It is responsible for the skeleton and the high-level organization of a software. It identifies the main structural modules (or components) in a system and the relationships between them.

Slide 5

Slide 5 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 5 jgs Architecture Goals § Define separate branches for each major function § Coordinate communication between modules § Limit propagation of side effects § Facilitate extensibility, modifiability and reuse

Slide 6

Slide 6 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 6 jgs Architecture Representation § The most frequently used method for documenting software architectures are simple, informal block diagrams § They show entities and relationships § They lack semantics, do not show the types of relationships between entities nor the visible properties of entities in the architecture.

Slide 7

Slide 7 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 7 jgs Architectural Decisions Is there a generic application architecture that can act as a template for the system that is being designed? How will the system be distributed across hardware cores or processors? What architectural patterns or styles might be used? What will be the fundamental approach used to structure the system? How will the structural components in the system be decomposed into sub-components? What strategy will be used to control the operation of the components in the system? What architectural organization is best for delivering the non-functional requirements of the system? How should the architecture of the system be documented? ?

Slide 8

Slide 8 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 8 jgs Architectural Patterns 1. Model-View-Controller (MVC) 2. Layered Architecture 3. Repository Architecture (Blackboard) 4. Client-Server architecture

Slide 9

Slide 9 text

jgs Model-View-Controller

Slide 10

Slide 10 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 10 jgs Model-View-Controller

Slide 11

Slide 11 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 11 jgs Model-View-Controller

Slide 12

Slide 12 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 12 jgs Model-View-Controller

Slide 13

Slide 13 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 13 jgs Model-View-Controller Description Separates presentation and interaction from the system data into three logical components: 1. Model manages the system data and operations. 2. View defines and manages how the data is presented to the user. 3. Controller manages user interaction (e.g., key presses, mouse clicks, etc.) and passes these interactions to the View and the Model. When Used • Used when there are multiple ways to view and interact with data. • Also, used when the future requirements for interaction and presentation of data are unknown. Advantages • Allows the data to change independently of its representation and vice versa. • Supports presentation of the same data in different ways with changes made in one representation shown in all of them. Disadvantages • Additional code and complexity when the data model and interactions are simple.

Slide 14

Slide 14 text

Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 14 jgs Drafting an Implementation

Slide 15

Slide 15 text

jgs To be Continued…

Slide 16

Slide 16 text

jgs CSE 460 Software Analysis and Design Javier Gonzalez-Sanchez [email protected] Fall 2020 Disclaimer. These slides can only be used as study material for the class CSE460 at ASU. They cannot be distributed or used for another purpose.