Rekayasa Perangkat Lunak Part7 Rekayasa Perangkat Lunak Copyright
- Slides: 39
Rekayasa Perangkat Lunak Part-7 Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 1
Outline of this presentation o The Generic Software Process Model n n n Extreme Programming Rational Unified Process Opportunistic Approach Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 2
Generic Software Process Model e. Xtreeme Programming o o Traditional Software Lifecycle: n Listen - Design - Code - Test XP lifecycle n Listen - Test - Code - Design Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 3
Generic Software Process Model e. Xtreeme Programming o XP is based on the extreme application of 12 practices (guidelines or rules) that support each other: n Planning game n Pair programming n Frequent releases n Collective code ownership n System metaphor n Continuous Integration n Simple design n Forty-hour week n Tests n On-site customer n Refactoring n Coding standards Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 4
Generic Software Process Model e. Xtreeme Programming o o Listen to customers while gathering requirements Develop test cases (functional tests and unit tests) Code the objects Design (refactor) as more objects are added to the system Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 5
Generic Software Process Model e. Xtreeme Programming o Short definition n lightweight process model for OO software development o What’s in the name? n code is in the centre of the process n practices are applied extremely o What is new in XP? n none of the ideas or practices in XP are new n the combination of practices and their extreme application is new Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 6
Generic Software Process Model e. Xtreeme Programming o Planning Game o o Pieces: user stories Players: customer & developer Moves: n User story writing o requirements are written by the customer on small index cards o user stories are written in business language o and describe things that the system needs to do o each user story is assigned a business value Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 7
Generic Software Process Model e. Xtreeme Programming Frequent Releases o o o The development process is highly iterative A release cycle is usually up to 3 months A release cycle consists of iterations up to 3 weeks In each iteration the selected user stories are implemented Each user story is split in programming tasks of 1 -3 days small and frequent releases provide frequent feedback from the customer Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 8
Generic Software Process Model e. Xtreeme Programming System Metaphor o o o Synonym for system-architecture ? The system metaphor provides a broad view of the project’s goal It defines the overall theme to which developers and clients can relate Common concept of what the system is like The system is built around one (or more) system metaphor from which classes, methods, variables and basic responsibilities are derived Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 9
Generic Software Process Model e. Xtreeme Programming o Simple Design o o o Do the simplest thing that could possible work n create the best (simple) design you can You aren’t going to need it n do not spend time implementing potential future functionality (requirements will change) Put in what you need when you need it Simple design ensures that there is less n to communicate n to test n to refactor Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 10
Generic Software Process Model e. Xtreeme Programming o Test(1) o o Tests play the most important and central role in XP Tests are written before the code is developed n forces concentration on the interface n accelerates development n safety net for coding and refactoring If user stories are considered as the requirements then Tests can be considered as the specification of the system Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 11
Generic Software Process Model e. Xtreeme Programming Test (2) o 2 kinds of test: n Acceptance tests (functional tests) o clients provide test cases for their stories o developers transform these in automatic tests n Unit tests o developers write tests for their classes (before implementing the classes) o All unit tests must run 100% successfully all the time Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 12
Generic Software Process Model e. Xtreeme Programming o o Refactoring o o Change it even if it is not broken! Process of improving code while preserving its function The aim of refactoring is to n make the design simpler n make the code more understandable n improve the tolerance of code to change The code should not need any comments n There is no documentation in XP n The code and the user stories are the only documents Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 13
Generic Software Process Model e. Xtreeme Programming Pair Programming o o Two programmers sit together in front of a workstation n one enters code n one reviews the code and thinks Second most important practice after tests Pairs change continuously (few times in a day) n every programmer knows all the aspects of the system n a programmer can be easily replaced in the middle of the project Ensures continuous code inspection (SE) Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 14
Collective Code Ownership Generic Software Process Model e. Xtreeme Programming o o o The code does not belong to any programmer but to the team Any programmer can (actually should) change any of the code at any time in order to n make it simpler n make it better Everybody tries to produce a high-quality system n code gets cleaner n system gets better all the time n everybody is familiar with most of the system Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 15
Continuous Integration Generic Software Process Model e. Xtreeme Programming o o Daily integration at least The whole system is built (integrated) every couple of hours XP feedback cycle: n develop unit test n code n integrate n run all units tests (100%) n release A working tested system is always available Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 16
Generic Software Process Model e. Xtreeme Programming 40 Hour Week o o o “Overtime is defined as time in the office when you don’t want to be there” Ron Jeffries Programmers should not work more than one week of overtime If more is needed then something is wrong with the schedule Keep people happy and balanced Rested programmers are more likely to refactor effectively, think of valuable tests and handle the strong team interaction Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 17
Generic Software Process Model On-site Customer e. Xtreeme Programming o o o User stories are not detailed, so there always questions to ask the customer The customer must always be available n to resolve ambiguities n set priorities n provide test cases Customer is considered part of the team Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 18
Generic Software Process Model e. Xtreeme Programming Coding Standards o o o Coding standards make pair progamming and collective code ownership easier Common name choosing scheme Common code formatting Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 19
Generic Software Process Model Rational Unified Process o o o Recognizes that system building is model building Organizes work in a process-oriented way Manages the system life-cycle “from womb-to-tomb”
Generic Software Process Model Rational Unified Process o o Is risk-driven Is cyclical n Every cycle results in a new system generation n Every cycle consists of a number of phases n Every phase consists of a number of iterations
Generic Software Process Model Rational Unified Process Major milestones Inception Elaboration Construction Transition time o. The n n Process has four phases Inception: defining the scope of the project Elaboration: planning the project, specifying features and designing the architecture Construction: building the product Transition: deployment to the user community
Generic Software Process Model Rational Unified Process time Inception preliminary iteration(s) Elaboration iteration #1 iteration #2. . . Construction iteration #n+1 iteration #n+2. . . Transition iteration #n+1. . . Releases o An iteration is a complete development loop ending in a release of an executable product, an increment of the final product under development.
Generic Software Process Model Rational Unified Process o o The process has four process components n Requirements analysis n Design n Implementation n Test And two supporting components n Project Management n Process Configuration
Generic Software Process Model Rational Unified Process Key Characteristic of the Process n Architecture-centric n Iterative and Incremental n Use case-driven
Generic Software Process Model Rational Unified Process Dealing with the Complexity or Process q Start with Use Cases as if we had an ideal world q Then proceed with Architecture to consider realities q Finally Iterative & Incremental to manage the project
Generic Software Process Model Rational Unified Process Use Case Driven Development o All process components, from requirements capture to test, are driven by use cases Analyze Capture, Clarify and Validate the Use Cases Design and Implementation Realize the Use Cases Test Verify that the Use Cases are fulfilled Use Cases bind these work steps together
Generic Software Process Model Rational Unified Process Use Case Driven Development o The use cases defined for a system are the basis for the entire development process. The use cases drive the development: n In requirements analysis the use cases are used to capture the requirements n In design you identify classes from the use-cases n In implementation you implement the use cases n In test you verify the use cases during test o The use cases constitute test cases
Generic Software Process Model Rational Unified Process Use Case Driven Development (cont. ) o Use cases play several roles during the software-engineering process. n They are used as a basis for iterative development n They form a foundation for what is described in user manuals n They may be used as ordering units o For example, a customer can get a system configured with a particular mix of use cases
Generic Software Process Model Rational Unified Process Components and Models Requirements Analysis Design n realized by Each process component is associated with a particular model. Use-Case Model implemented by Design Model Implementation Test verified by Implementation Model Test Model
Generic Software Process Model Opportunistic Software System Development o Increasing user demands and costs are driving the software development industry composition of new systems from readily available software components, including other systems. Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 31
Generic Software Process Model Opportunistic Software System Development opportunistic systems are not composed of neatly designed homogeneous software pieces with clear boundaries and well-described functionality Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 32
Generic Software Process Model Opportunistic Software System Development o Focuses on finding and gluing together pieces of software that were never designed to work together: Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 33
Generic Software Process Model Opportunistic Software System Development In this approach, only few rules exist for: design, construction, or process management. Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 34
Generic Software Process Model Opportunistic Software System Development The emphasis is on: smart engineering, creativity, innovation, and imaginative ways of finding and gluing software to provide interoperable and maintainable systems that meet users' needs. Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 35
Generic Software Process Model Opportunistic Software System Development The emergence of the opportunistic approach poses both challenges and prospects for today's developers. Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 36
Generic Software Process Model Opportunistic Software System Development Practitioners need unique sets of skills, tools, and techniques, coupled with imagination and innovation to cope with the underlying demands. Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 37
Generic Software Process Model Opportunistic Software System Development Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 38
Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 39
- Gsr part 7
- Rekayasa perangkat lunak berbasis komponen
- Konsep rpl
- Rekayasa perangkat lunak
- Kegiatan pada rekayasa kebutuhan
- Definisi rekayasa perangkat lunak
- Lapisan rekayasa perangkat lunak
- Perangkat lunak perangkat keras
- Perangkat lunak dbms adalah
- Aktivitas fundamental dari proses perangkat lunak
- Peta konsep tentang hardware
- Aplikasi administrasi perkantoran
- Proses perangkat lunak
- Perangkat lunak perkantoran
- Pengujian perangkat lunak
- Contoh wbs proyek
- Contoh business case proyek sistem informasi
- Sistem operasi dasar komputer
- Teknik perancangan perangkat lunak
- Contoh verifikasi dan validasi perangkat lunak
- Proyek perangkat lunak
- Makalah teknik pengujian perangkat lunak
- Software jaringan adalah
- Bagaimana cara menggunakan perangkat lunak pengolahan kata
- Perangkat lunak yang digunakan pada komputer disebut
- Pengujian perangkat lunak
- Winamp termasuk dalam kelompok aplikasi
- Contoh pengujian berorientasi objek
- Software architectural diagrams
- Proposal proyek perangkat lunak
- Contoh kasus kegagalan proyek perangkat lunak
- Operasi perhitungan data
- Pemeliharaan perangkat lunak
- Perangkat lunak terbagi menjadi
- Aplikasi perangkat lunak pengolah kata
- Contoh pengadaan dalam sebuah proyek ti
- Pengertian perangkat lunak presentasi
- Pendekatan cleanroom adalah
- Pengertian manajemen proyek perangkat lunak
- Perangkat lunak yang bertugas mengkonversikan