Introduction Software Engineering



Introduction


Apa itu software ?
Software adalah sekumpulan objek yang meliputi pengeksekusian program, konten yang disajikan, dokumen, data dan dirancang atau dibangun oleh software engineer . Software engineer mempunyai kewajiban moral untuk membangun software yang dapat diandalkan dan mampu membantu menyelesaikan permasalahan orang lain serta tidak merugikan orang lain .

Untuk siapa software di ciptakan ?
Software dapat digunakan oleh siapapun dalam masyarakat . Pengguna perangkat lunak hanya perlu fokus akan produk software yang mereka gunakan  dalam suatu penyelesaian masalah secara langsung ataupun tidak langsung .

Kenapa software begitu penting ?
why is it important ? Software sangat penting karena mempengaruhi hampir pada setiap aspek kehidupan kita dan telah menjadikan itu sebagai kegiatan sehari-hari sehingga tidak dapat lepas dalam kebutuhan software .

Software Problem
 

Permasalahan yang terjadi diantaranya yaitu :
  • Presentase 3% adalah software digunakan oleh pengguna nya setelah di perbaiki . jadi sebelumnya terjadi kesalahan atau error sehingga di perbaiki untuk kenyamanan si pengguna . Pengguna juga tidak menginginkan seandainya terdapat kesalahan sehingga di perbaiki lagi software tersebut .
  • Presentase 29,7% dimana software sudah di terbayarkan semua biaya nya tetapi ti dak pernah tersampaikan kepada pihak yang meminta nya sehingga akan merugikan .
  • Presentase 47% kebalikannya dari point di atas yaitu software sudah disampaikan tetapi ti dak pernah digunakan .
  • Presentase 2% untuk software yang disampaikan dan digunakan .
  • Presentase 19% merupakan software yang sudah digunakan tetapi di kritik oleh pihak - pihak tertentu
Software Application Type

Terdapat  beberapa tipe pada software applikasi :
  1. System Software .
  2. Application Software .
  3. Embedded Software .
  4. Engineering / Scientific Software .
  5. Product Software .
  6. Web Application Software .
  7. Artificial Intelligence Software
Jenis kompetisi perangkat lunak yang tergolong baru diantaranya :
  1. Ubiquitous Computing .
  2. Netsourcing .
  3. Open Source .
  4. New Economy .
Legacy Software 
Sekitar ratusan ribu program komputer yang tergabung kedalam salah satu 7 domain aplikasi yang luas sistem perangkat lunak, perangkat lunak aplikasi,  rekayasa perangkat lunak ilmiah, perangkat lunak tertanam, produk perangkat lunak aplikasi web dan semua aplikasi. beberapa diantaranya keadaan perangkat lunak seni tertuju pada individu, industry dan pemerintah . namun program lain yang lebih tua, dalam kasus ini lebih lebih tua sekali . program2 yang lebih tua sering di sebut perangkat lunak warisan .

Kualitas dari Legacy Software 
Sistem warisan terkadang memiliki desain yang inextensible, kode convulated, dokumen tari yang buruk atau tidak ada kasus ujian dan hasil yang pernah di arsipkan, perubahan tidak di kelola secara history, daftar dapat bertambah lebih panjang .  dengan berjalannya waktu sistem warisan sering envolve untuk 1 atau lebih dari alasan berikut :
  1. Perangkat lunak harus disesuaikan untuk memenuhi kebutuhan lingkungan komputasi atau tehnologi baru .
  2. Software harus ditingkatkan ke persyaratan baru bisnis .
  3. Perangkat lunak harus diperluas untuk membuatnya interoperable dengan sistem yang lebih modern atau database .
Software Evolusi
Terlepas dari domain applikasi ukuran , atau kompleksitas, perangkat lunak komputer akan envolve dari waktu ke waktu . perubahan drive procass ini dapat terjadi saat kesalahan
telah dikoreksi, saat perangkat lunak disesuaikan dengan lingkungan baru, ketika fitur permintaan baru konsumen dan ketika permintaan yang direkayasa ulang .

 Software Engineering 
Jadi disini yang dimaksud dengan software engineering adalah tehnologi yang harus digunakan oleh setiap orang yang akan membangun software, tentunya dengan serangkaian proses dan menggunakan metode yang ada .
Bagaimana seharusnya software dijalankan ?
  1. Product :  Programs, document, data 
  2. Proses bagaimana software itu dibangun  : Manajemen proses yang terdiri dari project manajemen, konfigurasi manajemen, kualitas . tehnikal proses.
Proses Software Engineering


 People dalam Software Production :
  1. Customer / client: wants software built : Sering tidak mengetahui apa yang dia inginkan ..
  2. Managers / designs : Difficult to foresee all problems and issues in advance
  3. Developers : Write code to implement software . it is hard to write complex code for large systems .
  4. Testers: Perform quality assurance (QA) . It is impossible to test every combination of actions .
  5. Users : Purchase and use software product .
Apakah perbedaan Software Engineering dan Computer Science

# Computer science fokus pada teori dan dasar-dasar .
# Software engineering fokus pada praktek dan pembangunan dan pengiriman penggunaan software .

Teori Computer science masih belum cukup untuk menetapkan sebagai sebuah tiang fondasi untuk software engineering.

Apakah perbedaan  Software Engineering dan System Engineering

System engineering fokus pada semua aspek pembangunan sistem dasar komputer meliputi hardware, software and process engineering. Software engineering adalah bagian dari proses ini yang berfokus pada pembangunan prasarana perangkat lunak, kontrol, aplikasi dan database pada sistem. System engineers terlibat dalam spesifikasi sistem, perancangan arsitektur, integrasi dan penyebaran.            

- Biaya software engineering

Kira-kira 60% dari biaya adalah biaya pembangunan,  40% adalah biaya pengujian. Untuk  custom software, biaya pengembangan sering melebihi biaya pembangunan. Biaya sangat tergantung pada tipe software yang dibangunan dan kebutuhan atribut sistem seperti performance dan tingkat kepercayaan sistem.
Distribusi biaya tergantung pada model pembangunan yang digunakan .    

-  What are Software Engineering Methods ?
  •  Pendekatan terstruktur untuk membangun software yang melibatkan model sistem, notasi, aturan, saran perancangan dan petunjuk proses. 
  • Model descriptions : Descriptions of graphical models which should be produced;
  • Rules : Constraints applied to system models .
  •  Recommendations : Advice on good design practice .
  •  Process guidance : What activities to follow. -
 - Atribut Atribut yang baik dari Software :
  • The software akan mengirimkan kebutuhan fungsional dan performance pada user dan seharusnya dapat dirawat, dapat diandalkan dan dapat diterima .
  • Maintainability : Software harus disusun untuk memenuhi kebutuhan perubahan .
  • Dependability : Software harus dapat dipercaya .
  • Efficiency : Software seharusnya tidak melakukan  pemborosan sumberdaya sistem .
  • Acceptability : Software harus diterima oleh user seperti apa yang telah dirancang .

- Apa tantangan kunci yang dihadapi software engineering?

  •  Heterogeneity : Teknik pembangunan untuk membangun software yang dapat mengatasi platform yang tidak sejenis dan eksekusi lingkungan .
  • Delivery : Teknik pembangunan yang ditunjuk untuk mempercepat pengiriman software .
  • Trust : Teknik pembangunan yang ditunjukkan  bahwa software dapat dipercaya oleh penggunanya .




Categories: Share

1 komentar: