PELATIHAN SOFTWARE ANALYSIS AND DESIGN

LAPORAN KEGIATAN PROGRAM PENGEMBANGAN

PELATIHAN SOFTWARE ANALYSIS AND DESIGN
POLITEKNIK KOTA MALANG
Tahun 2012

I.   Latar Belakang

System analysis meliputi investigasi awal, analisis masalah, analisis kebutuhan, dan analisis keputusan. System analysis biasanya dilakukan dalam membuat system design.

System design merupakan salah satu langkah dalam teknik pemecahan masalah dimana komponen-komponen pembentuk system digabungkan sehingga membentuk satu kesatuan system yang utuh.

Hasil dari system design merupakan gambaran system yang sudah diperbaiki. Teknik dari system design ini meliputi proses penambahan, penghilangan, dan pengubahan komponen-komponen dari system semula.

Dalam hal ini system analysis berperan sebagai fasilitator dari system analysis. Dunia system analysis and design semakin matang setelah dikembangkan notasi standard yang diakui industri dan akademisi, yang kemudian dikenal dengan nama Unified Modeling Language (UML).

Ranah atau domain yang dibahas dalam spesialisasi di bidang ini sangat dibutuhkan dalam pendalaman materi mata kuliah yang berkaitan dengan bidang Rekayasa Perangkat Lunak, Pemrograman Berbasis Obyek serta Pemrograman Lanjut yang menjadi mata kuliah keahlian di Program Studi Teknik Informatika Politeknik Kota Malang.

II.  Tujuan

Program Pelatihan ini bertujuan :

  1. Meningkatkan kemampuan staff pengajar di Program Studi Teknik Informatika Politeknik Kota Malang dalam bidang analisis sistem.
  2. Meningkatkan kompetensi staff pengajar di Program Studi Teknik Informatika untuk mengembangkan bahan ajar di bidang analisis sistem.
  3. Semakin memperkuat kompetensi lulusan program studi Teknik Informatika dalam bidang keahlian RPL dan PBO.

III. Target Luaran

  1. Peningkatan kemampuan tenaga pengajar Politeknik Kota Malang dalam bidang analisis sistem perangkat lunak.
  2. Peningkatan bobot bahan ajar di bidang analisis sistem maupun rekayasa perangkat lunak.

IV.  Mekanisme Pelaksanaan

Kegiatan dilaksanakan melalui tahapan sebagai berikut :

  1. Sosialisasi, komunikasi dan persiapan surat menyurat dengan institusi terkait.
  2. Proses seleksi calon peserta
  3. Penyiapan staff yang akan mengadakan kegiatan demi efektifitas kegiatan
  4. Pelaksanaan kegiatan :
    • Pelatihan dilaksanakan di Linovtech DPP SAS BUILDING, JL. DR. Saharjo No. 155 BX 3rd Floors Jakarta Selatan, DKI JAKARTA 12960
  1. Pemateri dari pihak Linovtech (Agus Suhanto).
  2. Peserta pelatihan adalah dari unsur pengajar Program Studi Teknik Informatika Politeknik Kota Malang berjumlah 3 orang :
    1. Betta Wahyu R.M
    2. Aminul Wahib
    3. Fajar Wahyu S.B

 V.  Hasil Kegiatan

Setelah melaksanakan kegiatan ini peserta pelatihan memperoleh hasil sebagai berikut:

Materi:

Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan use case driven dan pendekatan iteratif untuk siklus pengembangan perangkat lunak. RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML).

Untuk memperoleh manfaat maksimal dari UML beberapa yang sebaiknya menjadi bahan pertimbangan dalam proses pembuatan software adalah:

Use case driven

Use case driven merupakan proses yang menjadikan usecase sebagai pusat atau central dari arsitektur software. Menggunakan use case sebagai artifact utama untuk membangun behavior yang dinginkan dari sistem, untuk keperluan verifikasi dan validasi arsitektur sistem dari software. Di samping itu juga untuk keperluan testing dan komunikasi antar stakeholder proyek. Arsitektur 4+1 merupakan arsitektur sistem yang use case driven. Arsitektur software penting untuk menentukan langkah-langkah membuat software.

Rational Unified Process menitikberatkan pada aktifitas menciptakan dan merawat model daripada aktifitas produksi yang memfokuskan pada penciptaan dokumen project yang banyak.

  • Architecture-centric

Arsitektur sistem digunakan sebagai artifact primer untuk konseptualisasi, konstruksi, pengaturan, dan mengembangkan sistem selama pengembangan.

  • Iterative and incremental

Sebuah proses yang iterative merupakan salah satu yang termasuk pengaturan aliran dari keluaran yang executable. Rational Unified Process terdiri dari :

–   Workflow yang menghasilkan model: requirements, analysis, design/deployment, implementation, test.

–   Workers yang mengimplementasikan workflow: user, manager, analis, architect, designer, tester, dsb.

–   Phase development dan iterasi: inception, elaboration, construction, transition

–   Aktivitas dalam iterasi: perencanaan, eksekusi workflow, evaluasi.

  • Phase RUP

Metode dari RUP ada empat phase sebagai berikut   :

  • § Inception
    • Penyusunan sebuah bisnis case untuk proyek.
    • Menentukan Ruang lingkup proyek.
    • Membuat ‘Business Case’.
    • Menjawab pertanyaan “apakah yang dikerjakan dapat menciptakan ‘good business sense’ sehingga proyek dapat dilanjutkan.
    • § Elaboration
      • Penyusunan sebuah project plan dan sound architecture.
      • Menganalisa berbagai persyaratan dan resiko.
      • Menetapkan ‘base line’. Merencanakan fase berikutnya yaitu construction.
      • § Construction
        • Perkembangan sistem.
        • Melakukan sederetan iterasi.
        • Pada setiap iterasi akan melibatkan proses berikut: analisa desain, implementasi dan testing.
        • § Transition
          • Menyediakan sistem untuk end user dari sistem tersebut.
          • Membuat apa yang sudah dimodelkan menjadi suatu produk jadi
          • Dalam fase ini dilakukan:

–     Beta dan performance testing.

–     Membuat dokumentasi tambahan seperti; training, user guides dan sales kit.

–     Membuat rencana peluncuran produk ke komunitas pengguna.

Inception dan elaboration meliputi engineering activities dari development of cycle (siklus pengembangan). Gambar di bawah ini menggambarkan development cycle dimana phase dari RUP termasuk di dalamnya :

Hasil Workflow

Seperti apa yang tertulis sebelumnya bahwa RUP salah satunya terdiri dari workflow yang menghasilkan model diantaranya: requirements, analysis, design/deployment, implementation, test. Penjelasan dari tiap model yang dihasilkan dari workflow akan ditampilkan di sini.

Requirements

Implikasi dari aktivitas dalam pembuatan model requirement dapat terlihat dalam sekema berikut:

Aktifitas Artifak
Daftar kandidat requirements Daftar fitur
Memahami konteks sistem Model bisnis/domain
Memahami requirements fungsionalitas Use case Model
Memahami requirements kualitas dan bisnis Supplementary Requrements

Tujuan dari model requirements adalah:

–     Mengarahkan development agar sesuai dengan sistem

Tugas lainnya agar fokus dalam pembangunan sistem yang benar.

–     Membatasi apa yang boleh dan tidak dilakukan sistem

  • Persetujuan diantara customer (termasuk user) dan organisasi pengembangan.
  • Dalam bahasa customer/user.

–   Tugas-tugas

  • Daftar kandidat requirements.
  • Memahami konteks sistem.
  • Memahami requirements fungsionalitas.
  • Memahami requirements non fungsionalitas.
  • Validasi requirements.

Analysis

Hubungan Requirements dengan Analysis dapat dilihat pada bagan di bawah ini:

Use Case Model Analysis Model
Bahasa customer Bahasa developer
External view system Internal view system
Functionalitas sistem Bagaimana merealisasikan functionalitas sistem
Terstruktur oleh use case Terstruktur oleh package dan class
Kontrak di antara customer dan developer Sketsa             realisasi fungsi; first cut design
Redundansi; inkonsistensi Tidak boleh ada redundansi dan inkonsistensi

Analysis model

Analisa class-class dan/atau subsystems:

–     Fokus pada fungsional requirement

–     Konseptual, granularity yang besar

  • Model desain akan mempunyai elemen model

–     Minimal interface operasi

  • Definisi responsibilities (textual)

–     Atribute pada high level

–     Relasi konseptual

–     Boundary (interaksi dengan actor), control (koordinasi, sequencing, transaksi) atau entity (long-lived real-life object atau event) class-class.

Desain/deployment

Aktivitas pada saat desain meliputi:

  • Menentukan bentuk sistem arsitektur yang memenuhi semua requirements.
  • Memahami isu pada requirements non-fungsional dan batasan teknologi.
  • Mengidentitaskan subsystem (semua struktur, requirement, interface, class-class) yang membolehkan implementasi konkuren.
  • Membuat abstraksi yang tak terlihat pada implementasi sistem.
  • Implementasi menambah isi ke arsitektur yang stabil.
  • Menyediakan visualisasi implementasi.

Implementasi

Tugas-tugas pada tahap implementasi meliputi :

  • Implementasi desain dalam komponen-komponen {source code, script, binary, executable, dsb.}
  • Sempurnakan arsitektur.
  • Rencanakan integrasi sistem pada setiap iterasi.

incremental : kecil dan langkah yang teratur.

  • Distribusi sistem: petakan komponen ke node-node.
  • Implementasi class-class desain dan subsystem.
  • Komponen-komponen unit testing.
  • Integrasi komponen-komponen (kompile dan link ke dalam satu atau lebih executable) untuk integrasi dan testing sistem.

Implementasi Aktivitas Workflow dan Workers

Berikut model implementasi aktivitas workflow dan workers:

Testing

Aktivitas yang dilakukan meliputi :

  • Verifikasi hasil dari implementasi dengan testing setiap pembangunan
  •        Rencanakan test pada setiap iterasi
    • Test integrasi untuk setiap pembangunan dalam iterasi
    • Test sistem untuk akhir iterasi
    • Test desain dan implementasi dengan membuat
      • Kasus-kasus test untuk menentukan apa yang akan ditest
      • Prosedur-prosedur test yang menentukan bagaimana melakukan test
      • Komponen test executable untuk mengotomasi test
      • Lakukan test dan secara sistematis menangani hasil test
        • Pembangunan yang cacat dikirim ke workflow yang lain (misalnya desain dan implementasi) untuk perbaikan kecacatan

Testing pada daur hidup software

Pada umumnya, dimanapun ada hasil implementasi, terdapat sebuah test. Sebagai contoh adalah test pada setiap pembangunan.

  • Phasa Inception

Pada phasa ini meliputi: perencanaan test awal, test prototype.

  • Phasa Elaboration

Meliputi: test dasar arsitektural.

  • Phasa Construction

Meliputi: testing pada setiap pembangunan.

  • Phasa Transition

Meliputi: re-test perbaikan dan test regresi.

Test regresi merupakan test terhadap pembanguan lama saat pembangunan baru untuk meyakinkan tidak ada kesalahan dalam pembangunan baru.

Menyusun model test

  • Membuat kasus-kasus test yang baru untuk setiap pembangunan.
  • Perbaiki kasus-kasus test lama menjadi test regresi.
  • Pindahkan testing, prosedur dan komponen test kuno yang berhubungan.

Prosedur Test

  • Menentukan bagaimana melakukan satu atau beberapa test case atau sebagian dari padanya.
  • Instruksi untuk tester dalam manual test case.
  • Instruksi untuk interaksi dengan tool tes otomatis untuk membuat komponen tes executable kemudian instruksi untuk mengintegrasikan dan mengeksekusi komponen tes tersebut
  • Satu prosedur tes mungkin meliputi beberapa test case.
  • Satu prosedur tes mungkin membutuhkan beberapa test case.
  • Instruksi prosedur tes sering merefleksikan deskripsi flow-of-events, termasuk nilai input, bagaimana untuk memasukkan nilai input dan bagaimana memverifikasi hasil

VI.   Tindak Lanjut Kegiatan

Tindak Lanjut Kegiatan dilaksanakan melalui tahapan sebagai berikut:

  1. Mengkoordinasikan hasil kegiatan yang diperoleh dengan tim teaching di Program Studi Teknik Informatika Politeknik Kota Malang.
  2. Mindiseminasikan materi hasil kegiatan ke dalam mata kuliah yang sesuai seperti Pemrograman Berorientasi Obyek, Rekayasa Perangkat Lunak dan Pemrograman Lanjut
  3. Merumuskan bahan ajar yang sesuai untuk mahasiswa di level D-3 berdasarkan hasil yang diperoleh dari pelatihan.

VII.  Kesimpulan

Analisis dan desain sistem memiliki peranan sangat penting di dalam pembangunan maupun pengembangan sebuah perangkat lunak atau software. Kompetensi ini pada tahap dan kedalaman tertentu harus dimiliki oleh mahasiswa politeknik di tingkat D3 yang tentu saja agak berbeda dengan pendekatan yang diberikan kepada mahasiswa di tingkat D4 maupun S1, sehingga tidak akan saling tumpang tindih atau overlapping.

Jam terbang dan pengalaman sangat berpengaruh di dalam pembuatan analisis serta desain sebuah sistem serta tidak bisa hanya didapatkan dalam suatu pelatihan semata. Agar lebih matang dalam penguasaan kompetensi ini membutuhkan banyak sekali proyek yang bisa berupa simulasi maupun proyek yang sebenarnya.