Abstract
Considerable strides have been made in the use of components in software development. Many proprietary enterprise resource planning (ERP) software environments use modular components to develop and customize “best practices” to meet a specific organizational need. In agile application development, many developers and users are asked to design systems in a short period of time. These applications may use components that are embedded in software repositories. The challenge then is how to select the right software components (data and procedures) to meet an application requirement. Although experienced developers may select and customize components to meet the needs of an application, such expertise may not be available to other applications. This paper presents a knowledge-based framework to select and customize software components and demonstrates its value in deriving quality specifications, even when the developers are relatively inexperienced.









Similar content being viewed by others
References
Y.Y. Yusuf, M. Sarhadi, A. Gunasekaran, Int. J. Product. Econ. 62, 33–43 (1999)
M. Lippert, Large Refactorings in Agile Software Development, Workshop on Beyond Green-Field Software Development: Strategies for Reengineering and Evolution, OOPSLA (2003)
S. Nerur, R. Mahapatra, G. Mangalraj, Commun. ACM 48, 72–78 (2005)
H. Sharp, et al., Agile Development: Opportunity or Fad? (Conference on Human Factors in Computing Systems, Montréal, Québec, Canada, 2006) pp. 32–35
R.L. Nord, J.E. Tomayko, IEEE Software 23, 47–53 (2006)
T. Mens, T. Tourwe, IEEE T. Software Eng. 30, 126–139 (2004)
C.J. Neill, B. Gill, IT Professional 5, 33–38 (2003)
P. Vitharana, H. Jain, Inform. Manage. 37, 297–309 (2000)
C. Pearson, Health Manage. Technol. 20, 34–35 (1999)
N.S Gill, P.S. Grover, ACM SIGSOFT Software Eng. Notes 28, 30–34 (2003)
M. Goulao, Component-Based Software Engineering: A Quantitative Approach OOPSLA’05 (San Diego, CA, 2005), pp. 238–239
D. Kiely, Informationweek 677, 1A–6A (1998)
Z. Gu, K.G. Shin, 26th IEEE Int. Real-Time Syst. Symposium 167–168 (2005)
R. Due, Inform. Syst. Manage. 1, 92–95 (2000)
I. Crnkovic, Component-based Software Engineering for Embedded Systems International Conference on Software Engineering (St. Louis, MO, 2005), pp. 712–713
A. Patrizio, Informationweek 799, 81–86 (2000)
P. Vitharana, F.M. Zahedi, H. Jain, Commun. ACM 46, 97–102 (2003)
M. Lindvall et al. IEEE Computer 37, 26–34 (2004)
D.J. Reifer, IEEE Software 19, 16–18 (2002)
P. Abrahamsson et al., ICSE 244–254 (2003)
K. Beck, IEEE Computer 32, 70–77 (1999)
K. Beck, C. Andres, Extreme Programming Explained: Embrace Change (Addison-Wesley, 2004)
A. DeHondt, G. Brandyberry, e-Informatica 1, 45–60 (2007)
J.A. Highsmith, Adaptive Software Development: A Collaborative Approach to Managing Complex Systems (Dorset House Publishing, New York, 2000)
S. Bayer, J. Highsmith, Am. Programmer 7, 35–42 (1994)
J. Stapleton, Dynamic Systems Development Method – The Method in Practice (Addison Wesley, 1997)
S.R. Palmer, J.M. Felsing, A Practical Guide to Feature-Driven Development (2002)
P. Coad, E. LeFebvre, J. De Luca, Java Modeling In Color With UML: Enterprise Components and Process (Prentice Hall, 2000)
DSDMConsortium, Dynamic Systems Development Method, version 3 (Ashford, 1997)
K. Schwaber, Serum Development Process, Workshop on Business Object Design and Implementation, OOPSLA’95 (1995)
K. Schwaber, M. Beedle, Agile Software Development with Scrum (Upper Saddle River. Prentice-Hall, NJ, 2002)
K.S. Barber, J. Holt, G. Baker, 14th international conference on Software engineering and knowledge engineering SEKE ’02, Ischia, Italy, 2002, pp. 225–232
J. Meekel et al. Software Eng. Notes 22, 75–80 (1997)
W. Tracz, Software Eng. Notes 19, 52–56 (1994)
S. Chan, T. Lammers, Reusing Distributed Object Domain Framework. 5th Intl.Conf. on Software Reuse (Victoria, BC, 1998), pp. 216–223
V. Sugumaran, R. Bose, J. Intelligent Technol. 8, 82–94 (1995)
V. Peristeras, K. Tarabanis, Proceedings of the 6th International Conference on Electronic Commerce ICEC ‘04 471–479 (2004)
S. Jarzabek, ACM SIGSOFT Software Eng. Notes 22, 65–74 (1997)
R.B. France, T.B. Horton, Applying Domain Analysis and Modeling: An Industrial Experience. Proceedings of the 1995 Symposium on Software reusability SSR ’95, Seattle, WA, 1995, pp. 206–214
Y. Choi, M. Heimdahl, 18th IEEE International Conference on Automated Software Engineering 314 (2003)
K.C. Kang, Proceedings of Fifth International Conference on Software Reuse 354–355 (1998)
W.B. Frakes, K. Kang, IEEE T. Software Eng. 7, 529–536 (2005)
M.T. Lubars, M.T. Harandi, Addressing Software Reuse Through knowledge-Based Design, by Ted J. Biggerstaff, Alan J. Perlis, Software Reusability I, II (1989) 345-377
M.A. Simos, Organization Domain Modeling (ODM): Formalizing the Core Domain Modeling Life Cycle. Proceedings of the 1995 Symposium on Software reusability SSR ’95, Seattle, WA, 1995, pp. 196–205
H. Gomaa, L. Kerschberg, G.A. Farrukh, 6th IEEE Int. Conference Eng. Complex Comput. Syst. 11–14, 50–60 (2000)
S. Jarzabek, H. Zhang, Proceedings of Fifth IEEE International Symposium on Requirements Engineering 27–31, 166–173 (2001)
T. Ravichandran, IEEE T. Eng. Manage. 52, 249–268 (2005)
A.I. Morch et al. Commun. ACM 47, 59–62 (2004)
A.W. Brown, Large-scale Component-based Development (Upper Saddle River, Prentice Hall, NJ, 2000)
P. Herzum, O. Sims, Business Component Factory: A Comprehensive Overview of Component-Based Development for the Enterprise. (John Wiley, New York, 2000)
I. Crnkovic et al. ACM SIGSOFT Software Eng. Notes 30, 1–9 (2005)
P. Vitharana, H. Jain, F. Zahedi, IEEE T Syst. Man Cybernetics 34, 460–474 (2004)
L.F. Capretz, M.A.M. Capretz, D. Li, 27th Annual Conference of the IEEE Industrial Electronics Society 3, 1834–1837 (2001)
A. Andrews, S. Ghosh, E.M. Choi, International Conference on Software Maintenance 359–368 (2002)
P.T. Cox, B. Song, IEEE Symposia on Human-Centric Computing Languages and Environments 304–311 (2001)
I. Crnkovic et al. ACM SIGSOFT Software Eng. Notes 29, 1–7 (2004)
N.S. Gill, ACM SIGSOFT Software Eng. Notes 31, 1–3 (2006)
H. Jain, P. Vitharana, F. Zahedi, The DATA BASE Advances Inform. Syst. 34, 48–63 (2003)
H. Yao, L. Etzkorn, ACMSE’04. (Huntsville, Alabama, 2004) 110–115
A. Mili, R. Mili, R.T. Mittermeir, Annu. Software Eng. 5, 349–414 (1998)
D. Hemer, Specification-Based Retrieval Strategies for Component Architectures. Australian Software Engineering Conference 233–242 (2005)
Y. Park, P. Bai, Generating Samples for Component Retrieval by Execution, Technical Report, University of Windsor (Windsor, Ontario, Canada, 1997)
M.A. Barbosa, A Refinement Calculus for Software Components and Architectures, ESEC-FSE’05 (Lisbon, Portugal, 2005), pp. 377–380
L. Jilani et al., Retrieving Software Components That Minimize Adaptation Effort, In Proc. of the 12th IEEE Intl. Automated Software Engineering Conference, IEEE Computer Society Press (1997), pp. 255–262
O.P. Rotaru, M. Dolore, IEEE International Conference on Computer Systems and Applications (2005)
S. Faustle, M.G. Fugini, E. Damiani, Software Pract. Exp. 26, 491–530 (1996)
N.S. Gill, ACM SIGSOFT Software Eng. Notes 28, 4–7 (2003)
M.L. Nelson, T. Poulis, ACM OOPS Messenger 6, 28–36 (1995)
J. Cheesman, J. Daniels, UML Components: A Simple Process for Specifying Component-Based Software (Addison-Wesley, 2001)
D. Hemer, Proceedings of the Twenty-eighth Australasian conference on Computer Science 38 (2005)
B.H.C. Cheng, J.J. Jeng, IEEE T. Knowledge Data Eng. 9, 341–349 (1997)
J. Penix, Compositional Specification of Software Architecture. Proceedings of the Third International Workshop on Software architecture, Orlando, FL, 1998, pp. 113–116
A.M. Zaremski, J.M. Wing, ACM T. Software Eng. Methodol. 6, 333–369 (1997)
Y. Chen, B.H.C. Cheng, A Semantic Foundation for Specification Matching, in Foundations of Component-Based Systems, ed. by M. Sitaraman, G. Leavens (Cambridge University Press, 2000)
Y. Chen, B.H.C. Cheng, Formalizing and Automating Component Reuse. IEEE Proc. of International Conference on Tools with Artificial Intelligence (1997)
J. Penix, P. Alexander, Chapter 10, Component-Based Software Engineering: Case Studies, in REBOUND: A Framework for Automated Component Adaptation (World Scientific, 2004)
Y. Ding, N. Napier, Measurement Framework for Assessing Risks in Component-Based Software Development. Proceedings of the 39th Annual Hawaii International Conference on System Sciences 9 (2006)
V. Sugumaran, V. Storey, DATABASE Advances Inform. Syst. 34, 8–24 (2003)
X. Wang, C.W. Chan, H.J. Hamilton, Design of Knowledge-based Systems with the Ontology-domain-system Approach. 14th international conference on Software engineering and knowledge engineering SEKE ‘02 (Ischia, Italy, 2002), pp. 233–236
V. Sugumaran, M. Tanniru, V. Storey, Commun. ACM 43, 312–322 (2000)
P. Khambekar et al., 6th Workshop on Information Technologies and Systems (Cleveland, 1996), pp. 299–303
E. Friedman-Hill, Jess, the Expert System Shell (Sandia National Laboratories, Livermore, CA, 2007). URL: http://herzberg.ca.sandia.gov/jess
D. Batra, J.A. Hoffer, R. Bostrom, Commun. ACM 33, 126–139 (1990)
R. Agarwal, M. Tanniru, Knowledge Acquisition 3, 421–441 (1991)
R. Agarwal, L. Roberge, M. Tanniru, Inform. Manage. 27, 261–274 (1994)
J.M. Neighbors, Proceedings of the Third International Conference on Software Reuse 6–13 (1994)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Sugumaran, V., Tanniru, M. & Storey, V.C. A knowledge-based framework for extracting components in agile systems development. Inf Technol Manage 9, 37–53 (2008). https://doi.org/10.1007/s10799-007-0025-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10799-007-0025-7