Software Engineering Romi Satria Wahono romi@romisatriawahono.net http://romisatriawahono.net +6281586220090.

Slides:



Advertisements
Presentasi serupa
Developing Knowledge Management dalam perusahaan Week 10 – Pert 19 & 20 (Off Class Session)
Advertisements

WE-2010 Web Engineering Husni husni.trunojoyo.ac.id
Research Methodology 7. Metode Eksperimen
Aplikasi Komputer dalam MRK batagem.com. Aplikasi Komputer dalam MK2 Komputer dan Konstruksi? Normative cost per unit value Construction Automobiles.
Mata Kuliah : ALGORITMA dan STRUKTUR DATA 1.
PEMOGRAMAN BERBASIS JARINGAN
Teknologi Informasi. Materi 1.History of Computer 2.History of Telecommunication + Mobile 3.Operating System + Software & Story of Sillicon Valley 4.Video:
Teknologi Open Source oleh Razief Perucha F
Aspek Sosial & Organisasi Restyandito, S.Kom, MSIS.
Research Methodology 2. Tahapan Penelitian
Perancangan Web dan Internet. Introduction ? •What is a web site ? •What Is Internet ?
INTERNET & E-COMMERCE Internet Marketing & eMarketing
Hadi Syahrial (Health IT Security Forum)
MIS to ERP and beyond • The term "MIS" arose to describe these kinds of applications, which were developed to provide managers with information about sales,
Materi Analisa Perancangan System.
Statistika Nonparametrik PERTEMUAN KE-1 FITRI CATUR LESTARI, M. Si
Administrasi Basis Data
IT SEBAGAI ALAT UNTUK MENCIPTAKAN KEUNGGULAN KOMPETISI
IT Project Management Based on PMBOK
Siklus Manajemen Pengetahuan
Rekayasa Perangkat Lunak/ AP/ 2005 Software Proses Page 1 Software Engineering Program Studi Teknik Informatika Fakultas Ilmu Komputer Universitas Dian.
1.1 VISUAL STUDIO 2008 / VISUAL BASIC.NET By Wan hendra M
Research Methodology Romi Satria Wahono WA/SMS:
PP ICT ITB Pusat Penelitian Information & Communication Technology Institut Teknologi Bandung Budi Rahardjo Dipresentasikan pada Rapat Pimpinan ITB 19.
Dipersiapkan oleh : Penny Handayani Tarmidi. Pengaruh IT pada Berbagai Aktivitas.
Slide 3-1 Elmasri and Navathe, Fundamentals of Database Systems, Fourth Edition Revised by IB & SAM, Fasilkom UI, 2005 Exercises Apa saja komponen utama.
Prinsip Pembuatan Study Guide
Teknologi Open Source (pertemuan 3) Open Source vs Free Software oleh Razief Perucha F.A D3-Manajemen Informatika Jurusan Matematika – FMIPA Universitas.
Review IS & Software System Concept Diah Priharsari PTIIK – Universitas Brawijaya Source: 1.Obrien & Marakas, Management Information.
Introduction to The Design & Analysis of Algorithms
1 KOMPONEN PERUMUSAN PROGRAM KOMUNIKASI 1.Assesment - Focus the target audience 2.Planning - Target audience - Key of consumer benefit - Believe of the.
Artificial Intelligence
IT , Jaringan,Internet,E-commerce
PROSES PADA WINDOWS Pratikum SO. Introduksi Proses 1.Program yang sedang dalam keadaan dieksekusi. 2.Unit kerja terkecil yang secara individu memiliki.
M. Suwarso Kegiatan Lembaga Standarisasi Internasional Dalam Hal Telepon Internet Telepon Internet.
KIMIA ORGANIK II ELFI SUSANTI VH.
Pengantar/pengenalan (Introduction)
Interface Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Green Productivity Prof. Ir. Moses L. Singgih, MSc, PhD
How human charactersitics, practitioners’ habits and health care system regulations affet the research and development of medical devices.
IT ASSESSMENTS Susanto Halim( ) Nobel Handika( ) Peby Sanjaya( ) M. Royfayusyar() Armagedon()
PROGRAM AND MATERIALS DEVELOPMENT in ODL. How to design and develop the ODL programs and courses? Use systematic and systemic design know well the students.
Risk Management.
Implementing an REA Model in a Relational Database
Oleh: Dr. Sri Widati,S.Sos.,M.Si
Manajemen Sistem Informasi
1 Magister Teknik Perencanaan Universitas Tarumanagara General View On Graduate Program Urban & Real Estate Development (February 2009) Dr.-Ing. Jo Santoso.
Thinking in terms of “Systems” What is a system? A system is a collection of interrelated components (subsystems) that function together to achieve some.
TUGAS AKHIR VISUAL COMMUNICATION DESIGN
Software Engineering Romi Satria Wahono
LOGO Manajemen Data Berdasarkan Komputer dengan Sistem Database.
Visual Communication Design
Linked List dan Double Linked List
We are in search of passionate and driven individual to become one of the few Management Associates who will be developed to become bright leaders in the.
CURRICULUM & MATERIAL DEVELOPMENT
Amortization & Depresiasi
MODELS OF PR SYIFA SA. Grunig's Four models of Public Relations Model Name Type of Communica tion Model Characteristics Press agentry/ publicity model.
Metodologi Penelitian dalam Bidang Informatika
3.1 © 2007 by Prentice Hall OVERVIEW Information Systems, Organizations, and Strategy.
SMPN 2 DEMAK GRADE 7 SEMESTER 2
MANPRO-M13: MUTU PROYEK SISTEM
THE IMMERSED TUNNELS MAIN BENEFITS AND INNOVATION BY. WAWAN SETIAWAN.
Via Octaria Malau Transfer (Internal Transfers) Transfer (Transfers Internal) Select the account from which funds are to be transferred FROM and then select.
MARKETING MIX (BAURAN PEMASARAN).
Web Teknologi I (MKB511C) Minggu 12 Page 1 MINGGU 12 Web Teknologi I (MKB511C) Pokok Bahasan: – Text processing perl-compatible regular expression/PCRE.
Dasar-Dasar Periklanan
Slide 1 Chapter 1: Introduction to Systems Analysis and Design Alan Dennis, Barbara Wixom, and David Tegarden John Wiley & Sons, Inc.
ANALISIS PERANCANGAN SISTEM INFORMASI (APSI) 00
ANALISIS PERANCANGAN SISTEM INFORMASI (APSI) 01. Pengantar APSI
Software Engineering Romi Satria Wahono
Transcript presentasi:

Software Engineering Romi Satria Wahono romi@romisatriawahono.net http://romisatriawahono.net +6281586220090

Romi Satria Wahono SD Sompok Semarang (1987) SMPN 8 Semarang (1990) romi@romisatriawahono.net Object-Oriented Programming 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 Sciences Saitama University, Japan (1994-2004) Research Interests: Software Engineering, Intelligent Systems Founder dan Koordinator IlmuKomputer.Com Peneliti LIPI (2004-2007) Founder dan CEO PT Brainmatics Cipta Informatika http://romisatriawahono.net

Learning Design Pretest dan Posttest untuk Mengukur Kompetensi Kognifif Penyajian Materi dengan Model Minimalism berbasis Konsep Amati-Tiru-Modifikasi Latihan Secara Iteratif untuk Meningkatkan Kompetensi Kognitif dan Psikomotorik Penugasan berbasis Self-Contained Project dan Literatur Review

Textbooks

Course Contents -1- Introduction to Software Engineering What is Software What is Software Engineering Discipline and Curriculum of 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 Construction 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 Software Quality Assurance What is Software Quality Software Quality Factor Software Testing Software Engineering Research Computing Research Methodology Research Trends in Software Engineering Case Study: Developing Research Proposal in Software Engineering Field

Introduction to Software Engineering

Content What is Software What is Software Engineering Discipline of Software Engineering

1. What is Software

The Definition of Software

Jenis Software (Market) Software Generik Perangkat lunak standar yang diproduksi oleh perusahaan pengembang dan dijual pada pasar terbuka ke siapapun yang bisa membelinya (Shrink-wrapped) Software Pesanan Perangkat lunak yang dikembangkan khusus dan disesuaikan dengan kebutuhan pelanggan (Ian Sommerville, Software Engineering 9 Ed., 2012)

Jenis Software (Platform) Software Sistem Software Real-Time Software Bisnis Software Teknik dan Ilmu Pengetahuan Software Tertanam (Embedded Software) Software Komputer Personal Software Kecerdasan Buatan Software Mobile (Roger Pressman, Software Engineering,: A Practitioner’s Approach 7Ed., 2009)

Jenis Software (Lisensi) Proprietary Software Open Source Software

Open Source Software Software yang source codenya terbuka dan didistribusikan dalam suatu format lisensi yang memungkinkan pihak lain secara bebas memperbanyak dan memodifikasi source code didalamnya Hak cipta tetap ada, tapi lisensi memungkinkan orang lain bebas untuk menggunakan dan memodifikasi software tersebut Jenis lisensi open source software: GNU General Public License (GPL) Apache License BSD license MIT License Mozilla Public License

Proprietary Software Software yang source codenya tertutup dan didistribusikan dengan suatu format lisensi yang membatasi pihak lain untuk menggunakan, memperbanyak dan memodifikasi Lisensi proprietary software memungkinkan orang lain menggunakan software yang kita buat dengan diikuti penyerahan royalti (uang) ke pemilik hak ciptanya Shareware dan Freeware adalah proprietary software. Free for use belum tentu free for (redistribute) atau free for modify!

Peranan Perangkat Lunak Menggantikan peran manusia: Dengan otomasi terhadap suatu tugas atau proses Memperkuat peran manusia: Dengan membantu manusia mengerjakan suatu tugas atau proses dengan lebih baik dan tertata

Peranan Perangkat Lunak Restrukturisasi Peran Manusia: Dengan melakukan perubahan-perubahan thd sekumpulan tugas atau proses Hiburan dan Permainan: Dengan menyajikan aplikasi interaktif hiburan yang semakin dekat dengan kenyataan

The Uniqueness of the Software Development

2. What is Software Engineering

Definisi Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi, desain, konstruksi, testing sampai pemeliharaan setelah digunakan

Mengapa Software Engineering? Terminologi rekayasa perangkat lunak (software engineering) pertama kali digunakan pada conference ttg software crisis tahun 1968 Krisis perangkat lunak merupakan akibat langsung dari lahirnya komputer generasi ke 3 yang canggih pada waktu itu Perangkat lunak yang dihasilkan menjadi menjadi beberapa kali lebih besar dan kompleks Pendekatan informal tidak cukup efektif (cost, waktu dan kualitas) dalam pengembangan perangkat lunak Biaya hardware jatuh dan biaya perangkat lunak naik cepat

Generasi Komputer Generasi I (1946-1959) Generasi II (1959-1964) Menggunakan tabung hampa ENIAC, EDSAC Generasi II (1959-1964) Menggunakan transistor PDP-1, PDP-8, UNIVAC, IBM 70xx Generasi III (1964-1979) Menggunakan IC IBM S360, NOVA, UNIVAC 1108 Generasi IV (1980-sekarang) Menggunakan VLSI

romi@romisatriawahono.net Object-Oriented Programming http://romisatriawahono.net

Is it Possible? romi@romisatriawahono.net Object-Oriented Programming http://romisatriawahono.net

5 Problems in the Software Development Poor Requirements - if requirements are unclear, incomplete, too general, and not testable, there may be problems. Unrealistic Schedule - if too much work is crammed in too little time, problems are inevitable. Inadequate Testing - 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 Software Development Solid Requirements - 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 Software Development Realistic Schedules - 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 Software Development Adequate Testing - 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 Software Development Stick to Initial Requirements where 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 Software Development 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.

3. Discipline and Curriculum of Software Engineering

Perjalanan Disiplin Ilmu Software Engineering Peter J Dennings yang memimpin task force disiplin ilmu computing memasukkan software engineering sebagai satu disiplin ilmu (Dennings, 1999) IEEE Computer Society membentuk tim khusus untuk menyusun pohon ilmu Software Engineering (Software Engineering Body of Knowledge, SWEBOK) http://swebok.org Software Engineering termasuk nama jurusan atau fakultas yang diakui menurut IEEE Computing Curricula 2005

Matriks Dennings 1999 Algoritma dan Struktur Data Bahasa Pemrograman Arsitektur Komputer Sistem Operasi dan Jaringan Software Engineering Database dan Sistim Retrieval Informasi Artificial Intelligence dan Robotik Grafik Human Computer Interaction Ilmu Komputasi Organizational Informatics BioInformatik ( Peter J. Dennings, 1999 )

SWEBOK 2004

IEEE Computing Curricula 2005 Computer Engineering (CE, Teknik Komputer) Computer Science (CS, Ilmu Komputer) Information Systems (IS, Sistem Informasi) Information Technology (IT, Teknologi Informasi) Software Engineering (SE, Rekayasa Perangkat Lunak)

IEEE Computing Curricula 2005 Computer Engineering (CE) pengembangan sistem terintegrasi(software dan hardware) Computer Engineer Computer Science (CS) konsep computing dan pengembangan software Computer Scientist Information System (IS) analisa kebutuhan dan proses bisnis serta desain sistem System Analyst Information Technology (IT) pengembangan dan maintenance infrastruktur IT Network Engineer Software Engineering (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: Jurusan Ilmu 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: Tidak ada (masuk ke jurusan teknik informatika) Target: Lulusan mampu merencanakan, mengimplementasikan, mengkonfigurasi dan memaintain infrastruktur teknologi informasi dalam organisasi

Target Profesi IEEE CC 2005 -3- Software Engineering (SE) Indonesia: Tidak ada (masuk ke Jurusan Teknik Informatika) Lulusan mampu mengelola aktifitas pengembangan software berskala besar dalam tiap tahapannya (software development life cycle)

Strategi Penerapan Kurikulum Computing

Desain Umum Kurikulum -1- Gunakan standard IEEE Computing Curriculla 2005 dan kurikulum inti informatika dan komputer yang diterbitkan APTIKOM (terjemahan dari IEEE Computing Curricula) Desain kurikulum supaya tidak terlalu padat. Orientasikan ke bidang minat (konsentrasi, peminatan or research group) yang peluang kerja dan pasar masih terbuka lebar (besar)

Desain Umum Kurikulum -2- Ajarkan satu bahasa pemrograman utama dan gunakan untuk penugasan di setiap mata kuliah. Ajarkan bahasa pemrograman dengan paradigma lain setelah mahasiswa benar-benar mahir dengan bahasa utama tadi Desain kurikulum supaya mahasiswa bisa menyelesaikan mata kuliah pada semester ke 6. Setelah itu masuk ke research group masing-masing untuk penelitian tugas akhir

Desain Umum Kurikulum -3- Arahkan mahasiswa untuk memiliki kemampuan verbal dan tulis Fasilitasi dan wajibkan mahasiswa memiliki situs blog, tempat mereka menuliskan aktifitas, aktualisasi diri dan mengupload laporan kajian (tugas mandiri) Laporan kajian harus dipresentasikan di depan kelas baik tim maupun individu Libatkan mahasiswa dalam berbagai project riil milik dosen untuk melatih dan mendekatkan ilmu yang dipelajari ke dunia industri

Desain Umum Kurikulum -4- Temukan uniqueness dari kurikulum yang kita miliki atau target lulusan yang kita harapkan Uniqueness inilah yang nantinya membentuk image branding yang terekam dengan baik oleh masyarakat Tampilkan uniqueness dalam bentuk slogan, logo atau mark tertentu dari universitas

Referensi (Foundation) Roger S. Pressman, Software Engineering: A Practitioner’s Approach Sevent Edition, McGraw-Hill, 2009 Ian Sommerville, Software Engineering 9th Edition, Addison-Wesley, 2010 Albert Endres dan Dieter Rombach, A Handbook of Software and Systems Engineering, Pearson Education Limited, 2003 Yingxu Wang, Software Engineering Foundations: A Software Science Perspective, Auerbach Publications, Taylor & Francis Group, 2008 Guide to the Software Engineering Body of Knowledge 2004 Version (SWEBOK), IEEE Computer Society, http://www.swebok.org, 2004

Referensi (Process) Alan Dennis et al, Systems Analysis and Design with UML – 3rd Edition, John Wiley and Sons, 2010 Dan Pilone and Russ Miles, Head First Software Development, O’Reilly Media, 2008 Barclay and Savage, Object-Oriented Design with UML and Java, Elsevier, 2004 Paul Kimmel, UML Demystified, McGraw-Hill, 2005 Kim Hamilton and Russell Miles, Learning UML 2.0, O'Reilly, 2006 Howard Podeswa, UML for the IT Business Analyst, Course Technology, 2009 Deloitte, Business Process Modeling – Basic Guideline and Tips, 2008

Referensi (Quality Assurance) Daniel Galin, Software Quality Assurance, Addison-Wesley, 2004 Jeff Tian, Software Quality Engineering, John Wiley & Sons, Inc., 2005 G. Gordon Schulmeyer, Handbook of Software Quality Assurance Fourth Edition, Artech House, 2008 Kshirasagar Naik and Priyadarshi Tripathy, Software Testing and Quality Assurance, John Wiley & Sons, Inc., 2008