Matakuliah : M0126 - Analisis dan Perancangan Sistem Informasi Lanjut Tahun : 2009 - 2010 Criteria And Component Diagram Pertemuan 0708 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Buat component diagram untuk kasus rumah produksi (C4) Outline Materi • Mahasiswa dapat membuat diagram / skema component architecture class 05 - 06 / 03 - 19 Application Domain Analysis in Context of OOA&D Activities Requirements for use System Choice (Pre-analysis) Analysis of problem System domain Definition Model Analysis of application domain Design of components Specifications for components Specifications for architecture (adapted from Mathiassen et al, 2000) Design of architecture Now continue with this area of activity and its product 05 - 06 / 04 - 19 Arsitektur komponen dan proses Component Architecture: Classes Stable aspects Related components Logical level Structure for descriptions Process Architecture Objects Dynamic aspects Coordination of processes Physical level Structure for execution (Mathiassen et al, 2000) 05 - 06 / 05 - 19 Activities in Architectural Design Analysis document Component architecture Criteria Finally, we’ll look at this activity Process architecture Architectural specification (Mathiassen et al, 2000) 05 - 06 / 06 - 19 Process Purpose To Define the Physical Structuring of a system Concepts Process architecture : A system-execution structure composed of interdependent process Processor : A piece of equipment that can execute a program Program component : A physical module of program code Active Object : An object that has been assigned a process 05 - 06 / 07 - 19 Process (Cont’d) Principles Aim at an architecture without bottlenecks Distribute components on processors Coordinate resource sharing with active objects Result A deployment diagram showing processors with assigned program components and active objects 05 - 06 / 08 - 19 When & Why Not a significant activity for a simple system with a single process, e.g. a standalone system Critical for large systems, especially monitoring and control systems, & embedded systems May wait to begin this activity until component architecture and components are nearly complete May start this activity early with exploratory and experimental work, which heavily influences components CONTOH USER INTERFACE UNTUK CUSTOMER PACKAGE & PACKAGE BODY Penjelasan • Jika kita lihat dari slide ke 10 dan ke 11 maka satu user interface seperti contoh diatas Customer User Interface dapat terbagi menjadi fungsi-fungsi yang terdapat dalam package dan package body di dalam programming 05 - 06 / 09 - 19 Processes, Active Objects, and Shared Objects Process 1 Object 1 o1 o2 Potential conflict over shared program component Object 3 o5 o6 Object 2 o3 Process 3 Process 2 Active object because it starts a new process Object 4 o4 o7 o8 Object 5 o9 Process 4 o10 BACKGROUND PROCESS Process • Didalam slide ke 14 kita lihat bahwa setelah program dijalankan maka akan terlihat proses didalam Background Job yang mengakses masing-masing function yang ada di setiap class dan akan sangat memungkinkan terjadinya Bottlenecks artinya banyak sekali pemanggilan function untuk class yang sama, seperti gambar diatas pemanggilan function dimulai dari customer_order_line_api.modify kemudian dilanjutkan ke customer_order_line3_api, dan dilanjutkan ke customer_order_line2_api dan jika ada beberapa class yang memanggil customer_order_line3 dan 2 secara bersamaan akan sangat memungkinkan terjadinya conflict 05 - 06 / 10 - 19 Concurrency True concurrency: When two or more events in the system’s context can occur at the same time and processes must support this (e.g. multiple users) Random concurrency: When two or more operations are designed to be executed at the same time (e.g. print in background) ( Don’t have any choice about the former 05 - 06 / 11 - 19 Sub-activities in Process Architecture Design Class diagram and component specifications Identify shared resources Distribute program components Explore distribution patterns Select coordination mechanisms Deployment diagram Explore coordination patterns 05 - 06 / 12 - 19 Distribute Program Components Different components need to be placed on individual processors First, separate out any active objects from passive program components Second, determine the available processors Distribute the program components and active objects onto the processors 05 - 06 / 13 - 19 Explore Distribution Patterns Patterns for how components are placed on processors The centralized pattern: Centralized data and functionality, thin client, but low robustness The distributed pattern: Replicated data, server only broadcasts updates, robust, but potential data inconsistencies The decentralized pattern: Partitioned data, low inconsistencies, more diversity/complexity 05 - 06 / 14 - 19 Identify Shared Resources Processor: Two or more concurrent processes that should be executed on the same processor External Devices: Two or more concurrent processes use the same external device Component: Two or more concurrent processes call operations on objects in the same component 05 - 06 / 15 - 19 Example Deployment Diagram: Airline Check-in Active objects Processor External devices (Mathiassen et al, 1999) Contoh Deployment Diagram PENJELASAN GAMBAR 37.1 • Deployment diagram shows the assignment of concrete software artifacts (exe files) to computational nodes. It shows the deployment of software component to the physical architecture and the communication ( usually on a network) between physical element Deployment Diagram Deployment Diagram 05 - 06 / 16 - 19 Finding Bottlenecks Processors: what is the relationship between the capacity of each processor and the needs of the active objects assigned to it? Which processors thereby constitute potential bottlenecks? External Devices: What is the accessibility, capacity, and load of the different external devices in the interface? Which external devices thereby constitute potential bottlenecks? Data Storage: Which parts of the model need to be stored on which storage media and how are copies handled? What are the potential bottlenecks for data storage? System/Network Connections: What is the capacity and load of the system’s connections? Which connections thereby constitute potential bottlenecks? 05 - 06 / 17 - 19 Overcoming Bottlenecks Two options: Change the design and the distribution of the components onto the available processors Enhance the platform with more processors or more powerful processors 05 - 06 / 18 - 19 Select Coordination Mechanisms Many operating systems and technical platforms provide mechanisms to control sharing Varies substantially from platform to platform So need to be sure in each case! If not, we have to solve it ourselves by developing our own coordination mechanisms Generally rely on active object that controls the sharing Can make use of generic patterns 05 - 06 / 19 - 19 Coordination Mechanisms Generalized patterns of coordination: Dedicated monitor ensuring atomic access to shared resources. Centralized task dispatching for coordination of all concurrent processes. (e.g., event loop) Subscription to state changes for initiation of processes in opportune situations. Asynchronous exchange of data to avoid unnecessary delays with read and write operations.