Multidimensionality in Agile Software Development
Shared by: ijcsis
Categories
Tags
IJCSIS, call for paper, journal computer science, research, google scholar, IEEE, Scirus, download, ArXiV, library, information security, internet, peer review, scribd, docstoc, cornell university, archive, Journal of Computing, DOAJ, Open Access, November 2010, Volume 8, No.8, Impact Factor, engineering, international, proQuest, computing, computer, technology
-
Stats
- views:
- 172
- posted:
- 12/4/2010
- language:
- English
- pages:
- 5
Document Sample


(IJCSIS) International Journal of Computer Science and Information Security,
Vol. 8, No. 8, November 2010
Multidimensionality in Agile Software Development
Ashima, Assistant Professor, Computer Science and Engineering Department
Thapar 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, Progression to Agile Software Development
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 Figure 1: The Evolution of software process models [6]
terms of money compared to their investments. Agility’s
approach of development towards specialized Figure 1 shows the evolution of software development
components also lessens their probability of staying long processes. Waterfall model was being followed where
in market. This paper aims to find how reusability by requirements are fixed and the next phase starts when the
adding a bit of designing and developing specialized cum earlier one finished. It’s representative of the traditional
generalized components can be achieved in ASD. methods. To overcome the limitations of waterfall model,
evolutionary model and spiral model comes into picture
Introduction: Agile Software Development methods where prototype is first made and then that is converted
and techniques are being followed in the industry from to the working software. But all have one common
the last decade to get quality product and to reduce limitation that no process could handle the change of
development time. Rapid development and accommodate requirements at later phases. Agile development which
changes at any level of development gives the include many methodologies as XP, SCRUM, Lean
competitive advantage to the Agile processes over Software Development, FDD,DSDM is being accepted
Traditional processes. But to get best the combination of in industry because of adaptation to change even at the
both the processes is required. A proper degree of later stages of the development and also for rapid
specialization and generalization needed to be development.
maintained. Inclusion of architecture specific designing
in ASD can make it a reliability prone approach i.e. ASD Any method to be agile the values and principles of the
without risk. Agile Manifesto (Agile Alliance 2001) set out the central
elements of agility. “We are uncovering better ways of
Reusability also contributes towards quality product and developing software by doing it and helping others do it.
the rapid development. [19] reveals that Japanese Through this work we have come to values:
projects also exhibited higher levels of reuse while Individuals and interactions over processes and tools
spending more time on product design as compared to Working software over comprehensive documentation
American teams which spend more time on actual coding Customer collaboration over contract negotiation
and concludes that Indian firms are doing great job in Responding to change over following a plan
combining conventional best practices, such as That is, while there is value in the items on the right , we
specification and review, with more flexible techniques have the items on the left more.” [agilealliance.org]
that should enable them to respond more effectively to The twelve principles of agile software development
customer demands. If such a trend is replicated across the (Agile Alliance 2001) are:
broader population, it suggests the Indian software
industry is likely to experience continued growth and 1) The highest priority is to satisfy the customer through
success in future. early and continuous delivery of valuable software2) the
234 http://sites.google.com/site/ijcsis/
ISSN 1947-5500
(IJCSIS) International Journal of Computer Science and Information Security,
Vol. 8, No. 8, November 2010
welcoming of changing requirements, even late in
development, for the benefit of the customer’s
competitive advantage,3) frequent delivery of working
software, the release cycle ranging from a couple of
weeks to a couple of months, with a preference for a
shorter timescale,4) daily collaboration of business
people and developers throughout the project,5) building
of projects around motivated individuals by offering
them an appropriate environment and the support they
need, and trusting them to get the job done, 6) emphasis
on face-to-face conversation for conveying information
and within a development team, 7) working software is
the primary measure of progress, 8) agile processes
promote a sustainable development pace for the
sponsors, developers, and users, 9) continuous attention
to technical excellence and good design enhances agility, Table 1: Summary of Risk based approach.[15]
10) simplicity is essential for maximising the amount of
work not having to be done, 11) self-organising teams Table 1 shows a risk based approach to develop a
give best results in terms of architectures, requirements, balanced development strategy. [16] discusses about the
and designs, 12) regular reflection of teams on how to process which appears to be generic i.e. amenable to use
become more effective, and tuning and adjusting its for building any type of system, including web
behaviour accordingly. applications; in a context where risk analysis is
important.
These days extensive research is being carried out to get
best of agile development as[9] shows in a tree that no One key research area related to agile processes is in
agile process follows all the principles. Lean software software process improvement. [18] reflects such a need
development has five bottlenecks , XP itself has two , as in Table 2 the differences between traditional and agile
SCRUM has two and FDD also has seven bottlenecks. software development approaches gives an iterative
process improvement technique as a solution with five
As many authors say that agile development becomes case studies.
industry standard but Agile processes also have
limitations as[8]discusses the limitations of agile on its
11 assumptions which says none of the agile processes is
a silver bullet to fit all these assumptions.
To get best traditional approach and agile approach has
to combine. [7] says that the companies quite expertly
combine agile and traditional practices and adjust their
practices according to the situation at hand. Figure 2
shows the effects (benefits or drawbacks) in both the
methods and also insists on the cumulative methods
development since there has been a movement from no
methods, via tradidional method to agile method.
Research is going on to combine agile with other
processes , models .One is in [11] which concludes
through a case study that SPLE(software product line
engineering ) and agile software development are
complementary to each other.
Table 2: Underlying differences of traditional and agile
software development and SPI [18]
[10] shows how the CMMI could be used in assessing
agile software development or in the situation where
Figure 2: Relation between identified effects [14] organization is planning to change its process towards
agility. Following Table 3 concludes that “While CMMI
235 http://sites.google.com/site/ijcsis/
ISSN 1947-5500
(IJCSIS) International Journal of Computer Science and Information Security,
Vol. 8, No. 8, November 2010
creates an organizational discipline; XP eases the daily reducing development costs by identifying
life by providing pragmatic, end-result-oriented communalities among closely related products. Software
practices. CMMI and XP can be used together very well architecture entails the principal design decisions
and their synergy is very strong.” concerning the system and is rather orthogonal to the
development process[2]. Architect has to detect non-
functional requirements from the requirements stated by
the customer. He has to work with His vision. [23] shows
there could be quality attribute trade –offs which should
be taken care off. It is also point of consideration that in
agile development the architect is one of the developer’s
team or an individual one.
Though introduction of architecture reduces many risks
but it also introduces many risks called architectural
risks. [21] Summarizes that architectural risks in agile
processes can be handled by two ways. Architectural
risks that we know in advance can be handled in a time
Table 3: Relationship between some of the CMMI boxed iteration zero, where no features are planned to
process and some XP practices [17]. delivered. Small architectural risks can be handled as
they arise during iterations, but large architectural risks
Among the limitations of agile methods mentioned in must be promoted to be on par with features, and inserted
[12] one is the lack of attention to design and into a combined feature and risk backlog .
architectural issues. Boehm has done great work on
architecture and pointed out that there is a risk of
architectural mistakes that cannot be detected easily by
external reviewers due to lack of documentation in agile
development.
Software Architecture and Agile Software
Development:
Software architecture of a program or computing system
is the structure or structures of the system which
comprise software elements , the externally visible Figure 3: Feature and Risk Backlog based ASD[21]
properties of those elements and the relationships among
them. [23] One way to incorporate risk into an agile process is to
convert the feature backlog into a feature and risk
To accommodate changes at any level of development backlog. The product owner adds features and the
results in compromise on quality in lightweight software teams add risks. The software team must help
processes. Moreover agile development produces the product owner to understand the technical risks and
specified products. Our interest is in how much agile can simply prioritize the backlog [21].
contribute to produce generalized products, reusable
artifacts. [20] maintains that these two (agile approaches Architectural Patterns: An architectural pattern is a
and software architecture) seemingly opposing views to description of element and relation types together with a
software engineering can be integrated but it requires that set of constraints on how they may be used.[23] Some
experts from both fields work together to overcome authors specify the patterns what D.Garlan and His
evident challenges in bridging these two paradigms collaborators call styles. In most cases arch patterns are
together and insists on the need of research on considered in close connection with object orientation.
integrating architecture-centric methods in agile Object oriented language constructs like abstract classes
approaches. or inheritance, which support the architectural pattern
idea in a very elegant way.[4]
In architecture oriented agile software development , the
main considerations are in which iteration the Pattern is being decided on the non-functional
architecture will be designed, how much extra cost has to requirements of the product. Single pattern or
bear, is customer interested in architecture development. combination of patterns is being used to design the
Future research is open in architecture oriented agile architecture by the architect by keeping in mind the
software development to get answers to these questions hindrance to each of the non-functional properties
so as we can get more quality product and more because of one another.
productivity.
As patterns are already fully tested and can be easily
Moreover, Software architecture research aims at adapted ,enhances the reusability . One negative point
236 http://sites.google.com/site/ijcsis/
ISSN 1947-5500
(IJCSIS) International Journal of Computer Science and Information Security,
Vol. 8, No. 8, November 2010
attached to it is that Pattern reuse depends upon several working IEEE/IFIP conference on software architeture
factors.[2] (WICSA 2008) 263-266 ,2008, ISBN: 978-0-7695-3092-
5
From the software evaluation point of view, if the [3] Babar Ali M., Improving the reuse of pattern- based
abstract scenarios that characterize the quality attributes knowledge in software architecting
satisfied by the patterns used in the software are available ,www.patternforge.net/wiki/images/3/35/alibabar.pdf.
,it will improve software architecture evaluation and [4] A. Marco Components , connectors and architectural
reduce the time and resources required to gather patterns,www.citeseerx.ist.psu.edu/viewdoc/download?d
scenarios from scratch for each evaluation effort.[3] oi=10.1.12.8257&rep=rep1 & type=pdf
[5] Gomma H., Farukh A.G.,1999, A reusable
Reusability: Number of techniques are available to architecture for federated client/server systems,
support reusability. Considerable research and Proceedings of the 1999 symposium on software
development is going on in reuse; industry standards like reusability, los angeles, California, US, pages 113-
CORBA have been created for component interaction; 121,ISBN: 1-58113-101-1
and many domain specific architecture, toolkits, [6] Salo Outi,Enabling software process improvement in
application generators and other related products that agile software development teams and organizations ,
support reuse and open systems have been developed[1]. VIT Publications 618
Architecture reusability can be increased by defining [7] H. Christina ,D. Yvonne, G. Bjorn ,and Z. Stefan
levels as in FIM architecture [5] which operates at three ,2006, How agile are industrial software development
different levels of reuse: Federation, domain and practices?,The journal of systems and software 79(2006)
application. 1295-1311.
[8] Turk Dan, F.Robert ,and R. Bernhard,may
Agile software development and reusability in the 2002,Limitations of agile software processes ,3 rd
software engineering lays the same foundation of the international conference on XP and agile processes in
quality product and reduction in development time. To software engineering(XP 2002).
get a generalized product through agile processes [9] M. Asta, A. Vaidos, 2008, Bottlenecks in agile
software architecture has been introduced which supports software development using theory of constraints(TOC)
modifiability also. A repository can be built to place principles, Gothenburg, Sweden 2008.
various artifacts like patterns, components, and reference [10] P.Minna, and M. Annukka, 2006,An approach for
architectures in ASD. using CMMI in agile software development assessments:
experiences from three case studies,SPICE 2006.
Focus on how a non-functional property reusability [11] Geir K. Hanssen , Tor E. Faegri, 2008,Process
relates to the software architecture of a system [13]. [22] Fusion : An industrial case study on agile software
suggested software process model for reuse based product line engineering, The journal of systems and
software development approach. software 81(2008) 843-854.
[12] Tore Dyba, Torgeir Dingsoyr,2008, Empirical
Conclusion: Reusability reduces the complexity of studies and agile software development : A systematic
design process. Introduction of software architecture review. Information and software technology 50(2008)
reduces the risks and increases the modifiability at later 833-859
stages even. It is concluded that agile development which [13] Frances Paulisch , Siemens AG,1-2 nov., 1994.
has promising future in the software industry and can Software architecture nad Reuse –an inherent
fulfill the demands of the industry can be improved more. conflict?,3rd international conference onsoftwrae reuse,
Adding a slight touch of traditional approach, Object page 214.
oriented patterns for reusability at design, code and test [14] C. Stefan, 2008, Using Agile Methods? Expected
level, and architecture specific designs will definitely effects ,17th International conference on information
make space for reusability and reusable artifacts. systems development (ISD 2008).Paphas, Cyprus ,aug
Architecture oriented agile development is an open 25-27,2008.
research area. Designing and developing specialized cum [15] B. Barry, T. Richard,2004, Balancing Agility and
generalized components can be achieved by using object Discipline: Evaluating and Integrating Agile and Plan-
oriented patterns that is a new dimension to be explored Driven methods, ICSE 2004, Pp. 718-719
more for effective ASD. [16] Xiaocheng Ge, Richard F. Paige, Fiona A.C. Polock,
Howard Chivers, Phillip J. Brooke, 2006,Agile
Bibliography: development of secure web applications ,Proceedings of
the 6th international conference on web engg., pages 305-
[1] Garlen David , A. Robert , and ockerbloom john, nov. 312,ISBN: 1-59593-352-2
1995 , Architectural mismatch : Why reuse is so hard [ 17] Orhan Kalayci, Nitelik Danismanlik ltd.,Sait
Vol. 12, no 6. Dinmez,Emel Saygin,Serden Ferhatoglu, gulfer
[2] Cimpan Sorana , Couturier Vincent, 2008,Can styles Akgun,Senol Bolat,Hasan Ozkeser, BIMAR Bilgi islem
improve architectural pattern reuse? Proceedings of 7 th Hizmetleri A.S., Real Life Experience Using CMMI L2
237 http://sites.google.com/site/ijcsis/
ISSN 1947-5500
(IJCSIS) International Journal of Computer Science and Information Security,
Vol. 8, No. 8, November 2010
processes and XP Practices,
www.nitelik.net/yayinlar/PSQT/internalpilot.pdf
[18] Salo Outi, and A. Pekka, An Iterative improvement
process for Agile software development,www.agile-
itea.org/public/papers/SPIP.pdf
[19] Michael Cusumano,Alan MacCormack,Chris F.
Kemerer, Willliam Crandall,june 17, 2003,A Global
Survey of Software development Practices ,Version 3.1,
Forthcoming IEEE software
[20]Babar Ali M., and A. Pekka,29th dec.,2009,
Architecture –Centric method and agile approaches,10th
international conference on agile processes.
[21] F. George,The risk –centric model for software
architecture
,www.mysite.verizon.net/dennis.mancl/oopsla09/risk-
centric-software-architecture-positio-paper.pdf
[22] Jasmine K.S. ,Dr. R. Vasantha, july 2-4,2008, A
new process model for reuse based Software
development approach, Proceedings of the world
congress on engineering 2008 vol. 1, WCE 2008,
,London U.K.
[23] Softwarre architecture in practice ,second edition ,
Len Bass ,Paul Clements, Rick Kazman
238 http://sites.google.com/site/ijcsis/
ISSN 1947-5500
Related docs
Other docs by ijcsis
Comparative Analysis between Split and HierarchyMap Treemap Algorithms for Visualizing Hierarchical Data
Views: 15 | Downloads: 0
Non-Preemptive Multi-Constrain Scheduling for Multiprocessor with Hopfield Neural Network
Views: 5 | Downloads: 0
Reliable Multipath Routing Protocol (RMRP) For Mobile Ad Hoc Networks Using Adaptive Video Compression
Views: 10 | Downloads: 1
Single CCTA-Based Four Input Single Output Voltage-Mode Universal Biquad Filter
Views: 36 | Downloads: 0
A Cloud Computing Architecture for E-Learning Platform, Supporting Multimedia Content
Views: 42 | Downloads: 0
Get documents about "