Senin, 30 September 2013

RESUME TDA ( Part-2 )



Nama :: Dyah Ayu Anggraeni
NIM   :: 10410110017
Prodi  :: S1 KA


:: DOKUMENTASI  PROSES ::
Dokumentasi proses merupakan pendekatan praktis untuk mengelola dan mempersiapkan dokumen yang diperlukan untuk menerapkan sistem. Dokumentasi proses adalah proses pertama dalam aktivitas peningkatan. Dokumentasi proses pada dasarnya dapat dilakukan pada dua saat yang berbeda, yaitu:
1.      Satu per satu terkait dengan proyek yang melibatkan proses tertentu.
     Proses baru didokumentasikan jika sebuah proyek atau aktivitas lain dimulai untuk meningkatkan              proses tersebut.
2.       Keseluruhan di awal yang bersifat umum.
      Dilakukan dengan melihat keseluruhan perusahaan dan dokumentasi seluruh atau sebagian besar proses bisnis.
       Sistem dokumentasi merupakan keseluruhan dokumen yang berhubungan dengan kebutuhan sistem hingga uji coba sistem tahap terakhir. Dokumen ini menjabarkan rancangan, implementasi dan uji coba dari sistem yang berguna dalam proses perawatannya.

Proses Dokumentasi dibagi menjadi 5 kategori yaitu :
1.        Perencanaan, perkiraan dan penjadwalan adalah dokumen yang dibuat oleh manager yang digunakan untuk memperkirakan dan mengatur proses software.
2.        Laporan/Report, merupakan dokumen yang menginformasikan bagaimana sumber daya digunakan saat proses pengembangan.
3.        Standart, dokumen yang menjelaskan bagaimana prose situ berjalan.
4.        Lembar kerja/ working paper , Sering kali merupakan dokumen komunikasi teknis utama
dalam suatu proyek. Mereka merekam ide-ide dan pikiran-pikiran para engineer yang
bekerja dalam proyek, yang merupakan dokumentasi produk versi sementara yang
menjelaskan strategi pengimplementasian dan penentuan masalah yang telah
diidentifikasi. Seringkali dokumen ini mencatat alasan-alasan pemilihan suatu
keputusan dalam desain.
5.        Memo dan surat/pesan elektronik, berisi detail percakapan antara manager dan pekerja.

System Development Life Cycle ( SDLC ) ::
Suatu proses pengembangan sistem informasi melalui investigasi, analisis, desain, implementasi dan pemeliharaan.

Perlunya SDLC ::
•      Sistem informasi bersifat dinamis (isi maupun lingkungannya)
•      Pembangunan sistem informasi tidak linier
•      Kebutuhan pemakai berkembang
•      Supply vs demand driven

Tahapan dari SDLC ::

1.  Planning (Perencanaan)
2.  Analysis (Analisa)
3.  Design (Perancangan/Desain)
4.  Implementation (Implementasi/Penerapan)
5.  Use (Penggunaan)

Ada 2 Metode yang sering di gunakan  untuk proses dokumentasi, yaitu :
1.    Metode Waterfall (Pendekatan tradisional)
2.    Metode Agile

A.  METODE WATERFALL
       Model Waterfall adalah sebuah metode pengembangan software yang bersifat sekuensial dan terdiri dari 5 tahap yang saling terkait dan mempengaruhi.


 
         

Waterfall, merupakan SDLC tertua karena sifatnya yang natural. Urutan SDLC waterfall ini bersifat serial dari proses perencanaan, analisa, desain, dan implementasi pada sistem. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan.

Kelebihan dari Metode Waterfall :
-   Merupakan model pengembangan paling handal dan paling lama digunakan.
-   Cocok untuk system software berskala besar.
-   Cocok untuk system software yang bersifat generic.
-   Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.
     
      Kekurangan dari Metode Waterfall :
-   Persyaratan system harus digambarkan dengan jelas.
-   Rincian proses harus benar-benar jelas dan tidak boleh berubah-ubah.
Partisi projek ke stages yang berbeda tidak fleksibel. Hali ini mengakibatkan sulitnya untuk merespon perubahan kebutuhan pengguna Oleh sebab itu model ini hanya cocok digunakan apabila kebutuhan pengguna sudah dimengerti dengan baik.

B.       METODE AGILE
            Agile methods merupakan salah satu dari beberapa metode yang digunakan dalam pengembangan sooftware. Agile method adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun. Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana.
Agile Method juga dapat diartikan sekelompok metodologi pengembangan software yang didasarkan pada prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun.

Kelebihan dari Agile Method :
1.    Meningkatkan kepuasan kepada klien
2.    Pembangunan system dibuat lebih cepat
3.    Mengurangi resiko kegagalan implementasi software dari segi non-teknis
4.    Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.

Kekurangan dari Agile Method :
1.     Membutuhkan manajemen tim yang terlatih dan mempunyai ilmu yang sudah tinggi.
2.     Agile jarang dipraktekkan secara langsung.
3.     Agile  sulit  diimplementasikan  dalam  proyek  yang berskala besar.
4.     Lemah dalam perencanaan arsitektur
5.     Keterbatasan waktu dalam perencanaan proyek.

Berikut ini diberikan suatu contoh dokumentasi perancangan suatu sistem komputer
yang berisi :
1. Kebutuhan pengguna
2. Spesifikasi
3. Disain
4. Implementasi dan pemilihan teknologi
5. Pengujian
6. Aplikasi
• Lampiran
 

1.   Kebutuhan pengguna (user requirement) 
          Bagian ini menjelaskan kebutuhan dari sistem baik, dari sis pengguna, fungsi maupun teknologi. Bagian ini terdiri dari :  
Definisi Kebutuhan (Requirement definition )  
          Bagian ini mendefinisikan kebutuhan dan hal-hal yang berkaitan dengan kebutuhan akan sistem secara menyeluruh. Biasanya dalam kasus kondisi sebenarnya, dokumen ini harus disetujui oleh pemberi kerja dan pelaksana kerja. Bagian yang dibahas dalam dokumen ini adalah : 
·       Purposeful requirement.
     Menjelaskan mengapa kebutuhan itu perlu dipenuhi
·       Functional requirement.
     Apakah fungsi sebenarnya yang dibutuhkan oleh user dari sistem ini.
·       Nonfunctional requirement
     Dan kebutuhan sistem yang tidak berkaitan dengan fungsinya yang melibatkan seperti, bisa dimodifikasi,    testing, dan portabilitas
·       User Profile
     Menerangkan tentang pengguna dari sistem ini, terutama yang berkaitan dengan tingkat pengenalan terhadap teknologi yang akan diterapkan.

                         
2.   Spesifikasi 
           Pada bagian ini dijabarkan spesfikiasi detail dari sistem yang harus dibuat, spesifikasi   ini meliputi hal-hal berikut ini :
·       Spesifikasi siklusi operasi sistem (System Operating Cycle Spesification )
    Dalam bagian ini dijelaskan siklus penggunaan sistem ini, tujuan untuk mendapatkan spesfikasi teknis terutama akan berguna pada bagian implementasi. Sistem fault tolerant 24 jam akan berbeda dengan sistem yang beroperasi 1 jam sehari.Begitu juga siklus kerja sistem, atau langkah kerja satu demi satu dispesfikikasikan. 

·       Spesifikasi fungsional  
     Pada bagian ini dijabarkan fungsi dari sistem yang akan dibuat.

·       Spesifikasi kinerja  
                 Pada bagian ini dijelaskan performansi / unjuk kerja yang ingin dicapai serta   kemungkinan keterbatasan   di dalam penggunaan sistem. Setiap kebutuhan diusahakan dispesifikasikan dengan jelas, termasuk karakteristik elektris dan fisis.

3.     Disain
                    Pada bagian ini diterangkan metoda dari solusi yang digunakan untuk memenuhi kebutuhan yang telah dispesifikasikan pada bagian terdahulu. Yang dijelaskan dalam bagian ini adalah langkah perancangan dari solusi yang ditawarkan. Sedapat mungkin harus dipisahkan antara perancangan dan implementasi. Pada perancangan diusahakan sedapat mungkin yang dilakukan adalah memodelkan solusi secara logika atau secara algoritmis. Tanpa terkait erat dengan teknologi yang digunakan dalam proses implementasi dari model. Keterkaitan implementasi hanyalah menjadi constraint dari model bukan menjadi dasar disain.

4.   Implementasi dan pemilihan teknologi 
            Pada bagian ini dijelaskan metoda dan peralatan yang digunakan untuk mengimplementasikan solusi yang telah diajukan dalam bagian disain. Sebaiknya alasan pemilihan teknologi yang digunakan haruslah dijabarkan pada bagian ini. Misal alasan pemilihan suatu jenis komponen perlu diberikan dengan jelas dalam bagian ini, misal mengapa memilih CMOS atau TTL.
Dalam bagian implementasi diterangkan skema atau diagram yang digunakan, baik elektronis, fisis, ataupun keterangan program dengan menggunakan metoda diagram yang sesuai. Misal untuk rangkaian elektronis menggunakan skema elektronis, sedangkan untuk program dengan ow chart, dan lain lain.
Sebelum dilakukan pemilihan teknologi atau level alat yang digunakan maka harus dilakukan estimasi terhadap beberapa hal :
  Estimasi waktu untuk mengembangkan sistem
  Estimasi panjangnya program
  Estimasi kebutuhan memori
  Estimasi kecepatan eksekusi
Juga harus dipertimbangkan pembagian antara software dan hardware . 


5.   Pengujian (testing)
            Bagian ini menunjukkan kerja dari sistem baik untuk masukan yang bersifat normal, ataupun untuk masukan yang di luar ambang normal. Setiap pengujian dilakukan dokumentasi sebagai bukti otentik kemampuan sistem. 
Pada dasarnya disamping testing yang bersifat testing dalam kondisi operasi, akan baik pula bila dilakukan testing berikut ini :
·       Recovery testing.
     Pengujian dilakukan untuk mengetahui kemampuan sistem, untuk mengembalikan ke kondisi normal setelah suatu masukan atau kondisi di luar dari yang dispesfikasikan.  Untuk sistem-sistem yang bersifat fault-tolerant, jenis pengujian ini merupakan suatu   kewajiban.
·       Stress testing.
   Pengujian ini dilakukan untuk mengetahui kemampuan sistem dalam menangani beban kerja yang berat, sangat baik untuk mengetahui kemampuan maksimal dari sistem.
·       Security testing.
    Testing ini dilakukan untuk jenis-jenis aplikasi yang berkaitan dengan keamanan sistem,baik dari pengguna yang melakukan kesalahan tidak sengaja,ataupun sengaja.
     Dapat digunakan beberapa metodologi testing:
·       Use-Case
·       White Box
·       Black Box
·       Loop testing
      
Dapat digunakan beberapa satuan untuk menunjukkan hasil kerja sistem, bila dalam perangkat keras telah jelas besaran yang digunakan misal : frekuensi response, slew rate dll. Untuk perangkat lunak dapat digunakan : software metric, cyclomatic complexity. Pada dasarnya suatu testing akan melakukan : 
·       Verifikasi.
     Menjamin bahwa sistem benar-benar bekerja sesuai fungsinya.
·       Validasi .
     Menjamin bahwa sistem benar-benar memenuhi keinginan pemakai. 


. . . : :SUMBER: : . . .