Selasa, 26 Maret 2013

KELEBIHAN DAN KEKURANGAN MODEL PROSES




  • Waterfall Model


            Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar dimana proyek dikerjakan di beberapa tempat berbeda dan dibagi menjadi beberapa bagian sub-proyek.
            Kelebihan        :
§  Model ini baik untuk produk dengan kebutuhan yang jelas dipahami atau ketika bekerja dengan technical tools, arsitektur dan infrastruktur yang telah dipahami dengan baik.
§  Sederhana.
§  langkah-secara terurut,fokus,dan mudah diikuti.
Kekurangan     :
§  Tidak fleksibel karena untuk menuju ke fase selanjutnya harus menunggu fase sebelumnya untuk melengkapi tugas yang saling memiliki ketergantungan.
§  Sangat sulit untuk customer  ketika akan melakukan perubahan kebutuhan yang eksplisit.
§  Customer harus memiliki kesabaran sampai dengan produk perangkat lunak selesai di implementasikan.
§  Customer hanya terlibat di awal proyek.

  •  V-Model


            Kelebihan        :
§  V-Model sangat fleksibel.
§  V-Model dikembangkan dan di-maintain oleh publik. User dari V-Model berpartisipasi dalam change control board yang memproses semua change request terhadap V -Model.
Kekurangan     :
§  V-Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
§  V-Model terlalu fleksibel dalam arti ada beberapa activity dalam V-Model yang digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.

  •                Incremental Model

            Cocok untuk proyek berukuran kecil (tidak lebih dari 200.000 baris coding).
            Kelebihan        :
§  Relatif sedikit jumlah programer atau developer yang digunakan.
§  Memberikan  operasional mutu produk pada tiap stage, tetapi satu yang memuaskan hanya subset kebutuhan klien.
§  Mengurangi efek traumatis dari mengesankan suatu produk sepenuhnya baru pada organisasi klien dengan menyediakan suatu pengenalan berangsur-angsur.
§  Klien bisa melihat sistem dan memberikan feedback.
            Kekurangan     :
§  Semangat melakukan proses membangun dan memperbaiki perangkat lunak bisa menurun.
§  Kesalahan desain menjadi bagian dari sistem dan sulit untuk memperbaikinya
§  Klien melihat kemungkinan-kemungkinan yang ada sehingga ingin mengubah kebutuhan.

  • Evolutionary Model

a.      Prototyping
Cocok untuk proyek yang lamanya 60-90 hari karena cepat prosesnya.
Kelebihan        :
§  Pelanggan dapat menjadi lebih mantap dalam melihat kemajuan.
§  Bermanfaat ketika kebutuhan  sedang berubah dengan cepat, ketika pelanggan enggan untuk mengikat kepada satu set kebutuhan, atau ketika tak seorangpun secara penuh memahami area aplikasi itu.
Kekurangan     :
§  Tidak ada cara untuk mengetahui banyaknya iterasi yang diperlukan.
§  Membuat prototipe / prototyping dapat mendorong ke arah perancangan sistem yang kurang baik. Sebab tujuan utama protoyping adalah perkembangan cepat, perancangan sistem kadang-kadang dapat rusak sebab sistem dibangun pada rangkaian “lapisan” tanpa integrasi pertimbangan global dari semua komponen lain.

b.      Spiral
Model spiral merupakan pendekatan yang realistik untuk software berskala besar.
Kelebihan        :
§  Masing-masing iterasi dari spiral dapat dikhususkan untuk kebutuhan proyek yang sesuai.
Kekurangan     :
§  Rumit dan memerlukan perhatian dan pengetahuan manajemen untuk memulainya.


Rabu, 20 Maret 2013


SOCIAL LEARNING PROCESS

  •   Awalnya software tersebar,tidak diketahui, dan tidak lengkap.
  •   Untuk mengubah pengetahuan ke software butuh dialog, antara user dan designer, dan designer pada toolsnya.
  • Pengembangan software merupakan proses pembelajaran sosial yang berulang-ulang.

PROSES MODEL

  • Sebuah kumpulan tahapan yang sudah bisa diprediksi yang akan membantu membuat hasil yang berkualitas tinggi dan tepat waktu.
  • Melibatkan software engineering(yang membuat), manager(yang mengikuti), client(yang membutuhkan).
  • Proses model berguna untuk kestabilan, mengontrol, mengorganize kegiatan-kegiatan yang bila ditinggalkan akan kacau.
  • Produk kerja dari proses model, yaitu: produk, dokumen, dan data.
  • Langkah-langkahnya sendiri tergantung dengan software apa yang akan kita buat.
  • Sejumlah mekanisme penilaian proses perangkat lunak yang memungkinkan kita menentukan kematangan proses software tersebut digunakan untuk jaminan bahwa yang kita buat benar.

DEFINISI SOFTWARE PROSES

  • Perangkat kerja untuk aktivitas-aktivitas, tugas-tugas, aksi-aksi yang dibutuhkan untuk membuat software yang berkualitas.
  •   Tidak sama dengan Software Engineering. Software Proses meliputi teknologi yang mengisi proses.

PROCESS FLOW

  • Linier Process Flow                : Mengeksekusi lima aktivitas secara berurutan. Bila aktivitas sebelumnya belum selesai tidak bisa dilanjutkan ke aktivitas selanjutnya.

  • Iterative Process Flow           : Mengulang satu atau lebih proses atau aktivitas sebelum melanjutkan ke aktivitas selanjutnya.

  •   Evolutionary Process Flow   : Mengeksekusi aktivitas secara melingkar dan setiap sirkuit dia mengeksekusi ke arah versi yang lebih lengkap(melengkapi).

  • Parallel Process Flow           : Mengeksekusi satu atau lebih aktivitas paralel dengan yang lain (melakukan dua atau lebih aktivitas yang berbeda pada saat yang sama).


Identifying a Task Set

  • Buat list atau daftar tugas yang akan dicapai.
  • Buat list atau daftar produk kerja yang akan dihasilkan.
  • Buat list atau daftar untuk menyaring jaminan kualitas yang akan dijalankan.

Task Set for Requirements Gathering Actions for a Simple Present

  •  Buat daftar stakeholders untuk project.
  • Ajak semua stakeholders dalam pertemuan informal.
  • Tanyakan ke semua stakeholders untuk membuat list fitur-fitur atau fungsi-fungsi yang dibutuhkan.
  • Mendiskusikan apa yang dibutuhkan dan  membuat list final.
  •  Memprioritaskan kebutuhan.
  • Membuat catatan-catatan untuk hal-hal di luar area (tidak terduga).

POLA PROSES

  • Menjelaskan masalah yang terkait dengan proses yang ditemui selama bekerja.
  •  Mengidentifikasi lingkungan dimana masalah telah dihadapi dan  menunjukkan satu atau lebih bukti solusi masalah.

MACAM-MACAM POLA

  •   Stage Patterns       : Mendefinisikan sebuah masalah yang dihubungkan dengan aktivitas framework untuk proses. Terdiri dari Multiple Task Patterns.
  • Task Patterns         : Mendefinisikan masalah yang berhubungan dengan software engineering action.
  • Phase Patterns       : Mendefinisikan urutan dari aktivitas framework.

Minggu, 17 Maret 2013


Di zaman sekarang ini siapa sih yang tidak tahu software? Ya, software adalah perangkat lunak yang dirancang oleh engineer dan digunakan oleh masyarakat luas. 

Software memiliki dua peran yaitu, sebagai produk dan sebagai sarana menyampaikan produk atau informasi. Seiring perkembangan waktu software pun semakin dikembangkan menjadi:
  1.  System software             : Sistem operasi,contohnya Windows,Mac,Linux
  2. Application software     : Untuk membantu pekerjaan manusia,contohnya Office,Corel Draw
  3. Engineering/scientific software
  4. Embedded software
  5. Product-line software
  6. Web-applications Software
  7. Artificial intelligence software
Para Engineer berusaha melakukan pengembangan software dalam 7 kategori diatas. Software pun berevolusi. Engineer berusaha memperbaiki kesalahan yang terjadi sebelumnya pada software dan membuat software sesuai permintaan customer. Software menjadi elemen penting dalam perkembangan sistem komputer. Lebih dari 50 tahun yang lalu software telah dikembangkan hingga mencapai industri seperti saat ini. Walaupun kita masih punya hambatan dalam mengembangkannya terutama dalam hal waktu dan biaya. Selama dikembangkan,ada 2 hal yang harus diperhatikan di Software Engineering yaitu Produk(program,dokumen,data) dan Proses(bagaimana produk itu dibangun).


Software Engineering layers


Kerangka umum dalam Software Process adalah:

a.      Communication
>> Ini adalah langkah awal dalam software process. Komunikasi disini dilakukan dengan customer agar kita bisa memahami apa yang diinginkan customer.
b.     Planning
>>  Langkah selanjutnya adalah membuat rencana. Kita harus merencanakan sumber daya yang akan digunakan, hasil produksi, jadwal kerja dan resiko yang mungkin terjadi.
c.       Modeling
>>  Setelah itu kita harus mendesain perangkat lunak tersebut.
d.     Construction
>>  Menggabungkan langkah-langkah diatas serta melakukan pengujian terhadap perangkat lunak tersebut.
e.      Deployment
>> Software dikirim ke customer untuk nantinya dievaluasi oleh customer tersebut.



Aktifitas Software Engineering:
a.       Pelacakan dan pengontrolan software (tim melakukan penilaian kemajuan dan melakukan koreksi untuk maintain schedule).
b.      Pengelolaan resiko (yang mungkin terjadi).
c.       Jaminan kualitas software (aktifitas untuk memantain kualitas dan software).
d.      Meninjau teknik-teknik yang digunakan.
e.      Pengukuran (mendefinisikan dan mengumpulkan proses,projek,dan produk yang akan ditampilkan kepada customer).
f.        Mengelola konfigurasi software.
g.       Reusability management(mendefinisikan kriteria untuk work product reuse dan membentuk mekanisme untuk mencapai reusable components.
h.      Work product preparation and production(aktifitas untuk membuat model,dokumen,logs,forms,dan lists.

The Essence Of Practice:

  • Mamahami masalah (dengan cara komunikasi dan analisis).
  • Merencanakan solusi (sofware design).
  • Melakukan rencana (code generation).
  • Menjelaskan hasil untuk menguji akurasi (testing and quality assurance)

1  Memahami Masalah
'  Siapa penggunanya atau siapa saja yang terlibat?
'  Fungsi-fungsi apa dan fitur-fitur apa yang dibutuhkan untuk mengerjakan masalah?
'  Apakah mungkin untuk memperkecil masalah agar lebih mudah dipahami?
'  Dapatkah model grafik analisis dibuat?
1  Merencanakan solusi
'  Pernahkan anda melihat masalah yang sama sebelumnya?
'  Apakah masalah yang sama dapat dikerjakan?
'  Dapatkah masalah-masalah tersebut didefinisikan?
'  Dapatkah model desain dibuat?
1  Melaksanakan rencana
'  Apakah solusi dapat diterapkan dalam rencana tersebut?
'  Apakah setiap komponen solusi dapat dibuktikan?
1 Menjelaskan hasil
'  Apakah mungkin untuk menguji setiap bagian komponen dari solusi?
' Apakah hasil solusi sesuai dengan data, fungsi, dan fitur yang telah ada?