i. introduction to software engineeringdinus.ac.id/repository/docs/ajar/pti-08_rpl.pdfwhat is a...

20
1. What and Why 1. What and Why Sofware Engineering ? Sofware Engineering ? I. INTRODUCTION TO I. INTRODUCTION TO SOFTWARE SOFTWARE ENGINEERING ENGINEERING

Upload: nguyenxuyen

Post on 10-May-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

1. What and Why 1. What and Why

Sofware Engineering ?Sofware Engineering ?

I . INTRODUCTION TO I . INTRODUCTION TO SOFTWARE SOFTWARE

ENGINEERINGENGINEERING

Page 2: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

1.1 Software Engineering 1.1 Software Engineering ((Rekayasa Perangkat LunakRekayasa Perangkat Lunak) ) EkonomiEkonomi dari semua bangsa-bangsa maju dari semua bangsa-bangsa maju

tergantung pada perangkat lunaktergantung pada perangkat lunak Semakin banyak Semakin banyak sistem yang dikendalikansistem yang dikendalikan oleh oleh

perangkat lunakperangkat lunak Rekayasa Perangkat Lunak mempunyai Rekayasa Perangkat Lunak mempunyai kaitan kaitan

dengan teori, metode, dan perkakas (tools)dengan teori, metode, dan perkakas (tools) untuk untuk pengembangan perangkat lunak profesionalpengembangan perangkat lunak profesional

Rekayasa Perangkat Lunak sudah menjadi bagian Rekayasa Perangkat Lunak sudah menjadi bagian yang penting untuk menghadirkan yang penting untuk menghadirkan pendapatan pendapatan nasional pada semua negara majunasional pada semua negara maju

Page 3: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

1.2 Software Costs 1.2 Software Costs ((Biaya-Biaya Perangkat LunakBiaya-Biaya Perangkat Lunak))

Biaya-biaya perangkat lunak sering Biaya-biaya perangkat lunak sering mendominasi mendominasi biaya-biaya sistembiaya-biaya sistem. Biaya-biaya perangkat lunak . Biaya-biaya perangkat lunak pada suatu PC sering pada suatu PC sering lebih besarlebih besar dari harga dari harga perangkat keras.perangkat keras.

Biaya-biaya Biaya-biaya perawatan perangkat lunak lebih besarperawatan perangkat lunak lebih besar dibanding dengan pengembangan perangkat dibanding dengan pengembangan perangkat lunak, karena sistem dengan masa pakai lama, lunak, karena sistem dengan masa pakai lama, biaya pemeliharaan mungkin beberapa kali biaya-biaya pemeliharaan mungkin beberapa kali biaya-biaya pengembangan.biaya pengembangan.

Rekayasa Perangkat Lunak mempunyai kaitan Rekayasa Perangkat Lunak mempunyai kaitan dengan biaya-biaya pengembangan perangkat dengan biaya-biaya pengembangan perangkat lunak yang lunak yang ekonomisekonomis..

Page 4: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

1.3 FAQs about Software 1.3 FAQs about Software Engineering Engineering (Pertanyaan-pertanyaan (Pertanyaan-pertanyaan Seputar SE)Seputar SE) Apakah Apakah softwaresoftware itu? itu? Apakah Apakah software engineeringsoftware engineering itu?itu? Apa perbedaan antara Apa perbedaan antara

software engineeringsoftware engineering dan dan computer sciencecomputer science??

Apa perbedaan antara Apa perbedaan antara software engineeringsoftware engineering dan dan system engineeringsystem engineering??

Apakah Apakah software processsoftware process itu?itu? Apakah Apakah software process modelsoftware process model itu?itu?

Page 5: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

FAQs about Software Engineering FAQs about Software Engineering (Lanjutan)(Lanjutan)

Apa saja yang merupakan Apa saja yang merupakan biaya-biaya rekayasa perangkat lunak biaya-biaya rekayasa perangkat lunak itu?itu?

Apa saja Apa saja metode rekayasa perangkat lunak metode rekayasa perangkat lunak itu?itu? Apakah Apakah CASECASE (Computer-Aided Software (Computer-Aided Software

Engineering) itu?Engineering) itu? Apa saja Apa saja atribut dari perangkat lunak atribut dari perangkat lunak yang baik?yang baik? Apakah yang merupakan Apakah yang merupakan tantangan kunci tantangan kunci dalam dalam

menghadapi rekayasa perangkat lunak?menghadapi rekayasa perangkat lunak?

Page 6: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What is software? What is software?

perintahperintah (program komputer) yang bila dieksekusi (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang memberikan fungsi dan unjuk kerja seperti yang diinginkan;diinginkan;

struktur datastruktur data yang memungkinkan program yang memungkinkan program memanipulasi informasi secara proporsional; danmemanipulasi informasi secara proporsional; dan

dokumendokumen yang menggambarkan operasi dan yang menggambarkan operasi dan kegunaan program.kegunaan program.

Produk Perangkat lunak mungkin :Produk Perangkat lunak mungkin :– GenericGeneric ( (UmumUmum) - yang dikembangkan untuk dijual ke ) - yang dikembangkan untuk dijual ke

bidang pelanggan berbeda;bidang pelanggan berbeda;– Bespoke/CustomBespoke/Custom ( (PesananPesanan) - dikembangkan untuk ) - dikembangkan untuk

pelanggan tunggal menurut spesifikasi mereka.pelanggan tunggal menurut spesifikasi mereka.

Page 7: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What is software engineering?What is software engineering?

Software engineeringSoftware engineering adalah suatu disiplin adalah suatu disiplin rekayasa (rancang-bangun) yang terkait rekayasa (rancang-bangun) yang terkait dengan semua dengan semua aspek produksiaspek produksi perangkat perangkat lunak.lunak.

Engineer perangkat lunak mengadopsi Engineer perangkat lunak mengadopsi pendekatan pendekatan sistematissistematis dan dan terorganisirterorganisir untuk untuk pekerjaan mereka dan menggunakan pekerjaan mereka dan menggunakan teknik teknik dan toolsdan tools yang disesuaikan dengan masalah yang disesuaikan dengan masalah yang dihadapi untuk dipecahkan, batasan yang dihadapi untuk dipecahkan, batasan pengembangan, dan sumber daya tersedia.pengembangan, dan sumber daya tersedia.

Page 8: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

IEEE DefinitionIEEE Definition(IEEE = Institute of Electrical and Electronic Engineers)(IEEE = Institute of Electrical and Electronic Engineers)

Software engineering adalah:Software engineering adalah:2.2. AplikasiAplikasi dari sebuah pendekatan yang dari sebuah pendekatan yang

bersifat kuantifiabel, disiplin, dan bersifat kuantifiabel, disiplin, dan sistematis bagi pengembangan, operasi, sistematis bagi pengembangan, operasi, dan pemeliharaan perangkat lunak.dan pemeliharaan perangkat lunak.

3.3. StudiStudi tentang pendekatan-pendekatan tentang pendekatan-pendekatan seperti pada (seperti pada (11))

Bidang Penelitian Software EngineeringBidang Penelitian Software Engineering mengacu pada kedua hal tsb.mengacu pada kedua hal tsb.

Page 9: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What is the difference between What is the difference between software software engineeringengineering and and computer sciencecomputer science??

Computer scienceComputer science mempunyai kaitan dengan mempunyai kaitan dengan

theory and fundamentalstheory and fundamentals; ; software engineeringsoftware engineering

mempunyai kaitan dengan mempunyai kaitan dengan practicalitiespracticalities of of developing and delivering useful softwaredeveloping and delivering useful software. .

Computer scienceComputer science sekarang ini tidak cukup sekarang ini tidak cukup

lengkap untuk bertindak sebagai tiang lengkap untuk bertindak sebagai tiang

penyokong penyokong software engineeringsoftware engineering..

Page 10: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What is the difference between What is the difference between software software engineering engineering andand system engineering system engineering??

System engineeringSystem engineering mempunyai kaitan dengan mempunyai kaitan dengan semua aspek pengembangan sistem berbasis-semua aspek pengembangan sistem berbasis-komputerkomputer yang mencakup perangkat keras, yang mencakup perangkat keras, perangkat lunak ,dan yang terkait dengan proses perangkat lunak ,dan yang terkait dengan proses bisnis. bisnis.

Software engineeringSoftware engineering berkonsentrasi pada komponen berkonsentrasi pada komponen perangkat lunakperangkat lunak sistem yang lebih besar. sistem yang lebih besar.

System engineersSystem engineers mencakup spesifikasi sistem, mencakup spesifikasi sistem, desain arsitektur, pengintegrasian, dan desain arsitektur, pengintegrasian, dan penyebaran.penyebaran.

Page 11: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What is a software process?What is a software process?

Software processSoftware process merupakan himpunan merupakan himpunan aktivitas aktivitas tujuan pengembangan atau evolusitujuan pengembangan atau evolusi perangkat perangkat lunak.lunak.

Aktivitas umum dalam semua proses perangkat Aktivitas umum dalam semua proses perangkat lunak adalah:lunak adalah:– SpecificationSpecification (Spesifikasi)- hal-hal yang diperlukan oleh (Spesifikasi)- hal-hal yang diperlukan oleh

sistem dan batasan pengembangannya.sistem dan batasan pengembangannya.– DevelopmentDevelopment (Pengembangan)- produksi sistem perangkat (Pengembangan)- produksi sistem perangkat

lunak.lunak.– ValidationValidation (Pengesahan) - pemeriksaan perangkat lunak (Pengesahan) - pemeriksaan perangkat lunak

sesuai dengan keinginan pelanggan.sesuai dengan keinginan pelanggan.– EvolutionEvolution (Evolusi) - pengubahan perangkat lunak sesuai (Evolusi) - pengubahan perangkat lunak sesuai

dengan permintaan pelanggan.dengan permintaan pelanggan.

Page 12: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What is What is a software process model?a software process model? Software process model merupakan Software process model merupakan representasirepresentasi

sederhana suatu sederhana suatu software processsoftware process, yang , yang diperkenalkan dari suatu perspektif spesifik.diperkenalkan dari suatu perspektif spesifik.

Contoh perspektif proses adalahContoh perspektif proses adalah– Workflow Perspektif -Workflow Perspektif - Urutan aktivitas Urutan aktivitas– Data-Flow PerspektifData-Flow Perspektif - Arus Informasi - Arus Informasi– Role/Action Perspektif –Role/Action Perspektif – Peran dan Aksi Peran dan Aksi

Proses umum modelProses umum model– WaterfallWaterfall– Evolutionary developmentEvolutionary development– Formal transformationFormal transformation– Integration from reusable componentsIntegration from reusable components

Page 13: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What are the costs of software What are the costs of software engineering?engineering?

Perkiraan kasar adalah 60% untuk biaya pengembangan, sedangkan 40% untuk biaya pengujian. Untuk custom sofware, biaya-biaya evolusi sering melebihi biaya-biaya pengembangan.

Biaya-biaya berubah-ubah tergantung pada jenis sistem yang dikembangkan dan kebutuhan atribut sistem seperti kehandalan dan reliabilitas sistem.

Distribusi biaya-biaya tergantung pada model pengembangan yang digunakan.

Page 14: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What are software What are software engineering methods?engineering methods?Software engineering methodsSoftware engineering methods merupakan merupakan

pendekatan terstrukturpendekatan terstruktur dalam pengembangan dalam pengembangan perangkat lunak yang meliputi model sistem, notasi, perangkat lunak yang meliputi model sistem, notasi, aturan, desain aturan, desain advice,advice, dan panduan proses. dan panduan proses.

Model Descriptions Model Descriptions (Uraian Model)(Uraian Model)Uraian tentang model grafis yang harus diproduksi.Uraian tentang model grafis yang harus diproduksi.

Rules Rules (Aturan-aturan)(Aturan-aturan)Batasan yang berlaku pada model sistem.Batasan yang berlaku pada model sistem.

RecommendationsRecommendations (Rekomendasi) (Rekomendasi)Rekomendasi untuk praktik desain yang baik. Rekomendasi untuk praktik desain yang baik.

Process guidanceProcess guidance (Panduan Proses) (Panduan Proses)Aktivitas yang mengikuti.Aktivitas yang mengikuti.

Page 15: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What is CASE What is CASE (Computer-(Computer-Aided Software Engineering)Aided Software Engineering)?? CASE CASE adalah adalah System softwareSystem software yang digunakan untuk yang digunakan untuk

mendukung otomatisasi aktivitas prosesmendukung otomatisasi aktivitas proses perangkat lunak. perangkat lunak.

CASE sering digunakan untuk CASE sering digunakan untuk mendukung metodemendukung metode..

Upper-CaseUpper-Case

Tools untuk mendukung aktivitas proses Tools untuk mendukung aktivitas proses awal kebutuhan dan awal kebutuhan dan

desain.desain.

Lower-CaseLower-Case

Tools untuk mendukung aktivitas selanjutnya seperti Tools untuk mendukung aktivitas selanjutnya seperti

programmingprogramming, , debugging,debugging, dan dan testingtesting..

Page 16: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What are the attributes of What are the attributes of good software?good software?Software perlu memiliki fungsi kebutuhan dan kemampuan yang Software perlu memiliki fungsi kebutuhan dan kemampuan yang

diperlukan oleh pemakai dan harus diperlukan oleh pemakai dan harus maintainable, dependable , maintainable, dependable , efficient, efficient, dandan usable. usable.

MaintainabilityMaintainabilitySoftware harus dapat ditingkatkan dan diubah sesuai dengan Software harus dapat ditingkatkan dan diubah sesuai dengan kebutuhan.kebutuhan.

DependabilityDependabilitySoftware harus dapat dipercaya (trustworthy).Software harus dapat dipercaya (trustworthy).

EfficiencyEfficiencySoftware seharusnya tidak membuat penggunaan sumber Software seharusnya tidak membuat penggunaan sumber daya sistem menjadi boros.daya sistem menjadi boros.

UsabilityUsabilitySoftware harus dapat dipakai oleh para pemakai yang Software harus dapat dipakai oleh para pemakai yang direncanakan.direncanakan.

Page 17: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

What are the key challenges What are the key challenges facing software engineering?facing software engineering?

TantanganTantangan : mengatasi sistem warisan ( : mengatasi sistem warisan (legacy systemslegacy systems), ), meningkatnya heterogenitas (meningkatnya heterogenitas (HeterogenityHeterogenity) sistem, dan ) sistem, dan tuntutan permintaan percepatan penyerahan(tuntutan permintaan percepatan penyerahan(DeliveryDelivery)) sistem. sistem.

Legacy systemsLegacy systems

Sistem warisanSistem warisan (sistem lama) harus dirawat dan dibaharui. (sistem lama) harus dirawat dan dibaharui. HeterogenityHeterogenity

Sistem terdistribusikan dalam bentuk Sistem terdistribusikan dalam bentuk campuran antara campuran antara perangkat keras dan lunak.perangkat keras dan lunak.

DeliveryDelivery

Adanya peningkatan Adanya peningkatan tekanantekanan untuk penyerahan perangkat untuk penyerahan perangkat lunak lebih cepat.lunak lebih cepat.

Page 18: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

1.4 Professional and 1.4 Professional and Ethical ResponsibilityEthical Responsibility Software engineeringSoftware engineering melibatkan tanggung- melibatkan tanggung-

jawab jawab lebih luaslebih luas dibanding hanya aplikasi dibanding hanya aplikasi kecakapan kecakapan teknisteknis..

Software engineerSoftware engineer harus bertindak secara harus bertindak secara etis, bertanggung jawab, dan jujuretis, bertanggung jawab, dan jujur jika jika mereka diharapkan untuk terhormat sebagai mereka diharapkan untuk terhormat sebagai seorang profesional.seorang profesional.

Perilaku etis tidak hanya sekedar Perilaku etis tidak hanya sekedar menegakkan hukum saja tetapi harus lebih menegakkan hukum saja tetapi harus lebih dari itu (lih. hal. berikutnya).dari itu (lih. hal. berikutnya).

Page 19: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

Issues of professional Issues of professional responsibilityresponsibility ConfidentialityConfidentiality (Kerahasiaan) (Kerahasiaan)

EngineerEngineer seharusnya seharusnya menghormati kerahasiaanmenghormati kerahasiaan dari dari klien mereka tanpa tergantung dengan ya atau klien mereka tanpa tergantung dengan ya atau tidaknya suatu persetujuan kerahasiaan formal tidaknya suatu persetujuan kerahasiaan formal ditandatangani.ditandatangani.

CompetenceCompetence (Kemampuan) (Kemampuan)

EngineerEngineer mestinya tidak salah menggambarkan mestinya tidak salah menggambarkan tingkatan kemampuannya. Mereka mestinya tidak tingkatan kemampuannya. Mereka mestinya tidak dengan sadar menerima pekerjaan yang dengan sadar menerima pekerjaan yang di luar di luar kemampuannya.kemampuannya.

Page 20: I. INTRODUCTION TO SOFTWARE ENGINEERINGdinus.ac.id/repository/docs/ajar/PTI-08_RPL.pdfWhat is a software process? Software process merupakan himpunan aktivitas tujuan pengembangan

Issues of professional Issues of professional responsibility (lanjutan)responsibility (lanjutan)

Intellectual property rightsIntellectual property rights (Hak milik intelektual) (Hak milik intelektual)Engineers harus Engineers harus sadar akan hukum lokalsadar akan hukum lokal yang yang mengatur penggunaan dari properti intelektual mengatur penggunaan dari properti intelektual seperti hak paten, hak cipta, dll. Mereka harus seperti hak paten, hak cipta, dll. Mereka harus seksama untuk memastikan bahwa intelektual seksama untuk memastikan bahwa intelektual properti klien harus dilindungi.properti klien harus dilindungi.

Computer misuseComputer misuse (Penyalahgunaan Komputer) (Penyalahgunaan Komputer)Software engineers mestinya tidak menggunakan Software engineers mestinya tidak menggunakan kecakapan teknis mereka untuk kecakapan teknis mereka untuk menyalahgunakan menyalahgunakan komputer orang lainkomputer orang lain. Penyalahgunaan komputer . Penyalahgunaan komputer dari yang relatif sepele (misal untuk bermain game) dari yang relatif sepele (misal untuk bermain game) sampai yang serius (pemberian virus). sampai yang serius (pemberian virus).

******