Rekayasa Perangkat Lunak Part7 Rekayasa Perangkat Lunak Copyright

  • Slides: 39
Download presentation
Rekayasa Perangkat Lunak Part-7 Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

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

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

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

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

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

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

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

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

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

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

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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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,

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

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,

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

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

Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi 39