Rekayasa Perangkat Lunak TI1153

dokumen-dokumen yang mirip
Analisis dan desain model

Tujuan 04/07/ :01

Prinsip dan Konsep Desain Perangkat Lunak

Pengayaan Software/Hardware dan Pengantarmukaan

Minggu 6 Prinsip & Konsep Desain

PENGANTAR RUP & UML. Pertemuan 2

Review Rekayasa Perangkat Lunak. Nisa ul Hafidhoh

Terjemahan model analisis menjadi desain software

MODUL 4 Unified Software Development Process (USDP)

REKAYASA PERANGKAT LUNAK LANJUT DESIGN ENGINEERING. Defri Kurniawan M.Kom

PENGENALAN. Perancangan Perangkat Lunak. (Software Engineering) Bertalya Program Pascasarjana Univesitas Gunadarma

Pertemuan 5 Konsep dan Prinsip Desain TIK : Menjelaskan konsep, prinsip dan tahapan dalam perancangan software

LANGKAH-LANGKAH MEMBUAT SOFTWARE MENURUT RUP

Design Engineering. Tim RPL. Program Studi Teknik Informatika

Tujuan. Menghasilkan suatu model atau representasi dari entitas yang kemudian akan dibangun. Tim RPL 1 2

Rekayasa Sistem Berorientasi Objek. Activitas Desain Sistem

REKAYASA PERANGKAT LUNAK. 3 sks Sri Rezeki Candra Nursari reezeki2011.wordpress.com

Proses Pengembangan 1

Tujuan. entitas yang kemudian akan dibangun. ó Menghasilkan suatu model atau representasi dari. Tim RPL 1 2

PROSES DESAIN SISTEM BASIS DATA. Daur Hidup (Life Cycle) yang Umum dari Aplikasi Basis Data

Object Oriented Analysis and Design -Pendahuluan- Nisa ul Hafidhoh

ANALISIS DAN PERANCANGAN SISTEM (APS) Konsep Perancangan

BAB V KONSEP DAN PRINSIP DESAIN

REKAYASA PERANGKAT LUNAK MATERI TM 11

PROSES PERANCANGAN SISTEM INFORMASI

Software Design. Konsep dan Prinsip Desain Struktur Desain. Mira/Rpl/Design

DASAR REKAYASA PERANGKAT LUNAK

MODEL DESAIN & DOKUMENTASI DESAIN

P10 Konsep & Prinsip Desain. A. Sidiq P.

Pemodelan Berorientasi Objek

KONSEP DAN PRINSIP DESAIN. Oleh I Made Cipta Wahyudi

Teknik Informatika S1

Rekayasa Perangkat Lunak

BAB II. 2.1 Model Data High Level Data Model (Conceptual Data Model)

INTRODUCTION OBJECT ORIENTED ANALYSIS & DESIGN

Data & Architecural Design. Tim RPL Progdi Teknik Informatika

MODEL DESAIN DOKUMENTASI DESAIN

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

REKAYASA PERANGKAT LUNAK 1

Kuliah#3 TSK-612 Sistem Embedded Terdistribusi - TA 2011/2012. Eko Didik Widianto


Analysis Modeling 4/10/2018. Focus on What not How. Kenapa Analisis Kebutuhan. Definisi Analisis Kebutuhan. Langkah-Langkah Analisis Kebutuhan

BAB III LANDASAN TEORI

ARSITEKTURAL DESIGN. Struktur Arsitektur. Bass, Clements, dan Kazman [Bass, 2003 via Pressman, 2010) mendefinisikan:

Konsep Perancangan Perangkat Lunak

PERTEMUAN 2 LANJUTAN PERANCANGAN DATABASE DAN DBMS

Prinsip & Konsep Perancangan Sistem

BAB II TINJAUAN PUSTAKA

BAB 3 METODOLOGI PENELITIAN

BAB V PERANCANGAN MOXIE

Arsitektur Sistem Informasi. Tantri Hidayati Sinaga, M.Kom.

REQUIREMENT ENGINEERING

Object Oriented Analysis (OOA) dan Object Oriented Design (OOD)

Produk perangkat lunak tersebut:

METODE DAN TEKNIK PENGEMBANGAN SISTEM INFORMASI

PENGENALAN BASIS DATA

ARSITEKTUR INFORMASI PENJUALAN TRAKTOR, ALAT PANEN DAN SPARE PART

MANAJEMEN PROYEK. Drs. Antok Supriyanto, MMT.

Teknik Informatika S1

REKAYASA PERANGKAT LUNAK. Ramadhan Rakhmat Sani, M.Kom

PERTEMUAN 2 LANJUTAN PERANCANGAN DATABASE DAN DBMS

SDLC Software Development Life Cycle Mukhlas Imam Muhajir Muhsin Nur Ali

PERTEMUAN 2 LANJUTAN PERANCANGAN DATABASE DAN DBMS

Analisis dan Perancangan Sistem II T02 Use Case

REKAYASA PERANGKAT LUNAK

Model arsitektur Terdistribusi

Rational Unified Process (RUP)

PERTEMUAN 2 LANJUTAN PERANCANGAN DATABASE DAN DBMS

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA SILABUS REKAYASA PERANGKAT LUNAK

BAB III OBJEK DAN METODE PENELITIAN. domain & Web Hosting. Untuk lebih jelas mengenai gambaran umum perusahaan,

Teknik Informatika S1

Konsep Desain Software

Pertemuan 9 PRINSIP DAN KONSEP DESAIN

Software Architecture

Teknik Informatika S1

BAB 2 LANDASAN TEORI

BAB 4 METODOLOGI PEMECAHAN MASALAH

Yuli Purwati, M.Kom USE CASE DIAGRAM

PERANCANGAN BASIS DATA

PERTEMUAN 13 STRATEGI PENGUJIAN PERANGKAT LUNAK

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Rekayasa Perangkat Lunak TI1153

SISTEM BASIS DATA. Pendahuluan. Gentisya Tri Mardiani, S.Kom.,M.Kom

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

BAB II LANDASAN TEORI. digunakan untuk memodelkan kebutuhan data dari suatu organisasi,

Perancangan Aplikasi Basis Data. by: Ahmad Syauqi Ahsan

KONSEP MANAJEMEN PROYEK

Rekayasa Perangkat Lunak (Software Engineering)

BAB 4 METODOLOGI PEMECAHAN MASALAH

Teknik Informatika S1

Sistem Informasi OOAD dengan UML (1) Teknik Informatika UNIKOM

SISTEM BASIS DATA. Pendahuluan. Gentisya Tri Mardiani, M.Kom

Konsep dan Arsitektur Basis Data. IKI20410 Basis Data Aniati Murni Fakultas Ilmu Komputer Universitas Indonesia

ANALISA DAN PERANCANGAN SISTEM INFORMASI. Pendekatan Terstruktur dan alat-alat pemodelan Sistem

Ratna Wardani. Department of Electronic Engineering Yogyakarta State University

BAB II LANDASAN TEORI

BAB IV ANALISIS DAN PERANCANGAN SISTEM. hasil analisis ini digambarkan dan didokumentasiakan dengan metodologi

Tujuan Perkuliahan. PENGANTAR RPL (Pert. 2 chapter 1 Pressman) Agenda. Definisi Software (Perangkat Lunak) Lunak) 23/09/2010

SDLC Concepts. Muhammad Yusuf D3 Manajemen Informatika Universitas Trunojoyo

5 Perancangan Perangkat Lunak

Transkripsi:

Rekayasa Perangkat Lunak TI1153 KONSEP DESAIN Restyandito e-mail : dito@ukdw.ac.id website : http://lecturer.ukdw.ac.id/~dito TI1153 Software Process Restyandito - 2 Desain Desain What? Creative process of transforming the problem into a solution Description of the solution Pihak yang terlibat : Customer harus memahami apa yang dilakukan sistem Pengembang harus mengetahui bagaimana sistem bekerja Solusi : Pemecahan masalah tidak unik Sulit mencari pemecahan terbaik Solusi tidak bersifat statis Proses Desain : desain konseptual desain teknis proses iteratif apa bagaimana desain konseptual Desainer desain teknis customer pengembang TI1153 Konsep & Restyandito - 3 TI1153 Konsep & Restyandito - 4 Restyandito Konsep & - 1

Desain Desain Desain Konseptual ditulis dalam bahasa yg dipahami customer tidak menggunakan istilah-istilah teknis menjelaskan fungsi sistem tidak tergantung pada implementasi sistem dihubungkan dengan dokumen requirement Desain Teknis menjelaskan konfigurasi perangkat keras, kebutuhan perangkat lunak, communication interface, I/O, jaringan, dsb. hirarki dan fungsi dari komponen-komponen perangkat lunak struktur data alir data Mengapa tidak langsung dibuat implementasinya? Kita harus mempertimbangkan dampak dari requirements nonfungsional Sistem harus disesuaikan dengan lingkungan implementasi Pemodelan analisis tidak cukup formal, sehingga diperlukan: peyempurnaan analisis class menentukan determine operations menentukan bagaimana class saling berkomunikasi Hasil analisis harus divalidasi Seberapa baik pemodelan kebutuhan dan analisis menjelaskan sistem? Hal apa yang masih belum jelas? TI1153 Konsep & Restyandito - 5 TI1153 Konsep & Restyandito - 6 Desain Workers & Artifacts Core Workflows Requirements Phases Inception Elaboration Construction Transition Architect Use-Case Engineer Component Engineer Analysis Implementation Iteration bertanggung jawab pada bertanggung jawab pada bertanggung jawab pada Testing iter. #1 iter. #2 iter. #n-1 iter. #n increments TI1153 Konsep & Restyandito - 7 Model Deployment Model Architecture Description Use-Case Realization Class Subsystem Interfaces TI1153 Konsep & Restyandito - 8 Restyandito Konsep & - 2

Workers Artifacts architect - responsible for the integrity and the architecture of the design and deployment models use-case engineer - responsible for one or more use-case realizations design makes all textual descriptions and diagrams describing the usecase realization readable and suited for their purpose component engineer - defines and maintains the operations, methods, attributes, relationships and implementation of one or more design classes. May also maintain the integrity of one or more subsystems design model - describes the physical realization of a use case; focuses on how functional and nonfunctional requirements, together with implementation environment constraints, impact the system deployment model - describes the physical distribution of the system in terms of how functionality is distributed among computational nodes architecture description - contains the architecturally significant artifacts of the design model and all of the deployment model two views of architecture - design model view and deployment model view TI1153 Konsep & Restyandito - 9 TI1153 Konsep & Restyandito - 10 Artifacts Desain - Proses use-case realization design - describes how a specific use case is realized and performed in terms of design classes and their objects design class - an abstraction of a class or similar construct in the system s implementation Architect Architectural use programming language to specify a design class design subsystem - organizes artifacts of the design model into more manageable pieces Use-Case Engineer Use Cases interface - specifies the operations provided by design classes and subsystems separates operations from their implementation Component Engineer Classes Subsystems TI1153 Konsep & Restyandito - 11 TI1153 Konsep & Restyandito - 12 Restyandito Konsep & - 3

Analysis Model Model Analysis Model Model conceptual model physical model design generic less formal less expensive to develop implementation specific more formal more expensive to develop component level design Interface design few layers many layers architectural design focus on interactions outline of design created by developer meetings focus on sequence implementation of design created by software engineering environments Data Obj. Desc E.R.D. data dictionary D.F.D. process spec data design may not be maintained maintained throughout life cycle S.T.D. control spec TI1153 Konsep & Restyandito - 13 TI1153 Konsep & Restyandito - 14 Model Component-level design menghasilkan deskripsi prosedur software. Interface design menjelaskan bagaimana software berkomunikasi dalam dirinya, dengan sistem yang bertukar informasi dengannya, dan dengan manusia yang menggunakannya. DFD diperlukan untuk desain ini. Architectural design mendefinisikan relasi antara elemen-elemen struktural utama, pola desain yang digunakan untuk mencapai kebutuhan yang ditentukan untuk sistem dan batasan-batasan yang mempengaruhi bagaimana desain arsitektural ini diterapkan. Desain ini berdasarkan spesifikasi sistem, model analisis (bagian DFD) dan interaksi antara subsistem. Data design mengubah informasi menjadi struktur data untuk mengimplementasikan software. Data design dibuat berdasarkan data dictionary dan ERD. TI1153 Konsep & Restyandito - 15 performance criteria response time throughput memory dependability criteria robustness reliability availability fault tolerance security safety Goals end user criteria utility usability maintenance criteria extensibility modifiability adaptability portability readability cost criteria development deployment upgrade maintenance administration traceability TI1153 Konsep & Restyandito - 16 Restyandito Konsep & - 4

Issues Issues data management Bagaimana penanganan data? files? relational DBMS? object-oriented DBMS? access control Bagaimana penentuan akses? global access table? access control list? capability? control flow Bagaimana proses dimulai dan diatur? procedure-driven? event-driven? threaded? boundary conditions system start-up, system shutdown exceptions Sistem dijalankan pada Perangkat Lunak/Perangkat Keras apa? hardware System software distribution Bahasa pemrograman apa yang dipakai? OO, non-oo memory management Bagaimana sistem yang sudah ada? DBMS UIMS Network facilities legacy systems Bagaimana organisasi / orang yang terlibat? Lokasi yg terdistribusi Kompetensi tim TI1153 Konsep & Restyandito - 17 TI1153 Konsep & Restyandito - 18 1. ABSTRACTION Abstraction adalah gambaran dari fungsi suatu program. Gambaran ini bisa bertingkat-tingkat. Tingkat yang paling atas adalah gambaran suatu fungsi program dengan menggunakan bahasa alami. Pada tingkat terendah, menghasilkan abstraksi yang bersifat prosedural / langkah perlangkah dengan menggunakan istilah yang teknis dan bisa diimplementasikan menjadi fungsi program. Pada saat beralih dari tingkat ke tingkat, kita menggunakan procedural dan data abstraction. Procedural abstraction adalah urutan prosedur yang mempunyai tujuan khusus,dan data abstraction adalah koleksi data yang digunakan pada fungsi tersebut. 1. ABSTRACTION Contoh: Iklan Part Time Job - Fungsi pendaftaran calon part-timer Abstraction 1 (highest level) Calon part-timer dalam melakukan upload syarat-syarat yang diperlukan untuk melamar: surat lamaran, CV, foto, transkrip, data diri. Abstraction 2 (lower level) Procedural abstraction : Data abstraction : tampilkan pilihan part-time job nama is STRING input data nim is STRING verifikasi format foto is IMAGE FILE kirim data surat_lamaran is PDF FILE TI1153 Konsep & Restyandito - 19 TI1153 Konsep & Restyandito - 20 Restyandito Konsep & - 5

2. REFINEMENT Refinement adalah penjelasan detil dari abstraction Refinement membantu designer untuk memperlihatkan detil dari lowest level dari abstraction. Abstraction dan refinement merupakan konsep yang saling melengkapi. Contoh dari refinement tentang fungsi sebuah pintu 3. MODULARITY Software dibagi-bagi menjadi beberapa component yang disebut modul-modul. Modul-modul ini nantinya disatukan / diintegrasikan untuk memenuhi kebutuhan sistem. Dalam pembentukan modul-modul berlaku pernyataan-pernyataan berikut: Jika C(p1) > C(p2) dimana C adalah complexity dari suatu modul, maka E(p1) > E(p2) dimana E adalah waktu yang diperlukan. Semakin rumit sebuah modul, maka waktu yang digunakan untuk menyelesaikan modul tersebut makin banyak. C(p1+p2) > C(p1) + C(p2) dan E(p1+p2) > E (p1) + E(p2) TI1153 Konsep & Restyandito - 21 TI1153 Konsep & Restyandito - 22 3. MODULARITY Modul yang rumit dipecah lagi menjadi beberapa modul untuk memudahkan penyelesaian masalah. Namun semakin banyak modul, maka waktu/biaya untuk integrasikan modul-modul tersebut juga makin tinggi. 3. MODULARITY Menurut Wasserman95 Modular decomposition (function) High-level description of functions Lower-level explanations of component organization and interface Data-oriented decomposition (data) High-level description of data structures Lower-level description of what data are involved and how they are related Event-oriented decomposition (events) High-level description of states Lower-level description of state transformations TI1153 Konsep & Restyandito - 23 TI1153 Konsep & Restyandito - 24 Restyandito Konsep & - 6

3. MODULARITY Outside-in design (user inputs) High-level description of all possible inputs Lower-level description of system response to each input Object-oriented design (objects) High-level description of object types Lower-level description of object attributes, actions, and relations 4. SOFTWARE ARCHITECTURE struktur software secara keseluruhan : struktur hirarki / berjenjang dari modul-modul program. Berapa sudut pandang arsitektur perangkat lunak: conceptual atau logical view (major design elements) implementation view (modules, packages, etc) process view (concurrent systems) deployment view (distributed systems) TI1153 Konsep & Restyandito - 25 TI1153 Konsep & Restyandito - 26 4. SOFTWARE ARCHITECTURE Untuk menggambarkan struktur modul-modul tersebut beberapa model yang ada adalah : - framework model : identifikasi pola yang berulang-ulang - dynamic model : identifikasi bagaimana konfigurasi sistem berubah karena kejadian-kejadian tertentu - process model : fokus pada proses teknis yang harus dikerjakan sistem - functional model : menggambarkan hirarki sistem berdasarkan fungsinya TI1153 Konsep & Restyandito - 27 5. SOFTWARE PROCEDURE Fokus pada detil proses pada tiap modul. Prosedur menjelaskan proses, urutan kejadian, proses perulangan, penentuan keputusan / arah. Ini bisa digambarkan dengan menggunakan Flow Chart yang bertingkat. 6. INFORMATION HIDING Ide dari information hiding (menyembunyikan informasi) adalah modul dirancang sedemikian rupa sehinga inforamsi (prosedur dan data) yang di dalamnya tidak dapat di akses oleh modul lain yang tidak memerlukannya. Modul yang efektif adalah modul yang berdiri sendiri dan berkomunikasi dengan modul lain yang memang diperlukan. TI1153 Konsep & Restyandito - 28 Restyandito Konsep & - 7

PIPES AND FILTERS MODEL Sistem merupakan serangkaian komputasi independen (filter) yang secara bertahap merubah (transform) masukan. PIPES AND FILTERS MODEL Keuntungan Filter dapat digunakan kembali sistem dapat diextends concurrency Kerugian batch processing bagaimana menangani aplikasi yg interaktif? filter dapat menduplikasi fungsionalitas bagaimana menangani error? TI1153 Konsep & Restyandito - 29 TI1153 Konsep & Restyandito - 30 REPOSITORY MODEL Pada model ini data disimpan secara terpusat untuk semua sub-sistem. REPOSITORY MODEL Keuntungan Efisien untuk share jumlah data yang besar Sub-system tidak perlu repot dengan bagaimana data dibuat dan manajemen terpusat contoh: backup, keamanan, re-index. Kerugian Sub-system harus mengikuti model yang sudah ditetapkan. Evolusi data sulit dan mahal Sulit untuk distribusi layanan secara efisien, karena yang melayani hanya satu. TI1153 Konsep & Restyandito - 31 TI1153 Konsep & Restyandito - 32 Restyandito Konsep & - 8

CLIENT-SERVER MODEL Model ini terdiri dari sekumpulan server yang berdiri sendiri dan masing-masing menyediakan layanan untuk sub-sistem. Ada clientclient (sub-system) yang menggunakan layanan server dan tersedia network yang mengijinkan client untuk akses layanan dari server. CLIENT-SERVER MODEL Keuntungan Distribution data secara langsung Penggunaan sistem jaringan secara efektif hardware jadi murah Mudah untuk tambahkan server baru atau updgrade server yang sudah ada Kerugian Tidak ada data model, jadi organisasi data macam-macam, sehingga integrasi data sulit Redundant management Tidak ada pusat register nama dan service, sehingga kalau tidak tahu nama server dan service-nya sulit ditemukan TI1153 Konsep & Restyandito - 33 TI1153 Konsep & Restyandito - 34 LAYERING MODEL LAYERING MODEL Model ini membangun sistem dengan lapisan-lapisan hirarkis dan protokol-protokol interaksi. -Lapisan dalam, menyediakan servis untuk lapisan luar -Lapisan luar, berlaku sebagai klien dari lapisan dalam TI1153 Konsep & Restyandito - 35 TI1153 Konsep & Restyandito - 36 Restyandito Konsep & - 9

LAYERING MODEL Keuntungan Abstraksi hirarkis Relatif mudah untuk menambah lapisan Lapisan dapat digunakan kembali Kerugian Sulit untuk membuat struktur sistem pada lapisan Abstraksi hirarkis tidak selalu tampak dari requirement performance PRINSIP DESAIN TI1153 Konsep & Restyandito - 37 TI1153 Konsep & Prinsip Analisis Restyandito - 38 Desain yang baik, secara umum jika dapat meningkatkan keuntungan dengan mengurangi biaya dan meningkatkan pendapatan. Beberapa prinsip desain yang baik diantaranya: Usability Efficiency Reliability Maintainability Reusability TI1153 Konsep & Prinsip Analisis Restyandito - 39 #1 Divide and conquer Memecahkan masalah yg besar lebih sulit dibandingkan dengan menyelesaikan serangkaian masalah yang kecil-kecil sekelompok orang bekerja utk masalah tertentu tidak semua orang memiliki keahlian / spesialisasi bagian-bagian yg kecil lebih mudah dipahami bagian bisa diubah tanpa mempengaruhi bagian lain Apa yang dibagi?? sistem terdistribusi client server? sistem sub-sistem? sub-sistem beberapa package? package class method TI1153 Konsep & Prinsip Analisis Restyandito - 40 Restyandito Konsep & - 10

#2 High Cohesion Sub-sistem / modul yg berhubungan erat dipisahkan dari subsistem / modul yg tidak berhubungan. Jenis-jenis kohesi: functional satu modul satu fungsi (single computation) layer fasilitas utk mengakses fungsi2 yg berhubungan communicational modul yg mengakses/memanipulasi data yg sama sequential procedure yg menjadi input utk procedure berikutnya Procedural procedur yg saling menggunakan satu dg lain temporal modul yg dijalankan pada saat yg bersamaan utility utility yg berhubungan dan tidak dapat dikelompokkan di salah satu kohesi di atas X #3 Low Copling Copling terjadi jika terjadi saling ketergantungan antar modul TI1153 Konsep & Prinsip Analisis Restyandito - 41 TI1153 Konsep & Prinsip Analisis Restyandito - 42 #3 Low Copling Jenis-jenis kopling: content satu komponen dpt memodifikasi data dr komponen lain common penggunaan variabel global control satu komponen memanggil procedur di komponen lain stamp satu komponen menggunakan obj lain sbg argumen data tipe argumen yhg digunakan berupa primitive/class library routine suatu rutin (method) memanggil rutin yg lain inclusion/import komponen mengimport/include package external komponen memiliki ketergantungan dg faktor eksternal seperti OS, shared library, perangkat keras #4 High Level Abstraction Desain yang menyembunyikan detail sehingga mengurangi kompleksitas #5 Increase Reusability #6 for Flexibility Mengantisipasi perubahan yg mungkin terjadi di masa depan mengurangi kopling dan meningkatkan kohesi membuat abstraksi biarkan opsi-opsi tetap terbuka TI1153 Konsep & Prinsip Analisis Restyandito - 43 TI1153 Konsep & Prinsip Analisis Restyandito - 44 Restyandito Konsep & - 11

#7 Anticipate Obsolesence Merencanakan untuk mengikuti perkembangan teknologi hindari penggunaan teknologi yg masih dini hindari penggunaan library yg spesifik pada environment tertentu cari SW yg memiliki dokumentasi / library yg baik pilih vendor yang memiliki dukungan jangka panjang gunakan teknologi dan standar yang didukung oleh banyak vendor #8 for Portability #9 for Testability Referensi Pressman, Roger S., Software Engineering: A Practitioner s Approach, 6 th Edition, McGraw-Hill, 2005 (bab 9) Pressman,Roger S., Rekayasa Perangkat Lunak: Pendekatan Praktisi (Buku 1), Penerbit Andi, 2002 (bab 13) TI1153 Konsep & Prinsip Analisis Restyandito - 45 TI1153 Konsep & Restyandito - 46 The End terima kasih Restyandito Konsep & - 12