Pemaparan Teknis Pembangunan Sistem ... -...

33
02/11/2013 1 Software Architecture Budi Irawan facebook.com/deerawan @masbugan blog.budiirawan.com Kenapa Harus Pusing Mikirin Software Architecture?

Transcript of Pemaparan Teknis Pembangunan Sistem ... -...

Page 1: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

1

Software Architecture

Budi Irawan

facebook.com/deerawan @masbugan blog.budiirawan.com

Kenapa Harus Pusing Mikirin

Software Architecture?

Page 2: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

2

Arsitektur yang baik adalah kunci

dari suksesnya suatu software

Arsitektur Pada Rumah

Page 3: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

3

Apa itu Software Architecture?

Rancangan sistem dalam bentuk

komponen-komponen

serta bagaimana komponen2

tersebut berinteraksi

Contoh Komponen Rumah

Genteng

Jendela

Pintu

Tembok

Lantai

Perabotan

Page 4: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

4

Tujuan dari Software Architecture

• Alat komunikasi antar stakeholders

• Membantu dalam proses desain software

• Mengidentifikasi komponen software serta

interaksinya dalam sistem

• Untuk digunakan kembali (jika bidangnya

sama misal: rumah sakit)

Yg Mempengaruhi Arsitektur

• Lingkungan development misalnya

penggunaan hardware, integrasi dengan

software lain

• Kemampuan dari sang arsitek

Page 5: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

5

Kaitan Software Requirement

dengan Software Architecture

Kaitan antara Software Requirements dengan

Software Architecture itu erat.

Software Architecture berusaha untuk

memastikan functional dan non functional

requirement dapat terealisasikan

Page 6: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

6

Saya mau buat fitur login yang terintegrasi dengan

Facebook dan Twitter Oh! Berarti nanti desain arsitekturnya harus ada

hubungan dengan Facebook dan Twitter

User

Team

Saya mau buat fitur login terintegrasi dengan forum

Kaskus sehingga saya login bisa pakai loginnya Kaskus

Hmm, susah nih karena arsitektur si kaskus tidak bisa

diintegrasikan dalam fitur login. Saya mau nego ulang fitur ini.

User

Team

Page 7: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

7

Dalam requirement engineering,

kita harus selalu memikirkan

apakah arsitekturnya dapat

dibuat apa tidak

Architectural Design

Page 8: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

8

Architectural Design merupakan

sekumpulan keputusan terkait

desain

Sang Arsitek Ridwan Kamil (RK)

Page 9: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

9

Rancangan Denah Rumah RK

Tempat tidur saya taruh dekat taman biar nanti ada udara segar yang

masuk

Keputusan2 Sang Arsitek RK

Kamar Mandi saya taruh di tengah2 dua kamar untuk nanti memudahkan ketika

ke kamar mandi

Page 10: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

10

Jika kita ingin

mendokumentasikan arsitektur

berarti kita mendokumentasikan

keputusan2 tersebut. Apa

alasan dibalik keputusan tsb.

Biasanya dokumentasi keputusan

desain jarang dilakukan

Page 11: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

11

3 Alasan Keputusan Desain Tidak

Terdokumentasi

• Keputusan bersifat implisit: biasanya karena pengalaman arsitek

• Keputusan bersifat eksplisit tapi tidak terdokumentasi: biasanya karena mepet waktu

• Keputusan eksplisit dan tidak terdokumentasi eksplisit: biasanya karena si arsitek cari aman di posisinya biar ga kena pecat

Elemen Deskripsi

Issues Isu yang sedang ingin diselesaikan

Decision Keputusan yang diambil

Status Pending atau disetujui

Assumptions Asumsi terkait environment pengembangan

Alternatives Alternatif lain dari keputusan yang diambil

Rationale Alasan kuat dari keputusan yang diambil

Implications Implikasi dari keputusan yang diambil

Notes Catatan jika ada

Cara Dokumentasi Keputusan Desain

Page 12: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

12

Elemen Deskripsi

Issues Sistem yang dibuat harus menggunakan database open source

Decision Menggunakan MySQL

Status Disetujui

Assumptions Sistem tidak diakses oleh puluhan juta pengguna

Alternatives PostgreSQL namun banyak hosting yang tidak support

Rationale Programmer sudah familiar, banyak hosting yang mendukung dan lebih mudah digunakan

Implications Kinerja MySQL harus diuji coba sekuat apa untuk sistem ini

Notes Tidak ada

Contoh Dokumentasi Keputusan Desain

Architectural View

Page 13: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

13

Software Architecture digunakan

untuk komunikasi diantara para

stakeholders

Siapa Stakeholder?

Pengguna

sistem lain

Arsitek itu

Sendiri

End User

manager

Pakar

security programmer

Page 14: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

14

Tiap Stakeholder memiliki

kepentingan yang berbeda

Contoh Perbedaan

• Programmer ingin tahu dimana dia bisa

implementasi suatu fitur

• Pakar security ingin tahu keterkaitan sistem

ini dengan jaringan gimana

Page 15: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

15

Butuh untuk membuat tampilan

gambar arsitektur yang berbeda

untuk stakeholder yang

berbeda. Ini yang disebut

Architectural View

Elemen Dasar Software Architecture

(IEEE standard 1471)

1. Stakeholder: pihak yang berkepentingan

dengan sistem

2. View: representasi sistem dari perspektif

kepentingan stakeholder

3. Viewpoint: teknik untuk membangun view

Page 16: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

16

“4+1 Model” Viewpoints

1. Logical viewpoint

2. Development viewpoint

3. Process viewpoint

4. Physical viewpoint

5. Scenarios

1) Logical Viewpoint

Terkait dengan fungsionalitas yang

diberikan sistem ke pengguna

Page 17: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

17

Logical view direprentasikan

dengan diagram UML seperti

Class Diagrams, Sequence

Diagram, dsb

Contoh Class Diagram

Page 18: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

18

2) Development Viewpoint

Ilustrasi sistem dari perspektif

programmer dan terkait dengan

software management

Development view direprentasikan

dengan diagram UML seperti

Package Diagram atau

Component Diagram

Page 19: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

19

Contoh Package Diagram

3) Process Viewpoint

Menggambarkan aspek dinamis

dari sistem meliputi proses dan

interaksinya

Page 20: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

20

Process view direprentasikan

dengan diagram UML seperti

Activity Diagram

Contoh Activity Diagram

Page 21: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

21

4) Physical Viewpoint

Menggambarkan topologi

komponen dari software dalam

physical layer (bentuk fisik

seperti server dsb)

Physical view direprentasikan

dengan diagram UML seperti

Deployment Diagram

Page 22: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

22

Contoh Deployment Diagram

5) Scenarios

Menggambarkan interaksi antara

proses dengan objek (objek bisa

user, sistem, dsb)

Page 23: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

23

Scenario direprentasikan dengan

diagram UML seperti Use Case

Diagram

Contoh Use Case Diagram

Page 24: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

24

Class Diagram untuk Stakeholder

siapa?

programmer

Use Case Diagram untuk

Stakeholder siapa?

End user

Page 25: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

25

Architectural Pattern/Styles

Architecture Pattern

Pola arsitektur yang menjadi solusi

untuk memecahkan masalah

desain software

Page 26: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

26

Analogi Pola Baju

Contoh Architecture Pattern

1. Three-tier Architecture

2. MVC architecture

3. dsb....total ada 21 arsitektur bo!

Page 27: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

27

1) Three-tier Architecture

Memperlihatkan adanya

pemisahan (separation)

modules

Diagram Three-tier Architecture

Page 28: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

28

Three Tier

1. Presentation tier: ngurusin tampilan

2. Logic tier: ngurusin kalkulasi, pemrosesan

data

3. Data tier: ngambil dan nyimpan data

2) MVC Architecture

Memperlihatkan adanya

pemisahan (separation) interaksi

Page 29: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

29

Diagram MVC Architecture

MVC

1. Model: ngambil dan nyimpan data, logika

aplikasi

2. Controller: penghubung antara model dan

view

3. View: menampilkan tampilan ke user

Page 30: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

30

What we have learned?

What we Have Learned?

• Apa itu Software Architecture? Kaitannya

dengan Rumah apa?

• 4+1 Viewpoints?

• Activity Diagram masuk ke viewpoint apa?

• Contoh architectural pattern

Page 31: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

31

Review Mission

The Mission

• Misi Quiz Kelompok Use Case Diagram

• Misi 4

Page 32: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

32

Your Mission

The Mission

• James Bond butuh persiapan misi penting

yaitu misi UTS

• Misi UTS hanya one time mission

Page 33: Pemaparan Teknis Pembangunan Sistem ... - blog.budiirawan.comblog.budiirawan.com/wp-content/uploads/2013/09/6-Software-Architecture.pdf · 02/11/2013 12 Elemen Deskripsi Issues Sistem

02/11/2013

33

Thank You