SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
U it 6Unit-6
Development and EvolutionDevelopment and Evolution
Rapid Software Development
Topics coveredTopics covered
• Rapid application development
• Agile methods
• Extreme programming
• Software prototypingSoftware prototyping
Rapid software developmentp p
• Because of rapidly changing business environments• Because of rapidly changing business environments,
businesses have to respond to new Opportunities and
C i iCompetition.
• Businesses may be willing to accept lower quality
software if rapid delivery of essential functionality is
possible.p
RequirementsRequirements
• Because of the changing environment, it is often
impossible to arrive at a stable, consistent set of
system requirements.
• Therefore a waterfallwaterfall modelmodel of development is
impracticalimpractical and an approach to development based onimpracticalimpractical and an approach to development based on
iterative specification and delivery is the only way
fto deliver software quickly.
Characteristics of RAD processesCharacteristics of RAD processes
• The processes of specification, design and
implementation are concurrentconcurrent. There is no detailed
specification and design documentation is minimized.
• The system is developed in a seriesseries ofof incrementsincrements. End
users evaluate each increment and make proposals forusers evaluate each increment and make proposals for
later increments.
• System user interfaces are usually developed using an
interactiveinteractive developmentdevelopment systemsystem..
An iterative development processAn iterative development process
Define system
deliverables
ValidateBuild systemSpecify systemDesign system
de e ab es
Validate
increment
Build system
increment
Specify system
increment
Design system
architecture
NO
System
complete?
Integrate
increment
Validate
system
Deliver final
system
NO
YES
Advantages of incremental developmentg p
• Accelerated delivery of customer services. Each
increment delivers the highest priority functionality to the
customer.
• User engagement with the system. Users have to be
involved in the development which means the system isinvolved in the development which means the system is
more likely to meet their requirements and the users are
more committed to the systemmore committed to the system.
Problems with incremental developmentp
• Management problems
– Progress can be hard to judge and problems hard to find
because there is no documentation to demonstrate what hasbecause there is no documentation to demonstrate what has
been done.
• Contractual problems
The normal contract may include a specification; without a– The normal contract may include a specification; without a
specification, different forms of contract have to be used.
• Validation problems
– Without a specification, what is the system being tested ?
• Maintenance problems
– Continual change tends to corrupt software structure making it
more expensive to change and evolve to meet new
requirements.
Agile methodsAgile methodsAgile methodsAgile methods
• Dissatisfaction with the overheads involved in design methods led to
the creation of agile methods These methods:the creation of agile methods. These methods:
– Focus on the code rather than the design;
A b d it ti h t ft d l t– Are based on an iterative approach to software development;
– Are intended to deliver working software quickly and evolve this
i kl t t h i i tquickly to meet changing requirements.
• Agile methods are probably best suited to small/medium-sized
b i tbusiness systems.
Principles of agile methodsPrinciples of agile methods
Principle Description
C t i l t Th t h ld b l l i l d th h t thCustomer involvement The customer should be closely involved throughout the
development process. Their role is provide and prioritise new
system requirements and to evaluate the iterations of the system.
Incremental delivery The software is developed in increments with the customery p
specifying the requirements to be included in each increment.
People not process The skills of the development team should be recognised and
exploited. The team should be left to develop their own ways of
working without prescriptive processesworking without prescriptive processes.
Embrace change Expect the system requirements to change and design the system
so that it can accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and inMaintain simplicity Focus on simplicity in both the software being developed and in
the development process used. Wherever possible, actively work
to eliminate complexity from the system.
Problems with agile methodsProblems with agile methods
• Team membersmembers may be unsuitedunsuited to the intense involvement that
characterizes agile methods.
•• PrioritizingPrioritizing changeschanges can be difficult where there are multiplemultiple
k h ldk h ldstakeholdersstakeholders..
• Maintaining simplicity requires extra work.
• Contracts may be a problem as with other approaches to iterative
development.
Extreme programmingExtreme programming
• Perhaps the best-known and most widely used agile method.
• Extreme Programming (XP) takes an ‘extreme’ approach to iterative
development.
– New versions may be built several times per day;
– Increments are delivered to customers every 2 weeks;
– All tests must be run for every build and the build is only
accepted if tests run successfully.
The XP release cycleThe XP release cycle
Extreme programming practices 1p g g p
Incremental planning Requirements are recorded on Story Cards and the Stories to be
included in a release are determined by the time available andy
their relative priority. The developers break these Stories into
development ‘Tasks’.
Small Releases The minimal useful set of functionality that provides business
value is developed first Releases of the system are frequent andvalue is developed first. Releases of the system are frequent and
incrementally add functionality to the first release.
Simple Design Enough design is carried out to meet the current requirements
and no more.
Test first development An automated unit test framework is used to write tests for a new
piece of functionality before that functionality itself is
implemented.
Refactoring All developers are expected to refactor the code continuously asRefactoring All developers are expected to refactor the code continuously as
soon as possible code improvements are found. This keeps the
code simple and maintainable.
Extreme programming practices 2p g g p
Pair Programming Developers work in pairs, checking each otherÕs work and
providing the support to always do a good job.
Collective Ownership The pairs of developers work on all areas of the system, so that
no islands of expertise develop and all the developers own all the
code. Anyone can change anything.
Continuous Integration As soon as work on a task is complete it is integrated into theContinuous Integration As soon as work on a task is complete it is integrated into the
whole system. After any such integration, all the unit tests in the
system must pass.
Sustainable pace Large amounts of over-time are not considered acceptable as the
net effect is often to reduce code quality and medium termnet effect is often to reduce code quality and medium term
productivity
On-site Customer A representative of the end-user of the system (the Customer)
should be available full time for the use of the XP team. In an
extreme programming process the customer is a member of theextreme programming process, the customer is a member of the
development team and is responsible for bringing system
requirements to the team for implementation.
Requirements scenariosRequirements scenarios
• In XP, user requirements are expressed as scenariosscenarios or useruser
storiesstories..
• These are written on cardscards and the development team break them
d i i l i k Th k h b i fdown into implementation tasks. These tasks are the basis of
schedule and cost estimates.
Th t h th t i f i l i i th t l• The customer chooses the stories for inclusion in the next release
based on their priorities and the schedule estimates.
Story card for document downloadingStory card for document downloading
Downloading and printing an article
First, you select the article that you want from a displayed list. You
then have to tell the system how you will pay for it - this can either
be through a subscription, through a company account or by credit
cardcard.
After this, you get a copyright form from the system to fill in and,
when you have submitted this, the article you want is downloadedy , y
onto your computer.
You then choose a printer and a copy of the article is printed. You
tell the system if printing has been successfultell the system if printing has been successful.
If the article is a print-only article, you can’t keep the PDF version
so it is automatically deleted from your computer .y y p
Testing in XPTesting in XP
• Test-first development.
• Incremental test development from scenarios.
• User involvement in test development and validation• User involvement in test development and validation.
• Automated test harnesses are used to run all component
tests each time that a new release is built.
Task cards for document downloading
Test case descriptionTest case description
Test 4: Test cr edit card validityTest 4: Test cr edit card validity
Input:
Astring representing the credit card number and two integers representing
the month and year when the card expires
T tTests:
Check that all bytes in the string are digits
Check that the month lies between 1 and 12 and the
year is greater than or equal to the current year .
Using the first 4 digits of the credit card number ,g g ,
check that the card issuer is valid by looking up the
card issuer table. Check credit card validity by submitting the card
number and expiry date information to the card
issuer
Output:Output:
OK or error message indicating that the card is invalid
Test-first developmentTest first development
• Writing tests before code clarifies the requirements to be
implemented.
• Tests are written as programs rather than data so that they can be
d i ll Th i l d h k h i hexecuted automatically. The test includes a check that it has
executed correctly.
All i d t t t ti ll h• All previous and new tests are automatically run when new
functionality is added. Thus checking that the new functionality
has not introduced errorshas not introduced errors.
Pair programmingPair programming
• In XP, programmers work in pairs, sitting together to develop code.
• This helps develop common ownership of code and spreads
knowledge across the team.
It i f l i h li f d i• It serves as an informal review process as each line of code is
looked at by more than 1 person.
• It encourages refactoring as the whole team can benefit from this• It encourages refactoring as the whole team can benefit from this.
• Measurements suggest that development productivity with pair
programming is similar to that of two people working independentlyprogramming is similar to that of two people working independently.
Rapid application developmentRapid application development
• Agile methods have received a lot of attention but other• Agile methods have received a lot of attention but other
approaches to rapid application development have been
d fused for many years.
• These are designed to develop data-intensive business
applications and rely on programming and presenting
information from a database.
RAD environment toolsRAD environment tools
• Database programming languageDatabase programming language
• Interface generator
• Links to office applicationsLinks to office applications
• Report generators
A RAD environmentA RAD environment
Interface generationInterface generation
• Many applications are based around complex forms andy pp p
developing these forms manually is a time-consuming
activity.
RAD i t i l d t f ti• RAD environments include support for screen generation
including:
– Interactive form definition using drag and drop techniques;
– Form linking where the sequence of forms to be presented is
specified;
– Form verification where allowed ranges in form fields is defined.g
Visual programmingVisual programming
• Scripting languages such as Visual Basic support visual
programming where the prototype is developed by
creating a user interface from standard items and
associating components with these items
• A large library of components exists to support this type
of development
• These may be tailored to suit the specific applicationThese may be tailored to suit the specific application
requirements
Visual programming with reuseVisual programming with reuse
COTS reuseCOTS reuse
• An effective approach to rapid development is to
configure and link existing off the shelf systems.
• For example, a requirements management system couldp , q g y
be built by using:
– A database to store requirements;– A database to store requirements;
– A word processor to capture requirements and format
treports;
– A spreadsheet for traceability management;
Compound documentsCompound documents
• For some applications, a prototype can be created by
developing a compound documentdeveloping a compound document.
• This is a document with active elements (such as a
spreadsheet) that allow user computations.
• Each active element has an associated application which
is invoked when that element is selected.
• The document itself is the integrator for the different• The document itself is the integrator for the different
applications.
Application linkingApplication linking
Software prototypingSoftware prototyping
• A prototype is an initial version of a system used to
demonstrate concepts and try out design options.
• A prototype can be used in:
– The requirements engineering process to help with
requirements elicitation and validation;requirements elicitation and validation;
– In design processes to explore options and develop a
UI design;UI design;
– In the testing process to run back-to-back tests.
Benefits of prototypingBenefits of prototyping
• Improved system usability• Improved system usability.
• A closer match to users’ real needs.
• Improved design quality.
• Improved maintainability.Improved maintainability.
• Reduced development effort.
Back to back testingBack to back testing
The prototyping processThe prototyping process
Throw-away prototypesThrow away prototypes
• Prototypes should be discarded after development as
they are not a good basis for a production system:
– It may be impossible to tune the system to meet non-
functional requirements;
Prototypes are normally undocumented;– Prototypes are normally undocumented;
– The prototype structure is usually degraded through
rapid change;
– The prototype probably will not meet normal
organisational quality standards.
Software Evolution
Topics coveredTopics covered
• Program evolution dynamics
• Software maintenance
E l ti• Evolution processes
L t l ti• Legacy system evolution
Software changeSoftware change
• Software change is inevitableg
– New requirements emerge when the software is used;
– The business environment changes;
Errors must be repaired;– Errors must be repaired;
– New computers and equipment is added to the system;
– The performance or reliability of the system may have to be
i dimproved.
• A key problem for organisations is implementing and
managing change to their existing software systems.g g g g y
Importance of evolutionImportance of evolution
• Organisations have huge investments in their software• Organisations have huge investments in their software
systems - they are critical business assets.
• To maintain the value of these assets to the business,
they must be changed and updated.
• The majority of the software budget in large companies
is devoted to evolving existing software rather thanis devoted to evolving existing software rather than
developing new software.
Spiral model of evolutionSpiral model of evolution
Program evolution dynamics
• Program evolution dynamics is the study of the
Program evolution dynamics
• Program evolution dynamics is the study of the
processes of system change.
• After major empirical studies, Lehman and Belady
proposed that there were a number of ‘laws’ which
applied to all systems as they evolved.
Lehman’s lawsLehman s laws
Law Description
Continuing change A program that is used in a real-world environment necessarily
must change or become progressively less useful in that
environment.
Increasing complexity As an evolving program changes, its structure tends to become
more complex. Extra resources must be devoted to preserving
d i lif i th t tand simplifying the structure.
Large program evolution Program evolution is a self-regulating process. System
attributes such as size, time between releases and the number of
reported errors is approximately invariant for each system
release.
Organisational stability Over a programÕs lifetime, its rate of development is
approximately constant and independent of the resources
devoted to system development.
Conservation of
familiarity
Over the lifetime of a system, the incremental change in each
release is approximately constant.
Continuing growth The functionality offered by systems has to continually increase
to maintain user satisfaction.
Declining quality The quality of systems will appear to be declining unless they
are adapted to changes in their operational environment.
Feedback system Evolution processes incorporate multi agent multi loopFeedback system Evolution processes incorporate multi-agent, multi-loop
feedback systems and you have to treat them as feedback
systems to achieve significant product improvement.
Software maintenance
• Modifying a program after it has been put into use
Software maintenance
Modifying a program after it has been put into use.
• Changes are implemented by modifying existing components and
adding new components to the systemadding new components to the system.
Maintenance is inevitable
• The system requirements are likely to change
while the system is being developed because
Maintenance is inevitable
while the system is being developed because
the environment is changing.
• Systems MUST be maintained therefore if they• Systems MUST be maintained therefore if they
are to remain useful in an environment.
Types of maintenance
• Maintenance to repair softwaresoftware faultsfaults
Ch i t t tt d fi i id fi i i i th t it
Types of maintenance
– Changing a system to correctcorrect deficienciesdeficiencies in the way meets its
requirements.
M i t t d t ft t diff t titi i ti t• Maintenance to adapt software to a different operatingoperating environmentenvironment
– Changing a system so that it operates in a different environment
( t OS t ) f it i iti l i l t ti(computer, OS, etc.) from its initial implementation.
• Maintenance to add to or modify the system’s functionality
– Modifying the system to satisfy new requirements.
Distribution of maintenance effort
Fault repair
(17%)
Functionality
addition or
Software
addition or
modification
(65%)
Software
adaptation
(18%)
Maintenance costs
• Usually greater than development costs
Maintenance costs
• Affected by both technicaltechnical and nonnon--technicaltechnical
factorsfactors..
• Ageing software can have high support costs
(e.g. old languages, compilers etc.).
Development/maintenance costsDevelopment/maintenance costs
Maintenance cost factors
• Team stability
– Maintenance costs are reduced if the same staff are involved with
Maintenance cost factors
– Maintenance costs are reduced if the same staff are involved with
them for some time.
• Contractual responsibilityp y
– The developers of a system may have no contractual responsibility for
maintenance so there is no incentive to design for future change.
• Staff skills
– Maintenance staff are often inexperienced and have limited domain
knowledge.
• Program age and structure
– As programs age, their structure is degraded and they become harder
to understand and change.
Maintenance predictionMaintenance prediction
• Maintenance prediction is concerned with assessing which parts of
the system maymay causecause problemsproblems and have high maintenance costs
Maintenance predictiona te a ce p ed ct o
What parts of the system
will be the most expensive
to maintain?What parts of the system are
Predicting
maintainability
to maintain?What parts of the system are
most likely to be affected by
change requests?
y
What will be the lifetime
maintenance costs of this
Predicting system
changes
Predicting
maintenance
costs
maintenance costs of this
system?
What will be the costs of
maintaining this system
over the next year?
How many change
requests can be
expected?
Process metricsProcess metrics
• Process measurements may be used to assess maintainabilityProcess measurements may be used to assess maintainability
– Number of requests for corrective maintenance;
Average time required for impact analysis;– Average time required for impact analysis;
– Average time taken to implement a change request;
N b f t t di h t– Number of outstanding change requests.
• If any or all of these is increasing, this may indicate a decline in
i t i bilitmaintainability.
Evolution processesEvolution processes
• Evolution processes depend onEvolution processes depend on
– The type of software being maintained;
The development processes used;– The development processes used;
– The skills and experience of the people involved.
P l f h th d i f t l ti Ch• Proposals for change are the driver for system evolution. Change
identification and evolution continue throughout the system lifetime.
The system evolution processThe system evolution process
Release
planning
Change
implementa tion
System
release
Impact
analysis
Change
requests
Platform
adaptation
System
enhancement
Fault repair
Change implementationChange implementation
Requirements
updating
Software
development
Requirements
analysis
Proposed
changes updating developmentanalysischanges
Urgent change requestsUrgent change requests
• Urgent changes may have to be implemented without going through
all stages of the software engineering processall stages of the software engineering process
– If a serious system fault has to be repaired;
If h t th t ’ i t ( OS d )– If changes to the system’s environment (e.g. an OS upgrade)
have unexpected effects;
If th b i h th t i id– If there are business changes that require a very rapid response
(e.g. the release of a competing product).
Emergency repairEmergency repair
System Re-engineeringSystem Re engineering
• Re-structuring or re-writing part or all of aRe structuring or re writing part or all of a
legacy system without changing its
functionality.y
Advantages of reengineeringAdvantages of reengineering
• Reduced risk• Reduced risk
– There is a high risk in new software development.
There may be development problems, staffing
problems and specification problems.
• Reduced cost
The cost of re engineering is often significantly less– The cost of re-engineering is often significantly less
than the costs of developing new software.
Reengineering process activitiesReengineering process activities
• Source code translation
C t d t l– Convert code to a new language.
• Reverse engineering
– Analyse the program to understand it;
• Program structure improvement
– Restructure automatically for understandability;
• Program modularisation
– Reorganise the program structure;
• Data reengineering
– Clean-up and restructure system data.
The re-engineering processThe re engineering process
Legacy system evolutionLegacy system evolution
• Organisations that rely on legacy systems must choose a strategy
for evolving these systemsfor evolving these systems
– Scrap the system completely and modify business processes so
that it is no longer required;that it is no longer required;
– Continue maintaining the system;
T f th t b i i t i it– Transform the system by re-engineering to improve its
maintainability;
R l th t ith t– Replace the system with a new system.
• The strategy chosen should depend on the system quality and its
b i lbusiness value.
Legacy system categoriesLegacy system categories
• Low quality, low business value
– These systems should be scrapped– These systems should be scrapped.
• Low-quality, high-business value
These make an important business contribution but are– These make an important business contribution but are
expensive to maintain. Should be re-engineered or replaced if a
suitable system is availablesuitable system is available.
• High-quality, low-business value
Replace with COTS scrap completely or maintain– Replace with COTS, scrap completely or maintain.
• High-quality, high business value
C ti i ti i l t i t– Continue in operation using normal system maintenance.
System quality and business valuey q y
Business value assessmentBusiness value assessment
• Assessment should take different viewpoints into accountAssessment should take different viewpoints into account
– System end-users;
Business customers;– Business customers;
– Line managers;
IT– IT managers;
– Senior managers.
• Interview different stakeholders and collate results.
System quality assessmentSystem quality assessment
• Business process assessmentBusiness process assessment
– How well does the business process support the current goals of
the business?the business?
• Environment assessment
How effective is the system’s environment and how expensive is– How effective is the system s environment and how expensive is
it to maintain?
• Application assessment• Application assessment
– What is the quality of the application software system?
Business process assessmentBusiness process assessment
• Use a viewpoint-oriented approach and seek answers from system
stakeholdersstakeholders
– Is there a defined process model and is it followed?
– Do different parts of the organisation use different processes for thep g p
same function?
– How has the process been adapted?
– What are the relationships with other business processes and are these
necessary?
– Is the process effectively supported by the legacy application software?
• Example - a travel ordering system may have a low business value because
f th id d f b b d d iof the widespread use of web-based ordering.
Environment assessment 1Environment assessment 1
Factor QuestionsFactor Questions
Supplier
stability
Is the supplier is still in existence? Is the supplier financially
stable and likely to continue in existence? If the supplier is
no longer in business, does someone else maintain theg
systems?
Failure rate Does the hardware have a high rate of reported failures?
Does the support software crash and force system restarts?
Age How old is the hardware and software? The older the
hardware and support software, the more obsolete it will be.
It may still function correctly but there could be significant
economic and business benefits to moving to more modern
systems.
Performance Is the performance of the system adequate? Do performance
problems have a significant effect on system users?
Environment assessment 2Environment assessment 2
Support
requirements
What local support is required by the hardware and
software? If there are high costs associated with this support,
it may be worth considering system replacement.
Maintenance
costs
What are the costs of hardware maintenance and suppo rt
software licences? Older hardware may have higher
maintenance costs than modern systems Support softwaremaintenance costs than modern systems. Support software
may have high annual licensing costs.
Interoperability Are there problems interfacing the system to other systems?
Can compilers etc. be used with current versions of theCan compilers etc. be used with current versions of the
operating system? Is hardware emulation required?
Application assessment 1Application assessment 1
Factor Questions
Understandability How difficult is it to understand the source code of the
current system? How complex are the control structures
that are used? Do variables have meaningful names thatthat are used? Do variables have meaningful names that
reflect their function?
Documentation What system documentation is available? Is the
documentation complete, consistent and up-to-date?
Data Is there an explicit data model for the system? To what
extent is data duplicated in different files? Is the data used
by the system up-to-date and consistent?
Performance Is the performance of the application adequate? DoPerformance Is the performance of the application adequate? Do
performance problems have a significant effect on system
users?
Application assessment 2Application assessment 2
Programming
language
Are modern compilers available for the programming
language used to develop the system? Is the programming
language still used for new system development?
C fi ti A ll i f ll t f th t d bConfiguration
management
Are all versions of all parts of the system managed by a
configuration management system? Is there an explicit
description of the versions of components that are used in
the current system?
Test data Does test data for the system exist? Is there a record of
regression tests carried out when new features have been
added to the system?
P l kill A h l il bl h h h kill i iPersonnel skills Are there people available who have the skills to maintain
the application? Are there only a limited number of people
who understand the system?
Chapter Review Questionsp Q
1. Explain Step involved for Rapid Application Development
( )(RAD)in detail.
2. Explain extreme programming process in detail with example.
3. Discuss agile method of software development in detail.
4. Define prototyping? Explain with example.
5. Discuss Lehman’s laws of software evolution.
6. Explain evolution process with illustration.
7. Discuss different types of software maintenance.
8. Explain the Re-engineering process in detail.

Más contenido relacionado

La actualidad más candente

Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Dhivyaa C.R
 
10. Software testing overview
10. Software testing overview10. Software testing overview
10. Software testing overviewghayour abbas
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4Mohammed Romi
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
SWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineeringghayour abbas
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architectureGang Tao
 
What is system level analysis
What is system level analysisWhat is system level analysis
What is system level analysisCAST
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06Luktalja
 
SE18_Lec 00_Course Outline
SE18_Lec 00_Course OutlineSE18_Lec 00_Course Outline
SE18_Lec 00_Course OutlineAmr E. Mohamed
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11Siddharth Ayer
 
SE18_Lec 01_Introduction to Software Engineering
SE18_Lec 01_Introduction to Software EngineeringSE18_Lec 01_Introduction to Software Engineering
SE18_Lec 01_Introduction to Software EngineeringAmr E. Mohamed
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7mohammad hossein Jalili
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
Ch 4 software engineering
Ch 4 software engineeringCh 4 software engineering
Ch 4 software engineeringMohammed Romi
 
SE2_Lec 23_Introduction to Cloud Computing
SE2_Lec 23_Introduction to Cloud ComputingSE2_Lec 23_Introduction to Cloud Computing
SE2_Lec 23_Introduction to Cloud ComputingAmr E. Mohamed
 

La actualidad más candente (20)

Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
 
10. Software testing overview
10. Software testing overview10. Software testing overview
10. Software testing overview
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4
 
Sa03 tactics
Sa03 tacticsSa03 tactics
Sa03 tactics
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
SWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineering
 
Sda 3
Sda   3Sda   3
Sda 3
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
What is system level analysis
What is system level analysisWhat is system level analysis
What is system level analysis
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06
 
SE18_Lec 00_Course Outline
SE18_Lec 00_Course OutlineSE18_Lec 00_Course Outline
SE18_Lec 00_Course Outline
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
 
SE18_Lec 01_Introduction to Software Engineering
SE18_Lec 01_Introduction to Software EngineeringSE18_Lec 01_Introduction to Software Engineering
SE18_Lec 01_Introduction to Software Engineering
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERINGSOFTWARE ENGINEERING
SOFTWARE ENGINEERING
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Ch 4 software engineering
Ch 4 software engineeringCh 4 software engineering
Ch 4 software engineering
 
SE2_Lec 23_Introduction to Cloud Computing
SE2_Lec 23_Introduction to Cloud ComputingSE2_Lec 23_Introduction to Cloud Computing
SE2_Lec 23_Introduction to Cloud Computing
 
Slides chapters 6-7
Slides chapters 6-7Slides chapters 6-7
Slides chapters 6-7
 
Ch7
Ch7Ch7
Ch7
 

Similar a Unit 6- Development Evolution model

agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.pptAteeqaKokab1
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process ModelsAhsan Rahim
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptxAmna Ch
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptDurga Prasad
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzAhmadSajjad34
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfyedej15330
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxTangZhiSiang
 
Ais development strategy
Ais development strategyAis development strategy
Ais development strategyRahat Chowdhury
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering processRaheel Aslam
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Raj vardhan
 

Similar a Unit 6- Development Evolution model (20)

agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.ppt
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
Agile software process
Agile software processAgile software process
Agile software process
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
Agiel sw development
Agiel sw developmentAgiel sw development
Agiel sw development
 
Ch17
Ch17Ch17
Ch17
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptx
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
Ais development strategy
Ais development strategyAis development strategy
Ais development strategy
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
Agile process
Agile processAgile process
Agile process
 
Lecture 3 se
Lecture 3 seLecture 3 se
Lecture 3 se
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 

Más de arvind pandey

ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdfADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdfarvind pandey
 
Internet service provider and network backbone
Internet service provider and network backboneInternet service provider and network backbone
Internet service provider and network backbonearvind pandey
 
Core java complete ppt(note)
Core java  complete  ppt(note)Core java  complete  ppt(note)
Core java complete ppt(note)arvind pandey
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering arvind pandey
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes arvind pandey
 
Chapter1 computer introduction note
Chapter1  computer introduction note Chapter1  computer introduction note
Chapter1 computer introduction note arvind pandey
 
computer network fundamental note
computer network fundamental note computer network fundamental note
computer network fundamental note arvind pandey
 

Más de arvind pandey (12)

ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdfADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
ADBMS ALL 2069-73 [CSITauthority.blogspot.com].pdf
 
Syllabus.pdf
Syllabus.pdfSyllabus.pdf
Syllabus.pdf
 
Network entites
Network entitesNetwork entites
Network entites
 
Transport layer
Transport layerTransport layer
Transport layer
 
Internet service provider and network backbone
Internet service provider and network backboneInternet service provider and network backbone
Internet service provider and network backbone
 
Core java complete ppt(note)
Core java  complete  ppt(note)Core java  complete  ppt(note)
Core java complete ppt(note)
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes
 
Chapter1 computer introduction note
Chapter1  computer introduction note Chapter1  computer introduction note
Chapter1 computer introduction note
 
computer network fundamental note
computer network fundamental note computer network fundamental note
computer network fundamental note
 
I have a dream
I have a dreamI have a dream
I have a dream
 
brain.ppts
brain.pptsbrain.ppts
brain.ppts
 

Último

Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Communityprachaibot
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdfCaalaaAbdulkerim
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Erbil Polytechnic University
 
signals in triangulation .. ...Surveying
signals in triangulation .. ...Surveyingsignals in triangulation .. ...Surveying
signals in triangulation .. ...Surveyingsapna80328
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfManish Kumar
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfBalamuruganV28
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfalene1
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.elesangwon
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdfsahilsajad201
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdfPaper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdfNainaShrivastava14
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solidnamansinghjarodiya
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdfHafizMudaserAhmad
 

Último (20)

Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Community
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdf
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
 
signals in triangulation .. ...Surveying
signals in triangulation .. ...Surveyingsignals in triangulation .. ...Surveying
signals in triangulation .. ...Surveying
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdf
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdf
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdfPaper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solid
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf
 

Unit 6- Development Evolution model

  • 1. U it 6Unit-6 Development and EvolutionDevelopment and Evolution Rapid Software Development
  • 2. Topics coveredTopics covered • Rapid application development • Agile methods • Extreme programming • Software prototypingSoftware prototyping
  • 3. Rapid software developmentp p • Because of rapidly changing business environments• Because of rapidly changing business environments, businesses have to respond to new Opportunities and C i iCompetition. • Businesses may be willing to accept lower quality software if rapid delivery of essential functionality is possible.p
  • 4. RequirementsRequirements • Because of the changing environment, it is often impossible to arrive at a stable, consistent set of system requirements. • Therefore a waterfallwaterfall modelmodel of development is impracticalimpractical and an approach to development based onimpracticalimpractical and an approach to development based on iterative specification and delivery is the only way fto deliver software quickly.
  • 5. Characteristics of RAD processesCharacteristics of RAD processes • The processes of specification, design and implementation are concurrentconcurrent. There is no detailed specification and design documentation is minimized. • The system is developed in a seriesseries ofof incrementsincrements. End users evaluate each increment and make proposals forusers evaluate each increment and make proposals for later increments. • System user interfaces are usually developed using an interactiveinteractive developmentdevelopment systemsystem..
  • 6. An iterative development processAn iterative development process Define system deliverables ValidateBuild systemSpecify systemDesign system de e ab es Validate increment Build system increment Specify system increment Design system architecture NO System complete? Integrate increment Validate system Deliver final system NO YES
  • 7. Advantages of incremental developmentg p • Accelerated delivery of customer services. Each increment delivers the highest priority functionality to the customer. • User engagement with the system. Users have to be involved in the development which means the system isinvolved in the development which means the system is more likely to meet their requirements and the users are more committed to the systemmore committed to the system.
  • 8. Problems with incremental developmentp • Management problems – Progress can be hard to judge and problems hard to find because there is no documentation to demonstrate what hasbecause there is no documentation to demonstrate what has been done. • Contractual problems The normal contract may include a specification; without a– The normal contract may include a specification; without a specification, different forms of contract have to be used. • Validation problems – Without a specification, what is the system being tested ? • Maintenance problems – Continual change tends to corrupt software structure making it more expensive to change and evolve to meet new requirements.
  • 9. Agile methodsAgile methodsAgile methodsAgile methods • Dissatisfaction with the overheads involved in design methods led to the creation of agile methods These methods:the creation of agile methods. These methods: – Focus on the code rather than the design; A b d it ti h t ft d l t– Are based on an iterative approach to software development; – Are intended to deliver working software quickly and evolve this i kl t t h i i tquickly to meet changing requirements. • Agile methods are probably best suited to small/medium-sized b i tbusiness systems.
  • 10. Principles of agile methodsPrinciples of agile methods Principle Description C t i l t Th t h ld b l l i l d th h t thCustomer involvement The customer should be closely involved throughout the development process. Their role is provide and prioritise new system requirements and to evaluate the iterations of the system. Incremental delivery The software is developed in increments with the customery p specifying the requirements to be included in each increment. People not process The skills of the development team should be recognised and exploited. The team should be left to develop their own ways of working without prescriptive processesworking without prescriptive processes. Embrace change Expect the system requirements to change and design the system so that it can accommodate these changes. Maintain simplicity Focus on simplicity in both the software being developed and inMaintain simplicity Focus on simplicity in both the software being developed and in the development process used. Wherever possible, actively work to eliminate complexity from the system.
  • 11. Problems with agile methodsProblems with agile methods • Team membersmembers may be unsuitedunsuited to the intense involvement that characterizes agile methods. •• PrioritizingPrioritizing changeschanges can be difficult where there are multiplemultiple k h ldk h ldstakeholdersstakeholders.. • Maintaining simplicity requires extra work. • Contracts may be a problem as with other approaches to iterative development.
  • 12. Extreme programmingExtreme programming • Perhaps the best-known and most widely used agile method. • Extreme Programming (XP) takes an ‘extreme’ approach to iterative development. – New versions may be built several times per day; – Increments are delivered to customers every 2 weeks; – All tests must be run for every build and the build is only accepted if tests run successfully.
  • 13. The XP release cycleThe XP release cycle
  • 14. Extreme programming practices 1p g g p Incremental planning Requirements are recorded on Story Cards and the Stories to be included in a release are determined by the time available andy their relative priority. The developers break these Stories into development ‘Tasks’. Small Releases The minimal useful set of functionality that provides business value is developed first Releases of the system are frequent andvalue is developed first. Releases of the system are frequent and incrementally add functionality to the first release. Simple Design Enough design is carried out to meet the current requirements and no more. Test first development An automated unit test framework is used to write tests for a new piece of functionality before that functionality itself is implemented. Refactoring All developers are expected to refactor the code continuously asRefactoring All developers are expected to refactor the code continuously as soon as possible code improvements are found. This keeps the code simple and maintainable.
  • 15. Extreme programming practices 2p g g p Pair Programming Developers work in pairs, checking each otherÕs work and providing the support to always do a good job. Collective Ownership The pairs of developers work on all areas of the system, so that no islands of expertise develop and all the developers own all the code. Anyone can change anything. Continuous Integration As soon as work on a task is complete it is integrated into theContinuous Integration As soon as work on a task is complete it is integrated into the whole system. After any such integration, all the unit tests in the system must pass. Sustainable pace Large amounts of over-time are not considered acceptable as the net effect is often to reduce code quality and medium termnet effect is often to reduce code quality and medium term productivity On-site Customer A representative of the end-user of the system (the Customer) should be available full time for the use of the XP team. In an extreme programming process the customer is a member of theextreme programming process, the customer is a member of the development team and is responsible for bringing system requirements to the team for implementation.
  • 16. Requirements scenariosRequirements scenarios • In XP, user requirements are expressed as scenariosscenarios or useruser storiesstories.. • These are written on cardscards and the development team break them d i i l i k Th k h b i fdown into implementation tasks. These tasks are the basis of schedule and cost estimates. Th t h th t i f i l i i th t l• The customer chooses the stories for inclusion in the next release based on their priorities and the schedule estimates.
  • 17. Story card for document downloadingStory card for document downloading Downloading and printing an article First, you select the article that you want from a displayed list. You then have to tell the system how you will pay for it - this can either be through a subscription, through a company account or by credit cardcard. After this, you get a copyright form from the system to fill in and, when you have submitted this, the article you want is downloadedy , y onto your computer. You then choose a printer and a copy of the article is printed. You tell the system if printing has been successfultell the system if printing has been successful. If the article is a print-only article, you can’t keep the PDF version so it is automatically deleted from your computer .y y p
  • 18. Testing in XPTesting in XP • Test-first development. • Incremental test development from scenarios. • User involvement in test development and validation• User involvement in test development and validation. • Automated test harnesses are used to run all component tests each time that a new release is built.
  • 19. Task cards for document downloading
  • 20. Test case descriptionTest case description Test 4: Test cr edit card validityTest 4: Test cr edit card validity Input: Astring representing the credit card number and two integers representing the month and year when the card expires T tTests: Check that all bytes in the string are digits Check that the month lies between 1 and 12 and the year is greater than or equal to the current year . Using the first 4 digits of the credit card number ,g g , check that the card issuer is valid by looking up the card issuer table. Check credit card validity by submitting the card number and expiry date information to the card issuer Output:Output: OK or error message indicating that the card is invalid
  • 21. Test-first developmentTest first development • Writing tests before code clarifies the requirements to be implemented. • Tests are written as programs rather than data so that they can be d i ll Th i l d h k h i hexecuted automatically. The test includes a check that it has executed correctly. All i d t t t ti ll h• All previous and new tests are automatically run when new functionality is added. Thus checking that the new functionality has not introduced errorshas not introduced errors.
  • 22. Pair programmingPair programming • In XP, programmers work in pairs, sitting together to develop code. • This helps develop common ownership of code and spreads knowledge across the team. It i f l i h li f d i• It serves as an informal review process as each line of code is looked at by more than 1 person. • It encourages refactoring as the whole team can benefit from this• It encourages refactoring as the whole team can benefit from this. • Measurements suggest that development productivity with pair programming is similar to that of two people working independentlyprogramming is similar to that of two people working independently.
  • 23. Rapid application developmentRapid application development • Agile methods have received a lot of attention but other• Agile methods have received a lot of attention but other approaches to rapid application development have been d fused for many years. • These are designed to develop data-intensive business applications and rely on programming and presenting information from a database.
  • 24. RAD environment toolsRAD environment tools • Database programming languageDatabase programming language • Interface generator • Links to office applicationsLinks to office applications • Report generators
  • 25. A RAD environmentA RAD environment
  • 26. Interface generationInterface generation • Many applications are based around complex forms andy pp p developing these forms manually is a time-consuming activity. RAD i t i l d t f ti• RAD environments include support for screen generation including: – Interactive form definition using drag and drop techniques; – Form linking where the sequence of forms to be presented is specified; – Form verification where allowed ranges in form fields is defined.g
  • 27. Visual programmingVisual programming • Scripting languages such as Visual Basic support visual programming where the prototype is developed by creating a user interface from standard items and associating components with these items • A large library of components exists to support this type of development • These may be tailored to suit the specific applicationThese may be tailored to suit the specific application requirements
  • 28. Visual programming with reuseVisual programming with reuse
  • 29. COTS reuseCOTS reuse • An effective approach to rapid development is to configure and link existing off the shelf systems. • For example, a requirements management system couldp , q g y be built by using: – A database to store requirements;– A database to store requirements; – A word processor to capture requirements and format treports; – A spreadsheet for traceability management;
  • 30. Compound documentsCompound documents • For some applications, a prototype can be created by developing a compound documentdeveloping a compound document. • This is a document with active elements (such as a spreadsheet) that allow user computations. • Each active element has an associated application which is invoked when that element is selected. • The document itself is the integrator for the different• The document itself is the integrator for the different applications.
  • 32. Software prototypingSoftware prototyping • A prototype is an initial version of a system used to demonstrate concepts and try out design options. • A prototype can be used in: – The requirements engineering process to help with requirements elicitation and validation;requirements elicitation and validation; – In design processes to explore options and develop a UI design;UI design; – In the testing process to run back-to-back tests.
  • 33. Benefits of prototypingBenefits of prototyping • Improved system usability• Improved system usability. • A closer match to users’ real needs. • Improved design quality. • Improved maintainability.Improved maintainability. • Reduced development effort.
  • 34. Back to back testingBack to back testing
  • 35. The prototyping processThe prototyping process
  • 36. Throw-away prototypesThrow away prototypes • Prototypes should be discarded after development as they are not a good basis for a production system: – It may be impossible to tune the system to meet non- functional requirements; Prototypes are normally undocumented;– Prototypes are normally undocumented; – The prototype structure is usually degraded through rapid change; – The prototype probably will not meet normal organisational quality standards.
  • 38. Topics coveredTopics covered • Program evolution dynamics • Software maintenance E l ti• Evolution processes L t l ti• Legacy system evolution
  • 39. Software changeSoftware change • Software change is inevitableg – New requirements emerge when the software is used; – The business environment changes; Errors must be repaired;– Errors must be repaired; – New computers and equipment is added to the system; – The performance or reliability of the system may have to be i dimproved. • A key problem for organisations is implementing and managing change to their existing software systems.g g g g y
  • 40. Importance of evolutionImportance of evolution • Organisations have huge investments in their software• Organisations have huge investments in their software systems - they are critical business assets. • To maintain the value of these assets to the business, they must be changed and updated. • The majority of the software budget in large companies is devoted to evolving existing software rather thanis devoted to evolving existing software rather than developing new software.
  • 41. Spiral model of evolutionSpiral model of evolution
  • 42. Program evolution dynamics • Program evolution dynamics is the study of the Program evolution dynamics • Program evolution dynamics is the study of the processes of system change. • After major empirical studies, Lehman and Belady proposed that there were a number of ‘laws’ which applied to all systems as they evolved.
  • 43. Lehman’s lawsLehman s laws Law Description Continuing change A program that is used in a real-world environment necessarily must change or become progressively less useful in that environment. Increasing complexity As an evolving program changes, its structure tends to become more complex. Extra resources must be devoted to preserving d i lif i th t tand simplifying the structure. Large program evolution Program evolution is a self-regulating process. System attributes such as size, time between releases and the number of reported errors is approximately invariant for each system release. Organisational stability Over a programÕs lifetime, its rate of development is approximately constant and independent of the resources devoted to system development. Conservation of familiarity Over the lifetime of a system, the incremental change in each release is approximately constant. Continuing growth The functionality offered by systems has to continually increase to maintain user satisfaction. Declining quality The quality of systems will appear to be declining unless they are adapted to changes in their operational environment. Feedback system Evolution processes incorporate multi agent multi loopFeedback system Evolution processes incorporate multi-agent, multi-loop feedback systems and you have to treat them as feedback systems to achieve significant product improvement.
  • 44. Software maintenance • Modifying a program after it has been put into use Software maintenance Modifying a program after it has been put into use. • Changes are implemented by modifying existing components and adding new components to the systemadding new components to the system.
  • 45. Maintenance is inevitable • The system requirements are likely to change while the system is being developed because Maintenance is inevitable while the system is being developed because the environment is changing. • Systems MUST be maintained therefore if they• Systems MUST be maintained therefore if they are to remain useful in an environment.
  • 46. Types of maintenance • Maintenance to repair softwaresoftware faultsfaults Ch i t t tt d fi i id fi i i i th t it Types of maintenance – Changing a system to correctcorrect deficienciesdeficiencies in the way meets its requirements. M i t t d t ft t diff t titi i ti t• Maintenance to adapt software to a different operatingoperating environmentenvironment – Changing a system so that it operates in a different environment ( t OS t ) f it i iti l i l t ti(computer, OS, etc.) from its initial implementation. • Maintenance to add to or modify the system’s functionality – Modifying the system to satisfy new requirements.
  • 47. Distribution of maintenance effort Fault repair (17%) Functionality addition or Software addition or modification (65%) Software adaptation (18%)
  • 48. Maintenance costs • Usually greater than development costs Maintenance costs • Affected by both technicaltechnical and nonnon--technicaltechnical factorsfactors.. • Ageing software can have high support costs (e.g. old languages, compilers etc.).
  • 50. Maintenance cost factors • Team stability – Maintenance costs are reduced if the same staff are involved with Maintenance cost factors – Maintenance costs are reduced if the same staff are involved with them for some time. • Contractual responsibilityp y – The developers of a system may have no contractual responsibility for maintenance so there is no incentive to design for future change. • Staff skills – Maintenance staff are often inexperienced and have limited domain knowledge. • Program age and structure – As programs age, their structure is degraded and they become harder to understand and change.
  • 51. Maintenance predictionMaintenance prediction • Maintenance prediction is concerned with assessing which parts of the system maymay causecause problemsproblems and have high maintenance costs
  • 52. Maintenance predictiona te a ce p ed ct o What parts of the system will be the most expensive to maintain?What parts of the system are Predicting maintainability to maintain?What parts of the system are most likely to be affected by change requests? y What will be the lifetime maintenance costs of this Predicting system changes Predicting maintenance costs maintenance costs of this system? What will be the costs of maintaining this system over the next year? How many change requests can be expected?
  • 53. Process metricsProcess metrics • Process measurements may be used to assess maintainabilityProcess measurements may be used to assess maintainability – Number of requests for corrective maintenance; Average time required for impact analysis;– Average time required for impact analysis; – Average time taken to implement a change request; N b f t t di h t– Number of outstanding change requests. • If any or all of these is increasing, this may indicate a decline in i t i bilitmaintainability.
  • 54. Evolution processesEvolution processes • Evolution processes depend onEvolution processes depend on – The type of software being maintained; The development processes used;– The development processes used; – The skills and experience of the people involved. P l f h th d i f t l ti Ch• Proposals for change are the driver for system evolution. Change identification and evolution continue throughout the system lifetime.
  • 55. The system evolution processThe system evolution process Release planning Change implementa tion System release Impact analysis Change requests Platform adaptation System enhancement Fault repair
  • 57. Urgent change requestsUrgent change requests • Urgent changes may have to be implemented without going through all stages of the software engineering processall stages of the software engineering process – If a serious system fault has to be repaired; If h t th t ’ i t ( OS d )– If changes to the system’s environment (e.g. an OS upgrade) have unexpected effects; If th b i h th t i id– If there are business changes that require a very rapid response (e.g. the release of a competing product).
  • 59. System Re-engineeringSystem Re engineering • Re-structuring or re-writing part or all of aRe structuring or re writing part or all of a legacy system without changing its functionality.y
  • 60. Advantages of reengineeringAdvantages of reengineering • Reduced risk• Reduced risk – There is a high risk in new software development. There may be development problems, staffing problems and specification problems. • Reduced cost The cost of re engineering is often significantly less– The cost of re-engineering is often significantly less than the costs of developing new software.
  • 61. Reengineering process activitiesReengineering process activities • Source code translation C t d t l– Convert code to a new language. • Reverse engineering – Analyse the program to understand it; • Program structure improvement – Restructure automatically for understandability; • Program modularisation – Reorganise the program structure; • Data reengineering – Clean-up and restructure system data.
  • 62. The re-engineering processThe re engineering process
  • 63. Legacy system evolutionLegacy system evolution • Organisations that rely on legacy systems must choose a strategy for evolving these systemsfor evolving these systems – Scrap the system completely and modify business processes so that it is no longer required;that it is no longer required; – Continue maintaining the system; T f th t b i i t i it– Transform the system by re-engineering to improve its maintainability; R l th t ith t– Replace the system with a new system. • The strategy chosen should depend on the system quality and its b i lbusiness value.
  • 64. Legacy system categoriesLegacy system categories • Low quality, low business value – These systems should be scrapped– These systems should be scrapped. • Low-quality, high-business value These make an important business contribution but are– These make an important business contribution but are expensive to maintain. Should be re-engineered or replaced if a suitable system is availablesuitable system is available. • High-quality, low-business value Replace with COTS scrap completely or maintain– Replace with COTS, scrap completely or maintain. • High-quality, high business value C ti i ti i l t i t– Continue in operation using normal system maintenance.
  • 65. System quality and business valuey q y
  • 66. Business value assessmentBusiness value assessment • Assessment should take different viewpoints into accountAssessment should take different viewpoints into account – System end-users; Business customers;– Business customers; – Line managers; IT– IT managers; – Senior managers. • Interview different stakeholders and collate results.
  • 67. System quality assessmentSystem quality assessment • Business process assessmentBusiness process assessment – How well does the business process support the current goals of the business?the business? • Environment assessment How effective is the system’s environment and how expensive is– How effective is the system s environment and how expensive is it to maintain? • Application assessment• Application assessment – What is the quality of the application software system?
  • 68. Business process assessmentBusiness process assessment • Use a viewpoint-oriented approach and seek answers from system stakeholdersstakeholders – Is there a defined process model and is it followed? – Do different parts of the organisation use different processes for thep g p same function? – How has the process been adapted? – What are the relationships with other business processes and are these necessary? – Is the process effectively supported by the legacy application software? • Example - a travel ordering system may have a low business value because f th id d f b b d d iof the widespread use of web-based ordering.
  • 69. Environment assessment 1Environment assessment 1 Factor QuestionsFactor Questions Supplier stability Is the supplier is still in existence? Is the supplier financially stable and likely to continue in existence? If the supplier is no longer in business, does someone else maintain theg systems? Failure rate Does the hardware have a high rate of reported failures? Does the support software crash and force system restarts? Age How old is the hardware and software? The older the hardware and support software, the more obsolete it will be. It may still function correctly but there could be significant economic and business benefits to moving to more modern systems. Performance Is the performance of the system adequate? Do performance problems have a significant effect on system users?
  • 70. Environment assessment 2Environment assessment 2 Support requirements What local support is required by the hardware and software? If there are high costs associated with this support, it may be worth considering system replacement. Maintenance costs What are the costs of hardware maintenance and suppo rt software licences? Older hardware may have higher maintenance costs than modern systems Support softwaremaintenance costs than modern systems. Support software may have high annual licensing costs. Interoperability Are there problems interfacing the system to other systems? Can compilers etc. be used with current versions of theCan compilers etc. be used with current versions of the operating system? Is hardware emulation required?
  • 71. Application assessment 1Application assessment 1 Factor Questions Understandability How difficult is it to understand the source code of the current system? How complex are the control structures that are used? Do variables have meaningful names thatthat are used? Do variables have meaningful names that reflect their function? Documentation What system documentation is available? Is the documentation complete, consistent and up-to-date? Data Is there an explicit data model for the system? To what extent is data duplicated in different files? Is the data used by the system up-to-date and consistent? Performance Is the performance of the application adequate? DoPerformance Is the performance of the application adequate? Do performance problems have a significant effect on system users?
  • 72. Application assessment 2Application assessment 2 Programming language Are modern compilers available for the programming language used to develop the system? Is the programming language still used for new system development? C fi ti A ll i f ll t f th t d bConfiguration management Are all versions of all parts of the system managed by a configuration management system? Is there an explicit description of the versions of components that are used in the current system? Test data Does test data for the system exist? Is there a record of regression tests carried out when new features have been added to the system? P l kill A h l il bl h h h kill i iPersonnel skills Are there people available who have the skills to maintain the application? Are there only a limited number of people who understand the system?
  • 73. Chapter Review Questionsp Q 1. Explain Step involved for Rapid Application Development ( )(RAD)in detail. 2. Explain extreme programming process in detail with example. 3. Discuss agile method of software development in detail. 4. Define prototyping? Explain with example. 5. Discuss Lehman’s laws of software evolution. 6. Explain evolution process with illustration. 7. Discuss different types of software maintenance. 8. Explain the Re-engineering process in detail.