Perangkat lunak
komputer (Software) adalah satu dari hanya beberapa teknologi kunci yang akan
berpengaruh penting pada hampir setiap aspek masyarakat modern selama tahun
1990-an. Software merupakan suatu mekanisme untuk mengotomatisasi bisnis,
industri, dan pemerintahan. Software sangat penting bagi hampir setiap aspek
bisnis. Tetapi, dalam banyak hal, software juga merupakan suatu teknologi yang
tersembunyi karena tanpa kita sadari dalam setiap kegiatan kita sering
menggunakan software misalnya dalam bebelanja di supermarket, menabung di bank,
melakukan hubungan telepon dan lainnya.
Karakteristik
Software antara lain :
Software bersifat
kompleks yaitu didalam pembuatan suatu software harus didukung oleh banyak hal
antara lain sistem kerja, hardware, dan lainnya. Software bersifat tidak sama
meskipun pada kasus yang sama software yang telah dibuat belum tentu cocok di
tempat lain. Misalnya pembuatan software supermarket, belum tentu satu
supermarket dengan supermarket yang lain sistemnya sama. Software bersifat
tidak dapat digunakan diluar dari tujuan yang telah ditetapkan. Software
seperti pabrik yang menghasilkan nilai-nilai tertentu dan sangat membantu
segala kegiatan manusia. Software dibangun dan dikembangkan, tidak dibuat dalam
bentuk yang klasik. Sebagian besar perangkat lunak dibuat secara custom-built,
serta tidak dapat dirakit dari komponen yang sudah ada. Software bersifat
pervasif, dan banyak orang di dalam posisi tanggung jawab, kurang atau tidak
memahami apa sebenarnya software itu, bagaimana dia dibangun, atau apa yang
dimaksudkannya dengan bagian yang dikontrol. Karena sifat pervasif pada
software tersebut maka software harus ditangani dengan hati-hati.
Perkembangan
Software
Software
Engineering adalah suatu disiplin ilmu yang membahas semua aspek produksi
perangkat lunak, mulai dari tahap awal requirement capturing (analisa kebutuhan
pengguna), specification (menentukan spesifikasi dari kebutuhan pengguna),
design, coding, testing sampai pemeliharaan sistem setelah digunakan.
Software
mengalami perkembangan yang pesat dan usang setelah periode tertentu, Software
memerlukan review secara berkala untuk mengetahui perubahan yang dinamis
terhadap kebutuhan pasar. Sejak pertama kali software diperkenalkan sekitar
tahun 60-an telah mengalami perkembangan yang cukup pesat, dan total berbeda
disemua spesifikasi seperti struktur program, arsitektur dan Line Of Code (LoC)
kini lebih pendek, mudah dan tampilan grafis yang menarik sehingga lebih
efisien dibandingkan dengan versi lamanya.
Secara
terminologi software engginering pertama kali di gunakan pada sebuah
international conference tentang software pada tahun 1968. Pada conference ini
dibahas tentang krisis software. Krisis software merupakan akibat dari lahirnya
komputer generasi ke 3 yang canggih. Dari hasil conference itu software yang
dihasilkan menjadi beberapa kali lebih besar dan kompleks. Seiring dengan itu
pendekatan informasi tidak cukup efektif dalam pengembangan software. Dengan
perkembangan hardware dan software yang begitu pesat sehingga mengakibatkan
biaya perangkat lunak naik lebih cepat dibandingkan dengan software.
Tren software
enginering saat ini mengarah pada biaya yang murah, platform bersifat
multiuser, dapat digunakan oleh umum, pengembangannya bersifat open source dan
cara aksesnya adalah online. Perubahan-perubahan yang akan mempengaruhi
software selama dekade selanjutnya akan dipengaruhi oleh beberapa hal yang
simultan yaitu :
1. Manusia yang melakukan pekerjaan
tersebut
2. Proses yang mereka aplikasikan
3. Sifat Informasi
4. Teknologi komputer yang mendasar
Semua kegiatan
yang telah dilakukan baik pengukuran, disiplin, dan fokus pada kualitas akan
menghasilkan perangkat lunak yang bisa dipelihara, perangkat lunak yang lebih
baik. Hal tersebut tidak pernah menjanjikan bahwa software yang kita hasilkan
tersebut adalah software yang paling manjur, karena selagi kita berjalan menuju
abad yang baru, maka perangkat lunak dan sistem teknik tetap menjadi tantangan
bagi setiap profesional perangkat lunak dan setiap perusahaan yang membangun
sistem berbasis komputer. Perusahaan harus berusaha lebih keras dalam menguasai
teknologi hanya untuk bertahan hidup karena perubahan teknologi informasi
menjadi begitu cepat dan tidak pernah bisa mengampuni, dan akibat dari
ketinggalan tersebut tidak dapat dikembalikan lagi.
Karakteristik
Software
Agar lebih
memahami tentang software engineering maka perlu juga kita meneliti tentang
karakteristik perangkat lunak yang membuat perangkat lunak berbeda dari hal-hal
yang dibangun oleh manusia. Perangkat lunak memiliki ciri-ciri yang berbeda
dari perangkat keras karena perangkat lunak lebih merupakan elemen logika.
Adapun karakteristiknya antara lain:
1.
Perangkat Lunak dibangun dan
dikembangkan, tidak dibuat dalam bentuk yang klasik
2.
Perangkat lunak tidak pernah usang
3.
Sebagian besar perangkat lunak dibuat
secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada.
Dibawah ini menunjukkan bahwa area
ilmu pengetahuan software engineering meliputi :
a.
Software Requirement
b.
Software Design
c.
Software Construction
d.
Software Testing
e.
Software Maintenance
f.
Software Engineering Management
g.
Software Engineering Process
h.
Software Engineering Tools and Method
i.
Software Quality
j.
Knowledge Areas of the Related
Diciplines
A.
SOFTWARE REQUIREMENTS
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada software requirements.
Pada Software requirements materi pokok yang dipelajari meliputi software
Requirements Fundamentals, Requirements Process, Requirements Elicitation,
Requirements Analysis, Requirements Specifications, Requirements Validation,
Requirements considerations.
B.
SOFTWARE DESIGN
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada software Design. Pada
Software Design materi pokok yang dipelajari meliputi software Design
Fundamentals, Key Issues in Software Design, Software Stucture and
Architecture, software Design Quality Analysis and Evaluations, software Design
Notation and software Design Strategic and methods.
C.
SOFTWARE CONSTRUCTION
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada Software Construction.
Pada Software Construction materi pokok yang dipelajari meliputi software
Construction Fundamentals, Managing Construction dan Practical Considerations.
D.
SOFTWARE TESTING
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada Software Testing. Pada
Software Testing materi pokok yang dipelajari meliputi software Testing
Fundamentals, Test Levels, Test Techniques, Test Related Measures dan test
Process.
E.
SOFTWARE MAINTENANCE
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada Software maintenance.
Pada Software Testing materi pokok yang dipelajari meliputi software
Maintenance Fundamentals, Key Issues in Software Maintenane, Maintenance
Process dan Techniques for Maintenance.
F.
SOFTWARE CONFIGURATIONS MANAGEMENT
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada Software Configurations
Management. Pada Software Configurations Management materi pokok yang
dipelajari meliputi Management Of The SCM Process, Software Configuration
Identification, Software Configuration Control, Software Configuration Status
Accounting, Software Configuration Auditing, Software Release Management and
Delivery.
G.
SOFTWARE ENGINEERING MANAGEMENT
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada Software Engineering
Management. Pada Software Engineering Management materi pokok yang dipelajari
meliputi Initiation dan Scope Definition, Software Project Planning, Software
Project Enactment, Reviem and Evaluation, Closure dan SW Engineering
Measurment.
H.
SOFTWARE ENGINEERING PROCESS
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada Software Engineering
Process. Pada Software Engineering Process materi pokok yang dipelajari
meliputi Process Implementation and Change, Process Definition, Process
Assessment, dan Process and Product Measurement.
I.
SOFTWARE ENGINEERING TOOLS AND METHOD
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada Software Engineering
Tools and Method. Pada Software Engineering Tools and Method materi pokok yang
dipelajari meliputi Software Engineering Tools dan Software Engineering
methods.
J.
SOFTWARE QUALITY
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada Software Quality. Pada
Software Quality materi pokok yang dipelajari meliputi Software Quality Fundamentals,
Software Quality Processes dan Practical Considerations.
K.
RELATED DICIPLINES OF SOFTWARE ENGINEERING
Knowledge area
ini berisi mengenai hal apa saja yang dipelajari pada Related Diciplines of
Software Engineering. Pada Related Diciplines of Software Engineering materi
pokok yang dipelajari meliputi Komputer Engineering, Komputer Science,
Management, Mathematics, Project management, Quality Management, Software
Ergonomics, dan System Engineering.
Berikut ini prinsip-prinsip yang bisa
kita jadikan acuan mengenai perbedaan software engineering dengan disiplin ilmu
lainnya dalam rangka pengembangan kurikulum software engineering :
1. Komputasi adalah suatu bidang ilmu
pendidikan yang luas yang dibatasi oleh disiplin ilmu komputasi. Sedangkan,
software engineering berkonsentrasi pada ilmu pengetahuan yang berhubungan
dengan rekayasa perangkat lunak. Sehingga akan tumpang tindih jika software
engineering hanya dijadikan suatu mata kuliah tertentu pada kurikulum komputer.
2.
Rekayasa perangkat lunak ada dasarnya
adalah suatu disiplin ilmu yang luas. Studi mahasiswa yang mempelajari software
engineering selama ini bersandar pada ilmu pengetahuan komputer yang bersifat
konseptual dan teoritis, sedangkan mahasiswa seringkali menggunakan konsep
disiplin ilmu seperti matematik, rekayasa, manajemen proyek dan beberapa
aplikasi. Semua perangkat lunak yang dikembangkan oleh mahasiswa seharusnya
dapat mengintegrasikan teori dan praktek sehingga diperlukan disiplin ilmu
software engineering yang lebih spesifik.
3. Evolusi yang cepat dan alami pada
sotware engineering memerlukan tinjauan ulang yang berkelanjuatan sesuai dengan
kurikulum. Asosiasi profesi seperti APTIKOM dan Alumni Sarjana Komputer
seharusnya memberikan tinjauan untuk rekomendasi kurikulum yang berlaku saat
ini pada perguruan tinggi di Indonesia.
4. Pengembangn suatu kurikulum software
engineering harus sensitive pada perubahan teknologi, praktek, aplikasi, dan
pengembangan baru serta pentingnya penyesuaian terhadap pengembangan teknologi.
Institusi bidang pendidikan harus mampu mengadopsi dan bereaksi terhadap
perubahan yang strategis dalam menghadapi perkembangan tekologi informasi yang
semakin maju
5.
Model kurikulum software engineering
harus mendukung identifikasi pengetahuan dan keterampilan yang pokok yang harus
dikuasai oleh lulusan sarjana software engineering.
6. Bimbingan pada perancangan kurikulum
software engineering harus didasarkan pada definisi software engineering
sebagai ilmu pengetahuan rekayasa sehingga standarnya harus bisa ditentukan
untuk semua sarjana yang akan lulus.
7. Tim perumus kurikulum software
engineering harus bekerja keras untuk menjadi disiplin ilmu lingkup
internasional. Fakta menunjukkan bahwa kebutuhan kurikulum suatu Negara berbeda
dengan Negara lainnya.
8. Pengembangan kurikulum software
engineering harus mengikut sertakan perwakilan dari dosen perangkat lunak,
industri, perdagangan, pemerintah, dan para professional.
9. Pengembangan software engineering
harus meliputi praktikum yang profesional sebagai suatu komponen yang integral
dalam kurikulum S1.
10. Pengembangan kurikulum software
engineering harus meliputi diskusi strategis dan taktis untuk implementasi di
perguruan tinggi dan masing-masing institusi berhak menentukan isi dari
kurikulumnya masing-masing.
Tidak ada komentar:
Posting Komentar