1 Introduction. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2006

Samankaltaiset tiedostot
7. Product-line architectures

7.4 Variability management

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

2 Description of Software Architectures

T Software Architecture

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

Capacity Utilization

Efficiency change over time

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Collaborative & Co-Creative Design in the Semogen -projects

SOA SIG SOA Tuotetoimittajan näkökulma

Kokonaisarkkitehtuurin omaksuminen: Mahdollisia ongelmakohtia ja tapoja päästä niiden yli

HITSAUKSEN TUOTTAVUUSRATKAISUT

ISEB/ISTQB FOUNDATION CERTIFICATE IN SOFTWARE TESTING III

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

DIGITAL MARKETING LANDSCAPE. Maatalous-metsätieteellinen tiedekunta

Rakentamisen 3D-mallit hyötykäyttöön

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

The CCR Model and Production Correspondence

KOMPETENSSIT. Koulutus Opiskelija Tuuttori. Business Information Technologies. NQF, Taso 6 - edellyttävä osaaminen

Other approaches to restrict multipliers

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

Information on preparing Presentation

Hankkeen toiminnot työsuunnitelman laatiminen

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Security server v6 installation requirements

AYYE 9/ HOUSING POLICY

Helsinki Metropolitan Area Council

BLOCKCHAINS AND ODR: SMART CONTRACTS AS AN ALTERNATIVE TO ENFORCEMENT

EUROOPAN PARLAMENTTI

Use of spatial data in the new production environment and in a data warehouse

Security server v6 installation requirements

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

Teknologia-arkkitehtuurit. Valinta ja mallinnus

1 Johdanto. Pieni motivointikalvo. 1.1 Mikä on ohjelmistoarkkitehtuuri?

Land-Use Model for the Helsinki Metropolitan Area

Returns to Scale II. S ysteemianalyysin. Laboratorio. Esitelmä 8 Timo Salminen. Teknillinen korkeakoulu

WP3 Decision Support Technologies

Projektinhallinta: riskeihin varautuminen

Data Quality Master Data Management

Windows Phone. Module Descriptions. Opiframe Oy puh Espoo

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

T Software Architecture

Aluksi. Riskien hallinta. Riskityyppejä. Riskillä on kaksi ominaisuutta. Reaktiivinen strategia. Proaktiivinen strategia

LYTH-CONS CONSISTENCY TRANSMITTER

Ostamisen muutos muutti myynnin. Technopolis Business Breakfast

ProAgria. Opportunities For Success

VBE2 Työpaketit Jiri Hietanen / TTY

16. Allocation Models

Infrastruktuurin asemoituminen kansalliseen ja kansainväliseen kenttään Outi Ala-Honkola Tiedeasiantuntija

AKKREDITOITU TESTAUSLABORATORIO ACCREDITED TESTING LABORATORY WE CERTIFICATION OY OPERATOR LABORATORY

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Alternative DEA Models

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

Millainen on viihtyisä kaupunki ja miten sitä mitataan?

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

Constructive Alignment in Specialisation Studies in Industrial Pharmacy in Finland

KMTK lentoestetyöpaja - Osa 2

Toimisto (5) HUOM. Komiteoiden ja seurantaryhmien kokoonpanot on esitetty SESKOn komitealuettelossa

Making diversity manageable. Miradore. Käytännön kokemuksia rahoituksen hakemisesta. Tiistai Technopolis Vapaudenaukio / Lappeenranta

Ajankohtaista Laatukysely ja jatkotoimet Raportointi 2010 tuloksia

Encapsulation. Imperative programming abstraction via subprograms Modular programming data abstraction. TTY Ohjelmistotekniikka

Arkkitehti?

Flexbright Oy Embedded software/hardware engineer

Paikkatiedon semanttinen mallinnus, integrointi ja julkaiseminen Case Suomalainen ajallinen paikkaontologia SAPO

Millaisia mahdollisuuksia kyberturva tarjoaa ja kenelle? Ja mitä on saatu aikaan?

MUSEOT KULTTUURIPALVELUINA

Results on the new polydrug use questions in the Finnish TDI data

Data quality points. ICAR, Berlin,

CIO muutosjohtajana yli organisaatiorajojen

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Skene. Games Refueled. Muokkaa perustyyl. for Health, Kuopio

A Plan vs a Roadmap. This is a PLAN. This is a ROADMAP. PRODUCT A Version 1 PRODUCT A Version 2. PRODUCT B Version 1.1. Product concept I.

Tarua vai totta: sähkön vähittäismarkkina ei toimi? Satu Viljainen Professori, sähkömarkkinat

1 Johdanto! Arkkitehti?!

Aiming at safe performance in traffic. Vastuullinen liikenne. Rohkeasti yhdessä.

Valuation of Asian Quanto- Basket Options

T Iteration demo. T Final Demo. Team Balboa

Informaatioteknologia vaikuttaa ihmisten käyttäytymiseen ja asenteisiin

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

A new model of regional development work in habilitation of children - Good habilitation in functional networks

Älykkäämmät integraatiot palveluväylän avulla

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

Indoor Environment

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Bachelor level exams by date in Otaniemi

Bachelor level exams by subject in Otaniemi

Käyttöliittymät II. Käyttöliittymät I Kertaus peruskurssilta. Keskeisin kälikurssilla opittu asia?

Organisaation kokonaissuorituskyvyn arviointi

FROM VISION TO CRITERIA: PLANNING SUSTAINABLE TOURISM DESTINATIONS Case Ylläs Lapland

(Core) & (Test Manager). Sertifikaattikoe klo

Capacity utilization

Innovative and responsible public procurement Urban Agenda kumppanuusryhmä. public-procurement

Mobiilialueen tutkimus EU:n 6. puiteohjelmassa: Wireless World Initiative (WWI)

Hakkerin henkilökuva. [Avaa linkki valmiiksi ja poista presentaatiosta]

Transkriptio:

1 Introduction 1.1 What is software architecture? 1.2 Why is software architecture important? 1.3 Architecting process 1.4 Architecture-oriented programming 1.5 Conclusions 1

1.1 What is software architecture? Software architecture: The fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution. (IEEE Standard 1471-2000) Software architecture covers: Major parts and their relationships Structure and behavior Static and dynamic structure Different viewpoints and levels Solutions and their rationale Rules and principles on system development 2

An alternative definition (Boehm 1995) A software system architecture comprises A collection of software and system components, connections, and constraints A collection of system requirements A rationale which demonstrates that the components, connections, and constraints define a system that, if implemented, would satisfy the collection of system requirements http://www.sei.cmu.edu/architecture/definitions.html 3

Architectural rules Some architectural decisions imply global design or implementation rules About usage of technology, algorithms, data structures, design and implementation patterns "Architecture is the set of design decisions about any system that keeps its implementors and maintainers from exercising needless creativity." (D'Souza & Wills) Architecture = The constitution of a system 4

Architecture is the soul of a software system Changing parts: may be changed by lower level design & implementation decisions Unchanged core: architecture 5

Architecture must be concrete and documented If a project has not achieved a system architecture, including its rationale, the project should not proceed adgsfgsgf wfrwffffdsff to full-scale system development. Specifying the RwrWRwrW architecture as a deliverable enables its use throughout the development and maintenance process. - Barry Boehm, 1995 adgsfgsgf wfrwffffdsff RwrWRwrW e.g. UML 6

Architectural issues Division into subsystems Communication between subsystems Communication between processes Accessing data, persistency, security Assignment of functionality to components Physical distribution Scaling and performance Preparing for future needs Reusability... 7

View Architectural views View Static reverse engineering Dynamic reverse engineering Modelling View Code Code generation Functioning system Compilation 8

1.2 Why is software architecture important? Systems becoming more and more complex Need to reuse subsystems, product families New technologies emphasize architecture Facilitates developing, testing and maintenance Need to communicate about a system (stakeholders) Architectural description can be used to assess a system General guideline for software development process 9

Taloussanomat 2.9.2005 10

Implications of bad architecture a system cannot be implemented a system cannot be delivered in time a system does not scale up a system is inefficient a system is difficult to test and maintain a system cannot be reused as planned a system is difficult to port to another environment system development is difficult to manage 11

Reasons for a bad architecture: - bad communication - architecturally significant requirements not identified - inexperienced architect - pressure from management - weak-minded architect - bad development process 12

Trend: Model-driven driven software engineering Human effort Traditional: Implementation Executable Design Architecture = fully automated = unnecessary work Requirements Added value 13

Trend: Model-driven driven software engineering Human effort Model-driven: Requirements model Architecture model Design model Implementation Executable partially automated - modeling languages - model transformations - code generation Added value 14

1.3 Architecting process Starting points Empty table: new system is developed from scratch Reference architecture: assumed architectural model Service platform: assumed set of available services Architectural platform: assumed architectural infrastructure Product platform: assumed domain-oriented platform Product: architectural evolution in existing system 15

Architecture-centric centric development process Quality requirements Architecturally significant requirements Requirements analysis Core functional requirements Initial architectural design Initial architecture Estimate quality attributes New or changed requirements Secondary functional requirements Architectural transformation not OK OK Deployment Testing Implementation Detailed design Base architecture 16

Architecturally ly significant requirements Core functional requirements - Often the starting point for architectural design Quality (non-functional) requirements typically imply architectural decisions - Security, performance, scalability, price, flexibility, maintainability, understandability, portability, reusability etc. Architecturally significant requirements have priorities - Typically one or few requirements dominate the architecture - Other architectural decisions have to comply with existing solutions Requirements should be linked to solutions - How is the system able to satisfy architecturally significant requirements 17

Software decomposition Basis for decomposition: Functionality Generality Distribution Flexibility Concern (aspect)... Concern 18

Stakeholders: PressureP on architect Lots of features, soon, compatible, competetive Behavior, performance, security, reliability Modifiable, testable END USER Low cost, our people MARKETING MAINTENANCE Low cost, timely delivery, not changed often MANAGEMENT ARCHITECT CUSTOMER 19

Architecture and organization BU system team subsystem person person comp comp component person => architectural structure = organization structure 20

1.4 Architecture-oriented programming Architecture-oriented programming means a software construction paradigm that is based on an existing architecture. An application is built using the structures and mechanisms given by the architecture. The essential design problem is how to map the requirements to the architecture rather than to the programming language. Examples: How to map application requirements to EJB? How to map application requirements to Symbian OS? How to map application requirements to Swing? 21

Trend: higher-level solution worlds Implementation paradigm Variables Subroutines Structured data types Abstract data types language support Classes, interfaces Design patterns Components Frameworks 22

Implications When used as part of solution world, architecture should be: generic: suitable for a variety of applications understood by an average application programmer described precisely and completely documented and trained in a usage-oriented manner 23

Platform architecture vs. programming language Platform architecture may imply static correctness rules Platform architecture may imply dynamic correctness rules Platform architecture may need a supporting tool set (architecture-oriented programming environment) 24

1.5 Conclusions Software architecture is design above the level of components Software architecture = structure + behavior + rationale + rules Software architecture = constitution of software system Software development is becoming more and more architecture-centric 25