380 likes | 393 Views
Learn the fundamentals of software engineering, including the systematic and organized approach to developing software, as well as the responsibilities and ethical considerations of a software engineer.
E N D
1PENGANTAR AnalisIS DAN PERANCANGAN SistemINTRODUCTION TO SYSTEM AnalysIS AND DESIGN TIM PENGAMPU: WELLIA Shinta Sari, M.KomAGUSWinarno, M.KomFAJRIAN Nur Adnan, MCS AnalisisSistemInformasi - 1
RekayasaPerangkatLunakSoftware Engineering • Software engineeringadalahsuatudisiplinrekayasa (rancang-bangun) yang terkaitdengansemuaaspekproduksiperangkatlunak. • Engineer perangkatlunakmengadopsipendekatansistematisdanterorganisiruntukpekerjaanmerekadanmenggunakanteknikdan tools yang disesuaikandenganmasalah yang dihadapiuntukdipecahkan, batasanpengembangan, dansumberdayatersedia.
RekayasaPerangkatLunakSoftware Engineering Software engineering adalah:*IEEE (Institute of Electrical and Electronic Engineers) Definition • Aplikasidarisebuahpendekatan yang bersifatkuantifiabel, disiplin, dansistematisbagipengembangan, operasi, danpemeliharaanperangkatlunak. • Studitentangpendekatan-pendekatansepertipada (1)
RekayasaPerangkatLunakSoftware Engineering SE vs CS SE Vs System Engineer System engineeringmempunyaikaitandengansemuaaspekpengembangansistemberbasis-komputer yang mencakupperangkatkeras, perangkatlunak ,dan yang terkaitdengan proses bisnis. Software engineeringberkonsentrasipadakomponenperangkatlunaksistem yang lebihbesar. System engineersmencakupspesifikasisistem, desainarsitektur, pengintegrasian, danpenyebaran. • Computer sciencemempunyaikaitandengantheory and fundamentals; software engineeringmempunyaikaitandenganpracticalities of developing and delivering useful software. • Computer sciencesekaranginitidakcukuplengkapuntukbertindaksebagaitiangpenyokongsoftware engineering.
RekayasaPerangkatLunakSoftware Engineering • Software engineeringmelibatkantanggung-jawablebihluasdibandinghanyaaplikasikecakapanteknis. • Software engineerharusbertindaksecaraetis, bertanggungjawab, danjujurjikamerekadiharapkanuntukterhormatsebagaiseorangprofesional. • Perilakuetistidakhanyasekedarmenegakkanhukumsajatetapiharuslebihdariitu (lih. hal. berikutnya). TanggungJawab Software Engineer
RekayasaPerangkatLunakSoftware Engineering • Confidentiality (Kerahasiaan) Engineerseharusnyamenghormatikerahasiaandariklienmerekatanpatergantungdenganyaatautidaknyasuatupersetujuankerahasiaan formal ditandatangani. • Competence (Kemampuan) Engineermestinyatidak salah menggambarkantingkatankemampuannya. Merekamestinyatidakdengansadarmenerimapekerjaan yang di luarkemampuannya. Issues of professional responsibility
RekayasaPerangkatLunakSoftware Engineering • Intellectual property rights (Hakmilikintelektual) Engineers harussadarakanhukumlokalyang mengaturpenggunaandaripropertiintelektualsepertihak paten, hakcipta, dll. Merekaharusseksamauntukmemastikanbahwaintelektualpropertiklienharusdilindungi. • Computer misuse (PenyalahgunaanKomputer) Software engineers mestinyatidakmenggunakankecakapanteknismerekauntukmenyalahgunakankomputer orang lain. Penyalahgunaankomputerdari yang relatifsepele (misaluntukbermain game) sampai yang serius (pemberian virus). *** Issues of professional responsibility
RekayasaPerangkatLunakSoftware Engineering • Software Miths (mitos-mitosperangkatlunak) adalahasumsi-asumsipermasalahan yang kebenarannyatidakdapatdipertanggungjawabkanberkaitandenganpengembanganperangkatlunak • Tigakelompok yang terkaitdalampengembanganperangkatlunak • Management : manajer yang bertanggungjawabterhadappengembanganperangkatlunak • Customer : pelanggan yang memesanperangkatlunak • Practitioner’s : praktisi yang mengembangkanperangkatlunak Software Myths
RekayasaPerangkatLunakSoftware Engineering • Denganmemilikibukuberisi standard danprosedur yang banyakuntukpengembanganperangkatlunak, makapekerjaanpastilancar. • Buku-bukuitumemanglengkap, tapiapakahdigunakan ? Apakahpraktisiperangkatlunaksadardengankeberadaannya. Apakahcocokdenganpengembangan yang modern ? Apakahbenar-benarlengkap ? • Untukmenghasilkanperangkatlunak yang berkualitas, makakitaperlumembelikomputerterbaru. • Untukmendapatkanperangkatlunak yang berkualitas, CASE tools lebihpentingdaripadaperangkatkeras. • Bilaterlambatmakatambahlahjumlahprogramer • Penambahan programmer semakinmenambahketerlambatan. Management Myths
RekayasaPerangkatLunakSoftware Engineering • Tujuansistemsecaraumumcukupuntukmemulaimenulis program, rincianbelakangansaja. • Definisiawal yang burukmerupakansebabutamagagalnyakerjaperangkatlunak • Rinciankebutuhansistemsangatpenting: • fungsi • performance • antar-muka • batasanrancangan • kriteriavalidasi • dll • Perangkatlunakbersifatfleksibel, perubahankebutuhanmudahdiakomodasiolehpengembangperangkatlunak • Dampakperubahansangatbergantungpadatahap mana perubahanterjadi Customer Myths
RekayasaPerangkatLunakSoftware Engineering • Program selesai, pekerjaanselesai • 50% - 70% usahadihabiskansetelah program diserahkanke user untukpertamakalinya. • Kualitashanyabisadiketahuisetelah program berjalan (running) • Kualitasdapatdijagasejak PL dikembangkan. • Yang diserahkanke user adalah program • Yang diserahkanadalah program, dokumen, dan data. *** Practitioner’s Myths
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC 4 Fase Utama SDLC
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC PerencanaanPlanning Tujuan memahamimengapa system perludikembangkan Menentukancarakerjatimproyek TahapanPerencanaan Project Inisiation: Identifikasiapakahsistem yang akandikembangkanakanmengurangibiaya, ataumeningkatkanpendapatan Project Management Membuat Workplan Perekrutansumberdayamanusia Menetapkanruanglingkupproyek, tujuan, jadwaldananggaran yang diperlukan
SiklusHidupPengembanganSistemSystem Development Life Cycle - SDLC PerencanaanPlanning
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC AnalisisAnalysis Tujuan memahami 5W TahapanAnalisis StrategiAnalisis PengumpulanKebutuhan Penyusunan Proposal Sistem Membuat WorkplanPerekrutansumberdayamanusia
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC PerancanganDesign Tujuan Menentukanbagaimana system akanberoprasi, terkaitInfrastuktur HW, SW, jaringan, UI,database, file, danspesifik program TahapanPerancangan PenentuanStrategiPerancangan PerancanganArsitektur, dan Interface Pembuatan database danspesifikasi file Perancangan Program
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC ImplementasiImplementation TahapanImplementasi PembuatandanPengujianSistem InstallasiSistem Perencanaan Support dan Maintenance
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC
SiklusHidupPengembangan SoftwareSoftware Development Life Cycle - SDLC
MetodologiPengembanganPerangkaLunakSoftware Development Methodology Stuctured Analysis • Waterfall model • Paralel Development Model
Modified Waterfall Model (M.Kochanski) Sashimi Waterfall with Subprojects Waterfall with Spiral Introduction
MetodologiPengembanganPerangkaLunakSoftware Development Methodology Agile • Spiral Methodology • Agile Programming • Extreme Programming (XP) • Incremental Model Extreme Programming Spiral Methodology
MetodologiPengembanganPerangkaLunakSoftware Development Methodology Agile • Spiral Methodology • Agile Programming • Extreme Programming (XP) • Incremental Model Incremental Model
MetodologiPengembanganPerangkaLunakSoftware Development Methodology • Tujuan RAD: • memotongwaktudanbiayapengembangan • melibatkanpengguna di setiapfasepengembangansistem. • memungkinkantimpengembanganuntukmelakukanmodifikasi yang diperlukandengancepat, sebagaidesainberevolusi. • pentingmembatasibiayaperubahan yang biasanyaterjadidalamperkembangan yang panjangdanberlarut-larut. • Selainketerlibatanpengguna, tim RAD yang suksesharusmemilikisumberdaya IT, keterampilan, dandukunganmanajemen. Karena ituadalah proses yang dinamis, yang digerakkanolehpengguna, • Cocokdigunakanpadaperusahaanmembutuhkansisteminformasiuntukmendukungfungsibisnisbaru. Rapid Application Development - RAD RAD
Rapid Application Development (RAD) Model • Adaptasidari waterfall model yang: • Menciptakansistemfungsional yang utuhdalamwaktu60-90 hari. • Untukaplikasisistemkonstruksi • Menekankankomponen program yang bisadipakaikembali / reusabilitas.
MetodologiPengembanganPerangkaLunakSoftware Development Methodology Rapid Application Development - RAD • Phased Development • Prototyping • Throw-away Prototyping Prototyping Phased Development Throw-away Prototyping
Prototyping Model Dipakaijika: • Sistemmempunyairesikotinggi • tidakjelaspermasalahannya • Lebihfokuspadaperancangandialog user - komputer • bagaimanamembuat dialog yang baik, ramah, mudah ? • Sistemdiminatiolehbanyakpemakai • mencarikesepakatan (dasaruntukmenyamakanpersepsi) • User ingincepatselesai • user tidaksabarmenunggu • prototipesegeramemperlihatkanbentukkerjasistem • Masapakaisingkat • sistemhanyadipakaibeberapa kali saja • Inginmenunjukkaninovasi • pengembangdapatmenunjukkankecanggihan • Kebutuhanberubah-ubah • user sulitmenjelaskankebutuhan
MetodologiPengembanganPerangkaLunakSoftware Development Methodology
MetodologiPengembanganPerangkaLunakSoftware Development Methodology
MetodologiPengembanganPerangkaLunakSoftware Development Methodology
PemilihanMetodologiPengembanganSelecting Development Methodology