Anda di halaman 1dari 65

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Faculty of Computer Science University of Indonesia

CSF3600202 Rekayasa Perangkat Lunak


Term 2 - 2013/2014
Slide dibuat oleh : Satrio Baskoro Yudhoatmojo S.Kom., M.T.I. Dimodifikasi dan dipergunakan kembali oleh : Arlisa Yuliawati, S.Kom., M.Kom
1

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Faculty of Computer Science University of Indonesia

Topic 02: Generic Process Model

References

[Pressman, 2010] Pressman, Roger S. Software Engineering: A Practitioners Approach. New York:McGraw-Hill Higher Education, 2010. Print [Sommerville, 2007] Sommerville, Ian, Software Engineering, 8 th Edition, PearsonAddison Wesley, England, 2007. [Dennis, 2010] Dennis, Alan, et al, System Analysis and Design, 4th Edition, John Wiley & Sons, New Jersey, 2010. [Pfleeger & Atlee, 2010] Pfleeger, Shari Lawrence., and Joanne M. Atlee. Software Engineering: Theory and Practice. 4th ed. Upper Saddle River [N.J.: Prentice Hall, 2010. Print.
3

Outline

Why do we need Process


The meaning of process

Software Development Process Five Generic Framework Activities Software Development Process Flows Generic Software Development Process
Models

Prescriptive Software Development


Process Models
4

Why do we need to use a process model?

Many failed systems were abandoned


because software engineers tried to build wonderful systems without understanding how the system would fit with the organizations goals

If the process is right, the result will take


care of themselves Takashi Osada [Pressman, 2010]

Prologue

Engineering software is both a creative


and a step-by-step process which often involving many people.

Engineering software is also an iterative


social learning process.
The outcome is an embodiment of knowledge collected, distilled and organized as process is conducted

The Meaning of Process

A series of steps composed of activities,


actions, and tasks that are performed when some work product is to be created and involves a set of tools and techniques. [Pressman, 2007] [Pfleeger & Atlee, 2010]

A structured set of activities required to develop


a software system.

[Sommerville, 2007]
9

The Meaning of Process

An activity strives to achieve a broad objective


(e.g. communication with stakeholders) and is applied regardless of:
the application domain size of the project

complexity of the effort, or


degree of rigor with which software engineering is to be applied
10

The Meaning of Process

An action (e.g. architectural design)


encompasses a set of tasks that produce a major work product (e.g. architectural design model)

A task focuses on small, but well-defined


objective (e.g. conducting a unit test) that produces a tangible outcome.

11

The Meaning of Process

Process is also called life cycles when it


involves the building of some product

Software development process is also called


software development life cycle
It describes the life of a software product from its conception to its implementation, delivery, use and maintenance.

Processes impose consistency and structure on


a set of activities.
12

Characteristics of a process

Characteristics of a process [Pfleeger & Atlee, 2010] :


prescribes all major process activities

uses resources, subject to a set of constraints, and produces intermediate and final products
may be composed of subprocesses linked together

each process activity has entry and exit criteria


each activity are organized in a sequence every process has a set of guiding principles

constraints or controls may apply to an activity, resource, or product.


13

Software Development Process

In software engineering, a process is not a rigid prescription for how to build computer software.
It is an adaptable approach that enables the people doing the work to pick and choose the appropriate work actions and tasks. The end goal is always to deliver software in timely manner and with sufficient quality to satisfy those who have sponsored its creation and those who will use it.
14

Generic Software Development Process Models

A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective. Process should be:
Visible: Activities should provide clear indications of progress (deadlines/milestones)
Understandable: Activities and their order of execution are well-defined Supportable: Automated support for activities is available Usable: Process is acceptable to and usable by developers
15

A Generic Software Development Process

16

Five Generic Framework Activities

Communication Planning Modeling Construction Deployment

Process Flow?

17

1
commence

Communication

Conducted before any technical work can

Communicate and collaborate with customers


and other stakeholders

The intent is to understand stakeholders


objectives for the project and to gather requirements that help define software features and functions
18

2 Any complicated journey can be simplified if a map


exists.

Planning

Planning activity creates a map that helps guide the team as it makes the journey. The map is called software project plan (defines software engineering work)
technical tasks to be conducted risks that are likely the resource required, the work product to be produced, and work schedule
19

Modeling

Create a sketch of the thing so that youll


understand the big picture
what it will look like architecturally how the constituent parts fit together etc

The goal is to better understand software


requirements and the design that will achieve those requirements
20

Construction

Code generation (either manual or automated) Testing that is required to uncover errors in the
code

21

Deployment

Completed software is delivered to the customer


who evaluates the delivered product and provides feedback based on the evaluation

22

Software Development Process Flows

Process flow describes how the framework


activities and the actions and tasks that occur within each framework activity are organized with respect to sequence and time.

There are four process flow, based on


[Pressman, 2010], (see next slide for illustrations)

23

Software Development Process Flow

24

Software Development Process Flow

25

Software Development Process Flow

26

Prescriptive Software Development Process Models

Prescriptive process models advocate an


orderly approach to software engineering
Order and project consistency are dominant issues

Prescriptive in a sense they provide a set of


process elements

Each model prescribes a process flow.


27

Prescriptive Software Development Process Models

The Waterfall Model Incremental Model Evolutionary Model Unified Process

28

The Waterfall Model

One of the first software development process


model

[Pressman, 2010]

29

The Waterfall Model

[Pfleeger & Atlee, 2010]


30

The Waterfall Model

Its variants:
V-shaped model: relationship between types of tests and phases before testing Prototyping variant: requirements and design prototypes

31

The Waterfall Model : V-Shaped

[Pfleeger & Atlee, 2010]


32

The Waterfall Model : Prototype

[Pfleeger & Atlee, 2010]


33

The Waterfall Model

The problems [Pressman, 2010] [Sommerville, 2007] [Pfleeger & Atlee, 2010]: Inflexible partitioning of the project into distinct stages makes (difficult to respond to changing customer requirements). Requirements must be well-understood up front (difficult to customers). Few business systems have stable requirements. This model is mostly used for large systems engineering projects where a system is developed at several sites.

Todays business environment no longer tolerate long delays.


34

The Incremental Model


[Pressman, 2010]

35

The Incremental Model

The system as specified in the requirements documents is partitioned into subsystems by functionality. The releases are defined by beginning with one small, functional subsystem and then adding functionality with each new release. Thus, there are usually two systems functioning in parallel:
The production system
The development system
36

The Incremental Model

The initial requirements are reasonably


well-defined so that we can partition them into subsystems.

The requirements are prioritized before


partitioning into several subsystems.
37

The Incremental Model

Used in situation where a limited set of software


functionality must be presented to users quickly and refinement and expansion of functionality could be done in later release

It combines elements of linear and parallel


process flows
Each linear process flow produces an increment of the software.

38

The Incremental Model

The advantages [Sommerville, 2007]


Customer value can be delivered with each increment so system functionality is available earlier. Early increments act as a prototype to help clarify requirements for later increments. Lower risk of overall project failure. The highest priority system services tend to receive the most testing.
39

Evolutionary Process Model

These models are iterative Characterized in a manner that enables you to


develop increasingly more complete versions of the software.

Two common Evolutionary Process Model :


Prototyping Spiral Model

40

Evolutionary Process Model :


Prototyping

41

Evolutionary Process Model :


Prototyping

Prototyping:
Assists you and other stakeholders to better understand what is to be built when requirements are fuzzy. Users get a feel for the actual system and developers get to build something immediately.

42

Evolutionary Process Model :


Prototyping

Process: quick design, build prototype,


of analysis

Forms of prototypes varies depending on forms


Paper spec of SW from functional analysis or requirements gathering through FAST (Facilitated Application Specification Techniques)
Coded prototype (not fully functional!) Preliminary user manual Story boards
43

evaluate, refine prototype, engineer product

Evolutionary Process Model :


Prototyping

Problems [Sommerville, 2007] [Pressman, 2010]


Lack of process visibility; Systems are often poorly structured; Special skills (e.g. in languages for rapid prototyping) may be required.

Customer sees prototype, then wants a few fixes quick and delivery
Implementation compromises made to get prototype done quickly/forgets compromises and become part of the system
44

Evolutionary Process Model :


Prototyping

With those problems which might occur,


nevertheless prototyping can be an effective paradigm.

The key is to define the rules of the game at


the beginning:
All stakeholders should agree that the prototype is built to serve as a mechanism for defining requirements. It is then discarded (at least in part), and the actual software is engineered with an eye toward quality.
45

Evolutionary Process Model :


Prototyping

Applicability [Sommerville, 2007]


For small or medium-size interactive systems;
For parts of large systems (e.g. the user interface); For short-lifetime systems.

46

Evolutionary Process Model :


The Spiral Model

The Spiral Model [Sommerville, 2007]


Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. Risks are explicitly assessed and resolved throughout the process.

47

Evolutionary Process Model :


The Spiral Model

48

Evolutionary Process Model :


The Spiral Model

This evolutionary model couples the iterative


nature of prototyping with the controlled and systematic aspects of the waterfall model.

Provides the potential for rapid development of


increasingly more complete versions of the software.

A realistic approach to the development of largescale systems and software.


49

Evolutionary Process Model :


The Spiral Model

Example:
The first circuit around the spiral might result in the development of a product specification Subsequent passes might be used to develop a prototype Then, progressively more sophisticated versions of the software Each pass through the planning region result in adjustments to the project plan
50

Evolutionary Process Model

Can be adapted to apply throughout


the life of the computer software => realistic approach for the development of large-scale systems and software

Allows a software team to represent


iterative and concurrent elements of any of the process models described before.

51

Unified Process

Ivar Jacobson, Grady Booch, James Rumbaugh UP recognizes the importance of customer

Emphasizes the important role of software


architecture --> architecture-centric

communication and streamlined methods for describing the customers view of a system (the use case) --> use-case driven

Suggests a process flow that is iterative and


incremental, providing the evolutionary feel that is essential in modern software development --> iterative and incremental
52

Unified Process
Ela b o r a t io n In c e p t io n

c o n st r u c t io n
Releas e
s oft w are inc rem ent

t r a n sit io n

p r o d u c t io n
53

Unified Process

UML a unified modeling language that


contains a robust notation for the modeling and development of OO systems; de facto standard for OO software development

Unified Process: a framework for objectoriented software engineering using UML

54

Unified Process Phases


UP Phases
In ce p t io n Elab o r at io n Co n st r u ct io n Tr an sit io n Pr o d u ct io n

Workflows Requirements

Analysis

Design

Implem entation

Test Support Iterations #1 #2 #n-1 #n

55

Unified Process : Inception

Communication activity collaborating with stakeholders


Business requirements are identified
Fundamental business requirements Described through a set of preliminary use-cases

Rough architecture is proposed


Tentative outline of major subsystems and the functions and features that populate them

Planning activity
Plan for iterative, incremental project is developed
Identify resources, assesses major risks, define a schedule, establishes a basis for the phases that are to be applied
56

Unified Process : Elaboration

Planning activity
Plans are carefully reviewed to ensure scope, risks and delivery dates remain reasonable

Modeling activity
Refines and expands preliminary use-cases and architectural representation
5 different views of systems (see next slide) Executable architectural baseline -->first cut executable systems
57

Unified Process : Elaboration

Five Different View of the System


Logical View Process View

Use Case View Physical View Development View

58

Unified Process : Construction

Construction activity Code generation (Architectural model --> operational usecases) Requirement and design models are completed; final version of the software increment Necessary and required functions and features (i.e., the release) are implemented in source code Testing Unit test is designed and executed Integration activites are conducted Use-case are used to derive a suite of acceptance test and executed
59

Unified Process : Transition

Testing
Beta testing

Deployment
Create necessary support information (e.g., user manuals, troubleshooting guides, installation procedures)

End of transition phase --> usable software


release
60

Unified Process : Production

Deployment activity
Ongoing use of the software is monitored, support for the operating environment is provided, defect reports and requests for changes are submitted and evaluated

61

Unified Process

Five UP phases do not occur in a sequence, but rather with staggered concurrency A software engineering workflow is distributed across all UP phases
Workflow is analogous to a task set

62

Unified Process Phases - Revisited


UP Phases
In ce p t io n Elab o r at io n Co n st r u ct io n Tr an sit io n Pr o d u ct io n

Workflows Requirements

Analysis

Design

Implem entation

Test Support Iterations #1 #2 #n-1 #n

63

Unified Process Work Product


In ce p t io n p h ase
V isio n d o cu m e n t In it ial u se -case m o d e l In it ial p ro je ct g lo ssary In it ial b u sin e ss case In it ial risk asse ssm e n t . Pro je ct p lan , p h ase s an d it e rat io n s. Bu sin e ss m o d e l, if n e ce ssary . On e o r m o re p ro t o t y p e s
Incept io n

Elab o r at io n p h ase Co n st r u ct io n p h ase


D e sig n m o d e l So f t w are co m p o n e n t s In t e g rat e d so f t w are in cre m e n t Te st p lan an d p ro ce d u re Te st case s Su p p o rt d o cu m e n t at io n u se r m an u als in st allat io n m an u als d e scrip t io n o f cu rre n t in cre m e n t D e liv e re d so f t w are in cre m e n t Be t a t e st re p o rt s Ge n e ral u se r f e e d b ack

Use -case m o d e l Su p p le m e n t ary re q u ire m e n t s in clu d in g n o n -f u n ct io n al A n aly sis m o d e l So f t w are arch it e ct u re D e scrip t io n . Exe cu t ab le arch it e ct u ral p ro t o t y p e . Pre lim in ary d e sig n m o d e l Re v ise d risk list Pro je ct p lan in clu d in g it e rat io n p lan ad ap t e d w o rkf lo w s m ile st o n e s t e ch n ical w o rk p ro d u ct s Pre lim in ary u se r m an u al

Tr an sit io n p h ase

64

Q&A

Anda mungkin juga menyukai