Senin, 25 Maret 2013

RPL Bab 2: PROSES MODEL



PROSES MODEL
Proses model adalah sekumpulan dari tahapan-tahapan yang sudah diprediksi. Model proses didasari oleh proses pembelajaran sosial dimana untuk mengubah pengetahuan ke software diperlukan dialog antara user dengan desainer dan juga dialog antara desainer dengan perangkat. Yang terlibat dalam proses model adalah software engineering, manajer. Proses model disesuaikan untuk memenuhi kebutuhan software enginner dan manajer untuk melakukan pengembangan produk perangkat lunak. Untuk menyediakan kestabilan, sebuah proses harus cepat untuk mengontrol, mengorganisir aktivitas. Jika dibiarakan maka proses akan menjadi kacau. Berbagai jenis proyek memerlukan proses perangkat lunak yang berbeda. Indikator terbaik dari seberapa baik proses perangkat lunak telah bekerja adalah kualitas, ketepatan waktu, dan kelangsungan hidup jangka panjang dari produk perangkat lunak yang dihasilkan

Proses Software
Definisi Proses Software yaitu proses perangkat kerja untuk aktivitas, aksi dan tugas yang memenuhi syarat untuk membangun software yang berkualitas tinggi. Definisi diambil dari perangkat lunak yang direkayasa dan diadaptasi oleh kreator. Software engineer yang berpengetahuan adalah orang yang tepat untuk membangun sebuah produk.
Proses generik Kerangka:
1.      Komunikasi
2.      Perencanaan
3.      Modeling
4.      Kontruksi
5.      Deployment
Umbrella Activities(diterapkan sepanjang proses)
1.      Pelacakan dan kontrol proyek software
2.      Risiko manajemen
3.      Kualitas jaminan software
4.      Teknik ulasan formal
5.      Pengukuran
6.      Konfigurasi software manajemen
7.      Persiapan pekerjaan dan produksi produk

Diagram Proses
Menjelaskan bagaimana setiap konstruk dari lima kegiatan kerangka, tindakan, dan tugas-tugas yang diselenggarakan yang berhubungan dengan urutan dan waktu.
a.       Proses aliran Linier
Proses ini mengeksekusi setiap loop kegiatan diawal agar bisa berurutan 
b.      Aliran proses Iteratif
Proses ini akan mengulang satu atau lebih dari aktivitas sebelum melakukan proses selanjutnya.
c.       Aliran proses Pararel
Proses ini mengeksekusi lebih dari satu aktivitas dengan mempararelkan aktivitas yang lainnya.
d.      Aliran proses Evolusi
Proses ini mengeksekusi  aktivitas secara melingkar, mengarah ke versi yang lebih lengkap.

Task set
Setiap rekayasa perangkat lunak berkaitan dengan aksi dan bagan kegiatan aktivitas yang dapat diwakili oleh satu set tugas yang berbeda. Proyek-proyek kecil menjadi satu tidak memerlukan task set adalah sebagian besar dari proyek-proyek yang kompleks. Task set disesuaikan untuk memenuhi kebutuhan spesifik dari sebuah proyek perangkat lunak dan karakteristik proyek.
Pola proses
Menjelaskan masalah yang terkait dengan proses yang ditemui saat bekerja. Mengidentifikasi lingkungan dimana masalah itu harus dihadapi dan harus menunjukkan bukti solusi dari masalah.
Macam-macam Pola :
a.       Stage patterns
Mendefinisikan masalah yang berhubungan dengan framework atau proses
b.      Tasks patterns
Mendifinisikan masalah yang berhubungan dengan aksi software engineering atau tugas kerja.
c.       Phase patterns
mendefinisikan urutan atau aliran Kegiatan Itu kerangka terjadi dalam proses.

Senin, 18 Maret 2013

TUGAS RPL : Software dan Software Engineering



SOFTWARE DAN SOFTWARE ENGINEERING

     A.      Definisi software
Software adalah sekumpulan item-item yang membentuk konfigurasi,dirancang oleh engineer dan digunakan dalam masyarakat.
Software mempunyai karakteristik yang sangat berbeda dengan hardware. Software itu dikembangkan atau direkayasa,tidak diproduksi dalam pengertian klasik. Meskipun banyak memiliki kesamaan antara perkembangan software dan hardware, tetapi kedua kinerja mereka sangatlah berbeda.
1.       Aplikasi domain software.
Kira-kira ada sekitar 7 kategori software komputer yangmenyajikan tantangan bagi software engineer:
a.       Sistem software
Sebuah kumpulan program yang ditulis untuk melayani program lain. Beberapa sistem software sangat komplek tetapi membedakan 4 struktur informasi. Sistem aplikasi lainnya berproses sangat besar data tidak tetap.
b.      Aplikasi software
Program berdiri sendiri untuk menyelesaikan kebutuhan spesifik bisnis. Aplikasi di area bisnis atau tekhnik data jauh pada fasilitas bisnis.
c.       Rekayasa/ software ilmiah.
Mempunyai karakteristik seperti angka-angka algoritma. Berbagai aplikasi dari astronomi atau volcanologi.
d.      Software tertanam.
Risides dalam produk atau sistem yang digunakan untuk mengimplementasi dan mengontrol fitur-fitur dan fungsi-fungsi untuk pengguna atau sistemnya.
e.      Produk software.
Didesain untuk memberikan kemampuan spesifik untuk digunakan pengguna yang berbeda.
f.        Aplikasi web.
Biasanya disebut WebApps, ini lebih dikenal kategori software yang meliputi beragam aplikasi.
g.       Software kecerdasan buatan.
Digunakan angka algoritma untuk menyelesaikan masalah yang komplek yang tidak dapat diterima untuk mudah dianalisis.
    B.      Software engineering
Software enginnering adalah teknologi yang harus digunakan oleh setiap orang yang akan membangun software melalui serangkaian proses.
a.       Komunikasi.
Komunikasi bertujuan untuk memahami dan menemukan fitur-fitur dan fungsi software.
b.      Rencana.
Kita harus merencanakan apa yang akan menjadi tujuan kita, dan kita juga harus siap apa yang menjadi akibat dari rencana yang kita buat.
c.       Konstruksi.
Kegiatan penggabungan kode dan pengujian yang diperlukan untuk memecahkan kode.
d.      Penyebaran.
Kegiatan ini untuk mengevaluasi produk untuk memberikan umpan balik berdasarkan evaluasi.

Software  engineering realities:
-          Masalah harus dipahami sebelum software solution dikembangkan.
-          Desain adalah aktivitas yang sangat penting.
-          Software seharusnya untuk kualitas yang tinggi.
-          Software seharusnya terus menerus diperbaiki.

Software engineering Umbrella activities :
-          Proyek software pelacakan dan kontrol
-          Manajemen resiko
-          Teknis ulasan
-          Pengukuran
-          Konfigurasi manajemen software
-          Manajemen ulasan
-          Produk persiapan kerja




               

Selasa, 12 Maret 2013

TUGAS BASIS DATA: PERBANDINGAN ARSITEKTUR BASIS DATA antara Teleprocessing, File-Server Architecture, Client-Server Architecture, Three Tier Architecture

Teleprocessing
Arsitektur ini masih sangat tradisional, dimana satu komputer dengan sebuah CPU dengan banyak terminal seperti yang dipaparkan dalam gambar dibawah ini.

Gambar 1. Arsitektur Teleprocessing

Semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal yang dipakai berjenis 'dumb', yaitu tidak dapat berfungsi sendiri dan masing-masing terminal terhubung ke komputer pusat. Terminal-terminal tersebut mengirimkan pesan melalui subsistem pengontrol komunikasi  ke program aplikasi, yang secara bergantian menggunakan DBMS.

Arsitektur ini menempatkan beban yang besar pada komputer pusat. Komputer tidak hanya menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal untuk ditampilkan di monitor.
Kelebihan:
1.    Biaya telekomunikasi yang murah memungkinkan terminal – terminal untuk saling berhubungan.
2.    Memungkinkan user bias menggunakan computer bersama – sama.
3.    Komputer bisa membagi waktunya bergantian untuk tiap – tiap pemakai
4.    Dapat melayani sampai ribuan terminal.
5.    Semua data dan program – program aplikasi tersimpan di hardisk komputer pusat.
      Kelemahan :
1.    Membutuhkan Mainframe yang harganya sangat mahal.


File-Server
Arsitektur ini mendistribusikan  ke dalam jaringan sejenis LAN (Local Area Network).  File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS. Meskipun DBMS dijalankan pada masing-masing workstation tetapi tetap meminta file dari file server jika diperlukan seperti yang dipaparkan pada gambar berikut



Gambar 2. Arsitektur File Server

KEUNTUNGAN FILE SERVER 
1.    Meskipun hanya terbatas pada layanan file namun memberi keuntungan dalam perawatan file data dan aplikasi,dan aplikasi akan menjadi lebihcepat.
2.    Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan.

Kerugian arsitektur file-server adalah :
Banyak lalulintas jaringan yang besar
- Masing-masing workstation membutuhkan copy DBMS


Client Server
Dengan masih adanya kekurangan-kekurangan pada arsitektur teleprocessing dan file server maka dikembangkan arsitektur client-server. Client-server menunjukkan cara komponen software berinteraksi dalam bentuk sistem.
Sebuah pemroses client yang membutuhkan sumber dan sebuah server yang menyediakan sumbernya. Tidak ada kebutuhan client dan server yang harus diletakkan pada mesin yang sama.  lihat pada gambar dibawah ini.

           

Gambar 3. Arsitektur Client Server

Dalam konteks basis data, client mengatur interface berfungsi sebagai workstation tempat menjalankan aplikasi basis data. Client menerima permintaan pemakai, memeriksa sintaks dan generate kebutuhan basis data dalam SQL atau bahasa yang lain. Kemudian meneruskan pesan ke server, menunggu response dan bentuk response untuk pemakai akhir. Server menerima dan memproses permintaan basis data kemudian mengembalikan hasil ke client.
Proses-proses ini melibatkan pemeriksaan autorisasi, jaminan integritas, pemeliharaan data dictionary dan mengerjakan query serta proses update.

Ada beberapa keuntungan jenis arsitektur ini adalah :
          Memungkinkan akses basis data yang besar
          Menaikkan kinerjakomputer
         Biaya untuk hardware dapat dikurangi
         Hanya server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan data
         Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya bagian yang dibutuhkan untuk akses basis data melewati jaringan, menghasilkan data yang sedikit yang akan dikirim melewati jaringan.

Kelemahan dari arsitektur ini adalah :
1.      Membutuhkan hardware yang lebih tinggi dan mahal untuk mesin server
2.      Mempunyai satu titik lemah jika menggunakan satu server, data user menjadi tak ada jika server mati.
3.      Membutuhkan software NOS yang mahal contoh : NT atau server Windows 2000, XP,Novell, UNIX
4.      Aplikasi-aplikasi berbasis client server memiliki kekurangan pada skalabilitas.
5.      Tidak ada keterbaharuan kode.
6.      Tidak ada tingkat menengah untuk menangani keamanan dan transaksi.


Three-Tier / Multi-Tier
Model three-tier atau multi-tier dikembangkan untuk menjawab keterbatasan pada arsitektur client/server. Dalam model ini, pemrosesan disebarkan di dalam tiga lapisan (atau lebih jika diterapkan arsitektur multitier). Lapisan ketiga dalam arsitektur ini masing-masing menjumlahkan fungsionalitas khusus. Yaitu :
·         Layanan presentasi (tingkat client)
·         Layanan bisnis (tingkat menengah)
·         Layanan data (tingkat sumber data)
Layanan presentasi atau logika antarmuka pengguna ditempatkan pada mesin client. Logika bisnis dikeluarkan dari kode client dan ditempatkan dalam tingkat menengah. Lapisan layanan data berisi server database. Setiap tingkatan dalam model three-tier berada pada komputer tersendiri. Konsep model three-tier adalah model yang membagi fungsionalitas ke dalam lapisan-lapisan, aplikasiaplikasi mendapatkan skalabilitas, keterbaharuan, dan keamanan.
Arsitektur Three Tier merupakan inovasi dari arsitektur Client Server. Pada arsitektur Three Tier ini terdapat Application Server yang berdiri di antara Client dan Database Server. Contoh dari Application server adalah IIS, WebSphere, dan sebagainya. Application Server umumnya berupa business process layer, dimana bisa didevelop menggunakan PHP, ASP.Net, maupun Java. Sehingga kita menempatkan beberapa business logic kita pada tier tersebut. 

Gambar 4. Three-Tier / Multi-Tier

Arsitektur Three Tier ini banyak sekali diimplementasikan dengan menggunakan Web Application. Karena dengan menggunakan Web Application, Client Side (Komputer Client) hanya akan melakukan instalasi Web Browser. Dan saat komputer client melakukan inputan data, maka data tersebut dikirimkan ke Application Server dan diolah berdasarkan business process-nya. Selanjutnya Application Server akan melakukan komunikasi dengan database server. Biasanya, implementasi arsitektur Three Tier terkendala dengan network bandwidth. Karena aplikasinya berbasiskan web, maka Application Server selalu mengirimkan Web Application-nya ke computer Client. Jika kita memiliki banyak sekali client, maka bandwidth yang harus disiapkan akan cukup besar, Sedangkan network bandwidth biasanya memiliki limitasi. Oleh karena itu biasanya, untuk mengatasi masalah ini, Application Server ditempatkan pada sisi client dan hanya mengirimkan data ke dalam database server. Konsep model three-tier adalah model yang membagi fungsionalitas ke dalam lapisan-lapisan, aplikasi - aplikasi mendapatkan skalabilitas, keterbaharuan, dan keamanan. Dalam Skala besar mempunyai kelebihan :
·         Keamanan dibelakang firewall.
·         Transfer informasi antara web server dan server database optimal.
·         Komunikasi antara system-sistem tidak harus didasarkan pada standart internet, tetapi dapat menggunakan protocol komunikasi yang lebvih cepat dan berada pada tingkat yang lebih rendah.
·         Penggunaan middleware mendukung efisiensi query database dalam SQL di pakai untuk menangani pengambilan informasi dari database.

Keuntungan Arsitektur Three-Tier
·         Keluwesan teknologi
·         Mudah untuk mengubah DBMS engine
·         Memungkinkan pula middle tier ke platform yang berbeda
·         Biaya jangka panjang yang rendah
·        Segala sesuatu mengenai database terinstalasikan pada sisi server, begitu pula dengan       pengkonfigurasiannya. Hal ini membuat harga yang harus dibayar lebih kecil.
·    Apabila terjadi kesalahan pada salah satu lapisan tidak akan menyebabkan lapisan lain ikut salah
·  Perubahan pada salah satu lapisan tidak perlu menginstalasi ulang pada lapisan yang lainnya dalam hal ini sisi server ataupun sisi client.

Kekurangan arsitekture Three Tier :
          Lebih susah untuk merancang sistem
          Lebih susah untuk mengatur
          Lebih mahal


Dari diskripsi-diskripsi macam-macam arsitektur diatas saya berpendapat bahwa arsitektur three tier merupakan arsitektur yang lebih unggul daripada arsitektu-arsitektur yang lainnya,karena dalam arsitektur three tier ini merupakan perkembangan dari arsitektur-arsitektur sebelumnya dan semakin kecil efek kelemahan yang dibuatnya. Arsitektur three tier ini memiliki banyak fungsi atau penyempurnaan dari arsitektur client server. Model three-tier atau multi-tier dikembangkan untuk menjawab keterbatasan pada arsitektur client/server. Dalam model ini, pemrosesan disebarkan di dalam tiga lapisan (atau lebih jika diterapkan arsitektur multitier). Lapisan ketiga dalam arsitektur ini masing-masing menjumlahkan fungsionalitas khusus.