20
 1. What and Why 1. What and Why Sofware Engineering ? Sofware Engineering ? I. INTR OD U C TI ON TO I . INTRODUCTION TO SOFTWARE SOFTWARE ENGINEERING ENGINEERING

RPL 1 Pengantar - Software Engineering

  • Upload
    aviq

  • View
    194

  • Download
    2

Embed Size (px)

Citation preview

Page 1: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 1/20

 

1. What and Why1. What and Why

Sofware Engineering ?Sofware Engineering ?

I . INTRODUCTION TOI. INTRODUCTION TO

SOFTWARESOFTWARE

ENGINEERINGENGINEERING

Page 2: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 2/20

 

1.1 Software Engineering1.1 Software Engineering

((Rekayasa Perangkat LunakRekayasa Perangkat Lunak)) EkonomiEkonomi dari semua bangsa-bangsa majudari semua bangsa-bangsa maju

tergantung pada perangkat lunak tergantung pada perangkat lunak 

Semakin banyak Semakin banyak 

sistem yang dikendalikansistem yang dikendalikan

oleholeh

perangkat lunak perangkat lunak 

Rekayasa Perangkat Lunak mempunyaiRekayasa Perangkat Lunak mempunyai kaitankaitan

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 bagianRekayasa Perangkat Lunak sudah menjadi bagian

yang penting untuk menghadirkanyang penting untuk menghadirkan pendapatanpendapatan

nasional pada semua negara majunasional pada semua negara maju

Page 3: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 3/20

 

1.2 Software Costs1.2 Software Costs

((

Biaya-Biaya Perangkat LunakBiaya-Biaya Perangkat Lunak))

Biaya-biaya perangkat lunak seringBiaya-biaya perangkat lunak sering mendominasimendominasibiaya-biaya sistembiaya-biaya sistem. Biaya-biaya perangkat lunak . Biaya-biaya perangkat lunak pada suatu PC seringpada suatu PC sering lebih besarlebih besar dari hargadari harga

perangkat keras.perangkat keras. Biaya-biayaBiaya-biaya perawatan perangkat lunak lebih besarperawatan perangkat lunak lebih besar 

dibanding dengan pengembangan perangkatdibanding dengan pengembangan perangkatlunak, 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 kaitanRekayasa Perangkat Lunak mempunyai kaitan

dengan biaya-biaya pengembangan perangkatdengan biaya-biaya pengembangan perangkatlunak yanglunak yang ekonomisekonomis..

Page 4: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 4/20

 

1.3 FAQs about Software1.3 FAQs about Software

EngineeringEngineering (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 antarasoftware engineeringsoftware engineering dandan

computer sciencecomputer science??

 Apa perbedaan antara Apa perbedaan antarasoftware engineeringsoftware engineering dandan

system engineeringsystem engineering??

 Apakah Apakah software processsoftware process itu?itu?

Page 5: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 5/20

 

FAQs about Software EngineeringFAQs 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 kuncitantangan kunci dalamdalam

menghadapi rekayasa perangkat lunak?menghadapi rekayasa perangkat lunak?

Page 6: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 6/20

 

What is software?What is software?

perintahperintah (program komputer) yang bila dieksekusi(program komputer) yang bila dieksekusimemberikan fungsi dan unjuk kerja seperti yangmemberikan fungsi dan unjuk kerja seperti yangdiinginkan;diinginkan;

struktur datastruktur data yang memungkinkan programyang memungkinkan programmemanipulasi informasi secara proporsional; danmemanipulasi informasi secara proporsional; dan dokumendokumen yang menggambarkan operasi danyang 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 kebidang 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: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 7/20

What is software engineering?What is software engineering?

Software engineeringSoftware engineering adalah suatu disiplinadalah suatu disiplinrekayasa (rancang-bangun) yang terkaitrekayasa (rancang-bangun) yang terkaitdengan semuadengan semua aspek produksiaspek produksi perangkatperangkatlunak.lunak.

Engineer perangkat lunak mengadopsiEngineer perangkat lunak mengadopsipendekatanpendekatan sistematissistematis dandan terorganisirterorganisir untuk untuk pekerjaan mereka dan menggunakanpekerjaan mereka dan menggunakan teknik teknik dan toolsdan tools yang disesuaikan dengan masalahyang disesuaikan dengan masalahyang dihadapi untuk dipecahkan, batasanyang dihadapi untuk dipecahkan, batasanpengembangan, dan sumber daya tersedia.pengembangan, dan sumber daya tersedia.

 

Page 8: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 8/20

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.  Aplikasi Aplikasi dari sebuah pendekatan yangdari sebuah pendekatan yang

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

3.3. StudiStudi tentang pendekatan-pendekatantentang 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: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 9/20

What is the difference betweenWhat is the difference between softwaresoftwareengineering engineering andand computer sciencecomputer science??

Computer scienceComputer science mempunyai kaitan denganmempunyai kaitan dengan

theory and fundamentalstheory and fundamentals;; software engineeringsoftware engineering 

mempunyai kaitan denganmempunyai kaitan dengan  practicalities practicalities of of 

developing and delivering useful softwaredeveloping and delivering useful software..

Computer scienceComputer science sekarang ini tidak cukupsekarang ini tidak cukuplengkap untuk bertindak sebagai tianglengkap untuk bertindak sebagai tiang

penyokongpenyokong software engineeringsoftware engineering..

 

Page 10: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 10/20

What is the difference betweenWhat is the difference between softwaresoftwareengineering engineering andand system engineering system engineering ??

System engineeringSystem engineering mempunyai kaitan denganmempunyai 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 prosesperangkat lunak ,dan yang terkait dengan proses

bisnis.bisnis.

Software engineeringSoftware engineering berkonsentrasi pada komponenberkonsentrasi pada komponen

perangkat lunak perangkat lunak sistem yang lebih besar.sistem yang lebih besar. System engineersSystem engineers mencakup spesifikasi sistem,mencakup spesifikasi sistem,

desain arsitektur, pengintegrasian, dandesain arsitektur, pengintegrasian, dan

penyebaran.penyebaran.

 

Page 11: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 11/20

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

Software processSoftware process merupakan himpunanmerupakan himpunan aktivitasaktivitastujuan pengembangan atau evolusitujuan pengembangan atau evolusi perangkatperangkatlunak.lunak.

 Aktivitas umum dalam semua proses perangkat Aktivitas umum dalam semua proses perangkatlunak 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 sesuaidengan permintaan pelanggan.dengan permintaan pelanggan.

 

Page 12: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 12/20

What isWhat is

a software process model?a software process model? Software process model merupakanSoftware process model merupakan representasirepresentasi 

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

Contoh perspektif proses adalahContoh perspektif proses adalah –  Workflow Perspektif -Workflow Perspektif - Urutan aktivitasUrutan aktivitas

 –  Data-Flow Perspektif Data-Flow Perspektif - Arus Informasi- Arus Informasi

 –  Role/Action Perspektif – Role/Action Perspektif – Peran dan AksiPeran dan Aksi

Proses umum modelProses umum model– WaterfallWaterfall

– Evolutionary developmentEvolutionary development

– Formal transformationFormal transformation

– Integration from reusable componentsIntegration from reusable components

 

Page 13: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 13/20

What are the costs of softwareWhat 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: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 14/20

What are softwareWhat are software

engineering methods?engineering methods?Software engineering methodsSoftware engineering methods merupakanmerupakan

pendekatan terstruktur pendekatan terstruktur dalam pengembangandalam pengembanganperangkat lunak yang meliputi model sistem, notasi,perangkat lunak yang meliputi model sistem, notasi,

aturan, desainaturan, desain advice,advice, dan panduan proses.dan panduan proses. Model DescriptionsModel Descriptions (Uraian Model)(Uraian Model)

Uraian tentang model grafis yang harus diproduksi.Uraian tentang model grafis yang harus diproduksi. RulesRules (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: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 15/20

What is CASEWhat is CASE (Computer-(Computer-

 Aided Software Engineering) Aided Software Engineering)?? CASECASE adalahadalah 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 prosesTools untuk mendukung aktivitas proses awal kebutuhan danawal kebutuhan dan

desain.desain.

Lower-CaseLower-Case

Tools untuk mendukung aktivitas selanjutnya sepertiTools untuk mendukung aktivitas selanjutnya seperti

 programming programming,, debugging,debugging, dandan testingtesting..

 

Page 16: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 16/20

What are the attributes of What are the attributes of 

good software?good software?Software perlu memiliki fungsi kebutuhan dan kemampuan yangSoftware perlu memiliki fungsi kebutuhan dan kemampuan yang

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

MaintainabilityMaintainability

Software harus dapat ditingkatkan dan diubah sesuai denganSoftware harus dapat ditingkatkan dan diubah sesuai dengankebutuhan.kebutuhan.

DependabilityDependability

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

Software seharusnya tidak membuat penggunaan sumberSoftware seharusnya tidak membuat penggunaan sumberdaya sistem menjadi boros.daya sistem menjadi boros.

UsabilityUsability

Software harus dapat dipakai oleh para pemakai yangSoftware harus dapat dipakai oleh para pemakai yangdirencanakan.direncanakan.

 

Page 17: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 17/20

What are the key challengesWhat 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 antaracampuran antara

perangkat keras dan lunak.perangkat keras dan lunak. DeliveryDelivery

 Adanya peningkatan Adanya peningkatan tekanantekanan untuk penyerahan perangkatuntuk penyerahan perangkat

lunak lebih cepat.lunak lebih cepat.

 

Page 18: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 18/20

1.4 Professional and1.4 Professional and

Ethical ResponsibilityEthical Responsibility Software engineeringSoftware engineering melibatkan tanggung-melibatkan tanggung-

 jawab jawab lebih luaslebih luas dibanding hanya aplikasidibanding hanya aplikasikecakapankecakapan teknisteknis..

Software engineerSoftware engineer harus bertindak secaraharus bertindak secaraetis, bertanggung jawab, dan jujuretis, bertanggung jawab, dan jujur jika jikamereka diharapkan untuk terhormat sebagaimereka diharapkan untuk terhormat sebagaiseorang profesional.seorang profesional.

Perilaku etis tidak hanya sekedarPerilaku etis tidak hanya sekedarmenegakkan hukum saja tetapi harus lebihmenegakkan hukum saja tetapi harus lebihdari itu (lih. hal. berikutnya).dari itu (lih. hal. berikutnya).

 

Page 19: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 19/20

Issues of professionalIssues of professional

responsibilityresponsibility

ConfidentialityConfidentiality (Kerahasiaan)(Kerahasiaan)

EngineerEngineer seharusnyaseharusnya menghormati kerahasiaanmenghormati kerahasiaan daridari

klien mereka tanpa tergantung dengan ya atauklien mereka tanpa tergantung dengan ya atau

tidaknya suatu persetujuan kerahasiaan formaltidaknya suatu persetujuan kerahasiaan formalditandatangani.ditandatangani.

CompetenceCompetence (Kemampuan)(Kemampuan)

EngineerEngineer

 mestinya tidak salah menggambarkanmestinya tidak salah menggambarkan

tingkatan kemampuannya. Mereka mestinya tidak tingkatan kemampuannya. Mereka mestinya tidak 

dengan sadar menerima pekerjaan yangdengan sadar menerima pekerjaan yang di luardi luar

kemampuannya.kemampuannya.

 

Page 20: RPL 1 Pengantar - Software Engineering

5/9/2018 RPL 1 Pengantar - Software Engineering - slidepdf.com

http://slidepdf.com/reader/full/rpl-1-pengantar-software-engineering 20/20

Issues of professionalIssues of professional

responsibility (lanjutan)responsibility (lanjutan)

Intellectual property rightsIntellectual property rights (Hak milik intelektual)(Hak milik intelektual)

Engineers harusEngineers harus sadar akan hukum lokalsadar akan hukum lokal yangyangmengatur penggunaan dari properti intelektualmengatur penggunaan dari properti intelektual

seperti hak paten, hak cipta, dll. Mereka harusseperti hak paten, hak cipta, dll. Mereka harusseksama untuk memastikan bahwa intelektualseksama untuk memastikan bahwa intelektualproperti klien harus dilindungi.properti klien harus dilindungi.

Computer misuseComputer misuse (Penyalahgunaan Komputer)(Penyalahgunaan Komputer)

Software engineers mestinya tidak menggunakanSoftware engineers mestinya tidak menggunakankecakapan teknis mereka untuk kecakapan teknis mereka untuk menyalahgunakanmenyalahgunakankomputer orang lainkomputer orang lain. Penyalahgunaan komputer. Penyalahgunaan komputerdari 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).

******