1 / 58

Software Engineering

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)

amish
Download Presentation

Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering Romi Satria Wahonoromi@romisatriawahono.nethttp://romisatriawahono.net+6281586220090

  2. 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

  3. Learning Design

  4. Textbooks

  5. 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

  6. 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

  7. 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

  8. Introduction to Software Engineering

  9. Content • WhatisSoftware • WhatisSoftware Engineering • Discipline of Software Engineering

  10. 1. What is Software

  11. The Definition of Software

  12. JenisSoftware (Market) • Software Generik Perangkatlunakstandar yang diproduksiolehperusahaanpengembangdandijualpadapasarterbukakesiapapun yang bisamembelinya (Shrink-wrapped) • Software Pesanan Perangkatlunak yang dikembangkankhususdandisesuaikandengankebutuhanpelanggan (Ian Sommerville, Software Engineering 9 Ed., 2012)

  13. 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)

  14. JenisSoftware (Lisensi) • Proprietary Software • Open Source Software

  15. 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

  16. 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!

  17. PerananPerangkatLunak • Menggantikanperanmanusia: Denganotomasiterhadapsuatutugasatauproses • Memperkuatperanmanusia: Denganmembantumanusiamengerjakansuatutugasatauprosesdenganlebihbaikdantertata

  18. PerananPerangkatLunak • RestrukturisasiPeranManusia: Denganmelakukanperubahan-perubahanthdsekumpulantugasatauproses • HiburandanPermainan:Denganmenyajikanaplikasiinteraktifhiburan yang semakindekatdengankenyataan

  19. The Uniqueness of theSoftware Development

  20. 2. What is Software Engineering

  21. Disiplinilmu yang membahassemuaaspekproduksiperangkatlunak, mulaidaritahapawalspesifikasi, desain, konstruksi, testingsampaipemeliharaansetelahdigunakan Definisi

  22. 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

  23. 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

  24. IsitPossible?

  25. 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.

  26. 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.

  27. 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.

  28. 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.

  29. 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.

  30. 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.

  31. 3. Discipline and Curriculum of Software Engineering

  32. 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

  33. 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 )

  34. SWEBOK 2004

  35. IEEE Computing Curricula 2005 • Computer Engineering (CE, TeknikKomputer) • Computer Science (CS, IlmuKomputer) • Information Systems (IS, SistemInformasi) • Information Technology (IT, TeknologiInformasi) • Software Engineering (SE, RekayasaPerangkatLunak)

  36. 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

  37. 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

  38. 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

  39. 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)

More Related