Software Engineering I cs361 Announcements Review Github usage for - - PowerPoint PPT Presentation

software engineering i cs361 announcements review github
SMART_READER_LITE
LIVE PREVIEW

Software Engineering I cs361 Announcements Review Github usage for - - PowerPoint PPT Presentation

Software Engineering I cs361 Announcements Review Github usage for Assignment 1 architectural patterns Cont Architectural Patterns MVC Layers Microservices Peer-to-Peer Pipe and Filter Service-Oriented architecture


slide-1
SLIDE 1

Software Engineering I cs361

slide-2
SLIDE 2

Announcements

slide-3
SLIDE 3

Review Github usage for Assignment 1

slide-4
SLIDE 4

architectural patterns Cont

slide-5
SLIDE 5

Architectural Patterns

✖ MVC ✖ Layers ✖ Microservices ✖ Peer-to-Peer ✖ Pipe and Filter ✖ Service-Oriented architecture ✖ Event-Driven Architecture ✖ Blackboard

slide-6
SLIDE 6

Layers

The Layers architectural pattern helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction.

slide-7
SLIDE 7

Layers

Physical Data Link Network Application Session Presentation Application Physical Data Link Network Application Session Presentation Application

slide-8
SLIDE 8

Layers

Benefits: Makes reuse easier Makes individual layers interchangeable Layers interact clearly defined

slide-9
SLIDE 9

Layers

Drawbacks: Possibly less efficient then monolithic solution Layers sometimes introduce unnecessary work

slide-10
SLIDE 10

Microservices

A pattern where software systems provide minimal functional core which then can be expanded with extended functionality.

slide-11
SLIDE 11

Microservices

https://speakerdeck.com/rossbachp/wjax2014-docker-tomcat-microservices

slide-12
SLIDE 12

Microservices

http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html

slide-13
SLIDE 13

Microservices

Benefits: Strong Module Boundaries Independent deployment High diversity of technology

slide-14
SLIDE 14

Microservices

Drawbacks: Distribution adds complexity Eventual Consistency must be managed Higher operational complexity

slide-15
SLIDE 15

Peer-To-Peer

A group of peer nodes where every peer simultaneously functions as a client and a server

slide-16
SLIDE 16

Peer-To-Peer

Peer Peer Peer Peer Peer Peer

slide-17
SLIDE 17

Peer-To-Peer

Benefits All resource shared More reliable with no single point of failure Costs less to build and maintain the network

slide-18
SLIDE 18

Peer-To-Peer

Drawbacks Less Secure Hard to Backup No centralized authority

slide-19
SLIDE 19

Pipe and Filter

Provides a structure for systems that process a stream of data. Each step (filter) processes the data and passes is on to the next

  • step. Can be composed in any
  • rder.
slide-20
SLIDE 20

Pipe and Filter

cat input.txt | grep "text" | sort > output.txt

slide-21
SLIDE 21

Pipe and Filter

Scanner Parser Symantic Checker Bytecode Generator

slide-22
SLIDE 22

Pipe and Filter

Benefits Flexible behavior Filters can be reused Ease of debugging

slide-23
SLIDE 23

Pipe and Filter

Drawbacks Error handling can be difficult Cannot share state between filters

slide-24
SLIDE 24

Event Driven Architecture

An external change in state (event) causes the application to respond to the change in events. Built with component models with no direct connection with each other.

slide-25
SLIDE 25

Event Driven Architecture

http://infospheres.caltech.edu/sites/default/files/Event-Driven%20Applications%20-%20Costs,%20Benefits%20and%20Design%20Approaches.pdf

slide-26
SLIDE 26

Event Driven Architecture

Benefits: Broadcast Communications Asynchrony built in Events distributed in timeliness

slide-27
SLIDE 27

Event Driven Architecture

Drawbacks: Can be a little Brittle Different understanding of events can lead to problems

slide-28
SLIDE 28

Credits

Special thanks to all the people who made and released these awesome resources for free: ✖ Presentation template by SlidesCarnival ✖ Photographs by Unsplash