Sunteți pe pagina 1din 49

Software architecture

Summary

● Quiz evaluation ● ROA type


● Glossary of terms ● Client-Server
● Software Architecture ● Web Server
● Design & Style ● Database
● Layered type ● Useful tools
● SOA type ● Questions/Feedback
Quiz evaluation

● Bug vs. error


● Not reproducing on my machine...
● Real life: severity vs. priority
● Bug types from your experiences
● Why do we need bug reports
● What helps finding bugs faster
● What is not part of a bug report
Glossary of terms

● software ● service
● architecture ● request
● client ● response
● server ● status
Software architecture

is a result of a set of business


and technical decisions
Software architecture

● Business: customer requirements, end user,


short deadlines, available human resources
● Technical: people skills, programming principles,
previous architectures used
Software architecture

it covers the complete functionality and


connections between software systems
components
Software architecture

● Costs and efficiency: small costs, fast delivery


● Extensibility: can the application be extended easy?
● Modularity: easy to re-use, easy to maintain
Software architecture

● Adaptability - easy to integrate new changes


● Scalability - higher traffic not affecting performance
● Security - address common security threats
Architecture design

● decompose software into smaller components


● each component performs an important service
● relatively independent one to each other
● may be further decomposed into smaller
subcomponents
Architecture styles

● found repeatedly in practice


● a package of design decisions
● has known properties that can be reused
Architecture styles

● Layered
● Resource-Oriented Architecture (ROA)
● Service-Oriented Architecture (SOA)
● Client-Server
Layered architecture

Separates the functionality of the


application into individual groups.
Layered architecture

● Presentation layer
● Business layer
● Data layer
Layered architecture
ROA Architecture

● REpresentational State Transfer - REST


● every component is a resource, identified by
URIs (Uniform Resource Identifier)
ROA Architecture

● requests return representations of the resources


● Resource, URI, Representation
● HTTP (Hypertext Transfer Protocol) methods:
GET, PUT, DELETE, POST
SOA Architecture

● involves communication with a specific


application service
● all requests are sent to service endpoint
SOA - Service

● a simple interface of a much more complex system


● performs a task, hiding its internal structure
● it combines behavior and information
SOA - Web Service

● software available over the Internet


● not tied to any operating system
SOA - Web Service
SOA - Web Service

● HTML - HyperText Markup Language


● XML - eXtensible Markup Language
● WSDL - Web Services Description Language
● SOAP - Simple Object Access Protocol
Client-server architecture

It separates the system into two sides, where a


client send requests to a server. Often, the
server is a database that handles the
application logic.
Client-server architecture
Client-server architecture

● network architecture
● each computer on the network is either
CLIENT or SERVER
The client

● machine where users are accessing applications


● clients are making requests to the servers
● e.g. browsers, email clients
The server

● powerful computers, receiving client's requests


● it processes the request and sends back the response
● they are always up, ready to serve other requests
Client-server architecture

● web server - serves web pages


● email server - serves emails
● file server - servers files
Web basics

● Internet? WWW?
● DNS - Domain Name Server
● IP - Internet Protocol
Web basics

● Website, Web Browser, HTML


● URL (Uniform Resource Locator) accessed
using HTTP
Web Server

● Web site: collection of web pages


● Web server: software that responds to
requests for web pages
Web Server

● Tomcat
● Apache
● JBoss
● IIS (Internet Information Services)
Web Server

Web server can:


● send the response directly to the client
● execute a script or querying a database
then sending a response
Web Server

1. Browser requests the URL


2. Browser resolves domain name to an IP address
3. Web Server sends the requested page
4. Browser displays the webpage
Database

● collection of data
● as simple as a text file with list of names
● as complex as a relational database management
system
Database - text file
Database - CSV file
Database
Tools - FTP Client

https://winscp.net/eng/download.php
Tools - PuTTY

https://www.chiark.greenend.org.uk/~sgtatham/
putty/latest.html
(get putty.exe)
Tools - PostMan

https://www.getpostman.com/
Tools - FireBug

http://getfirebug.com/
Tools - Jing

https://www.techsmith.com/download/jing/
Tools - Fiddler

https://www.telerik.com/download/fiddler
Tools - MySQL Workbench

https://dev.mysql.com/downloads/workbench/
Tools - Microsoft Excel

● You should have it already installed


● Alternative:
https://www.libreoffice.org/download/downlo
ad/
Tools - Notepad++

https://notepad-plus-plus.org/download/v7.4.2.html
Questions?
Feedback :)
https://goo.gl/forms/azpKbK3QW9sFAAW13

S-ar putea să vă placă și