Vragen. Architecture presentations in practice. Some terms (from IEEE standard)



Similar documents
Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

Aerospace Software Engineering

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Software Engineering

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Vragen en opdracht. Complexity. Modularity. Intra-modular complexity measures

Safety and security related features in AUTOSAR

Architecture. Reda Bendraou

Applying 4+1 View Architecture with UML 2. White Paper

Architecture Design & Sequence Diagram. Week 7

An Approach to Software Architecture Description Using UML

High-level Design. What is software architecture?

Software Life-Cycle Management

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

What is Automotive Software Engineering? What is Automotive Software Engineering? What is Automotive Software Engineering?

What is a life cycle model?

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

ECU State Manager Module Development and Design for Automotive Platform Software Based on AUTOSAR 4.0

The Role of the Software Architect

Software Architecture

AUTOSAR Software Architecture

Automotive Software Engineering

Introduction to software architecture

KWIC Exercise. 6/18/ , Spencer Rugaber 1

Software Quality Factors OOA, OOD, and OOP Object-oriented techniques enhance key external and internal software quality factors, e.g., 1. External (v

PIE. Internal Structure

An Introduction to Software Architecture

1.. This UI allows the performance of the business process, for instance, on an ecommerce system buy a book.

Stock Trader System. Architecture Description

Web Application Architectures

Software design (Cont.)

Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1

2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts

Software Architecture. Schahram Dustdar Distributed Systems Group TU Wien

A Template for Documenting Software and Firmware Architectures

Viewpoint Modeling. Agenda. 1. Viewpoint Modeling 2. ODS, Enterprise Architecture, Viewpoints, Models 3. Modeling approaches and standards

Six Strategies for Building High Performance SOA Applications

Chap 1. Introduction to Software Architecture

A complete software development process of a general report publication service implemented using Web Services

Development of AUTOSAR Software Components within Model-Based Design

Advanced Analysis and Design

Patterns in Software Engineering

COSC 3351 Software Design. Architectural Design (II) Edgar Gabriel. Spring Virtual Machine

KWIC Implemented with Pipe Filter Architectural Style

Ingegneria del Software II academic year: Course Web-site: [

Managing Variability in Software Architectures 1 Felix Bachmann*

How To Understand The Concept Of A Distributed System

Glossary of Object Oriented Terms

Group 24. (Testability) Amin Ben Karroum Magnus Raaum Sibte-Haider Syed Mari Asplem Hansen. Architecture Document. Android Sosial application

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

Software Engineering Reference Framework

Automated Virtual Cloud Management: The need of future

A new approach to automotive electric/electronic engineering life-cycle management

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

Software Service Engineering Architect s Dream or Developer s Nightmare?

OPEN DATA CENTER ALLIANCE Usage Model: Guide to Interoperability Across Clouds

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich

Introduction to software architecture

Pattern Language Overview

Web Application Development for the SOA Age Thinking in XML

10 Proxy Pattern [Gamma et al]

JOURNAL OF OBJECT TECHNOLOGY

A distributed system is defined as

Real Time Programming: Concepts

Programming Without a Call Stack: Event-driven Architectures

A standards-based approach to application integration

Software Architecture Document

Introduction to Embedded Systems. Software Update Problem

Vragen. Software development model. Software development model. Software development model

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

CS411 Software Architecture Design Final Project Group 10 Customer Relationship Management System

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

Developing the Architectural Framework for SOA Adoption

Rational Unified Process for Systems Engineering RUP SE1.1. A Rational Software White Paper TP 165A, 5/02

IBM RATIONAL PERFORMANCE TESTER

Mobile application architectures

Bernie Velivis President, Performax Inc

E-Commerce Supply Chain Management Domain Research and Standard Architectures Kunal Chopra, Jeff Elrod, Bill Glenn, Barry Jones.

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

The Service Availability Forum Specification for High Availability Middleware

Programming in C# with Microsoft Visual Studio 2010

When security meets software engineering: A case of modelling. secure information systems

Software Defined Security Mechanisms for Critical Infrastructure Management

Holistic Performance Analysis of J2EE Applications

Deploying Rule Applications

Introduction to Service Oriented Architectures (SOA)

SECTION 2 PROGRAMMING & DEVELOPMENT

Java Application Developer Certificate Program Competencies

BSC vision on Big Data and extreme scale computing

Architecture Example Point-to-point wire

Object Oriented Design

Business Logic Integration Platform. D.Sottara, PhD OMG Technical Meeting Spring 2013, Reston, VA

Architectural patterns

Automotive System and Software Architecture

Virtual Full Replication for Scalable. Distributed Real-Time Databases

Use Cases. Massimo Felici. Massimo Felici Use Cases c

Service Oriented Architecture Based Integration. Mike Rosen CTO, AZORA Technologies, Inc.

Transcription:

Vragen Architecture presentations in practice Waarom is software architectuur belangrijk? Waarom schiet de volgende definitie tekort? The architecture of a software system defines that system in terms of computational ti components and interactions among those components. Waarom is het documenteren van ontwerpsbeslissingen belangrijk? Wat is de rol van UML met betrekking tot het beschrijven van een software architectuur? By and large two flavors: Powerpoint slides for managers, users, consultants, etc UML diagrams, for technicians / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 0 SE, Software Architecture, Hans van Vliet, 2008 1 So, Some terms (from IEEE standard) Different representations For different people For different purposes These representations are both descriptive and prescriptive System stakeholder: an individual, team, or organization (or classes hereof) with interests in, or concerns relative to, a system. View: a representation of a whole system from the perspective of a related set of concerns. Viewpoint: A viewpoint establishes the purposes p and audience for a view and the techniques or methods employed in constructing a view. SE, Software Architecture, Hans van Vliet, 2008 2 SE, Software Architecture, Hans van Vliet, 2008 3

Stakeholders Viewpoint specification Architect Requirements engineer Designer (also of other systems) Implementor Tester, integrator Maintainer Manager Quality assurance people Viewpoint name Stakeholders addressed Concerns addressed Language, modeling techniques SE, Software Architecture, Hans van Vliet, 2008 4 SE, Software Architecture, Hans van Vliet, 2008 5 Kruchten s 4+1 view model 4 + 1: Logical Viewpoint End-user Functionality Logical Viewpoint Programmers Software management Implementation Viewpoint The logical viewpoint supports the functional requirements, i.e., the services the system should provide to its end users. Process Viewpoint Scenarios Deployment Viewpoint Typically, it shows the key abstractions (e.g., classes and interactions amongst them). Integrators Performance Scalability System engineers Topology Communications SE, Software Architecture, Hans van Vliet, 2008 6 SE, Software Architecture, Hans van Vliet, 2008 7

4 + 1: Process Viewpoint 4 + 1: Deployment Viewpoint Addresses concurrent aspects at runtime (tasks, threads, processes and their interactions) ti It takes into account some nonfunctional requirements, such as performance, system availability, concurrency and distribution, system integrity, and fault-tolerance. The deployment viewpoint defines how the various elements identified in the logical, process, and implementation viewpoints-networks, processes, tasks, and objects-must be mapped onto the various nodes. It takes into account the system's nonfunctional requirements such as system availability, reliability (fault-tolerance), performance (throughput), and scalability. SE, Software Architecture, Hans van Vliet, 2008 8 SE, Software Architecture, Hans van Vliet, 2008 9 4 + 1: Implementation Viewpoint 4 + 1: Scenario Viewpoint The imlementation viewpoint focuses on the organization of the actual software modules in the software-development environment. The software is packaged in small chunks-program libraries or subsystems-that can be developed by one or more developers. The scenario viewpoint consists of a small subset of important scenarios (e.g., use cases) to show that the elements of the four viewpoints work together seamlessly. This viewpoint is redundant with the other ones (hence the "+1") ), but it plays two critical roles: it acts as a driver to help designers discover architectural elements during the architecture design; it validates and illustrates the architecture design, both on paper and as the starting point for the tests of an architectural prototype. SE, Software Architecture, Hans van Vliet, 2008 10 SE, Software Architecture, Hans van Vliet, 2008 11

Architectural views from Bass et al (view = representation of a structure) Module views Module is unit of implementation Decomposition, uses, layered, class Component and connector (C & C) views These are runtime elements Process (communication), concurrency, shared data (repository), client-server Allocation views Relationship between software elements and environment Work assignment, deployment, implementation ti Module views Decomposition: units are related by is a submodule of, larger modules are composed of smaller ones Uses: relation is uses (calls, passes information to, etc). Important for modifiability Layered is special case of uses, layer n can only use modules from layers <n Class: generalization, relation inherits from SE, Software Architecture, Hans van Vliet, 2008 12 SE, Software Architecture, Hans van Vliet, 2008 13 Component and connector views Allocation views Process: units are processes, connected by communication or synchronization Concurrency: to determine opportunities for parallelism (connector = logical thread) Shared data: shows how data is produced and consumed Client-server: cooperating clients and servers Deployment: how software is assigned to hardware elements Implementation: how software is mapped onto file structures Work assignment: who is doing what SE, Software Architecture, Hans van Vliet, 2008 14 SE, Software Architecture, Hans van Vliet, 2008 15

How to decide on which viewpoints A caveat on quality What are the stakeholders and their concerns? Which viewpoints address these concerns? Prioritize iti and possibly combine viewpoints i A view can be used to assess one or more quality attributes E.g., some type of module view can be used to assess modifiability It should then expose the design decisions that affect this quality attribute SE, Software Architecture, Hans van Vliet, 2008 16 SE, Software Architecture, Hans van Vliet, 2008 17 Specification of Software Architecture Based on Analysis of Software Requirements Specification of software components and interfaces Data interfaces Control interfaces Onboard interfaces Offboard interfaces Specification of software layers Specification of operating states normal operation parameterization updating AUTomotive Open System ARchitecture is an open and standardized automotive software architecture, jointly developed by automobile manufacturers, suppliers and tool developers Objective is to create and establish open standards for automotive Electrics/Electronics architectures that will provide a basic infrastructure to assist with developing vehicular software, user interfaces and management for all application domains A platform for future vehicle applications / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 18 / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 19

paves the way for innovative electronic systems that further improve performance, safety and environmental friendliness is a key enabling technology to manage the growing electrics/electronics complexity. aims to be prepared p for the upcoming technologies and to improve cost-efficiency without making any compromise with respect to quality facilitates the exchange and update of software and hardware over the service life of the vehicle Who? OEMs DaimlerChrysler, Volkwagen, PSA, Toyota, Ford, Opel, Fiat, Honda, Mazda, Renault, Nissan, etc. suppliers generic Tier 1 supplier: Bosch, Continental, SiemensVDO, Alpine, etc. standard software, tools and services semi-conductors / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 20 / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 21 Why? Increasing complexity of software in automotive systems No standardized software architecture Main motivations Management of E/E complexity associated with growth in functional scope Flexibility for product modification, upgrade and update Scalability of solutions within and across product lines Improved quality and reliability of E/E systems Main goals Fulfillment of future vehicle requirements, such as, availability and safety, SW upgrades/ updates and maintainability Increased scalability and flexibility to integrate and transfer functions Higher penetration of "Commercial off the Shelf" SW and HW components across product lines Improved containment of product and process complexity and risk Cost optimization of scalable systems / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 22 / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 23

software components Fundamental design concept is separation between infrastructure and application Application consists of interconnected software components Atomic software component: a software component can not be distributed ib d over several ECUs software component implementation is independent from the infrastructure Communication patterns Client Server Server: provider of service Client: user of service Client initiates communication Single component can be server and client Synchronous and asynchronous communication is possible / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 24 / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 25 Communication patterns Sender - Receiver Asynchronous distribution of information No response from receivers Sender does not know the number or identity of the receivers Layered Software Architecture / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 26 / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 27

Architectural styles Software Architecture An architectural style is a description of component and connector types and a pattern of their runtime control and/or data transfer. Examples: main program with subroutines data abstraction implicit invocation pipes and filters repository (blackboard) layers of abstraction / Faculteit Wiskunde en Informatica 17-3-2010 PAGE 28 SE, Software Architecture, Hans van Vliet, 2008 29 Components and Connectors Types of components Components are connected by connectors. They are the building blocks with which an architecture can be described. No standard notation has emerged yet. computational: does a computation of some sort. E.g. function, filter. memory: maintains a collection of persistent data. E.g. data base, file system, symbol table. manager: contains state + operations. State is retained between invocations of operations. E.g. adt, server. controller: governs time sequence of events. E.g. control module, scheduler. SE, Software Architecture, Hans van Vliet, 2008 30 SE, Software Architecture, Hans van Vliet, 2008 31

Types of connectors procedure call (including RPC) data flow (e.g. pipes) implicit invocation message passing shared data (e.g. blackboard or shared data base) instantiation Framework for describing architectural styles problem: type of problem that the style addresses. Characteristics of the reqs s guide the designer in his choice for a particular style. context: characteristics of the environment that constrain the designer, req s imposed by the style. solution: in terms of components and connectors (choice not independent), and control structure (order of execution of components) variants examples SE, Software Architecture, Hans van Vliet, 2008 32 SE, Software Architecture, Hans van Vliet, 2008 33 Main-program-with-subroutines style Abstract-data-type style problem: hierarchy of functions; result of functional decomposition, single thread of control context: language with nested procedures solution: system model: modules in a hierarchy, may be weak or strong, coupling/cohesion arguments components: modules with local data, as well as global data connectors: procedure call control structure: single thread, centralized control: main program pulls the strings variants: OO versus non-oo problem: identify and protect related bodies of information. Data representations likely to change. context: OO-methods which guide the design, OO-languages which provide the class-concept solution: system model: component has its own local data (= secret it hides) components: managers (servers, objects, adt s) connectors: procedure call (message) control structure: single thread, usually; control is decentralized variants: caused by language facilities SE, Software Architecture, Hans van Vliet, 2008 34 SE, Software Architecture, Hans van Vliet, 2008 35

Implicit-invocation style Pipes-and-filters style problem: loosely coupled collection of components. Useful for applications which must be reconfigurable. context: requires event handler, through OS or language. solution: system model: independent, reactive processes, invoked when an event is raised components: processes that signal events and react to events connectors: automatic invocation control structure: decentralized control. Components do not know who is going to react. variants: Tool-integration frameworks, and languages with special features. problem: independent, sequential ential transformations on ordered data. Usually incremental, Ascii pipes. context: series of incremental transformations. OS-functions transfer data between processes. Error-handling difficult. solution: system model: continuous data flow; components incrementally transform data components: filters for local processing connectors: data streams (usually plain ASCII) control structure: data flow between components; component has own flow variants: From pure filters with little internal state to batch processes SE, Software Architecture, Hans van Vliet, 2008 36 SE, Software Architecture, Hans van Vliet, 2008 37 Repository style Layered style Client Client Shared Data Client problem: manage richly structured information, to be manipulated in many different ways. Data is long-lived. context: shared data to be acted upon by multiple clients solution: system model: centralized body of information. Independent computational elements. components: one memory, many computational connectors: direct access or procedure call control structure: varies, may depend on input or state of computation variants: traditional data base systems, compilers, blackboard systems Layer n Layer 2 Layer 1 problem: distinct, hierarchical classes of services. Concentric circles of functionality context: a large system that requires decomposition (e.g., virtual machines, OSI model) solution: system model: hierarchy of layers, often limited visibility components: collections of procedures (module) connectors: (limited) procedure calls control structure: single or multiple threads variants: relaxed layering SE, Software Architecture, Hans van Vliet, 2008 38 SE, Software Architecture, Hans van Vliet, 2008 39

Model-View-Controller (MVC) style Controller n View Model problem: separation of UI from application is desirable due to expected UI adaptations context: interactive applications with a flexible UI solution: system model: UI (View and Controller Component(s)) is decoupled from the application (Model component) components: collections of procedures (module) connectors: procedure calls control structure: single thread variants: Document-View n Architecture evaluation/analysis Assess whether architecture meets certain quality goals, such as those w.r.t. maintainability, modifiability, reliability, performance Mind: the architecture is assessed, while we hope the results will hold for a system yet to be built SE, Software Architecture, Hans van Vliet, 2008 40 SE, Software Architecture, Hans van Vliet, 2008 41 Software Architecture Analysis Analysis techniques Questioning techniques: how does the system react to various situations; often make use of scenarios Software architecture implementation System Measuring techniques: rely on quantitative measures; architecture metrics, simulation, etc Properties properties Qualities SE, Software Architecture, Hans van Vliet, 2008 42 SE, Software Architecture, Hans van Vliet, 2008 43

Scenarios in Architecture Analysis Preconditions for successful assessment Different types of scenarios, e.g. use-cases, likely changes, stress situations, risks, far-into-the-future scenarios Which stakeholders to ask for scenarios? When do you have enough scenarios? Clear goals and requirements for the architecture Controlled scope Cost-effectiveness Key personnel availability Competent evaluation team Managed expectations ti SE, Software Architecture, Hans van Vliet, 2008 44 SE, Software Architecture, Hans van Vliet, 2008 45 Role of the software architect Summary Key technical consultant Make decisions Coach of development team Coordinate design Implement key parts Advocate software architecture t new and immature field proliferation of terms: architecture - design pattern - framework - idiom architectural t styles and design pattern describe (how are things done) as well as prescribe (how should things be done) stakeholder communication early evaluation of a design transferable abstraction SE, Software Architecture, Hans van Vliet, 2008 46 SE, Software Architecture, Hans van Vliet, 2008 47