Upload
marlon-boucaud
View
223
Download
0
Embed Size (px)
Citation preview
8/16/2019 Lecture 2 Slides 6
1/14
1
The Best Buddy !!!
2
Modelling the Process and LifeCycle
Software development usually involves thefollowing stages:
• Requirements analysis and definition• System design• Program design• Program implementation (writing the program)• Unit testing• Integration testing• System testing• System delivery• Maintenance
3
What is a process?
• A series of steps involving activities, constraintsand resources that produce an intended output ofsome kind
• Characteristics of a process:
– prescribes all of the major process activities
– uses resources, subject to a set of constraints (such as aschedule), and produces intermediate and final results
– may be composed of sub-processes that are linked insome way.
– each process activity has an entry and exit criteria , so weknow when each activity begins and ends
4
What is a process? (continued )
– activities are organised in a sequence, so that it isclear when one activity is performed relative tothe other activities
– a set of guiding principles that explain the goals
of each activity
– constraints or controls may apply to an activity,
resource or product.
• e.g. budget or schedule may constrain length of time
activity may take
5
Reasons for modelling a process• Common understanding of the activities, resources and
constraints
• Helps in the finding of inconsistencies, redundancies and
omissions
• Help evaluate candidate activities for their
appropriateness in meeting the goals, such as building
high-quality software.
• Every process should be tailored for the special situation
in which it will be used. Building a model helps the
team understand where that tailoring is to occur
6
8/16/2019 Lecture 2 Slides 6
2/14
7 8
Waterfall model
9 10
11 12
Waterfall model: advantages
• Very useful in helping developers layout(very high-level view) what they need todo
• Simplicity – makes it easy to explain tocustomers (who are not familiar withsoftware developers)
– Explicitly states which intermediate productsare necessary in order to begin next stage
8/16/2019 Lecture 2 Slides 6
3/14
13
Waterfall model: disadvantages
• Failure to treat software as a problem solving process.Software is a creation process not a manufacturing
process. Software evolves as the problem isunderstood and the alternatives are evaluated.
• In particular, creation involves trying a little of this or
that, developing and evaluating prototypes, assessing
the feasibility of requirements, contrasting several
designs, learning from failure and eventually settling
on a satisfactory solution to the problem
14
Waterfall model: disadvantages
• It provides no guidance of how each activitytransforms one artefact into another, such asrequirements to design. Thus the model providesno guidance to managers and developers on how tohandle changes to products and activities that arelikely to occur during development.
If requirements change during coding, what changes
do we make to design and code?
15 16
17 18
Software development in reality
8/16/2019 Lecture 2 Slides 6
4/14
19 20
21
Process models
The software development process can help control thethrashing by including activities and sub-processes thatenhance understanding.
Prototyping is such a sub-process; a prototype is a partiallydeveloped product that enables customers anddevelopers to examine some aspect of the proposedsystem and decide it is suitable or appropriate for the
finished product.
22
23
Incremental model
In the incremental model, the system asspecified in the requirements is partitionedinto sub-systems by functionality. Thereleases are defined by beginning with onesmall functional sub-system and then addingfunctionality with each new release.
24
Iterative model
This model delivers a full system at the very beginning and then changes the functionalityof each sub-system with each new release.
8/16/2019 Lecture 2 Slides 6
5/14
25
Phased development model
26
Phased development model
This is used to reduce cycle time. The system is
designed so that it can be delivered in pieces,enabling users to have some functionalitywhile the rest is being developed.
There are usually two systems functioning in parallel: the production system and thedevelopment system
27
Phased development: advantages
• Training can begin on an early release. Thetraining process allows developers toobserve how certain functions are executed,suggesting enhancements for later releases.
In this way, the developers can be very
responsive to the users
28
Phased development: advantages
• Markets can be created early for functionalitythat has never before been offered
• Frequent releases allow developers to fix
unanticipated problems as they are reported
• The development team can focus on different
areas of expertise with different releases.
29 30
8/16/2019 Lecture 2 Slides 6
6/14
31 32
33
Prototyping model
34
Prototyping model
Prototyping can be the basis of an effective process model. This model allows all or part ofthe system to be constructed quickly tounderstand or clarify issues.
The overall goal is to reduce risk and uncertainty
in development.
35 36
8/16/2019 Lecture 2 Slides 6
7/14
37 38
39
Software development in reality
40
Question
Should a development organisationadopt a single process model for allof its software development?
Discuss the pros and cons.
41
Answer
Pros:
• Standardization of training, terminology, thecollection of process metrics, planning andestimation. Works well if the projects arevery similar in nature.
Cons:
• Adopting a single standard process mayunnecessarily constrain some projects fromusing the process that is best suited to the problem and the solution.
42
Question
Suppose your contract with thecustomer specifies that you use a
particular software development process.
How can work be monitored toenforce the use of this process?
8/16/2019 Lecture 2 Slides 6
8/14
43
Answer Conformance to a particular process is often checked withthe use of milestones.
That is, the process is defined in such a way that there aretangible products in the process whose existence indicatesthat particular process steps have been carried out.
For example, when using the waterfall process; Theseintermediate products, or milestones, could be arequirements document, a design document, the codeitself, test documents etc.
The timing of these products indicate whether or not the process was being followed as planned. 44
Answer (continued )
Another way to monitor use of a process is bymeasuring effort. Developers working on the project could be required to report the effortthey spent on different process activities. Bytracking when effort is spent on whichactivities, progress through the steps of the process could be monitored.
45 46
The Rational Unified Process
•a process framework that can be adapted andextended to suit the needs of an adoptingorganization.
•general and comprehensive enough to be used"as is," i.e., out-of-the-box, by many small-to-medium software development organizations,especially those that do not have a very strong process culture.
47
The Rational Unified Process
•Can also modify, adjust, and expand the RUP toaccommodate the specific needs, characteristics,constraints, and history of its organization, culture, anddomain.
•Process should not be followed blindly, generatinguseless work and producing artefacts that are of little
added value.
•Instead, must be made as lean as possible while still
fulfilling its mission to help developers rapidly produce
predictably high-quality software.
48
The RUP Captures SoftwareDevelopment Best Practices
•RUP captures many of modern softwaredevelopment's best practices in a form suitablefor a wide range of projects and organizations:
– Develop software iteratively.
– Manage requirements.
– Use component-based architectures.
– Visually model software.
– Continuously verify software quality.
– Control changes to software.
8/16/2019 Lecture 2 Slides 6
9/14
49 50
51 52
53
Rational Unified Process
As in the text book54
8/16/2019 Lecture 2 Slides 6
10/14
55
Software development in reality
56
Develop Software Iteratively
•Most software teams still use a waterfall process fordevelopment projects, completing in strict sequence
the phases of requirement analysis, design,implementation/integration, and test.
– idles key team members for extended periods
– defers testing until the end of the project lifecycle, when
problems tend to be tough and expensive to resolve
– pose a serious threat to release deadlines
•By contrast, RUP represents an iterative approach
that is superior
57
Manage Requirements
Requirements management is a systematicapproach to eliciting, organising,communicating, and managing the changingrequirements of a software-intensive system orapplication.
58
Continuously Verify Quality
•There is no worker in charge of quality in the RUP
– Because quality is not added to a product by a few people.
•Instead, quality is the responsibility of every member ofthe development organization.
•In software development, our concern about quality isfocused on two areas:
– product quality
– process quality.
59
Continuously Verify Quality(continued )
• Product quality -- The quality of the principal product being produced (the software or system)and all the elements it comprises (for example,components, subsystems, architecture, and so on).
• Process quality -- The degree to which anacceptable process (including measurements and
criteria for quality) was implemented and adhered
to during the manufacturing of the product.
60
Agile Methods
• Agile manifesto focuses on four simplevalue statements, which defines preferences:
– Individuals and interactions over processes andtools
– Working software over comprehensivedocumentation
– Customer collaboration over contractnegotiation
– Respond to changes over following a plan
8/16/2019 Lecture 2 Slides 6
11/14
61
Agile Processes
• Extreme Programming(XP)• Crystal
• Scrum
• Adaptive Software Development
62
Extreme Programming(XP)
• Leveraging the creativity of developers andminimising the amount of administrationoverhead
• Emphasises four characteristics of agility:
– Communication
– Simplicity
– Courage
– Feedback
63
XP (continued)
• Communication
– Continual interchange between customers anddevelopers
• Simplicity
– Encourages developers to select the simplest design orimplementation to address the needs of the customer
• Courage
– Commitment to delivering functionality early and often
• Feedback
– Loops are built into various activities duringdevelopment process64
Crystal
• Collection of approaches based on the notion that
every project needs a different set of policies,
conventions and methodologies
• Suggests the following:
– quality of the projects and processes improves as the
quality of the people involved improves
– Productivity increases through better communication
and frequent delivery because there is less need for
intermediate products
65
Scrum
• Uses iterative development, where each 30-day
iteration is called a “sprint”
• During a “sprint”, implement the product’s backlog of prioritised requirements
• Multiple self-organising and autonomous teams
implement product increments in parallel
• Coordination is done at a brief daily status
meeting called a “scrum”
66
Adaptive Software Development
• has six basic principles:
• A mission that acts as a guideline
• Features are viewed as the crucial point of thecustomer value
• Iteration is important
• Change is embraced
• Fixed delivery times
• Risk is embraced
8/16/2019 Lecture 2 Slides 6
12/14
67
ASD (continued)
• A mission that acts as a guideline
– setting out the destination but not prescribing how to
get there
• Features are viewed as the crucial point of the
customer value
– so the project is organised around building components
to provide features
• Iteration is important
– so redoing is as critical as doing
68
ASD (continued)
• Change is embraced
– so that change is viewed not as a correction but as an
adjustment to the realities of software development
• Fixed delivery times
– force the developers to scope down the requirements
essential for each version produced
• Risk is embraced
– so that the developer tackles the hardest problems first
69
Do you still think this is your Best
Buddy ???? 70
71 72
8/16/2019 Lecture 2 Slides 6
13/14
73 74
75 76
77 78
8/16/2019 Lecture 2 Slides 6
14/14
79 80
81
www.inderscience.com/ijecrm
Then choose Volume 1, Issue 1
Full paper
Can be
downloaded
82
End of Lesson II
Thank you