You are on page 1of 20

SEJARAH SOFTWARE ENGINEERING

1950-an dan awal 1960-an. masih terdapat perdebatan tajam mengenai aspek engineering
dari pengembangan perangkat lunak.
Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang
rekayasa perangkat lunak,.
Pada tahun 1960-an hingga 1980-an, krisis perangkat lunak.
Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa
tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam
produktivitas pengembanan perngkat lunak dalam tempo 10 tahun.

PENGERTIAN DASAR
Istilah Software Engineering mulai dipopulerkan pada tahun 1968 pada software engineering
Conference yang diselenggarakan oleh NATO.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi.
Program adalah kumpulan perintah yang dimengerti oleh komputer
prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi
(OBrien, 1999).
RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat
lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari
kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah
digunakan.
TUJUAN REKAYASA PERANGKAT LUNAK
a. Memperoleh biaya produksi perangkat lunak yang rendah
b. Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
c. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
d. Menghasilkan perangkat lunak yang biaya perawatannya rendah
RUANG LINGKUP
ruang lingkup RPL menurut Abran et.al.,2004
Software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan
perangkat lunak
Software Desain mencakup proses penampilan arsitektur, komponen, antar muka, dan
karakteristik lain dari perangkat lunak
Software Construction berhubungan dengan detail pengembangan perangkat lunak,
termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
Software Testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
Software Maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah
dioperasikan
Software Configuration Management berhubungan dengan usaha perubahan konfigurasi
perangkat lunak untuk memenuhi kebutuhan tertentu
Software Engineering management berkaitan dengan pengelolaan dan pengukuran
RPL.
Software Engineering Tools And Methods mencakup kajian teoritis tentang alat bantu
dan metode RPL
Software Engineering Process berhubungan dengan definisi, implementasi pengukuran,
pengelolaan, perubahan dan perbaikan proses RPL

Software Quality menitik beratkan pada kualitas dan daur hidup perangkat lunak

REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU LAIN


bidang ilmu manajemen meliputi akuntansi, finansial, pemasaran, manajemen operasi,
ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan, dan strategi
bisnis
bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis
numerik, dan matematika diskrit
bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek,
seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko dan
keandalan, perbaikan kualitas, dan metode-metode kuantitatif
bidang ilmu ergonomika menyangkut hubungan (interaksi) antar manusia dengan
komponen-komponen lain dalam sistem komputer
bidang ilmu rekayasa sistem meliputi teori sistem, analisis biaya-keuntungan,
pemodelan, simulasi, proses, dan operasi bisnis
PERKEMBANGAN REKAYASA PERANGKAT LUNAK
Tahun
Kejadian
1940an

Komputer pertama yang membolehkan pengguna menulis kode program


langsung

1950an

Generasi awal interpreter dan bahasa macro


Generasi pertama compiler

1960an

Generasi kedua compiler


Komputer mainframe mulai dikomersialkan
Pengembangan perangkat lunak pesanan
Konsep Software Engineering mulai digunakan
Perangkat pengembang perangkat lunak
Perangkat minicomputer komersial

1980an

Perangkat Komputer Personal (PC) komersial


Peningkatan permintaan perangkat lunak

1990an

Pemrograman berorientasi obyek (OOP)


Agile Process (sekelompok aktifitas pembangunan perangkat lunak secara
iteratif yang menekankan pada aktifitas konstruksi (desain dan koding))
Extreme Programming
Peningkatan drastis kapasitas memori
Peningkatan penggunaan internet
Platform interpreter modern (Java, .Net, PHP, dll)
Outsourcing

1970an

2000an

METODE REKAYASA PERANGKAT LUNAK


1. Kebutuhan terhadap definisi masalah yang jelas.
Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian
masalah yang jelas
2. Tahapan-tahapan pengembangan yang teratur.
model-model tersebut mengikuti pola umum analysis design coding testing
maintenance
3. Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan.
Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna, pemilik,
pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat
lunak tersebut.
4. Dokumentasi merupakan bagian penting dari pengembangan perangkat lunak.

Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram,


gambar
5. Keluaran dari proses pengembangan perangkat lunak harus bernilai ekonomis.
Nilai dari sebuah perangkat lunak sebenarnya agak susah di-rupiah-kan. Namun efek
dari penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai
tambah bagi organisasi.
TAHAPAN REKAYASA PERANGKAT LUNAK
1. Analisis sistem
adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi
komponen-komponennya dengan tujuan mempelajari seberapa bagus komponenkomponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka.
2. Model proses
adalah model yang memfokuskan pada seluruh proses di dalam sistem yang
mentransformasikan data menjadi informasi (Harris, 2003).
3. Disain perangkat lunak
adalah tugas, tahapan atau aktivitas yang difokuskan pada spesifikasi detil dari solusi
berbasis computer (Whitten et al, 2004).
4. Konstruksi
adalah tahapan menerjemahkan hasil disain logis dan fisik ke dalam kode-kode program
komputer.
5. Pengujian sistem
melibatkan semua
kelompok pengguna yang telah direncanakan pada tahap
sebelumnya.
6. Perawatan dan Konfigurasi.
Perawatan corrective
dilakukan jika terjadi kesalahan atau biasa dikenal sebagai bugs.
Perawatan routine biasa juga disebut preventive maintenance
dilakukan secara rutin untuk melihat kinerja perangkat lunak ada atau tidak ada
kesalahan.
Tipe perawatan sistem upgrade
dilakukan jika ada perubahan dari komponen-komponen yang terlibat dalam
perangkat lunak tersebut.

ARTI DAN DEFINISI PERANGKAT LUNAK


DEFINISI SOFTWARE
1. Disebut juga dengan perangkat lunak, merupakan kumpulan beberapa perintah yang
dieksekusi oleh mesin komputer dalam menjalankan pekerjaannya.
2. Merupakan data elektronik yang disimpan sedemikian rupa oleh komputer itu sendiri,.
3. Untuk mencapai keinginannya tersebut dirancanglah suatu susunan logika, logika yang
disusun ini diolah melalui perangkat lunak, yang disebut juga dengan program beserta
data-data yang diolahnya
EVOLUSI PERKEMBANGAN SOFTWARE
ERA PERTAMA :
Batch Orientation
Suatu orientasi di mana proses dilakukan setelah data dikumpulkan dalam satuan waktu
tertentu.
Limmited distribution
Suatu penyebaran software yang terbatas pada perusahaan-perusahaan tertentu.
Custom software
Software yang dikembangkan berdasarkan perusahaan-perusahaan tertentu.

ERA KEDUA :
Multi user
Suatu sistem di mana satu komputer digunakan oleh beberapa user pada saat yang
sama.
Real Time
Suatu sistem yang dapat mengumpulkan, menganalisa dan mentransformasikan data
dari berbagai sumber, mengontrol proses dan menghasilkan output dalam mili second.
Database
Perkembangan yang pesat dari alat penyimpan data yang OnLine menyebabkan muncul
generasi pertama DBMS (DataBase Management System).
Product Software
Adalah software yang dikembangkan untuk dijual kepada masyarakat luas.
ERA KETIGA :
Distributed system
Suatu sistem yang tidak hanya dipusatkan pada komputer induk (Host computer),
Embedded Intelegence
Suatu product yang diberi tambahan Intellegence dan biasanya ditambahkan
mikroprocessor yang mutakhir.
Low Cost Hardware
Harga hardware yang semakin rendah, ini dimungkinkan karena munculnya Personal
Computer.
Consummer Impact
Adanya perkembangan komputer yang murah menyebabkan banyaknya software yang
dikembangkan, software ini memberi dampak yang besar terhadap masyarakat.
ERA KEEMPAT :
Expert system
Suatu penerapan A.I. (Artificial Intellegence) pada bidang-bidang tertentu, misalnya
bidang kedokteran, komunikasi, dan sebagainya
AI Machine
Suatu mesin yang dapat meniru kerja dari sebagian otak manusia. Misalnya mesin robot,
komputer catur.
Parallel Architecture
Arsitektur komputer yang memungkinkan proses kerja LAN paralel, yang dimungkinkan
adanya prosesor berbeda dalam satu komputer
ARTI SOFTWARE
1. Instruksi
Atau program komputer yang ketika dieksekusi akan memberi fungsi dan hasil yang
diinginkan.
2. Struktur data
Yang memungkinkan program memanipulasi informasi
3. Dokumen
Yang menggambarkan operasi dan penggunaan program.
SIFAT DAN KARAKTERISTIK SOFTWARE
1. Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti
hardware
2. Elemen itu tidak aus, tetapi bisa rusak.
3. Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti
hardware
4. Software itu tidak bisa dirakit.
KOMPONEN SOFTWARE
1. Bentuk bahasa
Terbagi 2, yaitu
High Level, contoh PASCAL, COBOL, FORTRAN.

Middle Level, contoh C


2. Bentuk translator
Terbagi 3 , yaitu :
A. Interpreter
Menerjemahkan dari bahasa tingkat tinggi ke bahasa tingkat rendah secara satu
persatu (statemen demi statemen)
B. Compiler
Menerjemahkan secara keseluruhan, proses lebih cepat dari interpreter
C. Assembler
Menerjemahkan dari bahasa rakitan ke bahasa mesin
3. Bentuk mesin :

APLIKASI SOFTWARE
1. Sistem Software
Adalah sekumpulan program yang ditulis untuk melayani atau menunjang program
lainnya.
2. Real Time software
Software yang mengukur, menganalisis dan mengontrol kejadian yang sesungguhnya
terjadi di dunia.
Elemen-elemen real time software terdiri dari :
a. Komponen pengumpul data
Yang mengumpulkan dan menyusun informasi dari lingkungan external.
b. Komponen analisis
Yang mentransformasikan informasi yang diperlukan oleh aplikasi
c. Komponen kontrol
Yang memberikan respon kepada lingkungan eksternal
d. Komponen monitor
Yang mengkoordinasi semua komponen-komponen lainnya, sehingga respons real
time yang berkisar 1 milisecond sampai 1 menit dapat dipertahankan.
3. Business software
Software yang palinmg banyak digunakan dalam bidang aplikasi software. Software ini
digunakan oleh manajemen untuk mengambil kepitusan ( Decision Making ) dalam
bidang bisnis. Contoh : Dac Easy Accounting, Finance Manajer, dan sebagainya
4. Engineering and sciencetific software
Software yang dicirikan dengan algoritma numerik, aplikasinya berkisar dari astronomi
sampai vulkanologi.
5. Emdebed software
Suatu software disimpan dalam memori tetap - ROM - Read Only Memory, dan
digunakan untuk mengontrol product dan sistem software ini dijalankan dengan berbagai
fungsi terbatas.
6. PC software (Personal Computer)
Software yang banyak digunakan di komputer pribadi (PC). Contoh :
Word Processing : Microsoft Word
Spreadsheet : Microsoft Excel
Computer Graphics : CorelDraw, Photoshop
Games : Pacman, Load Runner, Catur
DBMS : Foxpro, SQL,

Network : Novell, Windows Server


7. Artificial Intelegence software
Software yang banyak menggunakan algoritma non numerik dalam memecahkan
masalah kompleks yang tidak dapat dianalisis dengan analisis komputasi biasa.
KRISIS SOFTWARE
Adalah sekumpulan masalah yang ditemukan dalam pengembangan software computer.
Masalahnya tidak hanya terbatas pada software yang tidak berfungsi sebagaimana
mestinya,
MASALAH
Krisis software oleh beberapa masalah :
1. Estimasi jadual dan biaya yang seringkali tidak tepat
2. Produktivitas orang-orang software yang tidak dapat mengimbangi permintaan software
3. Kualitas software yang kurang baik.
PENYEBAB
Masalah yang berhubungan dengan krisis software disebabkan oleh :
1. Karakteristik software itu sendiri
Karakteristik software adalah software yang bersifat logika dibandingkan fisik, oleh
karena itu mengukur software harus merupakan suatu kesatuan,
2. Kegagalan mereka yang bertanggung jawab dalam pengembangan software.
MITOS SOFTWARE
1. Mitos Management
Kita tidak perlu mengubah pendekatan terhadap pengembangan software, karena
jenis pemrograman yang kita lakukan sekarang ini sudah kita lakukan 10 tahun yang
lalu.produktivitas dan kualitas software harus ditingkatkan dengan menggunakan
pendekatan software development
Kita sudah mempunyai buku yang berisi standarisasi dan prosedur untuk
pembentukan software.
Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa
programmer saja. Konsep ini sering disebut Mongolian Hard Concept.
2. Mitos Langganan / Customer
Pernyataan tujuan umum sudah cukup untuk memulai penulisan program.
Kebutuhan proyek yang terus menerus berubah dapat dengan mudah diatasi karena
software itu bersifat fleksibel.Jika perubahan mendekati akhir penyelesaian, maka
biaya akan lebih besar.
3. Mitos Praktisi
Tidak ada metode untuk analisis disain dan testing terhadap suatu pekerjaan, cukup
menuju ke depan terminal dan mulai coding.
Realitasnya : Metode untuk analisis desain dan testing diperlukan dalam
pengembangan software.
Segera setelah software digunakan, pemeliharaan dapat diminimalisasikan dan
diatasi dengan cara CATCH AS CATCH CAM.
Realitasnya : Diperlukan budget yang besar dalam maintenance software.

MODEL DAN FASE SOFTWARE ENGINEERING


Dalam membuat softrare yang baik, ada beberapa cara :
1. Fase Perencanaan (Planning) :
a. Rencana software
b. Analisa kebutuhan software
c. Analisa cost banefit (Salah satu bagian dari studi kelayakan)
2. Fase Pengembangan (Development) :
a. Coding
b. Testing
Macam-macam test program :
Unit test (Test per modul)
Integreated test (Test penggabungan dari modul-modul yang telah diuji)
Validated test (Diuji dengan data sebenarnya)
System test (Test dilakukan dengan lingkungan sebenarnya)
Topdown test (Test gabungan dari atas ke bawah)
Bottom up test (Test gabungan dari bawah ke atas)
3. Fase Pemeliharaan (Maintenance) :
Jenis-jenis maintenance :
a. Koreksi (Corection)
b. Adaptasi (Adaptive)
c. Software dikembangkan sesuai dengan tuntutan perkembangan jaman
d. Adaptasi yang berkembang pada dewasa ini terbagi atas :
Sistem Operasi
Pengarahan sistem operasi yang bersifat multi user. Contoh : UNIX
Sistem operasi yang bersifat jaringan. Contoh : NOVELL
RDBMS - Relational DataBase Management System
Berkembang dalam bentuk bahasa SQL (Structure Query Language).
Bahasa
Mengarah pada perkembangan bahasa generasi ke empat (4GL - Fourth
Generation Language). Bahasa 4GL adalah suatu bahasa yang dibuat untuk
meningkatkan produktifitas programmer dan end user. Contoh :
INFORMIX - Dapat dijalankan pada PC dengan minimum RAM 4MB +
640KB dan disk storage > 40MB
ORACLE
INGRES
AS / SET - Digunakan pada IBM AS 400
POWER HOUSE - digunakan pada HR 3000
Perfective
Menyempurnakan software yang ada biasanya dilakukan karena permintaan /
saran / kritik user.
MODEL SOFTWARE ENGINEERING
Menurut Fritz Badar, software engineering adalah disiplin ilmu yang menerapkan prinsipprinsip engineering agar mendapatkan software yang ekonomis yang dapat dipercaya dan
bekerja lebih efisien pada mesin yang sebenarnya.
1. Metode Software Enginnering
Metode software engineering memberikan tehnik-tehnik bagaimana membentuk
software. Metode ini terdiri dari serangkaian tugas :
a. Perencanaan & estimasi proyek
b. Analisis kebutuhan sistem dan software
c. Desain struktur data
d. Arsitektur program dan prosedur algoritma

e. Coding
f. Testing dan pemeliharaan
2. Peralatan Software Engineering
Peralatan software engineering memberikan dukungan atau semiautomasi untuk
metode. Contohnya :
a. CASE (Case Aided Software Engineering), yaitu suatu software yang
menggabungkan software, hardware, dan database software engineering untuk
menghasilkan suatu lingkungan software engineering.
b. Database Software Engineering, adalah sebuah struktur data yang berisi informasi
penting tentang analisis, desain, kode dan testing.
c. Analogi dengan CASE pada hardware adalah : CAD (Computer Aided Design), CAM
(Computer Aided Manufacturing), CAE (Computer Aided Engineering)
3. Prosedur Software Engineering
yang memungkinkan manajer mengontrol proses pengembangan software dan
memberikan praktisi dasar yang baik untuk pembentukan software berkualitas
tinggi.yang Terdiri dari :
a. urut-urutan di mana metode tersebut diterapkan
b. dokumen
c. laporan-laporan
d. formulir-formulir yang diperlukan
e. mengontrol kualitas software
f. mengkoordinasi perubahan yang terjadi pada software
Dalam penguasaan atas model software engineering atau software engineering paradigm,
dikenal ada beberapa metode yang luas dipergunakan, yaitu :
1. Classic Life Cycle Pradigm - Model Water Fall - Model Siklus Hidup Klasik
a. System Engineering and Analysis
Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai
dengan cara menerapkan kebutuhan semua elemen sistem dan mengalokasikan
sebagian kebutuhan tersebut ke software Pandangan terhadap sistem adalah
penting, terutama pada saat software harus berhubungan dengan elemen
lain, seperti : Hardware, Software, Database
b. Analisis kebutuhan software
Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program
yang dibentuk software engineering, atau analis harus mengerti fungsi software yang
diinginkan, performance dan interface terhadap elemen lainnya. Hasil dari analisis ini
didokumentasikan dan direview / dibahas / ditinjau bersama-sama customer.
c. Design
Desain software sesungguhnya adalah proses multi step (proses yang terdiri dari
banyak langkah) yang memfokuskan pada 3 atribut program yang berbeda, yaitu :
Struktur data
Arsitektur software
Rincian prosedur
d. Coding
Desain harus diterjemahkan ke dalam bentuk yang dapat dibaca oleh mesin
e. Testing
Segera sesudah objek program dihasilkan, pengetesan program dimulai. Proses
testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan
atau statements sudah dites dan lingkungan external menjamin bahwa definisi input
akan menghasilkan output yang diinginkan.
f. Maintenance
Software yang sudah dikirim ke customer data berubah karena
Software mengalami error
Software harus diadaptasi untuk menyesuaikan dengan lingkungan external

Software yang lebih disempurnakan karena adanya permintaan dari customer.


Masalah yang dihadapi dari model siklus hidup klasik adalah :
a. Proyek yang sebenarnya jarang mengikuti aliran sequential yang ditawarkan model ini.
Iterasi (Pengulangan) selalu terjadi dan menimbulkan masalah pda aplikasi yang
dibentuk oleh model ini.
b. Seringkali pada awalnya customer sulit menentukan semua kebutuhan secara explisit
(jelas).
c. Customer harus sabar karena versi program yang jalan tidak akan tersedia sampai
proyek software selesai dalam waktu yang lama.
2. Prototype Paradigm

Prototype sebenarnya adalah suatu proses yang memungkinkan developer membuat


sebuah model software.
Ada 2 bentuk dari model ini, yaitu :
a. Paper Prototype
Menggambarkan interaksi manusia dan mesin dalam sebuah bentuk yang
memungkinkan user mengerti bagaimana interaksi itu terjadi.
b. Working Prototype
Adalah prototype yang mengimplementasikan beberapa bagian dari fungsi software
yang diinginkan seperti pada pendekatan pengembangan software. Model ini dimulai
dengan :
Pengumpulan kebutuhan developer dan customer
Menentukan semua tujuan software
Mengidentifikasi kebutuhan-kebutuhan yang diketahui
Hasil dari pengumpulan kebutuhan diteruskan pada Quick Design. Quick Design ini
memfokuskan pada representasi aspek-aspek software yang dapat dilihat oleh user,
misalnya format input dan output, selanjutanya dari desain cepat diteruskan pada
pembentukan prototype (langkah ke 3). Prototype ini dievaluasi oleh customer / user dan
digunakan untuk memperbaiki kebutuhan-kebutuhan software. Proses iterasi terjadi agar
prototype yang dihasilkan memenuhi kebutuhan customer, juga pada saat yang sama
developer mengerti lebih baik tentang apa yang harus dikerjakan.
Masalah yang dihadapi oleh prototyping paradigm ini adalah :
a. Customer hanya melihat pada apa yang dihasilkan oleh software, tidak peduli pada
hal-hal yang berhubungan dengan kualitas software dan pemeliharaan jangka
panjang.
b. Developer seringkali menyetujui apa yang diterangkan oleh customer agar prototype
dapat dihasilkan dengan cepat. Akibatnya timbul pemilihan sistem operasi / bahasa
pemrograman yang tidak tepat.

3. Fourth Generation Tehnique Paradigm - Model tehnik generasi ke 4 / 4GT


Istilah Fourth Generation Technique (4GT) meliputi seperangkat peralatan software yang
memungkinkan seorang developer software menerapkan beberapa karakteristik
software pada tingkat yang tinggi, yang kemudian menghasilkan source code dan object
code secara otomatis
Saat ini peralatan / tools 4GT adalah bahasa non prosedur untuk :
DataBase Query
Pembentukan laporan ( Report Generation )
Manipulasi data
Definisi dan interaksi layar (screen)
Pembentukan object dan source ( Object and source generation )
Kemampuan grafik yang tinggi, danKemampuan spreadsheet

Keterangan gambar :
Model 4GT untuk software engineering dimulai dengan rangkaian pengumpulan
kebutuhan. Idealnya, seorang customer menjelaskan kebutuhan-kebutuhan yang
selanjutnay diterjemahkan ke dalam prototype.
Untuk aplikasi kecil adalah mungkin bergerak langsung dari langkah pengumpulan
kebutuhan ke implementasi yang menggunakan bahasa non prosedur fourth
generation (generasi ke 4).
Implementasi yang menggunakan 4GL memungkinkan developer software
menjelaskan hasil yang diinginkan yang kemudian diterjemahkan ke dalam bentuk
source code dan object code secara otomatis.
Langkah yang terakhir adalah mengubah implementasi 4GT ke dalam sebuah
product.
Masalah yang dihadapi dalam model 4GT adalah adanya sebagian orang yang
beranggapan bahwa :
a. peralatan 4GT tidak semudah penggunaan bahasa pemrograman,
b. source code yang dihasilkan oleh peralatan ini tidak efisien,
c. pemeliharaan sistem software besar yang dikembangkan dengan 4GT masih
merupakan tanda tanya.
4. Model Kombinasi - Combining Paradigm

Model ini menggabungkan keuntungan-keuntungan dari beberapa model sebelumnya.


Seperti pada model sebelumnya, model kombinasi ini dimulai dengan langkah
pengumpulan kebutuhan Pendekatan yang dapat diambil adalah pendekatan siklus
hidup klasik (Analisis sistem dan analisis kebutuhan software)
Dari model yang disebut di atas dapat diambil suatu kesimpulan, bahwa proses
pengembangan software terdiri dari 3 fase, yaitu :
1. Fase Definisi
2. Fase Pengembangan (Development)
3. Fase Pemeliharaan (Maintenance)
Fase Definisi
Fase definisi memfokuskan pada What. Selama definisi ini, developer software
berusaha untuk :
a. Mengidentifikasi informasi apa yang dikerjakan proses
b. Fungsi dan performance apa yang diinginkan
c. Interface apa yang dibutuhkan
d. Hambatan desain apa yang ada, dan
e. Kriteria validasi apa yang dibutuhkan untuk menetapkan keberhasilan sistem.
Sistem Analis
Sistem analis menetapkan peranan dari setiap elemen dalam sistem berbasis
komputer, terutama mengalokasikan peranan software.
Sistem Software Planning
Dalam sistem ini, setelah lingkungan software dialokasikan, maka langkah dari
sistem software planning ini adalah :
Pengalokasian sumber / resource
Estimasi biaya
Penetapan tugas pekerjaan dan jadual.
Requirement Analysis
Penetapan lingkup untuk software memberikan petunjuk / arah. Namun definisi yang
lebih rinci dari informasi dan fungsi software diperlukan sebelum pekerjaan dimulai.
Fase Pengembangan
Fase pengembangan berfokus pada How. Selama pengembangan, developer
software berusaha menjelaskan :
Desain software ( Software Design )
Desain menterjemahkan kebutuhan-kebutuhan software ke dalam sekumpulan
representasi (grafik, tabel, diagram, atau bahasa yang menjelaskan struktur data,
arsitektur software dan prosedur algoritma).
Coding
Representasi desain harus diterjemahkan ke dalam bahasa tiruan / artificial language
yang menghasilkan perintah-perintah yang dapat dieksekusi oleh komputer.
Software Testing
Segera sesudah software diimplementasikan dalam bentuk yang dapat dieksekusi
oleh mesin, software perlu ditest untuk menemukan kesalahan ( merupakan fungsi
logika dan implementasi ).
Fase Pemeliharaan
Fase pemelihaaan berfokus pada Change atau perubahan. Ini dapat disebabkan :
a. Perubahan karena software error ( Corective Maintenance )
b. Perubahan karena software disesuaikan / diadaptasi dengan lingkungan external,
misalnya munculnya CPU baru, sistem operasi baru ( Adaptive Maintenance )
c. Perubahan software yang disebabkan customer / user meminta fungsi tambahan,
misalnya fungsi grafik, fungsi matematik, dan sebagainya ( Perfective Maintenance )

KONSEP MANAJEMEN PROYEK


SPEKTRUM MANAJEMEN
Manajemen proyek perangkat lunak yang efektif berfokus pada :
1. PEOPLE : Elemen terpenting dari suksesnya proyek
2. PRODUCT / PROBLEM : Software yang dikembangkan
3. PROCESS : Suatu kerangka kerja dari suatu aktifitas dan kumpulan tugas untuk
memgembangkan perangkat lunak
4. PROJECT (tambahan) : Penggabungan semua kerja untuk membuat produk menjadi
kenyataan
PEOPLE (MANUSIA)
SEI (Software Engineering Institute) telah mengembangkan suatu model kematangan
kemampuan manajemen manusia untuk mempertinggi kesiapan organisasi perangkat lunak
dalam membuat aplikasi yang semakin kompleks.
Model kematangan manajemen manusia membatasi pada :
Rekruitmen
Seleksi
Manajemen unjuk kerja
Pelatihan
Kompensasi
Pemgembangan karir
Desain kerja dan organisasi
Perkembangan karir tim / kultur
Manusia dalam pengembangan perangkat lunak terdiri dari :
1. Player (Pemain)
Manajer Senior : menentukan isu bisnis yang mempengaruhi dalam proyek
Manajer Proyek : merencanakan, memotivasi, mengorganisir, mengontrol aplikasi /
produk
Pelaksana : mempunyai ketrampilan teknik untuk merekayasa aplikasi
Pelanggan : menentukan jenis kebutuhan bagi perangkat lunak yang akan dibuat
Pemakai akhir yang berinteraksi dengan perangkat lunak yang dibuat
2. Team Leader (Pimpinan Tim)
Manajemen proyek merupakan kegiatan manusia intensif sehingga memerlukan praktisi
yang cakap.
Model Kepemimpinan (MOI yaitu Motivasi, Organisasi, gagasan dan Inovasi) menurut
Jerry Weinberg, karakteristik yang menentukan manajer proyek efektif yaitu
Pemecahan Masalah
Prestasi
Identitas manajerial
Pengaruh dan pembentukan tim
3. The Software Team ( Tim perangkat lunak)
Sumber daya manusia kepada sebuah proyek yang akan membutuhkan n manusia yang
bekerja selama k tahun
Mantei, mengusulkan 3 organisasi tim yaitu:
Demokrasi terdesentralisasi (DD)
Tidak memiliki pimpinan permanen dan koordinator dipilih untuk tugas pendek bila
tugas berbeda maka pimpinan berbeda. Keputusan diambil oleh konsensus
kelompok dan komunikasi secara horizontal
Terkontrol terdesentralisasi (CD)
Tim memiliki pimpinan tertentu dan memiliki pimpinan skunder untuk sub-sub
masalah.
Terkontrol tersentralisasi (CC)Pemecahan tingkat puncak dan internal tim oleh
pimpinan tim. Komunikasi dilakukan secara vertikal.

Ada 7 faktor proyek yang harus dipertimbangkan dalam rencanakan tim RPL yaitu :
1. Kesulitan pada masalah
2. Ukuran program yang dihasilkan (LOC / function)
3. Waktu tim (umur)
4. Tingkat dimana dapat dimodularitasi
5. Kualitas serta keandalan
6. Kepastian tanggal penyampaian
7. Tingkat sosiabilitas / komunikasi
Constantine, mengusulkan 4 paradigma organisasional bagi tim RPL :
1. Paradigma Tertutup
Membentuk hirarki otoritas tradisional ( mirip tim CC) tetapi kurang inovatif
2. Paradigma Random
Membentuk tim longgar dan tergantung pada inisiatif individual tim, untuk inovasi
sangat baik (unggul) bila unjuk kerja tim teratur.
3. Paradigma Terbuka
Membentuk tim dengan cara tertentu sehingga banyak kontrol, inovasi banyak.
Cocok untuk masalah yang kompleks tetapi tidak seefesien tim lainnya
4. Paradigma Sinkron
Mengorganisasikan tim untuk bekerja pada bagian-bagian kecil masalah dengan
komunikasi aktif pada tim
4. Coordination and Communication Issue (masalah koordinasi dan komunikasi)
Proyek perangkat lunak mengalami kesulitan dikarenakan :
Skala usaha pengembangan yang besar sehingga kesulitan dalam mengkoordinasi
anggota tim dan Kompleksitas yang semakin besar
Ketidakpastian mengakibatkan perubahan terus menurus pada proyek
Interoperabilitas merupakan ciri dari sistem dan menyesuaikan dengan batasan
sistem
Kraul dan Streeter menguji sekumpulan teknik koordinasi proyek yang dibagi atas :
Pendekatan impersonal, formal penyampaian dan dokumen RPL (memo, laporan dll)
Prosedure interpersonal, formal aktifitas jaminan kualitas yang diterapkan kepada
produk kerja RPL (status pengkajian , perancangan dan inpeksi kode)
Prosedure interpersonal, informal pertemuan kelompok untuk menyebarkan informasi
dan pemecahan masalah serta pengembangan staf
Komunikasi teknik, surat elektronis, web sites, teleconferens, papan buletin elektronik
Jaringan interpersonal diskusi informal pada orang diluar proyek untuk mendapatkan
pengalaman sehinnga mendukung kerja proyek
PROBLEM / PRODUCT
Ruang lingkup masalah dibatasi dengan :
Konteks
perangkat lunak yang dibangun memenuhi sistem, produk / konteks bisnis yang lebih
besar serta batasan yang menentukan hasilnya
Tujuan informasi
Objek pelanggan yang dihasilkan sbg output dr perangkat lunak yang dapat digunakan
sebagai input
Fungsi dan unjuk kerja
perangkat lunak digunakan untuk mentransformasikan input menjadi output
Dekomposisi Masalah / pembagian masalah diterapkan pada :
Fungsionalitas yang disampaikan
Proses yang dipakai

PROCESS
Proses perangkat lunak memberikan suatu kerangka kerja dimana rencana komprehensip
bagi pengembangan perangkat lunak yang dapat dibangun dengan :
Sejumlah kumpulan tugas yang berbeda, kemampuan penyampaian dan jaminan
kualitas
Aktifitas pelindung, jaminan kualitas perangkat lunak, manajemen konfigurasi perangkat
lunak dan pengukuran
Model PROSES :
1. Sekuensial Linier
Classic Life Cycle / model air terjun
2. Prototipe
Perencanaan kilat untuk konstruksi oleh prototype
3. Rapid Aplication Development (RAD)
Model sekunsial linier yang menekankan siklus pengembangan yang sangat pendek
dengan pendekatan konstruksi berbasis komponen
4. Inkremental (Pertambahan)
Menggabungkan elemen-elemen model sekunsial linier dengan filosopi prototype
iterative khusus untuk staffing
5. Spiral
Merangkai sifat iterative dari prototype dengan cara kontrol dan aspek sistematis dari
sekunsial linier
6. Rakitan Komponen
Paradigma orientrasi obyek menekankan kreasi kelas yang mengenkapsulasi data dan
algoritma yang dipakai untuk memanipulasi data (gabungan dengan karakter spiral)
7. Perkembangan Komponen
Sering dipakai untuk mengembangkan aplikasi client server Aktifitas dibagi menjadi :
dimensi sistem : desain, assembly dan pemakai
dimensi komponen : desain dan realisasi
8. Metode Formal
Mengkhususkan, mengembangkan, dan menverifikasi sistem berbasis komputer dengan
notasi matematis yang tepat (Clean room RPL)
9. Teknik Generasi Keempat
Serangkaian alat bantu perangkat lunak yang secara otomatis memunculkan kode
sumber yang berdasarkan pada spesifikasi perekayasaan
Serangkaian aktifitas kerja perangkat lunak :
1. Komunikasi pelanggan
2. Perencanaan
3. Analisa Resiko
4. Rekayasa
5. Konstruksi dan rilis
6. Evaluasi Pelanggan
Dekomposisi Proses
Bila batasan waktu yang ketat diberikan dan masalah dapat dipecah-pecah, model RAD
mungkin pilihan yang paling tepat. Tugas kerja yang actual bervariasi sehingga dekomposi
proses dimulai pada saat bagaimana menyesesaikan kerja proses secara umum.
PROYEK
proyek mengalami kesulitan yaitu :
1. Kemajuan mengalami kecacatan
2. Tidak ada cara untuk mengkalibrasi kemajuan karena tidak memperoleh matrik
kuantitatif
3. Rencana proyek belum dirancang untuk menakomodasi sumber daya yang diperlukan
pada akhir sebuah proyek

4. Resiko-resiko belum mempertimbangkan secara eksplisit serta belum dibuat rencana


untuk mengurangi, mengatur dan memonitor
5. Jadual yang ada tidak realistis dan cacat

COMPUTER SYSTEM ENGINEERING


Computer system engineering (Rekayasa Sistem Komputer) terdiri atas 2 bagian, yaitu :
1. Hardware engineering
2. Software engineering
Elemen-elemen dari sistem berbasis komputer adalah :
1. Software
Program komputer, struktur data dan dokumentasi yang saling berhubungan dan
memberikan efek pada metode, prosedur dan kontrol yang diinginkan.
2. Hardware
Peralatan elektronik, (misalnya CPU, memory) yang memberikan kemampuan
komputasi serta peralatan elektromedia (misalnya sensor, motor, pompa) yang
memberikan fungsi external.
3. People / Brainware
User dan operator dari hardware dan software
4. Database
Sekumpulan informasi yang besar, yang diorganisir agar dapat diakses oleh software
dan merupakan bagian integral dari fungsi sistem.
5. Prosedur
Langkah-langkah yang menetapkan pemakaian khusus untuk setiap elemen sistem.
Bagan Sistem Berbasis Komputer :

Computer system engineering adalah suatu aktifitas pemecahan masalah fungsi sistem
yang diinginkan, ditemukan, dianalisis, dan dialokasikan ke elemen-elemen sistem individu.
Computer System Engineering disebut juga Sistem Analis, dimulai dengan :
1. Penetapan tujuan customer
2. Hambatan-hambatan dan representasi fungsi performance yang dapat dialokasikan ke
masing-masing elemen sistem.
Berikut ini adalah kriteria pemilihan konfigurasi sistem berdasarkan alokasi fungsi dan
performance ke elemen sistem :
1. Project Consideration - Pertimbangan Proyek
2. Business Consideration - Pertimbangan Bisnis
3. Technical Consideration - Pertimbangan tehnik
4. Manufacturing Evaluation - Evaluasi Pabrikasi
5. Human Issues - Hal-hal yang berhubungan dengan manusia
6. Environmental Interface - Berhubungan dengan lingkungan
7. Legal Consideration - Pertimbangan hukum
PERTIMBANGAN HARDWARE

Computer System Engineering selalu mengalokasikan satu / lebih fungsi sistem ke hardware
komputer.
Elemen-elemen hardware
a. CPU - Central Processing Units
Adalah unit yang melakukan pekerjaan aritmatik, logika, dan fungsi pengontrol serta
berinteraksi dengan komponen lainnya.
b. BUS
Adalah alat komunikasi yang menghubungkan elemen satu dengan elemen lainnya
untuk pengiriman instruksi, data dan informasi pengontrolan.
c. Memory
Memory memberikan tempat penyimpanan instruksi dan data yang dapat diakses
langsung / tidak langsung melalui perintah yang dieksekusi oleh CPU dan koprosesornya.
Memory terbagi menjadi 2 bagian, yaitu :
1. Memori Primer / Primary Memory / Main Memory
Adalah memory yang terdapat di dalam komputer, terdiri atas 2 bagian yaitu :
a. RAM - Random Access Memory
Untuk menyimpan data / instruksi yang bersifat temporary
b. ROM - Read Only Memory / Firmware
Untuk menyimpan perintah dan / atau data yang permanen.
ROM terbagi atas 2 golongan, yaitu :
1. PROM - Programmabel Read Only Memory
Memory ROM yang dapat ditulis / diprogram dan dapat dihapus dengan cara :
EEPROM - Eraseble Electrical Programmabel ROM
Dihapus dengan kejutan listrik tertentu
UVPROM - Ultra Violet Programmabel ROM
Dihapus dengan sinar ultra violet
2. MASK ROM
ROM yang terjual sudah diprogram pada saat dibuat oleh pabriknya.
2. Memory Sekunder
Sifat yang menonjol dari memory jenis ini adalah :
a. Waktu akses lambat
b. Kapasitas besar sekali dibandingkan dengan memory primer
c. Waktu akses berkisar milidetik dengan kapasitas antara 400.000 sampai 1 billion
byte, contoh : Floppy disk, harddisk, hardcard, optical disk
APLIKASI HARDWARE
Dapat dikelompokan dalam 3 bagian besar, yaitu :
1. Pengelolahan informasi
2. Pengontrolan proses dan aplikasi real time
3. Tambahan intelegensi
REKAYASA HARDWARE
Untuk komputer digital yang dikembangkan dari perancangan elektronik, proses
perancangannya terdiri dari 3 tahap :
1. Perencanaan dan spesifikasi
2. Perencanaan dan implementasi prototype
3. Manufaktur distribusi dan pelayanan

Fase I terdiri dari :


1. Perencanaan pengembangan
2. Analisis hardware

Kebutuhan analisis dan konfigurasi hardware mulai dirancang, dilakukan tinjauan tehnis
demi mendapatkan spesifikasi rancangan yang benar. Komponen mulai dibuat dan
prototype mulai diralat. Prototype diuji untuk menjamin bahwa prototype telah memenuhi
semua persyaratan. Namun prototype sering menghadapi ketidakmiripan dengan prosedur
yang dibuat. Karena itu perlu adanya spesifikasi pabrikasi

Mulai dihasilkan prosedur-prosedur dengan penekanan pada kualitas produk. Dengan


mekanisme distribusi produk terhadap fase ini, juga dibentuk bagian perbaikan dan
maintenance
PERENCANAAN SISTEM
Tahap perencanaan dari siklus hidup software adalah suatu proses definisi, analis,
spesifikasi, estimasi dan review.

Definisi sistem merupakan langkah pertama dalam fase perencanaan.


Tujuan dari definisi sistem ini adalah :
1. Evaluasi konsep sistem : feasibility, cost benefit, dan businness needs

2. Jelaskan interface, function, dan performance sistem


3. Alokasi fungsi pada hardware, software dan elemen tambahan.
Tujuan dari perencanaan software adalah mengestimasi biaya dan waktu pengembangan.
Untuk mencapai ini, lingkup software harus dimengerti dengan sempurna, dan sumber harus
ditentukan dengan tepat.
Analisis kebutuhan software memperjelas :
1. Software interfaces
2. Atribut fungsional
3. Karakteristik performance
4. Kendala desain
5. Kriteria validasi

FEASIBILITY STUDI ( STUDI KELAYAKAN )


Semua proyek layak bila sumber dan waktunya tidak terbatas. Kenyataannya,
pengembangan sistem berbasis komputer dibatasi oleh sumber dan waktu.
Ada 4 bidang utama yang menjadi konsentrasi dari feasibility studi, yaitu :
1. Economic Feasibility :
Evaluasi biaya (cost) dan manfaat (benefit) dalam pengembangan sistem.
2. Tehcnical feasibility :
Studi tentang fungsi, performance, dan hambatan yang berpengaruh terhadap
kemampuan mendapatkan sistem yang baik.
3. Legal Feasibility :
Penentuan berbagai pelanggaran, kewajiban yang dapat terjadi dari pengembangan
sistem.
4. Alternative :
Evaluasi sebagai alternatif untuk mengembangkan sistem
ANALISIS COST BENEFIT
Menggambarkan biaya pengembangan proyek dan mempertimbangkan keuntungan sistem,
baik yang tangible maupun intangible (dapat diukur dan tidak dapat diukur). Analis cost
benefit ini tergantung dari karakteristik sistem yang akan dikembangkan, ukuran relatif
proyek (besar kecil proyek), dan ROI (Return On Invesment) yang diharapkan dari proyek.
Keuntungan dari sistem baru selalu dibandingkan dengan keuntungan dari sistem yang ada.
PERENCANAAN SOFTWARE
Untuk melaksanakan pengembangan proyek software dan berhasil, kita harus mengerti :
1. Ruang lingkup pekerjaan yang dilakukan
2. Sumber yang diinginkan
3. Usaha dan biaya
4. Jadual yang dikehendaki
Perencanaan software adalah langkah kedua dalam fase perencanaan, tetapi merupakan
langkah pertama dalam proses rekayasa software yang akan memberikan pengertian
kepada empat hal di atas.
Perencanaan software mengkombinasikan dua tugas, yaitu :
1. Riset
2. Estimasi
Tujuan perencanaan software :
Memberikan suatu kerangka yang memungkinkan manajer membuat estimasi yang
beralasan tentang sumber, biaya dan jadual.

PROSES DESAIN SOFTWARE


Desain dalam fase pengembangan merupakan langkah pertama, di mana fase
pengembangan merupakan fase kedua dalam siklus hidup software.
Segera sesudah kebutuhan software ditetapkan, dimulailah fase pengembangan yang terdiri
dari 4 langkah berbeda :
1. Desain awal (preliminary design)
2. Detailed Design (Desain primeir)
3. Coding
4. Testing
Aliran informasi selama fase pengembangan dapat dilihat pada gambar di bawah ini.

Kebutuhan software dan aliran informasi ( Structure Information Software ) memulai langkah
desain awal dengan menggunakan satu dari beberapa metode desain struktur software
untuk dikembangkan.
Struktur software yang juga disebut Arsitektur Software ini menjelaskan tentang hubungan
antar elemen utama dari sebuah program. Desain terinci menterjemahkan elemen-elemen
struktural ke dalam penjelasan software ( prosedur software ). Source Code dihasilkan dan
pengetesan awal dilakukan selama langkah pengkodean dan pengetesan unit hasilnya
berupa model-model program yang sudah ditest.
Langkah terakhir dalam fase pengembangan adalah dilakukannya pengetesan integrasi dan
validasi. Fase pengembangan paling sedikit menyerap 75% dari biaya software baru. Ini
berarti pengambilan keputusan dalam fase ini akan sangat mempengaruhi keberhasilan
dalam implementasi software dan kemudahan dalam pemeliharaan software.
DEFECT APPLICATION MODEL ( DAM )
DAM digunakan untuk memberikan gambaran tentang pembentukan dan pendeteksian error
selama desain awal dari Desain Terinci dan Pengkodean. Dengan model ini, kita dapat
membandingkan besarnya biaya yang dikeluarkan dengan adanya error, baik untuk review
maupun tanpa review.

LATIHAN
Soal-1
Diketahui :
5 software engineering masing-masing mampu menyelesaikan 4000 LOC per tahun bila
bekerja secara individu. Mereka bekerja sama dalam 1 team. Bila proyek 1 tahun tersebut
mengalami keterlambatan dan tinggal 1 bulan lagi, perlu tambahan 1 software engineering
lagi ke dalam team tersebut. Pengurangan produktivitas team untuk setiap jalur komunikasi
adalah sama ( 200 LOC per tahun ) untuk menunjuk adanya proses belajar bagi staff baru.

Ditanya :
Hitung produktivitas team sebelum dan sesudah penambahan seorang software engineering
!!
Jawab :
Jalur komunikasi 5 orang

ada 10 jalur

Produktivitas sebelum penambahan : = ( 5 x 4,000 ) - ( 10 x 200 )


= 20.000 2.000 = 18.000 LOC per tahun
Produktivitas setelah penambahan :
1. Jika jalur komunikasinya berbeda :

4000
200
*1) (10 * 200 5 *
*1)
12
12
20000 333,33 (2000 83,33)
20333,33 2083,33
18250 LOC/TAHUN
(5 * 4000) (1*

2. Jika jalur komunikasinya dianggap sama :

4000
*1) (10 * 200 5 * 200)
12
20000 333,33 (2000 1000)
20333,33 3000
17333,33 LOC/TAHUN
(5 * 4000) (1*

You might also like