Minggu, 30 September 2018

Inceremental Model

Inceremental Model

Incremental model adalah model pengembangan sistem pada software engineering berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau bagian sehingga model pengembangannya secara bertahap. dilain pihak ada mengartikan model incremental sebagai  perbaikan dari model waterfall dan sebagai standar pendekatan topdown. Layaknya Model Waterfall, model ini pun juga memiliki tahapan tahapan untuk perancangan perangkat lunaknya, yaitu:
Requirement , Requirment adalah proses tahapan awal yang dilakukan pada incremental model adalah penentuan kebutuhan atau analisis kebutuhan.
Specification, Specification adalah proses spesifikasi dimana menggunakan analisis kebutuhan sebagai acuannya.
Architecture Design, adalah tahap selanjutnya, perancangan software yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.
Code setelah melakukan proses desain selanjutnya ada pengkodean.
Test merupakan tahap pengujian dalam model ini.
        Tahapan-tahapan dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan. Pada incremental model, tiga tahapan awal harus diselesaikan terlebih dahulu sebelum sebelum tahap membangun tiap increment. Untuk mengantisipasi kondisi yang terjadi pada incremental model, diperkenalkan model More Risky Incremental Model. Model ini menerapkan sistem kerja yang paralel. Setelah daftar kebutuhan didapatkan dari pemakai, tim spesifikasi membuat spesifikasi untuk modul pertama. Setelah spesifikasi pertama selesai, tim desain menindak lanjuti. Tim spesifikasi sebelumnya juga langsung membuat spesifikasi untuk model kedua, dan seterusnya. Jadi, tidak harus menunggu modul pertama selesai hingga dikirim ke user.

Kelebihan Dari Mode Incremental:
Merupakan model dengan manajemen yang sederhana
Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk mengambil keuntungan dari sistem tersebut. Increment yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah masih dapat ditemukan pada beberapa increment. Karena layanan dengan prioritas tertinggi diserahkan pertama dan increment berikutnya diintegrasikan dengannya, sangatlah penting bahwa layanan sistem yang paling penting mengalami pengujian yang ketat. Ini berarti bahwa pengguna akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada increment sistem yang paling bawah.
Nilai penggunaan dapat ditentukan pada setiap increment sehingga fungsionalitas sistem disediakan lebih awal.
Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,
Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji

Kelemahannya  :
kemungkinan tiap bagian tidak dapat diintegrasikan
Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung
Harus Open Architecture
Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment.


MODEL SPIRAL REKAYASA PERANGKAT LUNAK

MODEL SPIRAL
REKAYASA PERANGKAT LUNAK

Pengertian model spiral
Model Spiral (spiral model) adalah salah satu bentuk dari Metode Pengembangan Perangkat Lunak atau yang disebut SDLC (Software Development Life Cycle), yang sangat populer digunakan dalam bidang teknologi informasi. Model Spiral adalah gabungan dari Model Prototyping dan Model Waterfall dengan penekanan yang tinggi pada analisis risiko tiap tahapannya. Bentuk ini bersifat iteratif atau berulang dengan mengontrol aspek yang teratur dari sekuensial linier. Fungsi Model Spiral ini adalah untuk melakukan perubahan, penambahan dan pengembangan suatu software dengan deretan pertambahan menjadi lebih baik secara cepat dan tepat berdasarkan keinginan dan kebutuhan penggunanya.

Model ini ditemukan, yaitu pada sekitar tahun 1988 oleh Barry Boehm pada artikel A Spiral Model of Software Development and Enhancement. Spiral model adalah salah satu bentuk evolusi yang menggunakan metode iterasi natural yang dimiliki oleh model prototyping dan di gabungkan dengana speksistimatis yang dikembangkan dengan model waterfall. Tahap desain umumnya di gunakan pada model Waterfall, sedangkan tahap prototyping adalah suatu model dimana software dibuat prototype (incomplete model), “blue-print”-nya, atau contohnya dan ditunjukkan ke user / customer untuk mendapatkan feedback-nya. Jika prototype-nya sudah sesuai dengan keinginan user / customer, maka proses SE di lanjutkan dengan membuat produk sesungguhnya dengan menambah dan memperbaiki kekurangandari prototype tadi.
Model ini juga mengkombinasikan top-down design dengan bottom-up design, dimana top-down design menetapkan sistem global terlebih dahulu, baru di teruskan dengan detail sistemnya, sedangkan bottom-up design berlaku sebaliknya. Top-down design biasanya di aplikasikan pada model waterfall dengan sequential-nya, sedangkan bottom-up design biasanya di aplikasikan pada model prototyping dengan feedback yang diperoleh. Dari 2 kombinasi tersebut, yaitu kombinasi antara desain dan prototyping, serta top-down dan bottom-up, yang juga di aplikasikan pada model waterfall dan prototype, maka spiral model ini dapat dikatakan sebagai model proses hasil kombinasi dari kedua model tersebut. Oleh karena itu, model ini biasanya dipakai untuk pembuatan software dengan skala besar dan kompleks.
Sejarah model spiral
Tahun 1986, model ini dikenalkan pertama kali oleh Barry Boehm pada makalahnya yang berjudul “A Spiral Model of Software Development and Enhancement”.  Makalah tersebut menjelaskan tentang sebuah diagram yang dihasilkan dari berbagai publikasi yang mendiskusikan tentang Model Spiral ini. Model ini merupakan model yang sudah lama, tetapi sangat berguna untuk melakukan pembangunan proyek-proyek besar.
Pada makalah awal yang dibuatnya, Barry Boehm menganggap bahwa Model Spiral adalah suatu model proses yang berhubungan dengan inkrementasi, Model Waterfall dan Model Prototyping.
Namun dalam publikasi selanjutnya, Boehm menjelaskan bahwa Model Spiral sebagai model proses generator yang mana pilihan berdasarkan risiko proyek untuk menghasilkan suatu model proses yang tepat untuk proyek tersebut. Dengan demikian, inkrementasi, Model Waterfall dan Model Prototyping adalah kasus khusus dengan pola risiko proyek tertentu dari Model Spiral.
Tahap-tahap Spiral Model
Dalam Model Spiral terdapat lima tahap untuk merealisasikan penggunaannya sebagai berikut :

1. Tahap Liason
Tahap ini berhubungan dengan komunikasi antara orang yang akan mengembangkan software (system analyst) dengan pelanggan. Tujuannya adalah agar dapat memuaskan pelanggan dengan memperbaiki dan mengembangkan software sesuai dengan kebutuhan, kepentingan dan keinginannya.

2. Tahap Planning
Tahap perencanaan meliputi estimasi biaya yang digunakan, batas waktu, pengaturan jadwal, identifikasi lingkungan kerja, sumber-sumber infomasi untuk melakukan iterasi. Hasilnya adalah dokumen spesifikasi kebutuhan sistem dan bisnis.

3. Tahap Analisis Risiko
Tahap ini berfungsi untuk mengidentifikasi risiko yang berpotensial untuk terjadi dan menghasilkan suatu solusi alternatif secara teknis dan manajemen saat strategi mitigasi risiko direncanakan dan diselesaikan.

4. Tahap Rekayasa (engineering)
Pada tahap ini, yang dilakukan adalah sebagai berikut :
Menguji, coding dan mengembangkan software
Menginstal software
Membuat prototipe
Mendesain dokumen
Meringkas suatu pengujian software
Membuat laporan atas kekurangan dari software agar segera diperbaiki

5. Tahap Evaluasi
Peran pelanggan sangat diperlukan pada tahap ini. Mereka dapat memberikan masukan dan tanggapan, mengevaluasi produk kerja dan memastikan bahwa produk yang dibutuhkan sesuai dengan semua ketentuan. Jika terdapat perubahan, semua tahapan akan diperbaiki sesuai dengan kepuasan pelanggan. Namun, mengidentifkasi dan memantau risiko yang terjadi juga diperlukan, seperti cost overrun.
Sektor-sektor pada Spiral Model

Mengidentifikasi tujuan, alternatif, dan kendala setiap tahap secara spesifik 2.
Mengevaluasi alternatif, menilai resiko dan pengurangannya, aktifitas ditempatkan untuk mengurangi resiko kunci3.
Pengembangan dan validasi
Proyek ditinjau ulang dan tahap spiral berikutnya direncanakan
Penggunaan Spiral Model
Model Spiral tepat digunakan dalam hal sebagai berikut :
Ketika memiliki sebuah proyek dengan risiko sedang hingga tinggi
Komitmen proyek jangka panjang karena potensi perubahan pada prioritas ekonomi dalam perubahan waktu
Lini produk baru yang harus dirilis secara bertahap untuk mendapatkan feedback pelanggan dengan cukup
Ketika penciptaan prototipe berlaku
Perubahan signifikan yang diharapkan dalam produk selama siklus pengembangan
Persyaratan yang kompleks dan memerlukan suatu evaluasi
kelebihan dan Kekurangan Spiral Model

Kelebihan dalam menggunakan Model Spiral, yaitu :
Perubahan-perubahan yang terjadi dapat diselesaikan secara sistematis
Estimasi biaya menjadi mudah karena pembuatan prototipe telah selesai dalam fragmen yang kecil
Manajemen dan analisis risiko yang lebih baik
Pembangunan yang cepat dan mudah secara sistematis
Manajemen waktu yang lebih baik
Mudah dalam melakukan perubahan kebutuhan dan dokumentasi jika perubahan terjadi di tengah-tengah perubahan
Produksi software terjadi lebih cepat
Kekurangan dalam menggunakan Model Spiral, yaitu :
Tidak cocok ketika digunakan dalam proyek-proyek kecil
Tidak terlalu berguna dalam proyek-proyek kecil
Sulit dalam mengikuti strategi proyek kecil
Kurang efisien dalam penerapan model spiral karena waktu yang digunakan
Membutuhkan sumber pengalaman sebagai proses sehingga sangat kompleks
Dalam melakukan proyek kecil, estimasi biaya akan sangat tinggi
Risiko dalam tahap planning, jika terjadi perbedaan dalam jadwal pengembangan atau dalam anggaran belanja.

COMPONENT ASSEMBLY MODEL ( CAM )

COMPONENT ASSEMBLY MODEL ( CAM )


A.Pengertian CAM

Component Assembly Model (CAM) adalah suatu model Metodologi Penelitian RPL yang merupakan gabungan dari berbagai model lain karena terdapat beberapa kesamaan dari Model RPL Prototype, Spiral Boehm dan RAD.

Sifat karakteristik dari CAM yaitu yang seperti saya sebutkan tadi Model Spiral Boehm dan sangat erat keterikatannya dengan model RAD (Rapid Application Development), model karena model CAM ini menggunakan peralatan-peralatan dan GUI (Graphic User Interface) untuk membangun software.

Dengan kata lain pembuatan aplikasinya dibuat dari paket perangkat lunak yang berisi serangkaian komponen yang telah ada sebelumnya. Namun, waktu yang dibutuhkan dapat disesuaikan atau lebih efektif daripada harus mengerjakan program dari awal.

Seperti yang sudah saya sebutkan tadi CAM ini mirip dengan prototype model karena dalam pengembangannya di haruskan membuat prototype sesuai dengan kebutuhan customer agar lebih pasti perancangannya dan sesuai keinginan, dengan langkah ini artinya dapat menghemat dari segi efesiensi waktu dalam pengerjaanya.

 PEMBAHASAN


A.Tahapan-tahapan CAM yaitu sebagai berikut :

Tahap identifikasi calon-calon komponen (Kelas Objek)
Tahap melihat komponen-komponen dalam pustaka
Tahap mengekstrak komponen
Tahap membangun komponen
Tahap menyimpan komponen baru pada pustaka
Tahap mengkonstruksi iterasi ke-N dari sistem.

Kelebihan CAM adalah tinggal mencaplok atau menggunakan program atau komponen yang sudah ada dan menyusunnya menjadi sebuah program yang lebih kompleks dan berkembang sesuai dengan kebutuhan user/pengguna sehingga dapat mengefisienkan penggunaan waktu dan tenaga.  Selain itu, model ini juga menyediakan kemampuan untuk memvisualisasikan hasil rakitan dengan kesanggupan untuk mengukur, menganalisa, merancang dan merancang ulang program.

Kekurangan CAM adalah seringnya program atau komponen-komponen terdahulu tidak kompatibel atau sejalan dengan model perakitan komponen ini sehingga untuk perusahaan berskala kecil akan kesulitan menemukan komponen yang sesuai untuk dirakit.


KESIMPULAN

Jadi Kesimpulan-nya bahwa CAM sangat sesuai digunakan oleh perusahaan besar yang sudah berpengalaman mengembangkan software, mereka dapat memanfaatkan software-software yang telah umum dikembangkan sebelumnya menjadi bentuk baru dari software yang ingin dikomersilkan dan para pengembang hanya perlu mengetahui kebutuhan pelanggan, mencari komponen yang berguna yang berguna untuk menjawab kebutuhan pelanggan dan akhirnya menempatkan mereka bersama-sama untuk membangun sebuah program baru yang bermanfaat.



Kamis, 20 September 2018

APA ITU 4GT Dan kesimpulanya


APA ITU 4GT (FOURTH GENERATION TRCHNIQUES)



FOURTH GENERATION TRCHNIQUES/ 4GT  adalah seperanagkat peralatan software yang fungsinya sebagai perangkat pembantu untuk memudahkan seorang pengembang  software untuk mengaplikasikan karakteristik software tersebut, dari situ akan menghasilkan soucrce code dan object code yang secara otomatis sesuai dengang persyaratan khususnya yang dibuat oleh pengembang sofware tersebut.

TOOL 4GT adalah bahasa non prosedur antara lain:



1.DataBase Query

2.Pembentukan laporan ( Report Generation )

3.Manipulasi data

4.Definisi dan interaksi layar (screen)

5.Pembentukan object dan source ( Object and source generation )

6.Kemampuan grafik yang tinggi, dan

7.Kemampuan spreadsheet



Kelebihan



Pengurangan waktu dan peningkatan produktivitas secara besar

Tool yang menggunakan metode pengembangan perangkat lunak 4GL bisa meng-generate sistem dari output yang dihasilkan oleh CASE tools



Kekurangan



Penggunaan perangkat bantu (tools) dibandingkan dengan bahasa pemrograman, dan juga kode sumber yang dihasilkannya tidak efisien.

Penggunaan 4GT tanpa perencanaan matang (untuk proyek besar) akan menyebabkan kesulitan yang sama (kualitas dan pemeliharaan yang jelek, ketidakpuasan pelanggan) seperti dengan metode konvensional.







KESIMPULAN



Fourth Generation Techniques (4GT) mencakup seperangkat peralatan perangkat lunak yang berfungsi sebagai perangkat bantu yang memudahkan seorang pengembang software mengaplikasi beberapa karakteristik software pada tingkat yang tinggi, yang akan menghasilkan source code dan object code secara otomatis sesuai dengan spesifikasi (persyaratan khusus) yang dibuat oleh sang pengembang perangkat lunak itu sediri





Pengertian Dan Kesimpulan Prototyping Model



Pengertian Dan Kesimpulan Protyping Model


Prototyping perangkat lunak (software prototyping) atau siklus hidup menggunakan protoyping (life cycle using prototyping) adalah salah satu metode siklus hidup sistem yang didasarkan pada konsep model bekerja (working model). Tujuannya adalah mengembangkan model menjadi sistem final. Artinya sistem akan dikembangkan lebih cepat daripada metode tradisional dan biayanya menjadi lebih rendah Ada banyak cara untuk memprotaoyping, begitu pula dengan penggunaannya. Ciri khas dari metodologi adalah pengembang sistem (system developer), klien, dan pengguna dapat melihat dan melakukan eksperimen dengan bagian dari sistem komputer dari sejak awal proses pengembangan.


Dengan prototype yang terbuka, model sebuah sistem (atau bagiannya) dikembangkan secara cepat dan dipoles dalam diskusi yang berkali-kali dengan klien .Model tersebut menunjukkan kepada klien apa yang akan dilakukan oleh sistem, namun tidak didukung oleh rancangan desain struktur yang mendetil.] Pada saat perancang dan klien melakukan percobaan dengan berbagai ide pada suatu model dan setuju dengan desain final rancangan yang sesungguhnya dibuat tepat seperti model dengan kualitas yang lebih bagus. Protoyping membantu dalam menemukan kebutuhan di tahap awal pengembangan, terutama jika klien tidak yakin dimana masalah berasal. Selain itu protoyping juga berguna sebagai alat untuk mendesain dan memperbaiki user interface bagaimana sistem akan terlihat oleh orang-orang yang menggunakannya.


Salah satu hal terpenting mengenai metodologi ini, cepat atau lambat akan disingkirkan dan hanya digunakan untuk tujuan dokumentasi. Kelemahannya adalah metode ini tidak memiliki analisis dan rancangan yang mendalam yang merupakan hal penting bagi sistem yang sudah kokoh, terpercaya dan bisa dikelola. Jika seorang pengembang memutuskan untuk membangun jenis prototipe ini, penting untuk memutuskan kapan dan bagaimana ia akan disingkirkan dan selanjutnya menjamin bahwa hal tersebut telah diselesaikan tepat pada waktunya.


sejarah prototyping

Pada tahun 1960-an: Teknik-teknik prototyping pertama cepat menjadi diakses pada tahun delapan puluhan kemudian dan mereka digunakan untuk produksi komponen prototipe dan model. Sejarah prototipe cepat dapat ditelusuri sampai akhir tahun enam puluhan, ketika seorang profesor teknik, Herbert Voelcker, mempertanyakan dirinyasendiri tentang kemungkinan melakukan hal-hal menarik dengan alat komputer dikontroldan otomatis mesin. Alat-alat mesin baru saja mulai muncul di lantai pabrik itu. Voelcker berusaha mencari jalan di mana alat-alat mesin otomatis dapat diprogram denganmenggunakan output dari program desain komputer.Kemudian 1970: Voelcker mengembangkan alat dasar matematika yang dengan jelas menggambarkan tiga aspek dimensi dan menghasilkan teori-teori awal teori algoritma dan matematika untuk pemodelan solid. Teori-teori ini membentuk dasar program komputer modern yang digunakan untuk merancang hampir segala hal mekanis,mulai dari mobil mainan terkecil ke gedung pencakar langit tertinggi.


Teori Volecker berubah metode perancangan pada tahun tujuh puluhan, namun, metode lama untuk merancang masih sangat banyak digunakan. Metode lama terlibat baik alat masinis ataumesin dikendalikan oleh komputer. Para cowok logam dipotong dan bagian yangdibutuhkan tetap sesuai kebutuhan. Namun, pada tahun 1987, Carl Deckard, bentuk peneliti dari University of Texas,datang dengan ide yang revolusioner yang baik.


Dia memelopori manufaktur yang berbasis lapisan, dimana ia memikirkan membangun lapisan model dengan lapisan. Diadicetak model 3D dengan menggunakan sinar laser untuk bedak sekering logam dalam prototipe solid, single layer pada suatu waktu. Deckard mengembangkan ide ini menjadisebuah teknik yang disebut "Selective Laser Sintering".










Kesimpulan


Metode prototyping melakukan bentuk antsipatif terhadap kesalahpahaman idea atau spesifikasi kebutuhan user dari percakapan yang dilakukan dari metode lainnya. Sehingga dari hasil paparan teori diatas jelas bahwa metode prototyping memilki kelebihan dalam hal komunikasi antara user dan analis untuk menemukan spesifikasi yang sesuai dan ideal. Metode prototyping melakukan design secara cepat (quick design) untuk menyelesaikan sebuah perangkat lunak.


Dalam pembuatan sebuah perangkat lunak metode ini melibatkan secara lebih aktif kepada user untuk mengutarakan spesifikasi personalnya kepada analis. Sehingga analis akan dapat sedikitnya memahami dengan betul apa yang menjadi keinginan dari user atau client yang bersangkutan.



Jumat, 14 September 2018

Rekayasa perangkat lunak


Apakah Perangkat Lunak Itu ?

Perangkat Lunak adalah definisi dan organisasi dari sekumpulan task dan fungsi yang dienkapsulasi dalam bentuk yang dapat dieksekusi oleh komputer.
Beberapa tipe Perangkat Lunak :
  • Commercial-Off-the-Shelf (COTS)
  • Government-Off-the-Shelf (GOTS)
  • Legacy: ditulils dalam bahasa pemrograman ‘sebelumnya’
    • Cobol, PL/1 (Y2k/SNET), Fortran, etc
    • C and C++!
  • Customized New Software
  • Client vs Server Software
  • Database Management System / Applications
Rekayasa : Aplikasi keilmuan untuk penyelesaian permasalahan praktis.
Rekayasa Perangkat Lunak : Aplikasi ilmu komputer untuk membangun sistem perangkat lunak praktis.
Pemrograman :
  • Individu menulis keseluruhan program
  • Satu orang, satu komputer
  • Well-defined Problem
  • Programming-in-the-Small
Rekayasa Perangkat Lunak :
  • Individu menulis komponen program
  • Tim membangun keseluruhan program
  • Programming-in-the-Large
Aplikasi dari merekayasa Perangkat Lunak.
Wilayah Computer Science Engineering yang berhubungan dengan sistem Perangkat Lunak.
  • Besar dan kompleks
  • Dibangun oleh tim
  • Terdapat beberapa versi
  • Berakhir beberapa tahun
  • Undergo changes
Definisi :
  • Aplikasi yang menggunakan pendekatan sistematis, disiplin, terukur untuk mengembangkan, mengoperasikan, dan memelihara Perangkat Lunak (IEEE 1990)
  • Pembangunan oleh banyak orang (multi-person) dari Perangkat Lunak multi-version (Parnas 1978)


Mengapa Rekayasa Perangkat Lunak ?
Kompleksitas program melebihi programmer individu atau sendiri.
Rekayasa Perangkat Lunak ditarget untuk :
  • Membangun aplikasi Perangkat Lunak besar
  • Mendefinisikan permasalahan dengan jelas dan komplit
  • Perangkat dan teknik untuk mendukung proses
  • Team-Oriented experienced
Rekayasa Perangkat Lunak  harus berkembang menjadi Engineering discipline.
Rekayasa Perangkat Lunak harus memajukan dan mendukung konstruksi multi-person dari Perangkat Lunak multi-version.
Sejarah RPL
“Early Days”
  • Tahun 1950 programmer menulis program
  • Awal 1960 – Pembangunan project software skala sangat besar oleh “Expert”
  • Pertengahan akhir 1960 – Muncul aplikasi software komersial skala besar (sistem besar melibatkan tim dan muncul istilah “Software Engineering”)
Disiplin RPL
  • Individu tidak dapat melihat “Big Picture”
  • Meningkatnya waktu komunikasi
  • Perubahan personal berakibat pada produktifitas
RPL : Manajemen, organisasi, perangkat, teori, metodologi, teknik, dll.
Pengaruh RPL
Harga software terus meningkat, membutuhkan produksi software yang lebih efisien
  • Software acquisition vs outsourcing
  • Software reuse vs build-from-scratch
Kompleksitas Perangkat Lunak Besar berubah dalam bentuk perspektif pengembangan : Konsep – Desain – Pengembangan – Integrasi – Distribusi – Dokumentasi – Pemeliharaan – Evolusi – Perluasan.
Pertumbuhan RPL / Computer Science :
  • 350.000 pekerjaan teknologi informasi terbuka
  • 100.000 pekerjaan baru setiap tahun selama 10 tahun
A. Analisa dan spesifikasi kebutuhan :
  • Permasalahan apa yang dipecahkan ?
  • Apa yang dibutuhkan / diinginkan pelanggan ?
  • Interaksi antara SE dan pelanggan ?
  • Identifikasi dan dokumentasi kebutuhan sistem
  • Membangkitkan user manual dan tes plan
B. Desain dan spesifikasi
  • Bagaimana permasalahan dipecahkan
  • Desain High-Level
  • Menentukan komponen / modul
  • Transisi ke desain secara detil
  • Fungsional detil dari komponen / modul
C. Coding dan Testing Modul
  • Menulis kode sesuai spesifikasi desain komponen / modul
  • Memisahkan testing modul individu
  • Simulasi prilaku sistem dengan driver dan stub
D. Integrasi dan System Maintenance
  • Integrasi komponen / modul ke dalam sub sistem
  • Integrasi sub sistem ke dalam program akhir
E. Delivery dan Maintenance
  • Memberikan sistem ke Konsumen / Market
  • Memperbaiki buk dan version release sepanjang waktu
Sejarah Perangkat Lunak
>> Abstract Data Types (ADTs) – 1970-an
>> Object-Oriented Paradigm – 1980-an
>> Component-Based D&D – 1990-an
>> Web-Based / Distributed Computing – 2000-an
Abstract Data Types (ADTs) – 1970-an
Diusulkan oleh B. Liskov (MIT)  tahun 1975
ADTs mempromosikan pengembangan aplikasi dari pandangan informasi dan penggunaannya.
Proses desain ADT :
  • Identifikasi “jenis” atau “tipe” informasi
  • Membungkus informasi dan menyediakan public interface dari metode
  • Menyembunyikan informasi dan kode metode dalam private implementation
ADT berhubungan dengan User-Defined Data Types
Analogi dengan Integer Data Type dan +,-,*, dll


Object-Oriented Paradigm – 1980-an
Object-Oriented Decomposition :
  • Dekomposisi permasalahan ke dalam agen yang membentuk operasi
  • Penekanan agen yang menyebabkan aksi
Agen terdiri dari 12 bagian :
  • Hidden Implementation: data dan operasi hanya tersedia pada agen
  • Public Interface: operasi tersedia untuk client dari agen
Agen hanya dapat dimodifikasi dengan operasi yang ditentukan dengan Hidden Implementation atau Public Interface


Konsep Object-Oriented
Class
  • Tipe agen
  • Menggambarkan perilaku
Object
  • Instance dari class
  • Mempresentasikan data aktual yang dimanipulasi oleh agen
  • Memelihara state dari object
Method
  • Operasi yang didefinisikan dalam class
  • Operasi terhadap SEMUA instance dari class
Message
  • Mengindikasi bahwa method dari object dikerjakan


Modul vs ADT/Class
Modul
  • Menggambarkan baik state dan perilaku
  • Modul Employee terdiri dari Instance Variable, Operasi, dan Program Variable
  • Single instance di-share oleh semua user
Class
  • Menggambarkan hanya perilaku
  • Class Employee mengabaikan Program Variable
  • Multiple Independent Instance membagi deklarasi class yang sama tetapi membedakan state
Kunci perbedaan: sifat dinamis class memungkinkan instance dibuat sesuai kebutuhan
Konsep Lanjutan Object-Oriented
Inheritance
  • Menggunakan Class bersama-sama dengan Generalisasi dan Spesialisasi
  • Memperlakukan instance dari class yang berbeda dalam bentuk seragam
Polymorphism / Dynamic Binding
  • Pemilihan Run-Time dari Method dijalankan berdasarkan tipe pemanggilan instance
  • Message dilewatkan dalam tipe yang dependent
Generic: A Type Parameterizable Class
      • Stack mempunyai parameter untuk tipe elemen
      • Pembuatan Program Variable mengikat data dan Method stack ke tipe khusus dari elemen
Stack(Real), Stack(Int), Stack(Employee)
Keuntungan Object-Oriented
Mendukung komponen software yang reusable
  • Pembuatan dan testing dalam isolasi
  • Integrasi dari komponen yang bekerja
  • Desainer / developer melihat permasalahan pada level abtraksi lebih tinggi
Mengontrol konsistensi informasi
  • Public Interface membatasi akses ke data
  • Private Implementation tidak tersedia
Mempromosikan / Memfasilitasi Evolusi / Reuse software
  • Inheritance ke desain lebih lanjut / Class Library
  • Multiple instance dari class yang sama
Component-Based D&D – 1990-an
ADT sebagai unit abstraksi / konseptualisasi
Class adala Object-Oriented yang ekuivalen dengan ADT
Tetapi, dalam 10 tahun
  • Kekuatan komputasi meledak
  • Kompleksitas aplikasi meningkat
  • Class adalah bagian dari hirarki inheritance
  • Hirarki inheritance bagian dari Aplikasi Class Library
Dalam 10 tahun
  • Muncul Java (dan sekarang .NET)
  • Muncul Java Beans
  • Component-Based Development Tools
Apakah Komponen itu ?
Bagaimana aplikasi dikonsepkan ?
  • Inheritance Hierarchies Partition Domain
  • Package sebagai kumpulan atau class yang berhubungan
  • Kumpulan class, Package, hirarki inheritance membentuk Application Class Library
Bagaimana Class Library dimanfaatkan ?
  • Menggunakan Class individu
  • Menggunakan Package atau subset dari Package
  • Menggunakan porsi utama dari hirarki inheritance
  • Tool menggunakan beberapa Package dan/atau hirarki terpilih
  • Tool yang menjangkau Application Class merupakan software yang didesain dengan jelek
Konsep Komponen
Komponen terdiri dari satu atau lebih Class (atau komponen lain) dan diperuntukkan untuk mendukung Pembentukan unit fungsionalitas
Peruntukan class dalam multiple component mempertahankan semantic  yang sama dalam semua keadaan
Contoh komponen
  • Graphical User Interface Widget
  • Major “Reused” Functionality (Algoritma untuk Searching/Sorting, Database Connection/Querying)
  • Aplikasi khusus (Komponen Cost Accounting, Komponen Computational Fluid Dynamics)
Contoh Komponen
Two Sample Components:
  • Komponen Tanggal (selalu tanggal valid)
  • Komponen Alamat (konsistensi dalam presentasi)

Web-Based / Distributed Computing – 2000-an
Komputasi / aplikasi terdistribusi adalah :
  • Sistem dari sistem
  • Interoperasi dari aplikasi baru dan yang sudah ada
  • Pewarisan, database, COTS, New Client dll
  • Network Centric Environment
  • Multi-Tier Solutions
Aplikasi komputasi terdistribusi harus :
  • Mengatur, mengontrol, mengakses dan memodifikasi data
  • Memungkinkan manusia berinteraksi dengan data
  • Menyediakan High-Availability dan Performansi
  • dapat berkembang sepanjang waktu
Apakah Aplikasi Terdistribusi
Realitas saat ini :
Alasan : Artifact – kumpulan  (DB, Legacy, COTS, GOTS, Each w/ API)
Alasan : User
  • Baru dan sudah ada
  • Memanfaatkan Artifact API
Aplikasi Terdistribusi
  • Artifacts + User
Isu yang terjadi ?
  • Bagaimana mereka berinteraksi ?
  • Heterogenitas
  • Masalah keamanan
  • Model program  yang berbeda
  • dll,
CASE
CASE (Computer-Aided Software Engineering) adalah berbagai macam program yang digunakan untuk mendukung semua kegiatan Perangkat Lunak seperti analisa persyaratan, permodelan sistem, debugging, dan pengujian
CASE bisa terdiri dari
  • Editor untuk notasi yang digunakan
  • Modul analisis untuk memeriksa model sistem dan membuat dokumentasinya
CASE bisa mencakup generator kode, CASE yang hanya terdiri dari editor dinamakan Lower-Case
Atribut-atribut Perangkat Lunak
Perangkat Lunak harus :
  • Memberikan fungsionalitas dan kinerja yang dibutuhkan user
  • Dapat dipelihara: Perangkat Lunak dapat diubah sesuai perubahan kebutuhan user
  • Dapat diandalkan: Perangkat Lunak harus memiliki keandalan, keamanan dan keselamatan. Perangkat Lunak yang baik tidak menyebabkan kerusakan fisik atau ekonomi bila terjadi kegagalan sistem
  • Dapat digunakan: Perangkat Lunak harus memiliki user interface yang baik dan dokumentasi yang mencukupi
Macam-macam Perangkat Lunak
Perangkat Lunak Berdasarkan Pemakai
  • Generik: Perangkat Lunak yang bisa digunakan secara umum
  • Spesifik: Perangkat Lunak yang dibuat berdasarkan pesanan
Perangkat Lunak Berdasarkan Fungsional
  • Interfacing
  • Operating System
  • Perangkat Lunak Aplikasi
  • CASE Tools
Perangkat Lunak Berdasarkan Pemakai
Generik: Perangkat Lunak yang bisa digunakan secara umum. Sebagai Contoh:
  • Operating System seperti Microsoft Windows
  • Word Processing seperti Microsoft Word, WordPad
  • Spreadsheet seperti Microsoft Excell
  • Beberapa aplikasi khusus bisa dibuat menjadi generik dengan membuatnya general dan mudah digunakan siapa saja seperti aplikasi akuntansi, aplikasi sekolah, dll.
Spesifik: Perangkat Lunak yang dibuat berdasarkan pesanan. Bnayak Software House yang menghasilkan Perangkat Lunak ini berdasarkan proyek/pesanan tertentu. Sebagai contoh aplikasi Rumah Sakit, aplikasi Pendidikan, aplikasi Kesehatan, dll.
Perangkat Lunak Berdasarkan Fungsional
INTERFACING: Perangkat Lunak ini menghubungkan suatu perangkat keras tertentu, seperti Hardware driver, interfaces dengan perangkat keras lain. Contoh:
  • Driver untuk kamera, handphone atau perangkat keras lainnya.
  • Program interface seperti sensor suhu dengan LM555, PPI 8255, Komunikasi Serial RS232
OPERATING SYSTEM: Perangkat lunak yang menjalankan sistem komputer dan merupakan interface dari sistem komputer dan program aplikasi yang berjalan di atasnya.
Beberapa OS yang dikenal secara luas:
  • Windows
  • Linux dan variansnya, seperti Redhat, Suse, Mandrake, Debian
    dll.
  • Unix
  • FreeBSD
  • Machintos (Apple)
PROGRAM APLIKASI, program ini digunakan untuk keperluan tertentu, yang tujuan membantu pekerjaan manusia menjadi lebih mudah. Progranm ini yang banyak dibahas dalam pembuatan perangkat lunak.
Program Aplikasi ini tergantung pada kebutuhan dari program itu sendiri, seperti
  • Program Office
  • Program Graphics Design
  • Program Multimedia
  • Dan Lain-lain
Advertisements


Pagaralam

Rapid Aplication Development (RAD) adalah sebuah proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan ...