romi-sad-01-introduction
Transcription
romi-sad-01-introduction
Systems Analysis and Design Romi Satria Wahono [email protected] http://romisatriawahono.net/sad WA/SMS: +6281586220090 1 Romi Satria Wahono • • • • • • • • SD Sompok Semarang (1987) SMPN 8 Semarang (1990) SMA Taruna Nusantara Magelang (1993) B.Eng, M.Eng and Ph.D in Software Engineering from Saitama University Japan (1994-2004) Universiti Teknikal Malaysia Melaka (2014) Research Interests: Software Engineering, Intelligent Systems Founder dan Koordinator IlmuKomputer.Com Peneliti LIPI (2004-2007) Founder dan CEO PT Brainmatics Cipta Informatika 2 Learning Design Pretest dan Posttest untuk Mengukur Kompetensi Kognifif Penugasan berbasis SelfContained Project dan Literatur Review Penyajian Materi dengan Model Minimalism berbasis Konsep Amati-Tiru-Modifikasi Latihan Secara Iteratif untuk Meningkatkan Kompetensi Kognitif dan Psikomotorik 3 Textbook 4 References 1. Alan Dennis et al, Systems Analysis and Design with UML 4th Edition, John Wiley and Sons, 2013 2. Kenneth E. Kendall and Julie E Kendall, Systems Analysis and Design 8th Edition, Prentice Hall, 2010 3. Hassan Gomaa, Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures, Cambridge University Press, 2011 4. Gary B. Shelly and Harry J. Rosenblatt, Systems Analysis and Design 9th Edition, Course Technology, 2011 5. Howard Podeswa, UML for the IT Business Analyst 2nd Edition, Course Technology, 2009 6. Jeffrey A. Hoffer et al, Modern Systems Analysis and Design 6th Edition, Prentice Hall, 2010 5 Pre-Test 1. Sebutkan tahapan pengembangan sistem atau system development life cycle (SDLC)! 2. Sebutkan beberapa metodologi pengembangan sistem yang anda ketahui! 3. Gambarkan requirement di bawah dengan use case diagram! SISTEM ELIBRARY • Sistem elibrary memungkinkan pengguna untuk melakukan registrasi dan login • Setelah menjadi member, pengguna dapat memodifikasi profile, serta mencari dan mendownload koleksi buku elibrary • Admin sistem elibrary melakukan approval terhadap registrasi dan menampilkan laporan aktifitas pengguna secara individual maupun total 4. Buat program yang menampilkan tulisan "Halo Jakarta" di layar monitor, dengan bahasa pemrograman yang anda kuasai! 6 Course Contents 1. Introduction 2. Project Planning 3. System Analysis 4. System Design 5. System Implementation 7 1. Introduction 8 Learning Objectives 1. Understand the system analysis and design and the term of analyst 2. Understand the system development life cycle and its four phases 3. Understand the evolution of system development methodologies 4. Be familier with the Unified Modeling Language (UML) version 2.0 5. Understand the characteristics of object-oriented paradigm 9 Key Ideas • More than half of all systems development projects Fail (42% - Standish Group, 53% - General Accounting Office) • Canceled before completion • System is never used once finished • Doesn't provide the expected benefits • Most of the ones that don't fail: • Are delivered late • Are over budget • Don't provide the features promised 10 Recent Significant IT Failures Company Year Outcome Hudson Bay (Canada) 2005 Inventory system problems lead to $33.3 million loss UK Inland Revenue 2004/5 $3.45 billion tax-credit overpayment caused by software errors Avis Europe PLC (UK) 2004 Enterprise resource planning (ERP) system cancelled after $54.5 million spent Ford Motor Co. 2004 Purchasing system abandoned after deployment costing approximately $400 M Hewlett-Packard Co. 2004 ERP system problems contribute to $160 million loss AT&T Wireless 2004 Customer relations management (CRM) system upgrade problems lead to $100M loss 11 12 Is it Possible? 13 Systems Analyst and Its Roles 14 Analyst Related Role 1. 2. 3. 4. 5. Business analyst System analyst Infrastructure analyst Change management analyst Project manager 15 Role in System Development Project Manager Business Analyst System Analyst Programmer 16 Tester Business Analyst • Focuses on business issues surrounding the system • The business value of the system • Improvements in business processes • New business processes needed with new system • Requires business skills and professional training 17 System Analyst • The systems analyst is a key person analyzing the business, identifying opportunities for improvement, and designing information systems to implement these ideas • Focuses on Information System (IS) Issues • How IS can improve business processes • Designs new information system • Ensures IS quality standards are maintained • Requires training & experience in design analysis, programming, business (to lesser degree) 18 Infrastructure Analyst • Focuses on interfaces between new system & existing infrastructure • Makes sure new system follows organizational standards • Identifies required infrastructure changes • Requires experience in network & database administration • Requires knowledge of hardware systems 19 Change Management Analyst • Focuses on system installation • Documentation & support for users • Coordinate training of users • Strategies to overcome resistance • Requires experience in organizational behavior • Requires experience in change management 20 Project Manager • Responsible for schedule and budget • Ensures promised benefits are delivered • Manages team members • Responsible for project plan and reporting progress • Requires project management experience 21 22 Systems Development Life Cycle (SDLC) 23 Systems Development Life Cycle (SDLC) Planning Implementation Analysis Design 24 Project Phases 1. Planning: Why build the system? • System request, feasibility analysis, project size estimation 2. Analysis: Who, what, when, where will the system be? • Requirement gathering, business process modeling 3. Design: How will the system work? • Program design, user interface design, data design 4. Implementation: System construction and delivery • System construction, testing, documentation and installation 25 Planning 1. Identifying business value (System Request) • • Lower costs Increase profits 2. Analyze feasibility • • • Technical Feasibility Economic Feasibility Organizational Feasibility 3. Estimating the size of project (System Proposal) 26 Analysis 1. Requirement gathering by answering the questions: • • • Who will use the system? What will the system do? When will it be used? 2. Investigate the current system 3. Identify possible improvements 4. Develop a concept for new system (Business Process Model) 27 Design 1. Program Design (UML Diagrams) • • What programs need to be written Exactly what each program will do 2. User Interface Design • • How users interact with system Forms / reports used by the system 3. Data Design (ER Diagrams) • • • What data is to be stored What format the data will be in Where the data will be stored (System Specification) 28 Implementation • Construction • New system is built and tested • Often testing is the longest part • Testing • • • • Unit Testing Integration Testing System Testing User Acceptance Test • Installation • Old system is turned off • New system is turned on 29 Processes and Deliverables Process Product Planning System Proposal Analysis Design System Specification Implementation New System with Testing/Maintenance Plan 30 SDLC and Deliverables Planning (System Proposal) Implementation Analysis (New System) (System Specification) Design (System Specification) 31 Systems Development Methodologies 32 What Is a Methodology? A formalized approach to implementing the SDLC (series of steps and deliverables) 33 Major Methodologies 1. Structured Design • Waterfall method • Parallel development 2. Rapid Application Development • Phased Development • Prototyping • Throw-away Prototyping 3. Agile Development • Extreme Programming (XP) • Scrum • Lean Development 34 Structured Design Methodology • Projects move methodically from one to the next step • Generally, a step is finished before the next one begins 35 Waterfall Method 36 Pros - Cons of the Waterfall Method Pros Cons Design must be specified on paper before programming begins Identifies systems requirements long before programming Begins, it minimizes change to the requirements as the project proceed (mature) Long time between system proposal and delivery of new system Rework is very hard 37 Parallel Development • Addresses problem of time gap between proposal and delivery • General process: 1. 2. Breaks project into parallel subproject Integrates them at the end 38 Parallel Development 39 Rapid Application Development 1. Phased development • A series of versions 2. Prototyping • System prototyping 3. Throw-away prototyping • Design prototyping 40 Rapid Application Development Critical elements to speed up the SDLC: • CASE tools • Visual programming languages • Code generators 41 RAD: Phased Development • Break overall system into a series of versions • Each version has Analysis, Design, and Implementation • Output from on version is the input to the next • Incorporate ideas, issues, lessons learned in one version into the next version 42 43 RAD: Phased Development Pros Cons Gets useful system to users quickly Initial system is intentionally incomplete Most important functions tested most System requirements expand as users see versions 44 RAD: Prototyping • Analysis, Design, Implementation are performed concurrently • Start with a "quick-and-dirty" prototype • Provides minimal functionality • Repeat process, refining the prototype each time • Stop when prototype is a working system 45 RAD: Prototyping 46 RAD: Prototyping Pros Cons Gets working system to users quickly Fast paced. Hard to conduct careful, methodical analysis Reassures users that the project is progressing Initial design decisions have long term staying power Quickly refines true requirements Problems may come to light late in design, requiring re-design 47 RAD: Throw-Away Prototyping • Use prototypes only to understand requirements • Example: use html to show UI • Prototype is not a working design • Once requirements are understood, the prototypes are thrown away • The system is then built using SDLC 48 RAD: Throw-Away Prototyping 49 Agile Development • Just a few rules that are easy to learn and follow • Streamline the SDLC • Eliminate much of the modeling and documentation • Emphasize simple, iterative application development • Examples include: • Extreme Programming (XP) • Scrum • Dynamic Systems Development Model (DSDM) 50 Extreme Programming (XP) “Core Values” of XP 1. 2. 3. 4. Communication – All to All Pair Programming Simplicity – KISS, refactoring Feedback – Embrace Change Courage – Quality First, test and efficient coding 51 Extreme Programming (XP) 52 Scrum • Together with a user, the project members form a Scrum Team consisting of 5–9 people • During discussions with the Product Owner, the goal of the Sprint is determined and the prioritized functionality is broken down into detailed tasks • The team is self-organized and the members have a joint responsibility for the results • Each Sprint enhances the product’s market value and adds new functions and improvements that can be delivered to the customer 53 Scrum 54 Scrum 55 Scrum 56 Scrum 57 58 XP vs Scrum vs Lean • XP deals with how to work with programming • Scrum deals with how the project is organized and planned • Lean Development deals with which comprehensive principles should apply for the entire development organization 59 Selecting the Appropriate Methodology 1. 2. 3. 4. 5. 6. Clarity of User Requirements Familiarity with Technology System Complexity System Reliability Short Time Schedules Schedule Visibility 60 Selecting the Appropriate Methodology 61 Exercise: Selecting Methodology Suppose you are an analyst for the Roanoke Software Consulting Company (RSCC), a large consulting firm with offices around the world. The company wants to build a new knowledge management system that can identify and track the expertise of individual consultants anywhere in the world based on their education and the various consulting projects on which they have worked. Assume that this is a new idea that never done before been attempted in RSCC or elsewhere. RSCC has an international network, but the offices in each country may use somewhat different hardware and software. RSCC management wants the system up and running within a year. 62 Object-Oriented Paradigm 63 Konsep Dasar Pemrograman Berorientasi Objek Class , Object, Method, Attribute 64 Berorientasi Objek? Attribute: Topi, Baju, Jaket, Tas Punggung, Tangan, Kaki, Mata Behavior: Cara Jalan ke Depan Cara Jalan Mundur Cara Belok ke Kiri Cara Memanjat 65 Berorientasi Objek? Attribute (State): Ban, Stir, Pedal Rem, Pedal Gas, Warna, Tahun Produksi Behavior: Cara Menghidupkan Mesin Cara Manjalankan Mobil Cara Memundurkan Mobil Attribute Variable(Member) Behavior Method(Fungsi) 66 Perbedaan Class dan Object • Class: konsep dan deskripsi dari sesuatu • Class mendeklarasikan method yang dapat digunakan (dipanggil) oleh object • Object: instance dari class, bentuk (contoh) nyata dari class • Object memiliki sifat independen dan dapat digunakan untuk memanggil method • Contoh Class dan Object: • Class: mobil • Object: mobilnya pak Joko, mobilku, mobil berwarna merah 67 Perbedaan Class dan Object • Class seperti cetakan kue, dimana kue yg dihasilkan dari cetakan kue itu adalah object • Warna kue bisa bermacam-macam meskipun berasal dari cetakan yang sama (object memiliki sifat independen) 68 Class = Method + Variable Class Sepeda gir variable kecepatan tampilkan kecepatan method ubah gir 69 Object = Method + Variable Bernilai Object Sepedaku gir = 3 instance variable kecepatan = 10km/jam tampilkan kecepatan () kecepatan = 10 km/jam ubah gir (2) gir = 5 70 instance method Attribute • Variable yang mengitari class, dengan nilai datanya bisa ditentukan di object • Variable digunakan untuk menyimpan nilai yang nantinya akan digunakan pada program • Variable memiliki jenis (tipe), nama dan nilai • Name, age, dan weight adalah atribute (variabel) dari class Person 71 Membuat Class, Object dan Memanggil Atribut public class Mobil { Mobil.java String warna; int tahunProduksi; } public class MobilBeraksi{ public static void main(String[] args){ // Membuat object Mobil mobilku = new Mobil(); MobilBeraksi.java /* memanggil atribut dan memberi nilai */ mobilku.warna = "Hitam"; mobilku.tahunProduksi = 2006; System.out.println("Warna: " + mobilku.warna); System.out.println("Tahun: " + mobilku.tahunProduksi); } } 72 Method • Method adalah urutan instruksi yang mengakses data dari object • Method melakukan: 1. Manipulasi data 2. Perhitungan matematika 3. Memonitor kejadian dari suatu event 83 Method 84 Membuat dan Memanggil Method public class Mobil2{ String warna; Mobil2.java int tahunProduksi; void printMobil(){ System.out.println("Warna: " + warna); System.out.println("Tahun: " + tahunProduksi); } } public class Mobil2Beraksi{ public static void main(String[] args){ Mobil2 mobilku = new Mobil2(); Mobil2Beraksi.java mobilku.warna = "Hitam"; mobilku.tahunProduksi = 2006; mobilku.printMobil(); } } 85 Latihan • Buat class Handphone yang berisi empat method: 1. hidupkan() 2. lakukanPanggilan() 3. kirimSMS() 4. matikan() • Isi masing-masing method dengan tampilan status menggunakan System.out.println() • Buat class HandphoneBeraksi, dan panggil method-method diatas dalam class tersebut 86 Latihan: Hasil Tampilan Handphone hidup … Kring, kring, kring … panggilan dilakukan Dung, dung … sms berhasil terkirim Handphone mati … 87 Jenis Method: Mutator dan Accessor 88 Parameter • Sepeda akan berguna apabila ada object lain yang berinterasi dengan sepeda tersebut • Object software berinteraksi dan berkomunikasi dengan object lain dengan cara mengirimkan message atau pesan • Pesan adalah suatu method, dan informasi dalam pesan dikenal dengan nama parameter 89 Pengiriman Pesan dan Parameter 1. You object pengirim 2. YourBicycle object penerima 3. changeGears pesan berupa method yang dijalankan 4. lowerGear parameter yang dibutuhkan method (pesan) untuk dijalankan 90 91 Sepeda.java public class Sepeda{ int gir; // method (mutator) dengan parameter void setGir(int pertambahanGir) { gir= gir+ pertambahanGir; } // method (accessor) int getGir() { return gir; } } 92 SepedaBeraksi.java public class SepedaBeraksi{ public static void main(String[] args) { // Membuat object Sepeda sepedaku = new Sepeda(); // Memanggil method dan menunjuk nilai parameter sepedaku.setGir(1); // menset nilai gir = 1 System.out.println(“Gir saat ini: “ + sepedaku.getGir()); sepedaku.setGir(3); // menambahkan 3 pada posisi gir saat ini (1) System.out.println(“Gir saat ini: “ + sepedaku.getGir()); } } 93 Latihan: Class Matematika dan Parameter • Buat Class bernama Matematika, yang berisi method dengan dua parameter: • • • • pertambahan(int a, int b) pengurangan(int a, int b) perkalian(int a, int b) pembagian(int a, int b) • Buat Class bernama MatematikaBeraksi, yang mengeksekusi method dan menampilkan: • • • • Pertambahan: 20 + 20 = 40 Pengurangan: 10-5 = 5 Perkalian: 10*20 = 200 Pembagian: 21/2 = 10 94 Variasi Tampilan pertambahan(int a, int b){ System.out.println(a + “ + “ + b + “ = “ + (a+b)) } pertambahan(int a, int b){ System.out.println(“Hasil = “ + (a+b)) } pertambahan(int a, int b){ int hasil = a + b; System.out.println(“Hasil = “ + hasil) } 95 Konstruktor -1• Method yang digunakan untuk memberi nilai awal pada saat object diciptakan • Dipanggil secara otomatis ketika new digunakan untuk membuat instan class • Sifat konstruktor: • Nama konstruktor sama dengan nama class • Tidak memiliki nilai balik dan tidak boleh ada kata kunci void 96 Konstruktor -2public class Mobil { String warna; Mobil.java int tahunProduksi; public Mobil(String warna, int tahunProduksi){ this.warna = warna; this.tahunProduksi = tahunProduksi; } public void info(){ System.out.println("Warna: " + warna); System.out.println("Tahun: " + tahunProduksi); } } public class MobilKonstruktor{ MobilKonstruktor.java public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”, 2003); mobilku.info(); } 97 } Kata Kunci this Digunakan pada pembuatan class dan digunakan untuk menyatakan object sekarang public class Mobil{ String warna; int tahunProduksi; public class Mobil{ String warna; int tahunProduksi; void isiData(String aWarna, int aTahunProduksi){ void isiData(String warna, int tahunProduksi){ warna = aWarna; tahunProduksi = aTahunProduksi; this.warna = warna; this.tahunProduksi = tahunProduksi; } } 98 Latihan 1. Buat class Bank • • Buat konstruktor class Bank dengan parameter: saldo Buat method: simpanUang, ambilUang, dan getSaldo 2. Buat class BankBeraksi, tetapkan saldo awal lewat konstruktur Rp. 100000, jalankan 3 method di atas, dan tampilkan proses sebagai berikut: Selamat Datang di Bank ABC Saldo awal: Rp. 100000 Simpan uang: Rp. 500000 Saldo saat ini: Rp. 600000 Ambil uang: Rp. 150000 Saldo saat ini: Rp. 450000 99 Karakteristik Pemrograman Berorientasi Objek Abstraction, Encapsulation, Inheritance, Polymorphism 100 Abstraction • Cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sebagai suatu kumpulan subsistem (object) yang saling berinteraksi. • Mobil adalah kumpulan sistem pengapian, sistem kemudi, sistem pengereman • Alat meng-abstraksikan sesuatu adalah class • Object bersifat modularity. Object dapat ditulis dan dimaintain terpisah (independen) dari object lain 101 102 103 Encapsulation • Mekanisme menyembunyikan suatu proses dan data dalam sistem untuk menghindari interferensi, dan menyederhanakan penggunaan proses itu sendiri • Tongkat transmisi (gigi) pada mobil • Tombol on/off/pengaturan suhu pada AC • Class access level (public, protected, privat) adalah implementasi dari konsep encapsulation • Enkapsulasi data dapat dilakukan dengan cara: 1. mendeklarasikan instance variable sebagai private 2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut 104 105 Encapsulation dan Access Modifier Modifier Dalam Dalam Class Package yang yang Sama Sama Dalam Dalam SubClass Package Lain private tanpa tanda protected public 106 Encapsulation Enkapsulasi data juga dapat dilakukan dengan cara: 1. mendeklarasikan instance variable sebagai private 2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut 107 Sepeda.java public class Sepeda{ int gir; void setGir(int pertambahanGir) { gir= gir+ pertambahanGir; } int getGir() { return gir; } } 108 SepedaBeraksi.java public class SepedaBeraksi{ public static void main(String[] args) { Sepeda sepedaku = new Sepeda(); sepedaku.setGir(1); /* Variabel bisa diubah atau tidak sengaja diubah. Hal ini berbahaya dan sering menimbulkan bug. Berikan access modifier private pada instance variable */ sepedaku.gir = 3; System.out.println(“Gir saat ini: “ + sepedaku.getGir()); } } 109 Sepeda.java public class Sepeda{ private int gir; // access modifier private pada instance variable void setGir(int pertambahanGir) { gir= gir+ pertambahanGir; } int getGir() { return gir; } } 110 Inheritance (Pewarisan) • Suatu class dapat mewariskan atribut dan method kepada class lain (subclass), serta membentuk class hierarchy • Penting untuk Reusability • Java Keyword: extends 111 Sepeda.java public class Sepeda{ private int gir; void setGir(int pertambahanGir) { gir= gir+ pertambahanGir; } int getGir() { return gir; } } 112 Class SepedaGunung Mewarisi Class Sepeda public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi { public static void main(String[] args) { private int sadel; SepedaGunung sg=new SepedaGunung(); void setSadel (int jumlah) { sg.setGir(3); System.out.println(sg.getGir()); sadel = getGir() - jumlah; } sg.setSadel(1); System.out.println(sg.getSadel()); } int getSadel(){ return sadel; } } } SepedaGunung.java SepedaGunungBeraksi.java 113 Latihan: Inheritance Matematika 1. Buat class MatematikaCanggih yang merupakan inherit dari class Matematika 1. Tambahkan method modulus(int a, int b) yang menghitung modulus dari a dan b 2. Operator modulus adalah % 2. Buat class MatematikaCanggihBeraksi yang memanggil method pertambahan, perkalian dan modulus 114 Polymorphism • Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang berbeda • Implementasi konsep polymorphism: 1. Overloading: Kemampuan untuk menggunakan nama yang sama untuk beberapa method yang berbeda parameter (tipe dan atau jumlah) 2. Overriding: Kemampuan subclass untuk menimpa method dari superclass, yaitu dengan cara menggunakan nama dan parameter yang sama pada method 115 Polymorphism – Overloading class Mobil { public class MobilKonstruktor{ public static void main(String[] args){ String warna; Mobil mobilku = new Mobil(“Merah”, 2003); int tahunProduksi; mobilku.info(); public Mobil(String warna, int tahunProduksi){ Mobil mobilmu = new Mobil(); mobilmu.info(); } this.warna = warna; this.tahunProduksi = tahunProduksi; } } public Mobil(){ } void info(){ System.out.println("Warna: " + warna); System.out.println("Tahun: " + tahunProduksi); } } 116 Polymorphism – Overloading class Lingkaran{ void gambarLingkaran(){ } void gambarLingkaran(int diameter){ ... } void gambarLingkaran(int diameter, int x, int y){ ... } void gambarLingkaran(int diameter, int x, int y, int warna, String namaLingkaran){ ... } } 117 Polymorphism - Overriding public class Sepeda{ protected int gir; void setGir(int pertambahanGir) { gir= gir+ pertambahanGir; } int getGir() { return gir; } } 118 Polymorphism - Overriding public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi { public static void main(String[] args) { void setGir(int pertambahanGir) { SepedaGunung sg=new SepedaGunung(); super.setGir(pertambahanGir); sg.setGir(2); System.out.println(sg.getGir()); gir = 2*getGir(); } } sg.setGir(3); System.out.println(sg.getGir()); } } SepedaGunung.java SepedaGunungBeraksi.java 119 Latihan: Overloading pada Matematika 1. 2. 3. 4. 5. Kembangkan class Matematika, MatematikaCanggih dan MatematikaBeraksi Lakukan overloading pada Method yang ada (pertambahan, pengurangan, perkalian, pembagian, modulus) Tambahkan method baru bertipe data double (pecahan) dan memiliki 3 parameter: double a, double b, double c Uji di kelas MatematikaBeraksi dengan parameter pecahan: 12.5, 28.7, 14.2 Misalnya: pertambahan(12.5, 28.7, 14.2) pertambahan(23, 34) 120 pertambahan(12, 28, 14) pertambahan(3.4, 4.9) Matematika.java public class Matematika{ void pertambahan (int a, int b){ int hasil= a + b; System.out.println(“hasil:” + hasil); } void pertambahan (double a, double b, double c){ int hasil= a + b + c; System.out.println(“hasil:” + hasil); } ... } 121 Summary -1• The systems analyst is a key person analyzing the business, identifying opportunities for improvement, and designing information systems to implement these ideas • There are five major team roles: • Business analyst • Systems analyst • Infrastructure analyst • Change management analyst • Project manager 122 Summary -2• The Systems Development Lifecycle consists of four stages: Planning, Analysis, Design, and Implementation • The major development methodologies: 1. Structured design • • Waterfall method Parallel development 2. RAD development • • • Phased Development Prototyping Throw-away Prototyping 3. Agile development • Extreme Programming 123 Summary -3• UML is the standard language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system • UML version 2.0 has 14 diagrams in 2 groups: 1. Structure Diagrams 2. Behavior Diagrams • UML concepts are based on objectoriented paradigm 124 Referensi 1. Alan Dennis et al, Systems Analysis and Design with UML 4th Edition, John Wiley and Sons, 2013 2. Kenneth E. Kendall and Julie E Kendall, Systems Analysis and Design 8th Edition, Prentice Hall, 2010 3. Hassan Gomaa, Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures, Cambridge University Press, 2011 4. Gary B. Shelly and Harry J. Rosenblatt, Systems Analysis and Design 9th Edition, Course Technology, 2011 5. Howard Podeswa, UML for the IT Business Analyst 2nd Edition, Thomson Course Technology, 2009 6. Jeffrey A. Hoffer et al, Modern Systems Analysis and Design 6th Edition, Prentice Hall, 2012 125