/*welcome in the n@rto's Blog*/

Sarana Berbagi Keilmuan dan Religi

17 December, 2009

ETIKA PROFESI SOFTWARE ENGINEERING


Setiap profesi harus memiliki sebuah kode etik (etika) yang digunakan untuk panduan dalam menjalankan aktivitas pekerjaan mereka agar sesuai dengan tujuan profesi yang sebenarnya dan hasilnya bisa berguna oleh orang lain serta tidak menimbulkan mudharat (kerugian) bagi orang sekitarnya.

Menurut Donald Gotterbarn Etika rekayasa perangkat lunak dapat didekati dari tiga arah.
Pertama, Menggambarkan aktivitas sofware engineer membuat pilihan praktis lain yang mempengaruhi orang dalam cara yang signifikan.
Kedua, Digunakan untuk menggambarkan kumpulan prinsip-prinsip,
pedoman, atau imperatif etis yang membimbing atau tindakan legislatif.
ketiga, Dapat digunakan
untuk nama sebuah disiplin ilmu yang mempelajari etika hubungan antara dua indra lain.



Ada berbagai nama yang terlibat dalam pengembangan Software, seperti analis sistem informasi, bagi mereka yang terlibat dalam pengembangan perangkat lunak profesional. Terlepas dari judul yang digunakan, fokus perangkat lunak kegiatan rekayasa terutama pada kecukupan teknis produk yang dikembangkan. Tetapi fakta bahwa kira-kira satu milyar orang tergantung pada sistem perangkat lunak untuk secara efektif melakukan
kehidupan sehari-hari mereka (Reed, 2000) telah menyebabkan banyak di komputer untuk memberikan lebih banyak perhatian pada nonteknis aspek dan bergulat dengan dampak etis keputusan sehari-hari mereka dan nilai-nilai yang tertanam di dalamnya.

Hubungan antara komputer dan etika dapat digambarkan sebagai terjadi ketika manusia membuat keputusan tentang komputer, dan mereka keputusan yang mempengaruhi kehidupan masyarakat. Nilai-nilai kemanusiaan yang terkait dengan keputusan teknis dengan cara ini.

Kegiatan Software Engineering Etika Profesional terjadi ketika suatu keputusan
dibuat oleh komputer profesional selama desain, pengembangan, konstruksi dan
pemeliharaan artefak komputasi mempengaruhi orang lain. Keputusan ini dapat dilakukan oleh individu, tim, manajemen, atau profesi. Keputusan rekayasa perangkat lunak bagaimana merancang pelepasan kantong udara akan mempengaruhi kehidupan orang lain.
Keputusan ini juga dipandu oleh keputusan etis tentang nilai-nilai kemanusiaan. Barry Boehm (1981) memulai bekerja pada rekayasa perangkat lunak ekonomi dengan sebuah anekdot tentang bagaimana Kegagalan untuk mempertimbangkan nilai-nilai manusia mempengaruhi pengembangan perangkat lunak untuk sekolah tinggi
sistem kehadiran. Karyanya pada proyek ini membuatnya melihat bahwa insinyur perangkat lunak
"... Kesempatan untuk membuat dampak positif yang signifikan pada masyarakat, hanya dengan menjadi
lebih sensitif terhadap manusia dalam jangka panjang hubungan implikasi dari pekerjaan kita dan menggabungkan
kepekaan ini ke dalam perangkat lunak kami desain dan produk. "(Boehm, 1981)

Software Engineering Prinsip Etis
Aktivitas etika terlibat dalam keputusan-keputusan teknis harus didasarkan pada pemahaman dampak dari keputusan tersebut. Seringkali keputusan dibuat sementara hanya melihat masalah teknis, tetapi keputusan itu dampak lain dalam cara-cara positif dan negatif. Baik keputusan rekayasa perangkat lunak memerlukan kesadaran dan pertimbangan yang cermat baik dari teknis dan dimensi etika keputusan teknis harus sadar dipandu oleh nilai-nilai. Tidak adanya kesadaran dari hubungan antara
teknologi dan nilai-nilai berarti bahwa nilai-nilai yang terkait dengan teknologi serampangan.

Profesi menggambarkan nilai-nilai ini dalam Kode Etik, Kode Etik dan Kode Practice. Kode-kode ini melayani berbagai fungsi yang terkait dengan suatu profesi termasuk menyediakan panduan bagi praktisi pilihan etis dan mendidik praktisi dan publik tentang standar etika profesi.

Kode etik adalah pernyataan tentang interaksi teknologi dan nilai-nilai. Mereka
juga dimaksudkan untuk memastikan bahwa interaksi ini tidak sembarangan. Beberapa kode, seperti Australian Computer Society Kode Etik membawa berat badan hukum untuk menjamin terstruktur interaksi, sementara kode-kode lain, seperti Rekayasa Perangkat Lunak Kode Etik dan Praktek profesional, bergantung pada tekanan normatif. Tujuan dari semua kode ini adalah untuk memastikan bahwa kegiatan berlatih profesional sebagai individu, tim, manajemen, atau organisasi profesional, memajukan dan melindungi nilai-nilai kemanusiaan daripada melakukan kerusakan mereka.

Tata-tertib Software Engineering Etika
Disiplin studi etika rekayasa perangkat lunak interaksi etika prinsip-prinsip dan teknologi untuk memeriksa cara-cara ini yang mempengaruhi interaksi ini masyarakat, para warga negara, dan produk rekayasa perangkat lunak. Sebagai sebuah disiplin, perangkat lunak menggambarkan etika enjiniring, memurnikan dan lebih mengeksplorasi hubungan antara prinsip dan praktek teknis berkembang.

Perkembangan Etika Software Engineering
Software engineering adalah profesi yang muncul, yang sadar diri dari pengaruhnya terhadap masyarakat dan kewajiban yang dihasilkan. Kenyataan bahwa komputasi memiliki dampak yang signifikan harian pada kehidupan milyaran orang telah menyebabkan banyak dalam komputasi untuk bergulat dengan etika mereka kewajiban. Pada 1990-an banyak organisasi telah ditinjau ulang kode perilaku mereka atau
kode etik dan direvisi mereka dengan cara yang lebih jelas menyatakan kewajiban etis untuk masyarakat luas. Sebagai contoh, Association for Computing Machinery (ACM), yang Australian Computer Society, British Computer Society (BCS), IEEE Computer
Society (IEEE-CS), dan Selandia Baru Computer Society memiliki semua halus Codes mereka Etik. Sebuah usaha berbasis luas untuk professional rekayasa perangkat lunak dimulai oleh IEEE Computer Society, dan kemudian bergabung oleh ACM (Gotterbarn a, 1996).
Awal tujuan organisasi ini adalah untuk:
1. Adopsi Standar Definisi
2. Define Diperlukan Body of Knowledge and Recommended Practices (dalam listrik
teknik, misalnya, teori elektromagnetik adalah bagian dari tubuh pengetahuan
sementara Listrik Nasional Keselamatan Kode adalah praktek yang disarankan.)
3. Menetapkan Standar Etika
4. Define Pendidikan Kurikulum untuk (a) mahasiswa, (b) lulus (MS), dan (c)
melanjutkan pendidikan (untuk pelatihan ulang dan migrasi). (Gotterbarn b, 1996)

Tujuan tersebut konsisten dengan tujuan profesi lain. Salah satu elemen kunci
dalam setiap profesi adalah pengakuan dari etika dan tanggung jawab moral kepada para klien, untuk masyarakat, dan profesi itu sendiri. Banyak profesi, seperti teknik dan obat, menyatakan tanggung jawab tersebut secara terbuka dalam kode etik dan kemudian membutuhkan pelatihan etika profesional dalam rangka untuk memasuki profesi. Sebagai contoh, IEEE-CS Sertifikasi sebagai Rekayasa Perangkat Lunak Profesional memerlukan kepatuhan pada Perangkat Lunak Engineering Kode Etik dan Profesional Practice.

Namun, minat ini etika tidak selalu merupakan unsur utama rekayasa perangkat lunak.
Rekayasa perangkat lunak telah ditetapkan dirinya sebagai "pembentukan dan penggunaan suara prinsip-prinsip rekayasa [metode] dalam rangka untuk memperoleh perangkat lunak secara ekonomis yang dapat diandalkan dan bekerja pada mesin yang nyata. "(Bauer, 1972) tidak secara eksplisit menunjukkan keberadaan
isu-isu etis. Standar IEEE 610,12 definisi juga memiliki kekosongan yang sama.
"Software Engineering:
(1) Permohonan yang sistematis, disiplin, pendekatan kuantitatif
pembangunan, operasi, dan pemeliharaan perangkat lunak, yaitu penerapan
rekayasa perangkat lunak.
(2) Studi pendekatan seperti pada (1). "

Sebagai disiplin matang menuju profesi dan dampak dari produk yang diperbesar, deskripsi dari disiplin mulai secara eksplisit menyebutkan tempat-tempat di mana isu-isu etis mungkin muncul. Ketika rekayasa perangkat lunak digambarkan sebagai suatu disiplin yang "memerlukan pemahaman dan penerapan prinsip-prinsip teknik, keterampilan desain, manajemen yang baik praktek, ilmu komputer, dan matematika formalisme. (BCS, 1989) ", beberapa daerah keprihatinan etis seperti praktek manajemen yang baik mulai muncul. Awal ini deskripsi tidak memberikan keunggulan untuk isu-isu etis. Definisi Bauer tidak menyebut kepuasan dari kebutuhan klien atau memenuhi standar profesi, namun ini adalah tersirat dalam istilah-istilah seperti "diandalkan", "ekonomis" dan "bekerja". The BCS definisi lengkap
tidak termasuk beberapa referensi insinyur perangkat lunak tanggung jawab kepada profesi.

Sebagai dampak dari rekayasa perangkat lunak telah diperluas sehingga memiliki pengakuan atas tanggung jawab dari insinyur perangkat lunak.

Tanggung jawab ini dirumuskan dalam Rekayasa Perangkat Lunak Kode Etik dan
Perilaku Profesional (SECODE 1999) adalah diringkas sebagai:
Sofware Engineer akan berkomitmen untuk membuat analisis, spesifikasi, desain, pengembangan, pengujian dan pemeliharaan perangkat lunak yang menguntungkan dan
dihormati profesi. Sesuai dengan komitmen mereka terhadap kesehatan, keselamatan
dan kesejahteraan masyarakat, perangkat lunak insinyur harus mematuhi Delapanberikut
Prinsip:
1 PUBLIC - Software insinyur harus bertindak secara konsisten dengan kepentingan publik.
2 KLIEN DAN MAJIKAN - Software insinyur harus bertindak dengan cara yang ada di
kepentingan terbaik klien atau majikan mereka dan yang konsisten dengan publik
bunga.
3 PRODUK - Software insinyur harus memastikan bahwa produk mereka dan yang terkait
modifikasi memenuhi standar profesional tertinggi mungkin.
4 JUDGMENT - Software insinyur harus menjaga integritas dan kemandirian dalam
penilaian profesional mereka.
5 MANAJEMEN - Software engineering manajer dan pemimpin harus berlangganan ke
dan mempromosikan pendekatan etis dengan pengelolaan dan pengembangan perangkat lunak
pemeliharaan.
6 PROFESI - Software insinyur memajukan integritas dan reputasi
profesi konsisten dengan kepentingan publik.
7 KOLEGA - Software engineer harus bersikap adil dan mendukung mereka
rekan.
8 DIRI - Software insinyur akan berpartisipasi dalam mengenai belajar sepanjang hayat
praktek profesi mereka dan mempromosikan pendekatan etis praktek
profesi.

Seperangkat prinsip ini, dikembangkan dan direview oleh insinyur perangkat lunak dari setiap benua insinyur perangkat lunak mengungkapkan komitmen untuk tingkat perawatan profesional. Itu profesionalisasi dari setiap disiplin melibatkan kesadaran bahwa menjadi seorang profesional melibatkan lebih dari yang kaku penerapan teknologi terbaru ke artefak bahwa disiplin (Ford, 1996). Praktek kedokteran adalah lebih daripada aplikasi obat ke tubuh manusia. Dokter prihatin dengan kesejahteraan pasien mereka. Itu arsitek profesional tidak hanya menerapkan prinsip-prinsip struktural stres saat merancang sebuah bangunan namun berkaitan dengan efek desain pada orang-orang yang akan menggunakan gedung.
Dalam profesionalisasi disiplin ada adalah:
1) realisasi dari
dampak pada masyarakat dari penerapan keterampilan khusus,
2) pengetahuan oleh praktisi
dari standar profesi dan,
3) realisasi dari tanggung jawab yang datang dengan
hak istimewa untuk menjadi diperbolehkan untuk menerapkan keterampilan-keterampilan.

Semacam ini realisasi dalam rekayasa perangkat lunak terlihat dalam definisi yang ditawarkan oleh Software Engineering Institute. Ini mendefinisikan software engineering sebagai "bentuk rekayasa yang menerapkan prinsip-prinsip ilmu komputer dan matematika untuk mencapai costeffective solusi untuk masalah software (Ford, 1990). "Tetapi rekayasa perangkat lunak, sebagai subset dari rekayasa, adalah menciptakan dan membangun "biaya-efektif solusi praktis masalah dalam pelayanan umat manusia "(Ford, 1990). Ford terus menunjukkan secara eksplisit bahwa
biaya efektif tidak berarti membuat sesuatu yang berkualitas marjinal untuk meminimalkan waktu dan sumber daya, lebih tepatnya, "biaya-efektif ... berarti mendapatkan nilai yang baik bagi sumber daya yang diinvestasikan;
nilai ini termasuk kualitas (Ford, 1990).

SOFTWARE ENGINEERING ETIKA
Rekayasa perangkat lunak telah digambarkan sebagai "penerapan disiplin rekayasa,
ilmiah, dan prinsip-prinsip matematika, metode, dan alat untuk produksi ekonomis
perangkat lunak berkualitas ". (Humphrey, 1989). Sebagai insinyur perangkat lunak menerapkan prinsip-prinsip ini, nilai-nilai kemanusiaan menjadi terkait dengan keputusan teknis. Etika rekayasa perangkat lunak mempelajari interaksi nilai-nilai kemanusiaan dan keputusan teknis yang melibatkan komputasi. Software engineering sebagai teknik-seperti disiplin memiliki hubungan langsung dengan etika.

Software engineering adalah ilmu terapan. Setiap produk dari rekayasa perangkat lunak melibatkan orang dan begitu pada setiap tahap pengembangan produk para pengguna menengah dan produk akhir harus diingat. Lunak insinyur mempunyai kewajiban kepada pengguna produk mereka, yang tidak hanya mencakup sistem diimplementasikan, tetapi juga mencakup produk lain seperti persyaratan, rencana manajemen proyek perangkat lunak, spesifikasi, desain, dokumentasi, test suite, program, user manual, dan materi pelatihan.

Dalam mengembangkan artefak rekayasa perangkat lunak ini, setiap keputusan adalah kompromi yang dipengaruhi oleh kendala-kendala tersebut sebagai anggaran yang tersedia, kebutuhan klien, tersedia perangkat lunak, keandalan persyaratan, pertimbangan lingkungan, efek sosial, dan bahkan politik realitas. Semua ini membuat pekerjaan dari insinyur perangkat lunak profesional lebih sulit dan memerlukan penilaian lebih subyektif. Tetapi ada beberapa panduan untuk membuat ini
penilaian.

Dalam beberapa situasi mungkin standar dalam ketegangan dengan satu sama lain atau dengan standar dari sumber lain. Situasi ini memerlukan perangkat lunak insinyur untuk menggunakan etika penilaian untuk bertindak dengan cara yang paling konsisten dengan semangat dari Kode Etika dan Profesional Practice, mengingat keadaan.
Ketegangan etis terbaik dapat ditangani oleh pertimbangan pemikiran fundamental
prinsip, daripada buta ketergantungan pada peraturan rinci. Prinsip ini seharusnya mempengaruhi insinyur perangkat lunak untuk mempertimbangkan secara luas yang terpengaruh oleh mereka pekerjaan; untuk memeriksa jika mereka dan rekan-rekan mereka memperlakukan manusia lain dengan rasa hormat; untuk mempertimbangkan bagaimana publik, jika informasi yang cukup baik, akan memandang keputusan mereka; untuk menganalisis bagaimana paling tidak diberdayakan akan terpengaruh oleh mereka
keputusan; dan untuk mempertimbangkan apakah tindakan mereka akan dinilai layak ideal profesional yang bekerja sebagai insinyur perangkat lunak. Dalam penilaian semua perhatian kesehatan, keselamatan dan kesejahteraan masyarakat adalah utama, yaitu yang "Kepentingan Umum" adalah pusat Kode ini. (Kode SE, 1999)

Referensi
Donald Gotterbarn,Software Engineering Ethics Research Institute,Article on Software Engineering Ethics for the Encyclopedia of Software Engineering



Labels:

05 May, 2009

Object Oriented Programing Concept
(Java Programming Language)


Dalam pemrograman berbasis object (OOP) ada berbagai konsep yang perlu kita pahami dan pelajari, salah satu nya adalah Inheritance (pewarisan)

Di lihat dari bahasanya saja mungkin kita sudah bisa membayangkan seperti apa konsep Inheritance atau pewarisan ini, Di dalam pemrograman Java inheritance merupakan suatu konsep dimana suatu class bisa mewarisi dan diwarisi oleh class yang lain dengan keyword extends. Apa yang di wariskan ? yang di wariskan oleh class induk adalah state dan behaviournya (perilaku) kepada subclass atau class anak, dengan kata lain subclass memiliki semua state dan behaviour dari class induk tetapi tidak berlaku kebalikannya. Karena sub class bisa menambahkan state dan behaviour sendiri.


Agar tidak terlalu susah membayangkan saya berikan contoh coding program sederhana dengan Java Language
Buat sebuah class dengan nama “mesincuci.java” sebagai classinduk,
Class mesincuci ini mempunyai behaviour yaitu bisa mencuci pakaian dan membilas pakaian dengan listing sbb:

public class mesincuci {
void mencuci(){
System.out.println("Mencuci Pakaian");
}
void membilas(){
System.out.println("Membilas Pakaian");
}
}


Kemudian Buat satu Class lagi dengan nama “mesincucilengkap.java” yang merupakan subclass (class anak) dari “mesincuci.java” dengan keyword extends
Listing programnya sbb:

public class mesincucilengkap extends mesincuci{
void mengeringkan(){
System.out.println("Mengeringkan Pakaian");
}
}


Di dalam class mesincucilengkap.java ini otomatis sudah ada dua behaviuor dari class induk (mesincuci.java) ditambahkan satu behaviour lagi yaitu mengeringkan pakaian.

Sekarang kita lihat hasilnya dengan membuat satu class lagi dengan nama “mesincucilengkapaktif.java”

public class mesincucilengkapaktif {
public static void main(String[]args){
mesincucilengkap lengkaplagi=new mesincucilengkap();
lengkaplagi.mencuci();
lengkaplagi.membilas();
lengkaplagi.mengeringkan();
}
}


Ok, itulah contoh sederhana dari Concept Inheritance pada OOP semoga bisa menambah ilmu

Labels: