Lunak Menghadapai Tantangan Pada Pengembangan Perangkat Lunak
Meliputi
• User power dan autholity : Pengguna bisnis dan pengguna
individu adalah pihak yang lebih kuat, berpengalaman, dan selektif. • Market share : Pesaing menjadi lebih agresif, inovatif dan banyak lebih mengertahui. • Killer aplications : Aplikasi lebih bisa dikustomisasi, interaktif, dinamis, dan penuh gaya. • The anytime-anywhere faktor : Faktor ini mengakomudasi aplikasi berbasis web dan lingkungan tampa kabel (wireless) dan sejumlah peningkatan alat portable. Lanjutan..1 • The return on investment (ROI) factor : Perangkat lunak dipandang sebagai suatu investasi, tidak hanya sebagai kegiatan teknis. Oleh karena itu pengevaluasian dilakukan pada nilai yang diciptakan yang dibandingkan dengan kemampuan yang bisa dikirimkan. • The technology factor : Dari alat web dan CASE sampai pengintegrasian perangkat lunak keras ke aplikasi dan peralatan multimedia, teknologi perangkat lunak meningkat pada suatu tingkat yang sangat cepat. Pandangan Pesaing Pegembangan Perangkat Lunak Pandanagn alternative tersebut dapat dibedakan dengan dua perspektif yang berbeda, yaitu: Bisnis dapat membuat perangkat lunak menjadi lebih baik (Business can make software better). Perangkat lunak membuat bisnis menjadi lebih baik (Software can make business better). Rekayasa Perangkat Lunak Rekayasa perangkat lunak yang tanpa alternatif digabungkan dengan empat elemen kunci, yaitu : Kelayakan : Menemukan solusi terbaik untuk suatu masalah, Maksimalisasi nilai : Memaksimalkan nilai dari solusi yang disediakan; Strategi yang efektif : Megadopsi suatu trategi yang efektif untuk mengembangkan solusi, dan Pemodelan : perancangan suatu gambaran visual dari tahap sebelum solusi sampai implementasinya. Tiga dimensi atau lapisan berturut-Turut untuk rekayasa perangkat lunak bisa digambarkan sebagai berikut :
• Dimensi Horizontal (The horizontal dimension)
: Mengarahkan strategi pada pemecahan masalah yang dikendalikan perangkat lunak yang efektif dan bagaimana mereka dapat dikhususkan untuk memcahkan permasalahan bisnis yang berbeda dan menemukan berbagai kebutuhan proyek. Contoh dimensi ini adalah model air terjun, model spiral, prototipe, dan lain-lain. Lanjutan ..1 • Dimensi Vertikal (The vertical dimension) : Dimensi ini mengacu pada tahapan umum strategi dan bagaimana mereka dapat dengan efisien ditujukan. Contohnya adalah tahapan studi kelayakan, tahapan analisis kebutuhan, tahap perancangan, tahap implementasi, tahap pemeliharaan, dan lain-lain. • Dimensi Metodologis (The methodological dimention) : Dimensi ini mengacu pada Teknik dan metode yang dapat menegahi implementasi yang sukses dari strategi pemecahan masalah dan tahapan umum strategi. Contohnya adalah metodologi dan berorientasi object (object-oriented), CASE tool, dan lain-lain. Proses dan Model Suatu proses perangkat lunak dapat digambarkan sebagai sekumpulan aktifitas, metode, praktik, dan perubahan bentuk yang digunakan untuk dikembangkan dan untuk memelihara perangkat lunak dan produk yang berhubungan, misalnya rencana proyek, dan dokumen perancangan, kode, kasus pengujian, dan panduan pengguna. Suatu model merupakan penyajian abstrak dari kenyataan yang digunakan untuk mengurangi kompleksitas dari pemahaman atau untuk saling berinteraksi dengan peristiwa yang dimodelkan dengan pengurangan detail yang tidak mempegaruhi prilaku peristiwa yang relevan. Kemajuan Pada Strategi Rekayasa Perangkat Lunak • Era isolasi manajemen : Pada era isolasi manajemen, usaha yang dapat dipertimbangkan telah diabadikan untuk pengoptimalan sisi teknis dari sistem perangkat lunak dengan sedikit penekanan secara relative pada sisi bisnis perangkat lunak sebagai bagian dari strategi pengembangan. Penekanan kuat ditempatkan pada pusat kontrol dan pembatasan pada fleksibilitas untuk manajemen operasional. 1. Jangka waktu : tahun 1960-an sampai akhir tahun 1970-an, 2. Teknologi : computer yang besar , 3. Keterlibatan manajemen/bisnis : tidak ada keterlibatan dan ketergantungan pada professional computer, Lanjutan..1 4. Proses pengembangan perangkat lunak : nilai dari perangkat lunak ada di dalam perangkat lunak, 5. Sifat dari aplikasi : sistem yang besar dan masalah terstruktur (aplikasi proses transaksi merupakan hal umum), 6. Struktur tim : tim teknis 100 persen ,dan 7. Proses model siklus hidup yang dikembangkan : model air terjun. • Era rekayasa perangkat lunak tradisional : Era ini juga menjadi kelahiran dari ekonomi perangkat lunak. Kesulitan dasar yang dihadapi ekonomi perangkat lunak adalah kebanyakan perekayasa perangkat lunak tidak mungkin untuk memahami tingkatan- perusahaan, sasaran penciptaan nilai (value-creation), dan manajemen menegah dan atas yang sering tidak merealisasikan kriteria-kriteria sukses untuk perkembangan perangkat lunak atau bagaimana investasi pada tingkatan teknis dihubungkan ke penciptaan nilai. Lanjutan..1 Pada kenyataannya, control tidak benar-benar menjadi bagian dari proses. Kondisi ini menciptakan permasalahan yang baru antara hal teknis dan daerah bisnis dalam kaitannya dengan tujuan yang tidak sejenis, dan latar belakang dan minat yang berbeda. 1. Jangka waktu, sepanjang tahun 1980-an, 2. Teknologi computer PC, 3. Keterlibatan manajemen/bisnis : Permulaan dari perataan strategi antara pengembangan perangkan lunak dan bisnis, 4. Proses pengembangan perangkat lunak : Dipandang sebagai suatu investasi yang kritis di dalam organisasi yang harus secara hati-hati dievaluasi dari perspektif bisnis, Lanjutan..2 5. Sifat dari aplikasi : Aplikasi desktop, paket- paket, aplikasi umum untuk individu dan organisasi, 6. Struktur tim : Masih teknis, tetapi dimonitor oleh manajer bisnis, 7. Proses model siklus hidup yang dikembangakan : Model spiral. • Era kedewasaan : Era dari rekayasa perangkat lunak yang dikendalikan bisnis. Era ini dibedakan oleh suatu persekutuan dan kerja sama antara komputasi dan daerah bisnis dengan sistem yang dianalisis dan dirancang pada sesi aplikasi gabungan (joint application session). Dasar pemikiran yang digunakan adalah untuk menciptakan nilai dari kebutuhan yang berbeda, latar belakang, dan lingkungan kolaboratif. Karakteristik berikut mencirikan periode ini: Lanjutan..1 1. Penggunaan dari model proses perangkat lunak dan lingkungan yang terintegrasi (menganalisis dan mendukung faktor manusia), 2. Proses perangkat lunak ( pemograman proses, capability maturity model (CMM) oleh software engineering institute), 3. Lingkungan terintegrasi dan peingkatan proses perangkat lunak (integrase alat), 4. Menganalisis dan mendukung faktor manusia ( analisis protokol dari faktor manusia, mendukung komunikasi untuk pembuatan Konsensus dan pertukaran informasi), Lanjutan..2 5. Teknologi berorientasi objek (pemodelan objek pada desain, kerangka kerja aplikasi, komponen-komponen perangkat lunak), 6. Komputasi terdistribusi (bahasa berorientasi objek yang bersamaan, bahasa berorientasi o bjek terdistribusi, middleware, agen perangkat lunak, objek bisnis, rekayasa ulang proses bisnis yang berorientasi objek), 7. Rekayasa web (aplikasi e-bisnis, engembangan perangkat lunak, kolaboratif yang terdistribusi, pengembangan perangkat lunak open source, pengujian dan pemeliharaan perangkat lunak remote). Lanjutan ..3 Metodologi pengembangan egile (manajemen proyek radikal, dan extreme programming) adalah sebagai berikut : 1. Jangka waktu : sepanjang tahun 1990-an dan sekarang, 2. Teknologi : internet, 3. Keterlibatan manajemen /bisnis : kemitraan manajemen dengan tim-tim pengembangan dalam proses pengembangan perangkat lunak; keterlibatan tingkat tinggi dari pengguna ke tiap-tiap tahap, Lanjutan..4 4. Proses pengembangan perangkat lunak : proses perangkat lunak yang dikendalikan penciptaan, 5. Sifat dari aplikasi : berbasis web, tanpa kabel, kombinasi perangkat keras-lunak, intergrasi yang dikendalikan perusahaan (enterprise-driven), focus yang berat pada antarmuka pengguna dan sistem real time, 6. Struktur tim : antardisiplin ilmu dan kebutuhan yang berbeda dari berbagai tahap dari proses pengembangan, dan 7. Proses model siklus hidup yang dikembangakan : penyerahan yang evoluisioner, pengembangan iterative RPM, banyak versi dari RAD, COTS, Agile, dan lain-lain. Karakteristik Dari Pengembangan Perangkat Lunak Masa Kini Gambar berikut menggambarkan pendekatan lama utuk rekayasa perangkat lunak, dengan pendekanan khusus pada proses yang dihubungkan dengan perangkat lunak, terhadap pendekatan antardisiplin ilmu yang terakhir dengan aspek bisnis dan manusia yang memainkan suatu peran utama dalam proses pemecahan masalah. Pendekatan Tradisional Dan Antardisiplin Ilmu Rekayasa Perangkat Lunak