Materi 1a Kuliah IT-505 PSBO

  Materi 1a Kuliah

IT-505 PSBO

  ©Ayi Purbasari, S.T., M.T.

  @Unpas – 2010/2011 Tujuan

  • Bagian ini menjelaskan tentang pengertian perangkat lunak dan rekayasa perangkat lunak.
    • – Mengetahui arti, karakteristik, dan jenis-jenis perangkat lunak sebagai produk rekayasa perangkat lunak.
    • – Memahami tujuan pengggunaan rekayasa perangkat lunak.
    • – Mengetahui proses pengembangan perangkat lunak.
    • – Mengetahui aktivitas dan model proses pengembangan perangkat lunak.
    • – Mengetahui metode pengembangan perangkat lunak .

  

Defnisi Perangkat

Lunak

  Defnisi Rekayasa

  • Rekayasa:
    • – Upaya pembentukan produk melalui pendekatan

  berkualitas yang sistematis yang berdasarkan sains

dan matematika dalam merancang,

menghasilkan dan mengoperasikan

struktur, mesin, proses atau sistem [Har03]

  Defnisi Perangkat Lunak .. (1)

  • “1) Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi tertentu; 2) Struktur data yang dapat membuat program memanipulasi informasi; dan 3) Dokumen yang menjelaskan operasi dan penggunaan program.” [Pre01]

Defnisi Perangkat Lunak .. (2)

  • • “Program komputer, prosedur, aturan,

    dan dokumentasi yang berkaitan dengannya serta data yang berkaitan dengan operasi suatu sistem

    komputer.” The Institute of Electrical

    and Electronics Engineers (IEEE) [IEE93]
  • “Program komputer dan dokumen yang berkaitan dengannya [Som95]

  Defnisi Perangkat Lunak .. (3)

  • Perangkat Lunak = Program Komputer + Data + Dokumen
    • – Program Komputer: Kumpulan instruksi yang apabila dieksekusi oleh sistem komputer akan menjalankan proses atau fungsi tertentu.
    • – Data: Struktur data atau basis data yang memungkinkan data yang tersimpan padanya dimanipulasi oleh program.
    • – Dokumen: Dokumentasi yang menjelaskan

      bagaimana pengembangan, cara instalasi,

      penggunaan, dan pemeliharaan program

Defnisi RPL .. (1)

  • Rekayasa perangkat lunak merupakan suatu proses rancang bangun perangkat lunak yang menggunakan kaidah-kaidah ilmu, seperti prinsip, konsep, dan metode sehingga dihasilkan perangkat lunak yang berkualitas (dapat digunakan dan beroperasi dengan benar, bermanfaat, serta sesuai dengan kebutuhan yang diinginkan).
  • Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat

    lunak secara ekonomis namun andal dan dapat

    bekerja secara efsien pada komputer (Fritz Bauer, 1968, [PRE01]).

Defnisi RPL .. (2)

  • Suatu disiplin yang mengintegrasikan proses,

    metode, dan alat (tools) untuk pembangunan

    perangkat lunak komputer. [PRE01]
  • Suatu yaitu alat bantu (tools), metode dan model proses, dengan kualitas sebagai dasar utamanya. [PRE01]
  • Teori, metode, dan alat bantu yang dibutuhkan untuk mengembangkan perangkat lunak. [SOM96]
  • Penerapan pendekatan yang sistematis, disiplin dan terukur untuk pengembangan,

    operasi, dan pemeliharaan perangkat lunak.

    [IEE93]

  Defnisi RPL .. (3)

  Apa Tujuan RPL? .. (1)

  • Fokus dari rekayasa perangkat lunak adalah

  kualitas:

  • – perangkat lunak yang dihasilkan

  sesuai dengan kebutuhan yang diinginkan.

  • – dapat digunakan dan beroperasi dengan

  benar di lingkungan sebenarnya.

  • – memberikan

  manfaat bagi pemakai yang menggunakannya.

  yang dikeluarkan untuk membuatnya rendah, dalam arti efektif dan sesuai dengan anggaran yang telah ditetapkan.

  • – biaya

  , baik saat pembuatan, penyerahan ke pemakai, maupun instalasinya.

  • – tepat waktu
  • – setiap tahap pekerjaan terjamin kualitasnya, terdokumentasi, dan dapat

  dipertanggungjawabkan kebenarannya (ada proses verifkasi dan validasi

  ). Apa Tujuan RPL? .. (2)

  • • Lebih jauh lagi, rekayasa perangkat lunak harus

    mampu

  menghasilkan produk perangkat : [IEE93] lunak dengan atribut kualitas

  : Perangkat lunak harus memungkinkan

  • – Maintainability

  

untuk dikembangkan sesuai dengan perubahan kebutuhan

pemakai.

  : Berkaitan dengan rentang karakteristik

  • – Dependability

    yang mencakup keandalan, keamanan, dan keselamatan.

  Perangkat lunak harus tidak menyebabkan kerusakan fsis dan ekonomis saat sistem mengalami kegagalan.

  : Perangkat lunak harus efsien dalam

  • – Efciency

  penggunaan sumber daya seperti memory dan siklus pemroses.

  : Perangkat lunak harus mempunyai antarmuka

  • – Usability pengguna yang tepat dan dokumentasi yang memadai.

  Pengembangan

Perangkat Lunak

  Proses Pengembangan Perangkat Lunak

  • Pengembangan perangkat lunak didefnisikan sebagai suatu proses dimana kebutuhan pemakai diterjemahkan menjadi produk perangkat lunak melalui suatu rangkaian

    aktivitas tertentu sesuai model proses yang

    digunakan

  

Kebutuhan Pemakai Pengembangan Perangkat Lunak Perangkat Lunak

  Proses Pengembangan Perangkat Lunak Kumpulan aktivitas Kumpulan aktivitas dengan menggunakan dengan menggunakan pendekatan atau pendekatan atau

  Proses teknis tertentu teknis tertentu Otomatisasi

  Template Proyek Oramg

  Alat Bantu Partisipan Hasil Kumpulan perangkat

  Kumpulan perangkat Kode sumber Produk

  Kode sumber bantu atau kakas bantu atau kakas executable executable otomatis dan semi- otomatis dan semi- programs , model- programs , model-

Fase Proses Perangkat Lunak

  • Software engineering encompasses a process, management techniques, technical methods, and the use of tools.
    • – Defnition phase - focuses on

  what (information engineering, software project planning, requirements analysis).

  • – Development phase - focuses on

  how

(software design, code generation, software

testing).

  • – Support phase - focuses on

  change (corrective maintenance, adaptive maintenance, perfective maintenance, preventative maintenance).

Model Proses Perangkat Lunak

  • Linear Sequential Model (old fashioned but

    reasonable approach when requirements are

    well understood)
  • Prototyping Model (good frst step when customer has a legitimate need, but is clueless about the details, developer needs to resist pressure to extend a rough prototype into a production product)
  • Rapid Application and Development (RAD)

    Model (makes heavy use of reusable software

    components with an extremely short development cycle)

Linear Sequential Model Communication Planning Modeling Construction Deployment

  analysis design code test project initiation requirement gathering estimating scheduling tracking delivery support f eedback Iterative Models Communication

Quick plan

Quick design Modeling Deployment & Feedback Delivery prototype

of

Construction

  Iterative Models Communication Planning Modeling business modeling data modeling process modeling

  Construction component reuse automatic code generation testing Deployment

60 - 90 days Team # 1 Modeling

business modeling data modeling

process modeling Construction component reuse automat ic code generation testing Mo d e lin g business modeling data modeling process modeling Co n st ru ct io n component reuse automatic code generation testing Team # 2

Team # n integration delivery feedback The Incremental Model increment # n C o m m u n i c a t i o n P l a n n i n g M o d e l i n g des ign analys is C o n s t r u c t i o n c ode D e p l o y m e n t t es t f e e d b a c k d e l i v e r y increment # 2 C o m m u n i c a t i o n P l a n n i n g M o d e l i n g analys is

C o n s t r u c t i o n

delivery of nth increment increment # 1 C o m m u n i c a t i o n P l a n n i n g M o d e l i n g des ign t es t c ode D e p l o y m e n t d e l i v e r y f e e d b a c k delivery of 2nd increment des ign analys is C o n s t r u c t i o n t es t c ode f e e d b a c k d e l i v e r y D e p l o y m e n t 1st increment delivery of project calendar time

Metode Pengembangan Perangkat Lunak

  • • Metodologi adalah kesatuan metode-metode,

    prosedur-prosedur, konsep-konsep pekerjaan, aturan-aturan yang digunakan oleh suatu ilmu

    pengetahuan, seni atau disiplin yang lainnya.

  • • Metode adalah suatu cara, teknik yang

    sistematik untuk mengerjakan sesuatu.
  • • Metode pengembangan perangkat lunak disini

    adalah pendekatan, sudut pandang, atau kumpulan aturan yang harus diikuti untuk menyelesaikan tahap-tahap pekerjaan saat melaksanakan pengembangan perangkat lunak.

  Beberapa Metode

  • • Ada beberapa pendekatan atau

    metode yang sudah dikenal:
    • – Konvensional,
    • – Berorientasi Aliran Data,
    • – Berorientasi Data dan – Berorientasi Objek.

  • Metode ini berbeda

  Paradigma! Paradigma

  • Cara pandang spesifk

  dalam usaha pencarian solusi

  • Menyangkut

Konseptualisasi

  permasalah dan solusi

  • – Bukan urutan aktivitas penyelesaian solusi

  Paradigma Konvensional

  • Dekomposisi berdasarkan

  fungsi

  • Contoh:
    • – Sistem Akademik

  • Fungsi Pengajaran
    • – Sub Fungsi Perwalian – Sub Fungsi Pembelajaran – Sub Fungsi Evaluasi

  • Fungsi Penelitian

  Paradigma Konvensional

  • Structured Analysist • Modern Structured Analysist • Algoritma + Data Struktur = Program

  Niklaus Wirth Tom DeMarco Edward Yourdon Paradigma Berorientasi Objek

  • Dekomposisi berdasarkan

  objek

  • Objek = things
  • Contoh:
    • – Sistem Akademik

  • Objek Dosen • Objek Mahasiswa • Objek Jadwal • Dll

Berorientasi Objek .. (1)

  • • Berbeda dengan pendekatan-pendekatan

    sebelumnya, metode berorientasi objek memandang perangkat lunak yang akan dikembangkan sebagai

  suatu kumpulan yang berkorespondensi dengan objek- objek objek dunia nyata.

  • – Pada metode ini, informasi dan proses yang dipunyai oleh suatu objek “dienkapsulasi” (dibungkus) dalam satu kesatuan.
  • – Gambar berikut menunjukkan cara pandang metode berorientasi objek dibandingkan dengan metode berorientasi fungsi.

  Berorientasi Objek ..

  (2)

dosen

mahasiswa materi kuliah

  Contoh : Pengembangan P/L untuk mengolah data perkuliahan pada suatu sisitem

Berorientasi Objek .. (3)

  Sistem Akademik Sistem Akademik

  

Dekomposisi berdasarkan objek atau konsep Dekomposisi berdasarkan fungsi atau proses

Dosen Jadual Kuliah Mahasiswa Kontrak

  Kuliah Dosen Jadual Kuliah Mahasiswa Berorientasi Objek ..

  (4) Abstraksi dan Pemodelan :

  Objek Dosen Kelas Dosen

Atribut

  Kode_Dosen Diabstraksikan Nama_Dosen Pendidikan menjadi …….

Metode

  Rekam ( ) Search ( ) Retrieve ( )

Berorientasi Objek .. (5)

  • • Beberapa teknik pengembangan perangkat

    lunak yang berorientasi objek ini diantaranya adalah:
    • – Object Oriented Analysis (OOA) dan Object Oriented Design (OOD) dari Peter Coad dan Edward Yourdon (1990).
    • – Object Modeling Technique (OMT) dari James Rumbaugh, Michael Blaha, William Premerlan, Frederick Eddy dan William Lorensen (1991).
    • – Object Oriented Software Engineering (OOSE) dari Ivar Jacobson (1992).
    • – Metode Booch dari Grady Booch (1994).
    • – Syntropy dari Steve Cook dan John Daniels (1994).

  Paradigma Berorientasi Objek

  • Coad-Yourdon, 1990-1991
  • Rumbaugh: Object Modelling Technique, 1991
  • Jacobson: Object Orie
  • Metho

  Software Engineering, 1992

  • Booch, 1991

  d WAR!

  • Beck-Cunningham, 1994

  UML

  Paradigma Berorientasi Objek

  • Gagasan Berorientasi Objek dimaksudkan untuk diterapkan di semua tahap pengembangan perangkat lunak,

  termasuk analisis, perancangan, implementasi dan digunakan dan pemeliharaan, untuk menurunkan kesenjangan antara langkah-langkah yang perlu dilalui dalam pengembangan perangkat lunak.

  Bertrand Meyer

Paradigma Berorientasi Objek

  OOP OOAD OOT