580 likes | 721 Views
Software Engineering. Romi Satria Wahon o romi@romisatriawahono.net http://romisatriawahono.net +6281586220090. Romi Satria Wahono. SD Sompok Semarang (1987) SMPN 8 Semarang (1990) SMA Taruna Nusantara , Magelang (1993)
E N D
Software Engineering Romi Satria Wahonoromi@romisatriawahono.nethttp://romisatriawahono.net+6281586220090
Romi Satria Wahono • SD Sompok Semarang (1987) • SMPN 8 Semarang (1990) • SMA Taruna Nusantara, Magelang (1993) • S1, S2 dan S3 (on-leave)Department of Computer SciencesSaitama University, Japan (1994-2004) • Research Interests: Software Engineering,Intelligent Systems • Founder danKoordinatorIlmuKomputer.Com • Peneliti LIPI (2004-2007) • Founder dan CEO PT Brainmatics Cipta Informatika
Course Contents-1- • Introduction to Software Engineering • WhatisSoftware • WhatisSoftware Engineering • Discipline andCurriculumof Software Engineering • Software Engineering Profession • Profession, Ethics and Certification • Software Industry and Market • Internet Business Model and Trends
Course Contents-2- • Software Engineering Process • Software Development Life Cycle (SDLC) • Software Development Methodologies • Software Development Notation (UML) and Tools • Object-Oriented Paradigm • Software Construction • Software Construction Process • Estimating the Size of Software Project
Course Contents-3- • Software Quality Assurance • The Uniqueness of SoftwareQualityAssurance • What is Software Quality • Software Quality Factor • Software Testing • Software Engineering Research • ComputingResearch Methodology • Research Trendsin Software Engineering • Case Study: Developing Research Proposal in Software Engineering Field
Content • WhatisSoftware • WhatisSoftware Engineering • Discipline of Software Engineering
JenisSoftware (Market) • Software Generik Perangkatlunakstandar yang diproduksiolehperusahaanpengembangdandijualpadapasarterbukakesiapapun yang bisamembelinya (Shrink-wrapped) • Software Pesanan Perangkatlunak yang dikembangkankhususdandisesuaikandengankebutuhanpelanggan (Ian Sommerville, Software Engineering 9 Ed., 2012)
JenisSoftware (Platform) • Software Sistem • Software Real-Time • Software Bisnis • Software TeknikdanIlmuPengetahuan • Software Tertanam (Embedded Software) • Software Komputer Personal • Software KecerdasanBuatan • Software Mobile (Roger Pressman, Software Engineering,: A Practitioner’s Approach 7Ed., 2009)
JenisSoftware (Lisensi) • Proprietary Software • Open Source Software
Open Source Software • Software yang source codenyaterbukadandidistribusikandalam suatu format lisensi yangmemungkinkanpihak lain secarabebasmemperbanyakdanmemodifikasi source code didalamnya • Hakciptatetapada, tapilisensimemungkinkanorang lain bebasuntukmenggunakandanmemodifikasi software tersebut • Jenislisensi open source software: • GNU General Public License (GPL) • Apache License • BSD license • MIT License • Mozilla Public License
Proprietary Software • Software yang source codenyatertutupdandidistribusikandengansuatu format lisensi yang membatasi pihak lain untuk menggunakan, memperbanyakdanmemodifikasi • Lisensi proprietary software memungkinkanorang lain menggunakan software yang kitabuatdengandiikutipenyerahanroyalti (uang) kepemilikhakciptanya • SharewaredanFreewareadalah proprietary software. Free for use belumtentu free for (redistribute) atau free for modify!
PerananPerangkatLunak • Menggantikanperanmanusia: Denganotomasiterhadapsuatutugasatauproses • Memperkuatperanmanusia: Denganmembantumanusiamengerjakansuatutugasatauprosesdenganlebihbaikdantertata
PerananPerangkatLunak • RestrukturisasiPeranManusia: Denganmelakukanperubahan-perubahanthdsekumpulantugasatauproses • HiburandanPermainan:Denganmenyajikanaplikasiinteraktifhiburan yang semakindekatdengankenyataan
Disiplinilmu yang membahassemuaaspekproduksiperangkatlunak, mulaidaritahapawalspesifikasi, desain, konstruksi, testingsampaipemeliharaansetelahdigunakan Definisi
Mengapa Software Engineering? • Terminologirekayasaperangkatlunak (software engineering) pertama kali digunakanpadaconference ttg software crisistahun 1968 • Krisisperangkatlunakmerupakanakibatlangsungdarilahirnyakomputergenerasike 3 yang canggih pada waktu itu • Perangkatlunak yang dihasilkanmenjadimenjadibeberapa kali lebihbesardankompleks • Pendekatan informal tidakcukupefektif (cost, waktudankualitas) dalampengembanganperangkatlunak • Biaya hardware jatuhdanbiayaperangkatlunaknaikcepat
Generasi I (1946-1959) Menggunakantabunghampa ENIAC, EDSAC Generasi II (1959-1964) Menggunakantransistor PDP-1, PDP-8, UNIVAC, IBM 70xx Generasi III (1964-1979) MenggunakanIC IBM S360, NOVA, UNIVAC 1108 Generasi IV (1980-sekarang) MenggunakanVLSI GenerasiKomputer
5 Problems in the SoftwareDevelopment • PoorRequirements- if requirements are unclear, incomplete, too general, and not testable, there may be problems. • UnrealisticSchedule- if too much work is crammed in too little time, problems are inevitable. • InadequateTesting- no one will know whether or not the software is any good until customers complain or systems crash. • Featuritis- requests to add on new features after development goals are agreed on. • Miscommunication- if developers don't know what's needed or customer's have erroneous expectations, problems can be expected.
5 Solutions in the SoftwareDevelopment • SolidRequirements- clear, complete, detailed, cohesive, attainable, testable requirements that are agreed to by all players. In 'agile'-type environments, continuous close coordination with customers/end-users is necessary to ensure that changing/emerging requirements are understood.
5 Solutions in the SoftwareDevelopment • RealisticSchedules- allow adequate time for planning, design, testing, bug fixing, re-testing, changes, and documentation; personnel should be able to complete the project without burning out.
5 Solutions in the SoftwareDevelopment • AdequateTesting- start testing early on, re-test after fixes or changes, plan for adequate time for testing and bug-fixing. 'Early' testing could include static code analysis/testing, test-first development, unit testing by developers, built-in testing and diagnostic capabilities, automated post-build testing, etc.
5 Solutions in the SoftwareDevelopment • Stick to InitialRequirementswhere Feasible- be prepared to defend against excessive changes and additions once development has begun, and be prepared to explain consequences. If changes are necessary, they should be adequately reflected in related schedule changes. If possible, work closely with customers/end-users to manage expectations. In 'agile'-type environments, initial requirements may be expected to change significantly, requiring that true agile processes be in place and followed.
5 Solutions in the SoftwareDevelopment • Communication- require walkthroughs and inspections when appropriate; make extensive use of group communication tools - groupware, wiki's, bug-tracking tools and change management tools, intranet capabilities, etc.; ensure that information/documentation is available and up-to-date - preferably electronic, not paper; promote teamwork and cooperation; use protoypes and/or continuous communication with end-users if possible to clarify expectations.
PerjalananDisiplinIlmu SoftwareEngineering • Peter J Dennings yang memimpin task force disiplin ilmu computing memasukkan software engineering sebagai satu disiplin ilmu (Dennings, 1999) • IEEE Computer Society membentuktimkhususuntuk menyusun pohon ilmu Software Engineering (Software Engineering Body of Knowledge, SWEBOK) http://swebok.org • Software Engineering termasuknamajurusanataufakultas yang diakuimenurut IEEE Computing Curricula 2005
Matriks Dennings 1999 • AlgoritmadanStruktur Data • BahasaPemrograman • ArsitekturKomputer • SistemOperasidanJaringan • Software Engineering • Database danSistim Retrieval Informasi • Artificial Intelligence danRobotik • Grafik • Human Computer Interaction • IlmuKomputasi • Organizational Informatics • BioInformatik (Peter J. Dennings,1999 )
IEEE Computing Curricula 2005 • Computer Engineering (CE, TeknikKomputer) • Computer Science (CS, IlmuKomputer) • Information Systems (IS, SistemInformasi) • Information Technology (IT, TeknologiInformasi) • Software Engineering (SE, RekayasaPerangkatLunak)
IEEE Computing Curricula 2005 ComputerEngineering (CE) pengembangan sistemterintegrasi(software danhardware) Computer Engineer ComputerScience (CS) konsep computing dan pengembangan software Computer Scientist Information System (IS) analisa kebutuhan danproses bisnisserta desain sistem System Analyst Information Technology (IT) pengembangandan maintenanceinfrastruktur IT Network Engineer SoftwareEngineering (SE) pengembangan software dan pengelolaan tahapan SDLC Software Engineer
Target Profesi IEEE CC 2005 -1- • Computer Engineering (CE) • Indonesia: Jurusan Sistem Komputer atau Teknik Komputer • Target: Lulusan mampu mendesain dan mengimplementasikan sistem yang terintegrasi baik software maupun hardware • Computer Science (CS) • Indonesia: JurusanIlmu Komputer • Target: Lulusan memiliki kemampuan yang cukup luas dimulai dari penguasaan teori (konsep) dan pengembangan software
Target Profesi IEEE CC 2005 -2- • Information System (IS) • Indonesia: Jurusan Sistem Informasi • Target: Lulusan mampu menganalisa kebutuhan (requirement) dan proses bisnis (business process), serta mendesain sistem berdasarkan tujuan dari organisasi • Information Technology (IT) • Indonesia: Tidakada (masukkejurusanteknikinformatika) • Target: Lulusan mampu merencanakan, mengimplementasikan, mengkonfigurasi dan memaintain infrastruktur teknologi informasi dalam organisasi
Target Profesi IEEE CC 2005 -3- • Software Engineering (SE) • Indonesia: Tidakada(masukkeJurusan Teknik Informatika) • Lulusan mampu mengelola aktifitas pengembangan software berskala besar dalam tiap tahapannya (software development life cycle)