Software Architecture
School of Computer Science University of Oviedo
Software taxonomies Patterns, styles, tactics,...
Jose E. Labra Gayo Course 2018/2019
Software taxonomies Patterns, styles, tactics,... School of - - PowerPoint PPT Presentation
Software Architecture University of Oviedo Software taxonomies Patterns, styles, tactics,... School of Computer Science Jose E. Labra Gayo Course 2018/2019 Software Architecture Software taxonomies University of Oviedo Construction &
Software Architecture
School of Computer Science University of Oviedo
Jose E. Labra Gayo Course 2018/2019
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Jose E. Labra Gayo Course 2018/2019
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Requirements Design Implementation Verification Maintenance
Software Architecture
School of Computer Science University of Oviedo
Requirements Analysis Design Object Design Unit Testing Integration Testing System Testing Aceptance Testing Time Detail Level Low High Implementation Project Definition Project Test and Integration
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Initial Planning Planning Requirements Analysis & Design Implementation Deployment Testing Evaluation
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Original plan Current plan
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Functional Acceptance Testing Showcases Usability testing Exploratory testing Nonfunctional Acceptance testing (capacity, security,…) Unit testing Integration testing System testing
Automated Manual Automated Manual/ Automated
Support programming Critique project Business facing Technology facing
Source: Continuous delivery, J Humble, D. Farley, 2010
Software Architecture
School of Computer Science University of Oviedo
Feature: Buscar cursos Para mejorar el uso de los cursos Los estudiantes deberían ser capaces de buscar cursos Scenario: Búsqueda por asunto Given hay 240 cursos que no tienen el asunto “Biología” And hay 2 cursos A001, B205 que tienen el asunto “Biología" When Yo busco el asunto “Biología" Then Yo debería ver los cursos: | Código | | A001 | | B205 |
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
A staging environment is also used Development environment Testing Environments Production Environment
Testing Server Integration Server Version Control Production Server Server farm
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Continuous Integration Web Interface
Reports
checkout/commit Central Code repository Development Team
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Fuente: Clean Code. Robert Martin
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Ganimede, Galileo, Helios, Indigo, Juno,...
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Wabi-sabi philosophy Accept imperfection Software that is not finnished: Good enough
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Program
Programmer Program Computer Other programmers & maintainers
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Ganimede, Galileo, Helios, Indigo, Juno,...
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
1 Baseline 4 Trunk 2 3 Branchs 5 6 9 7 T1 T2 8 10 Tags merge
Software Architecture
School of Computer Science University of Oviedo
1 Baseline 4 Trunk 2 3 Branchs 5 6 9 7 T1 T2 8 10 Tags merge
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
commit add rm
HEAD
Software Architecture
School of Computer Science University of Oviedo
master develop hotfix-1 feature-1 feature-2
0.1 1.0 0.2
tags Branches
Software Architecture
School of Computer Science University of Oviedo
push clone fetch pull commit add rm Local Machine
HEAD
Software Architecture
School of Computer Science University of Oviedo
.gitignore file indicates which files are not going to be tracked by version control system
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Mozilla Firefox dependency graph
Source: The purely functional deployment model. E. Dolstra (PhdThesis, 2006)
Software Architecture
School of Computer Science University of Oviedo
A B C D E G In the example: CCD=7+3+4+1+1+1+1=18 F
Software Architecture
School of Computer Science University of Oviedo
CCD = 7+7+7+1+7+1+1=31 A B C D E G F
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Jason van Zyl Creator of Maven
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Local Artifact Repository Remote Artifact Repository <user>/.m2/repository Maven Central
Software Architecture
School of Computer Science University of Oviedo
* Source: http://takari.github.io/javaone2015/still-rocking-it-maven.html
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>es.uniovi.asw</groupId> <artifactId>censusesN</artifactId> <version>0.0.1</version> <name>censusesN</name> ...
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
... <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.3</version> </dependency> ...
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
<project> ... <packaging>pom</packaging> <modules> <module>extract</module> <module>game</module> </modules> </project>
Software Architecture
School of Computer Science University of Oviedo
List of plugins: https://maven.apache.org/plugins/index.html
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
{ "name": "...mandatory...", "version": "...mandatory...", "description": "...optional...", "keywords": "...", "repository": {... }, "author": "...", "license": "...", "bugs": {...}, "homepage": "http://. . .", "main": "index.js", "devDependencies": { ... }, "dependencies": { ... } "scripts": { "test": " ... " }, "bin": {...}, }
Note: Yeoman provides fully featured scaffolding
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
Software Architecture
School of Computer Science University of Oviedo
https://docs.npmjs.com/cli-documentation/