• Tidak ada hasil yang ditemukan

PROSES-PROSES PERANGKAT LUNAK

N/A
N/A
Protected

Academic year: 2022

Membagikan "PROSES-PROSES PERANGKAT LUNAK"

Copied!
57
0
0

Teks penuh

(1)

PROSES-PROSES

PERANGKAT LUNAK

REKAYASA

PERANGKAT LUNAK

(2)

Muhlis tahir 092904033

ptik a 09 unm

(3)

 Memahami konsep proses perangkat lunak dan model proses perangkat lunak.

 Memahami berbagai model proses dan kapan model-model tersebut digunakan.

 Mengerti secara garis besar, tentang model proses untuk rekayasa persyaratan, pengembangan,pengujian dan evolusi perangkat lunak.

 Mengetahui teknologi CASE sebagai penunjang proses perangkat lunak.

TUJUAN

(4)

1) Model Proses Perangkat Lunak 2) Iterasi Proses

3) Spesifikasi Perangkat Lunak

4) Perancangan dan Implementasi Perangkat Lunak.

5) Validasi Perangkat Lunak 6) Evolusi Perangkat Lunak

7) Pendukung Proses Yang Terotomasi

MATERI

(5)

Proses perangkat lunak merupakan serangkaian kegiatan dan hasil yang berhunbungan dengannya,yang menuju pada dihasilkannya produk perangkat lunak.

Kegiatan ini mencakup pengembangan perangkat lunak mulai dari awal, walaupun kenyataannya makin sering terjadi bahwa perangkat lunak yang baru dikembangkan dengan memperluas dan memodifikasi sistem yang telah ada.

Walaupun ada banyak proses perangkat lunak, ada kegiatan-kegiatan mendasar yang umum bagi

Pendahuluan

(6)

Kegiatan Mendasar Perangkat Lunak

1. Penspesifikasikan Perangkat Lunak

2. Perancangan dan Implementasi Perangkat Lunak 3. Pemvalidasian Perangkat Lunak

4. Pengevolusian Perangkat Lunak

Pendahuluan

(7)

Model proses perangkat lunak merupakan representasi abstrak dari proses perangkat lunak.

Setiap model proses merepresentasikan suatu proses dari sudut pandang tertentu sehingga hanya memberikan informasi parsial mengenai proses tersebut.

Model-model ini biasanya merupakan abstraksi yang dapat digunakan untuk menjelaskan pendekatan-pendekatan terhadap pengembangan perangkat lunak.

Untuk banyak sistem besar, tentu saja, tidak

1. Model Proses Perangkat Lunak

(8)

• Model proses meliputi;

• Pendekatan Model Air terjun (Water fall), Menempatkan semua aktifitas sesuai dengan tahapan pada model Waterfall dengan memisahkan dan membedakan antara spesifikasi dan pengembangan

• Pengembangan yang berevolusi, Pendekatan yang melanjutkan Aktifitas satu dan yang lainnya dari Spesifikasi dan pengembangan serta validasi secara cepat

1. Model Proses Perangkat Lunak

(9)

• Pengembangan sistem Formal, Pendekatan aktifitas bersasar suatu model sistem matematika yang ditransformasikan ke implementasi,

• Pengembangan Sstem berbasis Re-use (penggunaan ulang) komponen, sistem dibangun dari komponen yang sudah ada dengan fokus integrasi sistem.

Lanjutan…

(10)

Model Air Terjun (Waterfall)

Requirements definition

System and software design

Implementation and unit testing

Integration and system testing

(11)

Fase Model Air Terjun

1) Analisis Kebutuhan dan pendefinisiannya 2) Perancangan sistem dan Perangkat Lunak 3) Implementasi dan unit testing

4) Integrasi dan pengujian sistem 5) Pengoperasian dan perawatan

Model Air Terjun (Waterfall)

(12)

Kelebihan Model Air Terjun

Mudah diterangkan kepada pelanggan yang tidak biasa dengan pembangunan perisian

Model ini boleh memberikan pembangun perisian pandangan tahap-tinggi semasa proses pembangunan

Kebanyakan model lain adalah ubahsuai dari

Model Air Terjun (Waterfall)

(13)

Kekurangan Model Terjun

Pembagian proyek yang tidak flexibel dalam bentuk tahapan yang berbeda

Hal ini mengakibatkan kesulitan saat merespon perubahan kebutuhan customer

Dengan demikian, model ini hanya akan sesuai apabila kebutuhan telah disepakati dan dipahami

Model Air Terjun (Waterfall)

(14)

• Lanjutan…

Tidak menggambarkan cara kod dihasilkan – kecuali sesuatu perisian itu sudah benar-benar difahami

Tidak menyediakan panduan untuk mengendalikan sebarang perubahan yang berlaku pada produk dan aktiviti

Gagal untuk mengganggap perisian sebagai satu proses penyelesaian masalah – model air terjun adalah hasil dari proses pembangunan perkakasan

Model Air Terjun (Waterfall)

(15)

• Pengembangan Evolusioner berdasarkan pada ide untuk mengembangkan implementasi awal, memperlihatkan kepada user untuk dikomentari, dan memperbaikinya versi demi versi sampai sistem yang memenuhi persyaratan.

• Tidak ada kegiatan spesifikasi,pengembangan, dan validasi yang terpisah, alih-alih kegiatan-kegiatan ini dilakukan pada saat yang bersamaan dengan umpan balik yang cepat untuk masing-masing kegiatan.

Pengembangan Evolusioner

(16)

• Dua jenis pengembangan evolusioner:

I. Pengembangan Eksploratori. Bekerja dengan pelanggan untuk menyelidiki persyaratan mereka dan mengirimkan sistem akhir.

II. Prototipe Yang Dapat Dibuang (Throw-Away).

Memahami persyaratan pelanggan dan dengan demikian mengembangkan definisi persyaratan yang lebih untuk sistem.

Pengembangan Evolusioner

(17)

Pengembangan Evolusioner

Validation Final

version

Development Intermediate

versions

Specification Initial

version

Outline description

Concurrent activities

(18)

• Pendekatan evolusioner erhadap pengembangan pendekatan air terjun dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.

Keuntungannya adalah:

 bahwa spesifikasi dapat dikembangkan secara inkremental.

 User mendapat pemahaman yang lebih baik dari masalah mereka, sistem perangkat lunak dapat merefleksikannya.

Pengembangan Evolusioner

(19)

Ada tiga Masalah Dalam Pengembangan evolusioner

I. Proses Tidak Bisa Dilihat

II. Sistem Seringkali Memiliki Struktur Yang Buruk

III. Mungkin Diperlukan Alat Bantu Dan Teknik Khusus.

IV. Untuk Sistem Kecil (kurang dari 100.000 baris kode) V. Untuk Sistem Menengah(sampai 500.000 baris kode)

VI. Waktu Hidup Yang Pendek Bagi Pengembangan Sistem Yang Besar.

Pengembangan Evolusioner

(20)

• Pengembangan sistem formal merupakan pendekatan terhadap pengembangan perangkat lunak yang memiliki kesamaan dengan model air terjun, tetapi proses pengembangannya didasarkan pada transformasi matematis dari spesifikasi sistem menjadi program yang dapat dijalankan.

• Perbedaan kritis antara pendekatan evolusioner dengan air terjun adalah:

 Spesifikasi persyaratan perangkat lunak diperbaiki menjadi spesifikasi formal yang rinci yang dinyatakan dalam notasi matematis.

 Proses pengembangan perancangan,implementasi dan

Pengembangan Sistem Formal

(21)

Pengembangan Sistem Formal

(22)

Pengembangan Sistem Formal

Formal R2

specification R3 Executable

program

P2 P3 P4

T1 T2 T3 T4

Proofs of transformation correctness Formal transformations

R1

P1

(23)

• Problems

 Dibutuhkan ketrampilan dan pelatihan khusus untuk mengaplikasikan teknik ini

 Kesulitan dalam menspesifikasikan beberapa aspek ke dalam sistem misalnya dalam penentuan user interface

• Applicability

 System kritis khususnya sistem yang mengutamakan faktor keselamatan dan keamanan sebelum sistem utamanya dioperasikan

Pengembangan Sistem Formal

(24)

• Berdasarkan pada pendekatan pakai-ulang yang sistematik dimana sistem dintegrasikan dari komponen-komponen yang telah tersedia atau disebut COTS (Commercial-off-the-shelf) system-system

• Tahap Proses ini :

 Component analysis(Analisis Komponen)

 Requirements modification(Modifikasi Persyaratan)

 System design with reuse(Perancangan Sistem dengan Pemakaian Ulang)

 Development and integration(Pengembangan Dan Integrasi)

Pengembangan Berorientasi Pemakaian ulang

(25)

Pengembangan Berorientasi Pemakaian ulang

Requirements

specification Component analysis

Development and integration

System design with reuse Requirements

modification

System validation

(26)

• Model ini mempunyai keuntungan yang nyata yaitu mengurangi besarnya perangkat lunak yang akan dikembangkan, serta memperkecil biaya dan resiko.

• Memungkinkan penyelesaian perangkat lunak dengan cepat.

Pengembangan Berorientasi Pemakaian ulang

(27)

• Dalam suatu project system requirements selalu mengalami perubahan, itulah sebabnya iterasi proses pada tahapan awal yang selalu dikerjakan berulang-ulang menjadi bagian dari prosess pada system yang lebih besar.

• Iterasi dapat diterapkan pada setiap model proses yang generik.

• Model Pendekatan Itersi:

1. Pengembangan Inkremental. Dimana spesifikasi, perancangan dan implementasi perangkat lunak dibagi menjadi serangkaian inkremen yang dikembangkan secara bergantian.

2. Pengembangan Spiral. Dimana pengembangan sistem seolah beralur membentuk spiral ke luar dari garis awal

Proses Iterasi

(28)

• Bukan sekedar menghantarkan sistem sebagai “single delivery”, development dan delivery dipecah menjadi beberapa tahapan dimana tiap tahap akan mendeliver bagian dari kebutuhan fungsionalitas sistem.

• Mengurangi pengerjaan ulang pada proses pengembangan dan memberi kesempatan bagi pelanggan untuk menunda keputusan persyaratan rinci sampai mereka memperoleh pengalaman dengan sistem.

• Pada proses ini pelanggan mengidentifikasi, secara garis besar, layanan (service) yang akan disediakan oleh sistem.

• Persyaratan pengguna diprioritiskan dan persyaratan prioritas tertinggi dimasukkan dalam awal increment

Proses Iterasi-(Pengembangan Inkremental)

(29)

Proses Iterasi-(Pengembangan Inkremental)

Validate increment Develop system

increment

Design system architecture

Integrate

increment Validate

system Define outline

requirements Assign requirements to increments

System incomplete

Final system

(30)

Kebutuhan customer dapat di-delivered di tiap- tiap increment sehingga sistem akan tersedia lebih awal.

increments awal bertindak sebagai prototype untuk membantu menentukan kebutuhan untuk increment selanjutnya.

Menurunkan resiko kegagalan proyek secara keseluruhan.

Layanan prioritas yang paling tertinggi sistem cenderung untuk menerimanya.

Proses Iterasi-(Pengembangan Inkremental)

(31)

 Extreme programming:

 Pendekatan baru pada tahapan pengembangan dengan berbasis pada development and delivery of very small increments of functionality

 Mengacu pada pengembangan kode secara konstan, pelibatan user dalam development team dan pairwise programming

Proses Iterasi-(Pengembangan Inkremental)

(32)

 Process direpresentasikan sebagai spiral bukan aktifitas sequence dengan backtracking

 Merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model.

 Dalam model ini perangkat lunak dikembangkan dalam suatu seri incremental release.

 Setiap loop dalam spiral merupakan tahap dalam proses.

 Tidak ada fase tetap seperti spesifikasi atau desain-loop dalam spiral dipilih tergantung pada apa yang dibutuhkan.

 Resiko secara eksplisit dinilai dan diselesaikan selama proses.

Proses Iterasi-(Pengembangan Spiral)

(33)

Proses Iterasi-(Pengembangan Spiral)

analysisRisk analysisRisk

analysisRisk

analysis Proto-Risk type 1

Prototype 2

Prototype 3 Opera- tional protoype

Concept of Operation

Simulations, models, benchmarks requirementsS/W

Requirement validation

Design V&V

Product

design Detailed design Code Unit test Integration

Evaluate alternatives identify, resolve risks Determine objectives

alternatives and constraints

Integration and test plan Development

plan Requirements plan

Life-cycle plan REVIEW

(34)

Setiap Untai Pada Spiral dibagi Menjadi Empat Sektor

Penentuan Tujuan

• Menentukan tujuan untuk phase yang diidentifikasi

 Penilaian dan Pengurangan Resiko

• Resiko dikenali dan aktifitas dilakukan untuk mengurangi sejumla resiko

 Pegembangan Dan Validasi

• Model development system ditentukan yang memungkinkan penggunaan berbagai model secara umum

 Perencanaan

• Proyek ini ditinjau dan dibuat rencana untuk fase proyek

Proses Iterasi-(Pengembangan Spiral)

(35)

 Proses ini untuk menentukan services apa yang dibutuhkan dan batasan pada tahapan pengoperasian dan pengembangan sistem.

 Ada 4 Fase Utama Pada Proses Rekayasa Persyaratan:

 Studi kelayakan

 Elisitasi Dan Analisis Persyaratan

 Spesifikasi Persyaratan

 Validasi Persyaratan

Spesifikasi Perangkat Lunak

(36)

Spesifikasi Perangkat Lunak

Feasibility study

Requirements elicitation and

analysis

Requirements specification

Requirements validation Feasibility

report

System models

User and system requirements

Requirements document

(37)

 Proses mengkonversi spesifikasi system specification kedalam executable system

 Desain Sotwre

– Desain struktur software yng mengacu pada dokumen specification

 Implementation

– Struktur ini Terjemahkan ke dalam suatu program executable

 Aktifitas desain dan implementasi sangatlah berdekatan dan kadang saling tumpang tindih

Perancangan Implementasi Perangkat Lunak

(38)

 Kegiatan-Kegiatan Proses Perancangan Yang Spesifik:

I. Perancangan Arsitektural (Architectural design) II. Spesifikasi Abstrak (Abstract specification)

III. Perancangan Inteface (Interface design)

IV. Perancangan Komponen (Component design)

V. Perancangan Struktur Data (Data structure design) VI. Perancangan Algoritma (Algorithm design)

Perancangan Implementasi Perangkat Lunak

(39)

Perancangan Implementasi Perangkat Lunak

Architectural

design Abstract

specification Interface

design Component

design

structurDatae design

Algorithm design

System

architecture Software

specification Interface

specification Component specification

structurDatae specification

Algorithm specification Requirements

specification

Design activities

Design products

(40)

 Pendekatan sistemastis untuk mengembangkan desain sofware.

 Desain biasanya didokumentasikan sebagai satu set model grafis.

 Kemungkinan model menjadi:

 Data Flow Model

 Hubungan Entitas-Atribut Model

 Model Struktural

 Model Berorintasi Objek

Metode Perancangan

(41)

 Merubah desain kedalam program dan menghilangkan errors yang ditimbulkan dari program

 Pemrograman merupakan kegiatan pribadi dan disini tidak ada proses yang biasanya dipakai dan akan memulai dengan komponen-komponen yang mereka ketahui.

 Pemrogram melakukan beberapa pengujian untuk menemukan kesalahan dalam program dan menghapus kesalahan dalam proses debugging.

 Debugger harus membuat hipotesis mengenai perilaku program yang dapat terlihat, kemudian menguji hipotesis ini dengan harapan menemukan kesalahan yang menyebabkan penyimpangan output

Pemrograman Dan Debug

(42)

Pemrograman Dan Debug

Locate

error Design

error repair Repair

error Re-test

program

Proses Debug

(43)

• Verification dan validation diperlukan untuk menunjukkan bahwa system telah sesuai dengan spesifikasinya dan memenuhi kebutuhan dari customer

• Melibatkan checking dan review proses serta system testing

• System testing meliputi mengeksekusi system dengan skenario test yang diturunkan dari spesifikasi data real untuk diproses oleh system

Validasi Perangkat Lunak

(44)

Validasi Perangkat Lunak

Sub-system testing Module

testing testingUnit

System testing

Acceptance testing

Component Integration testing User

(45)

 Tahap-Tahap Pada Proses Pengujian:

I. Pengujian Unit. Masing Masing Komponen Diuji.

II. Pengujian Modul. Terkait koleksi komponen tergantung diuji.

III. Pengujian SubSistem. Modul diintegrasikan ke dalam subsistem dan diuji. Disini harus fokus dalam pengujian interface.

IV. Pengujian Sistem. Pengujian secara Keseluruhan.

V. Pengujian Penerimaan. Pengujian data pelanggan untuk memeriksa kinerja sistem.

Validasi Perangkat Lunak

(46)

Validasi Perangkat Lunak

Requirements

specification System

specification System

design Detailed

design

Module and unit code

and tess Sub-system

integration test plan System

integration test plan Acceptance

test plan

Service Acceptance

test System

integration test Sub-system integration test

Fase Pengujian Pada Proses Perangkat Lunak

(47)

 Software pada dasarnya flexible dan dapat dirubah.

 Dengan berubahnya kebutuhan seiring dengan perubahan kondisi bisnis, software yang mendukung bisnis sudah selayaknya juga ikut berubah

 Walaupun sering terjadi pembatasan antara proses pengembangan perangkat lunak dan proses evolusi perangkat lunak (pemeliharaan perangkat lunak). Proses pemeliharaan dianggap menantang dari pengembangan perangkat lunak

Evolusi Perangkat Lunak

(48)

Evolusi Sistem

Assess existing systems Define system

requirements Propose system

changes

Modify systems systemNew Existing

systems

(49)

 Computer-aided software engineering (CASE) adalah software untuk mendukung software development dan process evolusi.

 Activity automation

 Pengembangan model sistem grafis.

 Pemahaman rancangan menggunakan kamus data yang menyimpan informasi mengenai entitas dan hubungan pada rancangan.

 Pembuatan interface user dari deskripsi grafis yang dibuat secara interaktif dengan user.

 Debug program dengan menyediakan informasi mengenai program yang sedang berjalan.

 Penerjemahan program yang terotomasi dari bahasa

Pendukung Proses Terotomasi

(50)

 Case technology telah berkembang dengan sangat pesat dalam mendukung software process melebihi dari yang diperkirakan sebelumnya:

 Perancangan Perangkat lunak memerlukan pikiran kreatif.

 Perancang Perangkat lunak adalah suatu aktivitas tim dan, karena proyek besar yang memerlukan banyak waktu untuk ber interaksi dengan timnya. CASE teknologi tidak benar- benar memberi banyak mendukung ini

Pendukung Proses Terotomasi

(51)

 Pengklasifikasian CASE membantu kita dalam memahami berbagai tipe dari CASE tools dan dukungannya terhadap process activities.

 CASE Tool dari tiga sudut pandang:

1. Sudut Pandang Fungsional. Di mana CASE Tool diklasifikasikan menurut fungsinya.

2. Sudut Pandang Proses. Di mana CASE Tool diklasifikasikan menurut kegiatan proses yang didukungnya.

3. Sudut Pandang Integrasi. Di mana CASE Tool diklasifikasikan menurut bagaimana mereka diorganisasikan ke dalam unit-unit yang terintegrasi, yang memberikan dukungan bagi satu kegiatan proses atau

Klasifikasi CASE

(52)

Klasifikasi Fungsional dari CASE Tool

Tool type Examples

Planning tools PERT tools, estimation tools, spreadsheets

Editing tools Text editors, diagram editors, word processors

Change management tools Requirements traceability tools, change control systems

Configuration management tools Version management systems, system building tools

Prototyping tools Very high-level languages, user interface generators

Method-support tools Design editors, data dictionaries, code generators

Language-processing tools Compilers, interpreters

Program analysis tools Cross reference generators, static analysers, dynamic analysers

(53)

Klasifikasi Berbasis Kegiatan dan CASE Tool

Reengineering tools Testing tools

Debugging tools Program analysis tools Language-processing tools

Method support tools Prototyping tools Configuration management tools

Change management tools Documentation tools

(54)

1) Tool (Alat Bantu)

Mendukung pekerjaan proses individual seperti memeriksa konsistensi perancangan,kompilasi program, membandingkan hasil pengujian dll.

2) Workbench

Fase atau kegiatan proses seperti spesifikasi, perancangan, dsb. Terdiri dari serangkain tool dengan derajat integrasi yang lebih besar atau lebih kecil.

3) Lingkungan Mendukung

Semua atau paling tidak bagian yang penting dari proses lengkap lunak. Lingkungan biasanya mencakup beberapa workbench yang terintegrasi dengan suatu cara.

CASE Integration

(55)

Tool, Workbench dan Lingkungan

Programming Testing Analysis and

design

Integrated

environments Process-centred environments comparatorsFile

Compilers Editors

Environments Workbenches

Tools

technologyCASE

(56)

 Proses Perangkat Lunak adalah aktifitas meliputi producing dan evolving software system. Aktifitas ini direpresentasikan dalam software process model

 Activitas umumnya meliputi specification, design dan implementation, validation dan evolution

 Model process secara umum menggambarkan organisasi process software

 Iterative process models mendiskripsikan software process sebagai siklus aktifitas

Hal-Hal Penting

(57)

 Rekayasa Kebutuhan adalah process pengembangan spesifikasi software

 Proses Perancangan dan implementasi mengubah spesifikasi menjadi executable program

 Validasi Perangkat Lunak memastikan system telah memenuhi spesifikasi dan kebutuhan user

 Evolusi Perangkat Lunak fokus pada modifikasi system setelah software system diterapkan

 Teknologi CASE mendukung aktifitas Proses Perangkat Lunak.

Hal-Hal Penting(2)

Referensi

Dokumen terkait

Avoidant coping merupakan strategi yang dilakukan individu untuk menjauhkan diri dari sumber stres dengan cara melakukan suatu aktivitas atau menarik diri dari suatu

Hasil penelitian menunjukkan bahwa kasus campak banyak terjadi pada daerah dengan kepadatan penduduk tinggi dan cakupan imunisasi kelurahan yang rendah, insiden

Hasil penelitian menunjukkan bahwa akuntabilitas dan Transparansi berpengaruh positif terhadap Kinerja perusahaan AJB Bumiputra 1912 Cabang Singaraja semakin baik.. Kata

Faktor-Faktor Yang Mempengaruhi Turnover Intention Dengan Variabel Intervening Kepuasan Kerja Dan Komitmen

In contrast to Rajca’s polyradicals, which lack chemical stability at room temperature, the pendant-type polyradical has the advantages that a chemically stable radical species such

Penelitian ini menggunakan metode kualitatif dengan pendekatan hermeneutika, yaitu cara untuk menafsirkan simbol berupa teks atau sesuatu yang diperlakukan sebagai teks masa

Kosmetik menurut Peemenkes 01 no (*23men.Kes3Per3435 adalah bahan Kosmetik menurut Peemenkes 01 no (*23men.Kes3Per3435 adalah bahan atau campuran bahan untuk digosokkan,

Dilution ventilation umumnya sangat baik untuk mengendalilkan beban panas, sering kali dilution ventilation dapat digunakan dan berhasil dengan baik untuk mengendalikan uap bahan