Core Issues Affecting Software Architecture in Enterprise Projects

In this paper we analyze the core issues affecting software architecture in enterprise projects where a large number of people at different backgrounds are involved and complex business, management and technical problems exist. We first give general features of typical enterprise projects and then present foundations of software architectures. The detailed analysis of core issues affecting software architecture in software development phases is given. We focus on three main areas in each development phase: people, process, and management related issues, structural (product) issues, and technology related issues. After we point out core issues and problems in these main areas, we give recommendations for designing good architecture. We observed these core issues and the importance of following the best software development practices and also developed some novel practices in many big enterprise commercial and military projects in about 10 years of experience.




References:
[1] ISO/IEC 9126-1, Software Engineering - Product Quality - Part 1:
Quality Model, 2001.
[2] D. Parnas, "On the Criteria to be Used in Decomposing Systems into
Modules", Communications of ACM, vol. 15, no. 12, pp. 1053-1058,
1972.
[3] W.P. Stevens, G.J. Myers, L.L. Constantine, "Structured Design," IBM
Systems Journal, vol. 13, no. 2, pp. 115-139, 1974.
[4] L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 2nd
Edition, Addison-Wesley, 2003.
[5] The CHAOS Reports, http://www.standishgroup.com .
[6] S. McConnell, Rapid Development, Microsoft Press, 1996.
[7] S. McConnell, Software Project Survival Guide, Microsoft Press, 1997.
[8] J. S. Reel, "Critical Success Factors In Software Projects", IEEE
Software, May/ June 1999, pp. 18-23.
[9] A. Senyard, M. Michlmayr, "How to Have a Successful Free Software
Project", Proceedings of the IEEE 11th Asia-Pacific Software
Engineering Conference (APSEC-04), November 2004, pp. 84-91.
[10] J. M. Verner, N. Cerpa, "Australian Software Development: What
Software Project Management Practices Lead to Success?", IEEE
Australian Software Engineering Conference (ASWEC-05), March 2005,
pp. 70-77.
[11] J. M. Verner, W. M. Evanco, "In-House Software Development: What
Project Management Practices Lead to Success?", IEEE Software,
January 2005, pp. 86-93.
[12] G. Booch, Object Solutions: Managing the Object-Oriented Project,
Addison Wesley, 1996.
[13] IEEE Standard 1058.1-1987, Software Project Management Plan.
[14] Recommended Approach to Software Development, NASA-Software
Software Engineering Laboratory Series, Revision 3, June 1992.
[15] B. Bruegge, A. H. Dutoit, Object-Oriented Software Engineering:
Conquering Complex and Changing Systems, Using UML, Patterns, and
Java, Prentice-Hall, 2004.
[16] J. A. Zachman, "A Framework Systems Architecture", IBM System
Journal, Vol. 26, No. 3, See also www.zifa.com.
[17] S. McConnel, Code Complete: A Practical Handbook of Software
Construction, 2nd Edition, Microsoft Press, 2004.
[18] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns, Elements
of Reusable Object-Oriented Software, Addison-Wesley, 1995.
[19] M. Fowler, Patterns of Enterprise Application Architecture, Addison-
Wesley, 2003.
[20] D. Alur, J. Crupi, D. Malks, Core J2EE Patterns, 2nd Edition, Prentice
Hall, 2003.
[21] I. Jacobson, G. Booch, J. Rumbaugh, The Unified Software Development
Process, Addison Wesley, 1999.
[22] P. Kruchten, The Rational Unified Process: An Introduction, 2d Ed.,
Addison Wesley, 2000.
[23] P. Clements, ed., Documenting Software Architectures: Views and
Beyond, Addison Wesley, 2003.
[24] P. Clements, R. Kazman and M. Klein, Evaluating Software
Architectures: Methods and Case Studies, Addison Wesley, 2002.
[25] M. Fowler, Refactoring, Improving the Design of Existing Code,
Addison-Wesley, 1999.