Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
2Activity
0 of .
Results for:
No results containing your search query
P. 1
Multidimensionality in Agile Software Development

Multidimensionality in Agile Software Development

Ratings: (0)|Views: 117 |Likes:
Published by ijcsis
Among new software development processes, Agile Software Development (ASD) gives the software industry a new idea of quick and timely delivery of product. Agile methodologies got overwhelming response by all levels of software organizations. But limited scope of software designing and reusability of components do not let it to be made first choice of software development process and professionals. Agility addresses Multidimensional constraints like software design and Reusability, architecture and risk, iterations and changeability. Rapid development combined with changeability at later phases adds charm to ASD but missing designing and reusability act as a hurdle. Popularity of any software product is actually in length of its stay in market that ofcouse yields them rewards in terms of money compared to their investments. Agility’s approach of development towards specialized components also lessens their probability of staying long in market. This paper aims to find how reusability by adding a bit of designing and developing specialized cum generalized components can be achieved in ASD.
Among new software development processes, Agile Software Development (ASD) gives the software industry a new idea of quick and timely delivery of product. Agile methodologies got overwhelming response by all levels of software organizations. But limited scope of software designing and reusability of components do not let it to be made first choice of software development process and professionals. Agility addresses Multidimensional constraints like software design and Reusability, architecture and risk, iterations and changeability. Rapid development combined with changeability at later phases adds charm to ASD but missing designing and reusability act as a hurdle. Popularity of any software product is actually in length of its stay in market that ofcouse yields them rewards in terms of money compared to their investments. Agility’s approach of development towards specialized components also lessens their probability of staying long in market. This paper aims to find how reusability by adding a bit of designing and developing specialized cum generalized components can be achieved in ASD.

More info:

Published by: ijcsis on Dec 04, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/21/2011

pdf

text

original

 
Multidimensionality in Agile Software Development
Ashima, Assistant Professor, Computer Science and Engineering DepartmentThapar University, Patiala,email: ashima@thapar.edu
Dr. Himanshu Aggarwal, Associate Professor. Faculty of Computer Engineering,Punjabi University, Patiala. email: himanshu.pup@gmail.com
Abstract:
 Among new software development processes, Agile Software Development (ASD) gives the softwareindustry a new idea of quick and timely delivery of  product. Agile methodologies got overwhelming responseby all levels of software organizations. But limited scopeof software designing and reusability of components donot let it to be made first choice of software development  process and professionals. Agility addresses Multidimensional constraints like software design and  Reusability, architecture and risk, iterations and changeability. Rapid development combined withchangeability at later phases adds charm to ASD but missing designing and reusability act as a hurdle.Popularity of any software product is actually in lengthof its stay in market that ofcouse yields them rewards in
terms of money compared to their investments. Agility’s
approach of development towards specialized components also lessens their probability of staying longin market. This paper aims to find how reusability byadding a bit of designing and developing specialized cumgeneralized components can be achieved in ASD.
 
Introduction:
Agile Software Development methodsand techniques are being followed in the industry fromthe last decade to get quality product and to reducedevelopment time. Rapid development and accommodatechanges at any level of development gives thecompetitive advantage to the Agile processes overTraditional processes. But to get best the combination of both the processes is required. A proper degree of specialization and generalization needed to bemaintained. Inclusion of architecture specific designingin ASD can make it a reliability prone approach i.e. ASDwithout risk.Reusability also contributes towards quality product andthe rapid development. [19] reveals that Japaneseprojects also exhibited higher levels of reuse whilespending more time on product design as compared toAmerican teams which spend more time on actual codingand concludes that Indian firms are doing great job incombining conventional best practices, such asspecification and review, with more flexible techniquesthat should enable them to respond more effectively tocustomer demands. If such a trend is replicated across thebroader population, it suggests the Indian softwareindustry is likely to experience continued growth andsuccess in future.
Progression to Agile Software Development
Figure 1: The Evolution of software process models [6]Figure 1 shows the evolution of software developmentprocesses. Waterfall model was being followed whererequirements are fixed and the next phase starts when theearlier one finished. It
s representative of the traditionalmethods. To overcome the limitations of waterfall model,evolutionary model and spiral model comes into picturewhere prototype is first made and then that is convertedto the working software. But all have one commonlimitation that no process could handle the change of requirements at later phases. Agile development whichinclude many methodologies as XP, SCRUM, LeanSoftware Development, FDD,DSDM is being acceptedin industry because of adaptation to change even at thelater stages of the development and also for rapiddevelopment.Any method to be agile the values and principles of theAgile Manifesto
 
(Agile Alliance 2001) set out the central
elements of agility. “We are uncovering better ways of 
developing software by doing it and helping others do it.Through this work we have come to values:
 
Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planThat is, while there is value in the items on the right , we
have the items on the left more.” [agilealliance.org]
 The twelve principles of agile software development(Agile Alliance 2001) are:1) The highest priority is to satisfy the customer throughearly and continuous delivery of valuable software2) the
(IJCSIS) International Journal of Computer Science and Information Security,Vol. 8, No. 8, November 2010234http://sites.google.com/site/ijcsis/ISSN 1947-5500
 
welcoming of changing requirements, even late indeve
lopment, for the benefit of the customer’s
 competitive advantage,3) frequent delivery of workingsoftware, the release cycle ranging from a couple of weeks to a couple of months, with a preference for ashorter timescale,4) daily collaboration of businesspeople and developers throughout the project,5) buildingof projects around motivated individuals by offeringthem an appropriate environment and the support theyneed, and trusting them to get the job done, 6) emphasison face-to-face conversation for conveying informationand within a development team, 7) working software isthe primary measure of progress, 8) agile processespromote a sustainable development pace for thesponsors, developers, and users, 9) continuous attentionto technical excellence and good design enhances agility,10) simplicity is essential for maximising the amount of work not having to be done, 11) self-organising teamsgive best results in terms of architectures, requirements,and designs, 12) regular reflection of teams on how tobecome more effective, and tuning and adjusting itsbehaviour accordingly.These days extensive research is being carried out to getbest of agile development as[9] shows in a tree that noagile process follows all the principles. Lean softwaredevelopment has five bottlenecks , XP itself has two ,SCRUM has two and FDD also has seven bottlenecks.As many authors say that agile development becomesindustry standard but Agile processes also havelimitations as[8]discusses the limitations of agile on its11 assumptions which says none of the agile processes isa silver bullet to fit all these assumptions.To get best traditional approach and agile approach hasto combine. [7] says that the companies quite expertlycombine agile and traditional practices and adjust theirpractices according to the situation at hand. Figure 2shows the effects (benefits or drawbacks) in both themethods and also insists on the cumulative methodsdevelopment since there has been a movement from nomethods, via tradidional method to agile method.Research is going on to combine agile with otherprocesses , models .One is in [11] which concludesthrough a case study that SPLE(software product lineengineering ) and agile software development arecomplementary to each other.Figure 2: Relation between identified effects [14]Table 1: Summary of Risk based approach.[15]Table 1 shows a risk based approach to develop abalanced development strategy. [16] discusses about theprocess which appears to be generic i.e. amenable to usefor building any type of system, including webapplications; in a context where risk analysis isimportant.One key research area related to agile processes is insoftware process improvement. [18] reflects such a needas in Table 2 the differences between traditional and agilesoftware development approaches gives an iterativeprocess improvement technique as a solution with fivecase studies.Table 2: Underlying differences of traditional and agilesoftware development and SPI [18][10] shows how the CMMI could be used in assessingagile software development or in the situation whereorganization is planning to change its process towardsagility.
Following Table 3 concludes that “While CMMI
(IJCSIS) International Journal of Computer Science and Information Security,Vol. 8, No. 8, November 2010235http://sites.google.com/site/ijcsis/ISSN 1947-5500
 
creates an organizational discipline; XP eases the dailylife by providing pragmatic, end-result-orientedpractices. CMMI and XP can be used together very welland their
synergy is very strong.”
 Table 3: Relationship between some of the CMMIprocess and some XP practices [17].Among the limitations of agile methods mentioned in[12] one is the lack of attention to design andarchitectural issues. Boehm has done great work onarchitecture and pointed out that there is a risk of architectural mistakes that cannot be detected easily byexternal reviewers due to lack of documentation in agiledevelopment.
Software Architecture and Agile SoftwareDevelopment:
Software architecture of a program or computing systemis the structure or structures of the system whichcomprise software elements , the externally visibleproperties of those elements and the relationships amongthem. [23]To accommodate changes at any level of developmentresults in compromise on quality in lightweightprocesses. Moreover agile development producesspecified products. Our interest is in how much agile cancontribute to produce generalized products, reusableartifacts. [20] maintains that these two (agile approachesand software architecture) seemingly opposing views tosoftware engineering can be integrated but it requires thatexperts from both fields work together to overcomeevident challenges in bridging these two paradigmstogether and insists on the need of research onintegrating architecture-centric methods in agileapproaches.In architecture oriented agile software development , themain considerations are in which iteration thearchitecture will be designed, how much extra cost has tobear, is customer interested in architecture development.Future research is open in architecture oriented agilesoftware development to get answers to these questionsso as we can get more quality product and moreproductivity.Moreover, Software architecture research aims atreducing development costs by identifyingcommunalities among closely related products. Softwarearchitecture entails the principal design decisionsconcerning the system and is rather orthogonal to thedevelopment process[2]. Architect has to detect non-functional requirements from the requirements stated bythe customer. He has to work with His vision. [23] showsthere could be quality attribute trade
 – 
offs which shouldbe taken care off. It is also point of consideration that inagile development the architect is one of 
the developer’s
team or an individual one.Though introduction of architecture reduces many risksbut it also introduces many risks called architecturalrisks. [21] Summarizes that architectural risks in agileprocesses can be handled by two ways. Architecturalrisks that we know in advance can be handled in a timeboxed iteration zero, where no features are planned todelivered. Small architectural risks can be handled asthey arise during iterations, but large architectural risksmust be promoted to be on par with features, and insertedinto a combined feature and risk backlog .Figure 3: Feature and Risk Backlog based ASD[21]One way to incorporate risk into an agile process is toconvert the feature backlog into a feature and risk backlog. The product owner adds features and thesoftware teams add risks. The software team must helpthe product owner to understand the technical risks andsimply prioritize the backlog [21].
Architectural Patterns:
An architectural pattern is adescription of element and relation types together with aset of constraints on how they may be used.[23] Someauthors specify the patterns what D.Garlan and Hiscollaborators call styles. In most cases arch patterns areconsidered in close connection with object orientation.Object oriented language constructs like abstract classesor inheritance, which support the architectural patternidea in a very elegant way.[4]Pattern is being decided on the non-functionalrequirements of the product. Single pattern orcombination of patterns is being used to design thearchitecture by the architect by keeping in mind thehindrance to each of the non-functional propertiesbecause of one another.As patterns are already fully tested and can be easilyadapted ,enhances the reusability . One negative point
(IJCSIS) International Journal of Computer Science and Information Security,Vol. 8, No. 8, November 2010236http://sites.google.com/site/ijcsis/ISSN 1947-5500

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->