Rekayasa Perangkat Lunak

Similar documents
Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak

Architectural Styles I

Chapter 6 Architectural Design

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

Software Architecture

Rekayasa Perangkat Lunak

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Architectural Design. Architectural Design. Software Architecture. Architectural Models

Rekayasa Perangkat Lunak

Architectural Design

CSCI 3130 Software Architectures 1/3. February 5, 2013

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Architectural Design

Architectural Styles I

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

XIX. Software Architectures

Architectural Design

An Introduction to Software Architecture

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

Software Architecture

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

An Introduction to Software Architecture

XVIII. Software Architectures

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA

What is Software Architecture

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

CS 575: Software Design

Software Architecture

ICS 52: Introduction to Software Engineering

Establishing the overall structure of a software system

CAS 703 Software Design

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 6. Moving on to Design

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Software MEIC. (Lesson 4)

ICS 52: Introduction to Software Engineering

Architectural Blueprint

XVIII. Software Architectures

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1

Architectural Design. CSCE Lecture 12-09/27/2016

ReST 2000 Roy Fielding W3C

Architectural Decomposition Reid Holmes

Introduction to software architecture Revision : 732

10조 이호진 이지 호

Creational. Structural

F O U N D A T I O N. OPC Unified Architecture. Specification. Part 1: Concepts. Version 1.00

Software Development Fundamentals (SDF)

Review. Designing Interactive Systems II. Review. Base Window System. Apps UITK BWS GEL. 4-Layer Model Graphics and Event Library BWS GEL

Software Engineering (CSC 4350/6350) Rao Casturi

Introduction to Software Engineering

Database dan Sistem Manajemen Database

Ch 1: The Architecture Business Cycle

In this Lecture you will Learn: System Design. System Architecture. System Architecture

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice)

Products of Requirements elicitation and analysis. Chapter 6: System design: decomposing the system

Presenter: Dong hyun Park

Object-Oriented Design

Architectural Decomposition Mei Nagappan

Design Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman

Architectural Decomposition & Representations Reid Holmes

Introduction to Software Engineering 10. Software Architecture

Final Exam Review (extended)

Web Services. Lecture I. Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics

EPL603 Topics in Software Engineering

2014 IBM Corporation IBM Advanced Technical Skills ZCONN1. WebSphere Application Server Liberty Profile z/os. z/os Connect

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

UNIT 5 - UML STATE DIAGRAMS AND MODELING

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

REST. And now for something completely different. Mike amundsen.com

Verteilte Systeme (Distributed Systems)

Architectural Styles II

Design Engineering. Overview

Middleware and Web Services Lecture 2: Introduction to Architectures

index_ qxd 7/18/02 11:48 AM Page 259 Index

System Name Software Architecture Description

Software Engineering

Software Architectures

Zumobi Brand Integration(Zbi) Platform Architecture Whitepaper Table of Contents

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

WHAT IS SOFTWARE ARCHITECTURE?

CSE 435: Software Engineering. System Design

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

Chapter 13: Architecture Patterns

6. System Design: Decomposing the System

COURSE PROFILE: ENVISION USER TRAINING

QualiWare Lifecycle Manager. Starter course

Working with the Seagull Framework. By Demian Turner, Seagull Systems

APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT

MEAN Stack. 1. Introduction. 2. Foundation a. The Node.js framework b. Installing Node.js c. Using Node.js to execute scripts

Darshan Institute of Engineering & Technology for Diploma Studies

Foundations of Software Engineering

Design. Introduction

Chapter 6 System Design: Decomposing the System

Transcription:

Rekayasa Perangkat Lunak Untuk SISTEM KOMPUTER Kuliah 6: Arsitektur Perangkat Lunak Mohammad Iqbal Based-on slide Ivan Marsic

Topik Desain Arsitektur Perangkat Lunak Keputusan Arsitektural & Key Concerns Gaya Arsitektural Mendokumentasikan Arsitektur: View Struktur masalah vs. Struktur Solusi 2

Hirarki Organisasi Software Product line (or product family) highest abstraction level System or product Subsystems/Modules Packages Classes/Objects Methods lowest level Source code Software is not one long list of program statements but it has structure The above is a taxonomy of structural parts (abstraction hierarchy), but not representation of relationships between the parts and does not specify the function of each part The hierarchy shows a taxonomy of the system parts, but not the procedure for decomposing the system into parts how do we do it? But first, why do we want to decompose systems? 3

Mengapa kita harus mendekomposisi Sistem Menangani kompleksitas dengan divide-and-conquer Perhatikan jika beberapa bagian telah ada dan dapat di gunakan kembali Fokus pada bagian kreatif dan hindari reinventing the wheel Mendukung fleksibilitas dan evolusi masa depan dengan memisahkan bagian yg tidak berhubungan, sehingga setiap bagian dapat berkembang ( pemisahan konsentrasi ) Membuat strategi berkelanjutan 4

Defenisi Arsitektur Software Software Architecture = a set of high-level decisions that determine the structure of the solution (parts of system-to-be and their relationships) Principal decisions made throughout the development and evolution of a software system made early and affect large parts of the system ( design philosophy ) such decisions are hard to modify later Decisions to use well-known solutions that are proven to work for similar problems Software Architecture is not a phase of development Does not refer to a specific product of a particular phase of the development process (labeled high-level design or product design ) 5

Contoh Keputusan Arsitektural Safe Home Access System Example decisions: Subsystem for device control Subsystem for administration Subsystem for remote data access Decision on system decomposition On embedded computer On office desktop On tenant s smartphone ( and Web?) Decision on mapping software-to-hardware Decision on development platform or operating system (Android vs. ios, etc.) Such decisions are made early on, perhaps while discussing the requirements with the customer Decision on how to fit the subsystems together ( architectural style ) to decide which hardware devices will be used for user interaction and device control 6

Architectural Decisions A matter of scope product or system architecture decisions Product line scope product line architecture decisions systemic impact Product/system A scope Product B scope Subsystem scope Class scope local impact Given the current level of system scope, a decision is architectural if it can be made only by considering the present scope I.e. could not be made from a more narrowly-scoped, local perspective Architectural decisions should focus on high impact, high priority areas that are in strong alignment with the business strategy 7

Software Architecture (Principal decisions to be made) Key Concerns System decomposition how do we break the system up into pieces? what functionality/processing or behavior/control to include? do we have all the necessary pieces? do the pieces fit together? how the pieces interact with each other and with the runtime environment Cross-cutting concerns broad-scoped qualities or properties of the system tradeoffs among the qualities Conceptual integrity Software architecture provides a set of well-known solutions that are proven to work for similar problems 8

Arsitektur VS Desain Architecture focuses on non-functional requirements ( cross-cutting concerns ) and decomposition of functional requirements Design focuses on implementing the functional requirements Note: The border is not always sharp! 9

Architectural Decisions Often Involve Compromise The best design for a component considered in isolation may not be chosen when components considered together or within a broader context Depends on what criteria are used to decide the goodness of a design E.g., car components may be best for racing cars or best for luxury cars, but will not be best together Additional considerations include business priorities, available resources, core competences, target customers, competitors moves, technology trends, existing investments, backward compatibility, 10

How to Fit Subsystems Together: Some Well-Known Architectural Styles World Wide Web architectural style: REST (Representational State Transfer) UNIX shell script architectural style: Pipe-and-Filter Client/Server Central Repository (database) Layered (or Multi-Tiered) Peer-to-Peer Model-View-Controller Development platform (e.g., Web vs. mobile app, etc.) may dictate the architectural style or vice versa 11

1. Components Gaya Arsitektural Bagian Konstituen Processing elements that do the work 2. Connectors Enable communication among components Broadcast Bus, Middleware-enabled, implicit (events), explicit (procedure calls, ORBs, explicit communications bus) 3. Interfaces Connection points on components and connectors define where data may flow in and out of the components/connectors 4. Configurations Arrangements of components and connectors that form an architecture 12

Gaya Arsitektural : Pipe-dan-Filter Components: Filters transform input into output Connectors: Pipe data streams Example: UNIX shell commands filter filter filter pipe pipe % ls folder-name grep v match-string more 13

Gaya Arsitektural : Client/Server A client is a triggering process; a server is a reactive process. Clients make requests that trigger reactions from servers. A server component, offering a set of services, listens for requests upon those services. A server waits for requests to be made and then reacts to them. A client component, desiring that a service be performed, sends a request at times of its choosing to the server via a connector. The server either rejects or performs the request and sends a response back to the client 14

Gaya Arsitektural : Layered a.k.a. Tiered Software Architecture A layered system is organized hierarchically, each layer providing services to the layer above it and using services of the layer below it Layered systems reduce coupling across multiple layers by hiding the inner layers from all except the adjacent outer layer, thus improving evolvability and reusability User Interaction User Authentication Archiving Control of Sensors and Devices Communicating alerts about intrusion User Interface Layer Domain Logic Layer (Business Rules) Technical Services Layer 15

Gaya Arsitektural : Model-View-Controller Model: holds all the data, state and application logic. Oblivious to the View and Controller. Provides API to retrieve state and send notifications of state changes to observer View: gives user a presentation of the Model. Gets data directly from the Model Controller: Takes user input and figures out what it means to the Model display View 5. I need your state (to display) 1. The user did something 3. Change your display 4. I have changed Model user input device Controller 2. Change your state 16

Model-View-Controller Controller User Interface Model Input device events Event Interpreter Domain model action Domain Model User Visual feedback of the altered model View Model Visualizer Notification about the effects of the action Model: array of numbers [ 14, 26, 31 ] Different Views for the same Model: 14 26 31 versus 31 14 26 17

REST: Representational state transfer Physical model Session state: memory about past and current requests Client User interface Request (e.g., HTTP) contains all the information describing the desired resource or service, identified by URI Intermediary Response caching Response: representation of resource in standard text format (HTML, XML, JSON, ); includes hyperlinks to other Web resources Server Data storage Web resources Conceptual model: hypermedia as the engine of application state Application state Web resource text text text link text text Application state Web resource Web resource: Identified using URI; Arbitrary representation internal to server Stateless: no memory about past requests by a given client State transition (HTTP operation) text text text text link text State transition (HTTP operation) Application state Web resource text link text text text text user Web application: A network of Web resources (a virtual state-machine), where the user by following the links requests the transfer of next resource ( state ). 18

Real System is a Combination of Styles Subsystem for device control Central Repository Architectural Style Subsystem for remote data access Subsystem for administration - Valid keys - Access history - Tenant profiles - Application server Web server Web browser Tiered Architectural Style 19

Menyatukan semua Bagian Specifying semantics of component interfaces Serves as a contract between component providers and clients, interfaces must be fully documented semantics, not just syntax understandable, unambiguous, precise Adding semantics informal description design models (e.g., UML interaction diagrams) pre/post conditions 20

Dokumentasi Arsitektur Software : Architecture Views Views are different kinds of blueprints created for the system-to-be E.g., blueprints for buildings: construction, plumbing, electric wiring, heating, air conditioning, (Different stakeholders have different information needs) 1. Module/Subsystem Views 2. Component and Connector Views 3. Allocation Views 21

Module/Subsystem Views Decomposition View Top-down refinement (e.g., simple block diagram ) Dependency View How parts relate to one another Layered View Special case of dependency view Class View domain model in OOA and class diagram in OOD 22

Component and Connector Views Process View Defined sequence of activities? System represented as a series of communicating processes Concurrency View Shared Data View Client/Server View E.g., in Web browsing 23

Allocation Views Deployment View Software-to-hardware assignment Implementation View File/folder structure package diagram Work Assignment View Work distribution within the development team 24

Problem Structure Subsystems derived from the requirements ( bottom-up approach or induction) 25

Typical Software Eng. Problems 1. User works with computer system (problem domain is virtual, not physical) 1.a) System transforms input document to output document REQ-1: Map input data to output data as said by given rules IN doc User System Problem domain 1.b) User edits information stored in a repository REQ-2: Allow repository editing, where repository is a collection of data User User System System OUT doc Repository 2. Computer system controls the (physical) problem domain (user not involved) REQ-3: Autonomously control a physical object/device User System Problem domain 3. Computer system intermediates between the user and the problem domain User System Problem domain 3.a) System observes the problem domain and displays information REQ-5: Monitor and display information about an object User System Problem domain 3.b) System controls the problem domain as commanded by the user REQ-4: Interactively control a physical object/device User System Problem domain 26

Software (i.e., Solution) Structure REQ-1: Map input data to output data as said by given rules SYSTEM 1.a) Transformation: Feeding subsystem Transformation subsystem Receiving subsystem REQ-2: Allow repository editing, w here repository is a collection of data SYSTEM 1.b) Simple editing: Data editor User Data repository REQ-3: Automatically control a physical object/device SYSTEM 2. Required behavior: Controlling subsystem Controlled subsystem REQ-5: Monitor and display information about an object SYSTEM 3.a) Information display: Monitoring subsystem Monitored subsystem REQ-4: Interactively control a physical object/device Display SYSTEM 3.b) Commanded behavior: Operator Controlling subsystem Controlled subsystem 27