3. praktek - praktek terbaik rekayasa perangkat lunak dan...

39
Desain slide ini dadaptasi dari University of San Fransisco 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan Pengenalan RUP SIF15001 Analisis dan Perancangan Sistem Informasi Agi Putra Kharisma, S.T., M.T. Genap 2014/2015

Upload: others

Post on 04-Jan-2020

36 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Desain slide ini dadaptasi dari University of San Fransisco

3. Praktek - Praktek Terbaik Rekayasa

Perangkat Lunak dan Pengenalan RUP

SIF15001

Analisis dan Perancangan Sistem Informasi

Agi Putra Kharisma, S.T., M.T.

Genap 2014/2015

Page 2: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Mengapa butuh praktek terbaik?

Page 3: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Proyek Perangkat Lunak Di New Zealand

Page 4: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Gejala dan Penyebab Utama

• Apakah gejala pengembangan perangkat lunak yang

bermasalah?

• Apakah penyebab utama terjadinya permasalahan

tersebut?

Page 5: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Menelusuri Gejala dan Penyebab Utama

Needs not met

Requirements churn

Modules don’t fit

Hard to maintain

Late discovery

Poor quality

Poor performance

Colliding developers

Build-and-release

Insufficient requirements

Ambiguous communications

Brittle architectures

Overwhelming complexity

Undetected inconsistencies

Poor testing

Subjective assessment

Waterfall development

Uncontrolled change

Insufficient automation

Symptoms Root Causes Best Practices

Ambiguous communications

Undetected inconsistencies

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Modules don’t fit

IBM

Page 6: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Praktek - Praktek Terbaik (versi IBM)

1. Mengambangkan secara berulang (develop iteratively)

2. Mengelola kebutuhan

3. Menggunakan arsitektur berbasis komponen

4. Memodelkan secara visual

5. Memeriksa kualitas secara terus menerus

6. Mengelola perubahan

Page 7: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Praktek 1: Mengembangkan Secara Berulang

(Develop Iteratively)

Page 8: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Profil Risiko Waterfall vs Iterative

Page 9: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Praktek 2: Mengelola Kebutuhan

http://share.its.ac.id/pluginfile.php/10959/course/section/4551/Requirements%20Def%20Toolbox%20website.jpg

Page 11: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Dalam Mengelola Kebutuhan...

Pastikan:

• solve the right problem

• build the right system

dengan pendekatan sistematis untuk:

• eliciting

• organizing

• documenting

• managing

terhadap perubahan yang terjadi pada kebutuhan perangkat

lunak.

Page 12: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Aspek Dalam Pengelolaan Kebutuhan

• Menganalisis permasalahan

• Memahami kebutuhan pengguna

• Mendefinisikan sistem

• Mengelola lingkup (scope)

• Menyempurnakan (refine) definisi sistem

• Mengelola perubahan kebutuhan

Page 13: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Peta Teritori

Page 14: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Praktek 3: Menggunakan Arsitektur Berbasis

Komponen

Apakah yang dimaksud dengan komponen?

Mengapa menggunakan komponen?

Page 16: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Contoh Diagram Komponen Suatu Perangkat Lunak

http://www.cragsystems.co.uk/uml_tutorial/graphics/componentdiag.jpg

Page 17: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Tujuan Arsitektur Berbasis Komponen

• Sebagai dasar untuk penggunaan ulang (reuse)

• Penggunaan ulang komponen

• Penggunaan ulang arsitektur

• Sebagai dasar untuk manajemen proyek

• Planning

• Staffing

• Delivery

• Kontrol intelektual

• Mengelola kompleksitas

• Memelihara integritas

Page 18: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Arsitektur Tahan Banting dan Berbasis Komponen

Tahan Banting (Resilient)

• Memenuhi kebutuhan saat ini dan masa mendatang

• Meningkatkan extensibility

• Menyediakan penggunaan ulang

• Merangkum ketergantungan sistem (encapsulates system

dependency)

Berbasis Komponen

• Menggunakan ulang atau memodifikasi komponen

• Memilih komponen yang tersedia secara komersial

• Mengembangkan (evolve) perangkat lunak yang ada

secara inkremental

Page 19: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Praktek 4: Memodelkan Secara Visual

*Menggunakan UML

http://agilemodeling.com/images/models/useCaseDiagram.jpg

http://www.tutorialspoint.com/images/uml_class_diagram.jpg

Page 20: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Mengapa memodelkan secara visual?

• Menangkap (capture) struktur dan perilaku (behavior)

• Menunjukkan bagaimana elemen sistem saling terhubung

• Menjaga konsistensi antara perancangan dan implementasi

• Menyembunyikan atau menjabarkan detail sesuai

kebutuhan

• Membangun komunikasi yang tidak ambigu

Page 21: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Pemodelan Visual Dengan UML

Dynamic

Diagrams

Static

Diagrams

Activity Diagrams

Models

Sequence Diagrams

Collaboration Diagrams

Statechart Diagrams

Deployment Diagrams

Component Diagrams

Object Diagrams

Class Diagrams

Use-Case Diagrams

• Allows multiple views

• Provides precise syntax and semantics

Page 22: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Pemodelan Visual Dengan UML

Page 23: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Praktek 5: Memeriksa Kualitas Secara Terus Menerus

Mengapa harus diperiksa terus menerus?

http://rs1img.memecdn.com/Quality-Control_o_97721.jpg

Page 24: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Cost

Development Phases

Software problems are

100 to 1000 times more costly

to find and repair after deployment

Cost to Repair Software

Cost of Lost Opportunities

Cost of Lost Customers

Page 25: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Dimensi Pengujian Pada Kualitas

Page 26: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Pengujian dilakukan pada setiap iterasi

UML Model and

Implementation

Tests

Iteration 1

Test Suite 1

Iteration 2

Test Suite 2

Iteration 4

Test Suite 4

Iteration 3

Test Suite 3

Page 27: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Praktek 6: Mengelola Perubahan

Page 28: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Apa yang dikelola?

• Mengamankan tempat kerja para pengembang

• Otomatisasi integration/build management

• Pengembangan secara paralel

ALERT REPORT

Workspace

Management

Process

Integration

Parallel

Development

Build

Management

Configuration Management is more than just check-in and check-out.

Page 29: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Aspek – Aspek Dalam Pengelolaan Perubahan

• Change Request Management (CRM)

• Configuration Status Reporting

• Configuration Management (CM)

• Change Tracking

• Version Selection

• Software Manufacture

Page 30: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

RUP

RUP mengimplementasikan praktek-praktek terbaik.

Best Practices Process Made Practical

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Page 31: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

RUP Mencapai Praktek Terbaik Melalui Proses

• Pendekatan iteratif

• Petunjuk untuk aktivitas dan artifak

• Proses fokus pada arsitektur

• Perancangan dan implementasi mengacu pada use cases.

• Abstraksi terhadap sistem melalui model

Page 32: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Peran UML Pada RUP

• RUP dikembangkan bersama (hand-in-hand) dengan UML

• Banyak artifak pada RUP yang memiliki representasi dalam

UML

• RUP juga memiliki petunjuk untuk beberapa konsep UML

Page 33: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa
Page 34: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Perubahan Fokus Pada Setiap Fase (1)

Page 35: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Perubahan Fokus Pada Setiap Fase (2)

Page 36: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Berapa lama waktu yang dibutuhkan pada setiap

iterasi?

• Iterasi dimulai dari perencanaan dan analisis kebutuhan

(planning and requirements) kemudian berakhir dengan rilis

internal/eksternal.

• Idealnya, setiap iterasi dilakukan selama 2 – 6 minggu

tergantung ukuran serta kompleksitas proyek.

• Faktor – faktor yang memengaruhi durasi iterasi:

• Ukuran, stabilitas, dan kematangan suatu organisasi

• Kebiasaan (familiarity) terhadap proses iteratif

• Ukuran proyek

• Kesederhanaan teknis suatu proyek

• Tingkat otomatisasi untuk mengelola kode,

mendistribusikan informasi, dan melakukan pengujian

Page 37: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Berapa banyaknya iterasi yang dibutuhkan?

Rule of thumb: 6 + 3 iterasi

Phase Low Medium High

Inception 0 1 1

Elaboration 1 2 3

Construction 1 2 3

Transition 1 1 2

Total 3 6 9

Page 38: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Kondisi yang mengakibatkan bertambahnya jumlah

iterasi

Inception Working with new functionality

Unknown business environment

Highly volatile scope

Make-buy decisions

Elaboration Working with new system

environment (new architectural features)

Untested architectural elements

Need for system prototypes

Construction Lots of code to write and verify

New technology or development tools

Transition Need for alphas and betas

Conversions of customer base

Incremental delivery to customers

Page 39: 3. Praktek - Praktek Terbaik Rekayasa Perangkat Lunak dan ...agipk.lecture.ub.ac.id/files/2015/02/APSI-20142015-2-03.-Praktek-Terbaik-Rekayasa...Praktek - Praktek Terbaik Rekayasa

Referensi

Best Practices of Software Engineering and Introduction to

RUP – IBM Rational Software