SOFTWARE ENGINEERING APPROACH FOR TEACHING DEVELOPMENT OF SCALABLE ENTERPRISE APPLICATIONS Ritu Arora (Birla Institute of Technology and Science, Pilani) and Sanjay Goel (Jaypee Institute of Information Technology University, Noida)
SOFTWARE ENGINEERING APPROACH FOR TEACHING DEVELOPMENT OF SCALABLE ENTERPRISE APPLICATIONS
Ritu Arora
(Birla Institute of Technology and Science, Pilani)
and
Sanjay Goel
(Jaypee Institute of Information Technology University, Noida)
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Enterprise applications have recently gained focus as an important part of the computing curriculum.
Many web-based courses exist with a focus on technologies like CGI-Perl, Java/JSP/Servlets, HTML, Java Script, PHP and MySQL.
As web applications become more complex and are distributed over enterprise-wide level, it is essential that they should be properly “engineered” and not just “implemented”.
Here, we present our experiences in conducting one such course, with the aim to teach the course as an applied course of software engineering rather than being only a technology-driven course.
Each new iteration of the course brought with itself addition and enhancement of features, ease of development, usage of different tools, enhancements in terms of modularity, and ease of maintainability, etc..
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Course iteration & Title TechnologyYear Java/
Swings/ Applets/ JDBC
Servlets/ JSP
Java Beans/ EJBs
Model-View-Controller framework
RMI & Web
Service Framework
J2ME Other J2EE Design Patterns
Web-Application Programming (Ist iteration)
2004 Yes Yes Yes Yes X X X
Web-Application Engineering (IInd iteration)
2005
Shifted to lower level courses
Yes Yes Yes Yes X X
Enterprise Application Development (IIIrd iteration)
2006
Shifted to lower level courses
Yes Yes Yes Yes Yes X
Enterprise Application Development (IVth iteration)
2007
Shifted to lower level courses
Yes Yes Yes Yes Yes Yes
Table 1: Progressive evolution of technology content through various course iterations
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Table 2: Progressive evolution of projects content through various course iterations
Course iteration & Title
Technologies Taught Some typical student projects
Web-Application Programming (Ist iteration)
Java/Swings/ Applets/ JDBC, Servlets/ JSP, Java Beans/ EJBs, Model-View-Controller framework
Website for training and placement society Website for the robotics club Distance-education MBA course website for a
university
Web-Application Engineering (IInd iteration)
Servlets/ JSP, Java Beans/ EJBs, Model-View-Controller framework, RMI & Web Service Framework
Data Mining Algorithms as Web Services Data Warehouse ETL operations as Web Services RMI based system for a Punch-card client-server
application
Enterprise Application Development (IIIrd iteration)
Servlets/ JSP, Java Beans/ EJBs, Model-View-Controller framework, RMI & Web Service Framework, J2ME
Airline Reservation System using mobile phones Educational Mobile Games Mobile Learning through content sharing
Enterprise Application Development (IVth iteration)
Servlets/ JSP, Java Beans/ EJBs, Model-View-Controller framework, RMI & Web Service Framework, J2ME, Other J2EE Design Patterns
Development of reusable components using design patterns
Development of more scalable & maintainable applications
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
The primary process in learning is that new information is related to relevant knowledge that is already existing in an individual’s cognitive structure.
Cognitive structure is hierarchically organized in terms of highly inclusive concepts under which are subsumed less inclusive sub-concepts and informational data.
The steps to this process are:1. Subsumptive: meaning and new examples are added to
an existing concept
2. Superordinate: ideas and concepts are synthesized and therefore new inclusive concepts are created
3. Combinatorial: additional background is added to achieve a more global understanding of the concept.
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
incrementally evolving network of components
A’A’
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Program= Data + Algorithm
Software = Data + Algorithm + Documents
Software = UI + Data + Algorithm + Documents
Software = UI + Program Variables + Database + External Data + Business Logic + Control Logic + Documents
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Table 3: Evolution of project characteristics through phases of application increments
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Table 4(I): Application Architecture and Engineering through progressive evolution of course increments
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Table 5: Evolution of Application Architecture through phases of application increments
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Table 5 (contd.): Evolution of Application Architecture through phases of application increments
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Table 4(II): Application Architecture and Engineering through progressive evolution of course increments
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
Incorporation of PSP and TSP Security issues other software engineering activities/tool like:
Deployment and maintenance Configuration management and other Umbrella activities Re-Engineering Requirement Patterns Design Patterns Quality Metrics
other J2EE features like Java Server Faces (JSF), Ajax, Struts etc.
Using alternative platforms like .NET
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
[1] A Leff, and J.T. Rayfield, “Web-application development using the Model/View/Controller design pattern”, Enterprise Distributed Object Computing Conference, 2001. EDOC '01. Proceedings. Fifth IEEE International, 2001, pp. 118-127.
[2] D. Robert Adams, “Integration early: A new approach to teaching Web Application Development”, Journal of Computing Sciences in Colleges, Volume 23 , Issue 1 (October 2007), Papers of the Fourteenth Annual CCSC Midwestern Conference and Papers of the Sixteenth Annual CCSC Rocky Mountain Conference, 2007, pp. 97 - 104 .
[3] Ellen L. Walker and Logan Browne, “Teaching Web Development with Limited Resources”, SIGCSE’99, New Orieans, LA, USA, 1999.
[4] James Koegh, “J2ME: The Complete Reference”, Tata McGraw-Hill Edition, 2003.
[5] Jim Koegh, “J2EE: The Complete Reference”, Tata McGraw-Hill Edition, 2002.
[6] Joseph Donald Novak, “Learning, Creating, and Using Knowledge: Concept maps as Facilitative Tools in Schools and Corporations”, Lawrence Erlbaum Associates, 1998, pp 49-56.
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
[7] J. Paul Myers, “Software engineering throughout a traditional computer science curriculum”, Proceedings of the second annual CCSC on Computing in Small Colleges Northwestern conference, 2000, Consortium for Computing Science in Colleges, USA, 2000, pp. 31-40.
[8] Kwok-Bun Yue and Wei Ding, “Design and evolution of an undergraduate course on web application development”, Annual Joint Conference Integrating Technology into Computer Science Education and Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education, ACM New York, NY, USA, 2004, pp. 22-26.
[9] Marty Humphrey, “Web services as the foundation for learning complex software system development”, ACM SIGCSE Bulletin, Volume 36, Issue 1 (March 2004), ACM New York, NY, USA, 2004, pp. 457 - 461.
[10] Phil Hanna, “JSP 2.0: The Complete Reference”, Tata McGraw-Hill Edition, 2003.
[11] Roger S. Pressman, “Software Engineering: A Practitioner’s Approach”, Mc Graw Hill, Sixth Edition, 2005.
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India
[12] Sanjay Goel, “What is high about higher education : Examining Engineering Education Through Bloom's Taxonomy”, The National Teaching & Learning Forum, Vol. 13 Number 4, pp 1-5, James Rhem & Associates, USA, 2004.
[13] Sanjay Goel, Activity based flexible credit definition, Tomorrow's Professor, Stanford University, USA, 2003.
[14] The Joint Task Force on Computing Curricula, “Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering”, IEEE Computer Society and Association for Computing Machinery, August 23, 2004, pg. 49.
[15] Thomas K. Moore, “Bringing The Enterprise into a Database Systems Course”, SIGCSE’02, Kentucky, USA, February 27- March 3, 2002.
[16] Xusheng Wang, “A Practical way to teach Web Programming in Computer Science”, Journal of Computing Sciences in Colleges, Volume 22 , Issue 1, Consortium for Computing Sciences in Colleges , USA, October 2006, pp. 211 – 220.
Ritu Arora and Sanjay GoelSoftware Engineering approach for teaching development of Scalable Enterprise
Applications
22nd IEEE-CS Conference on Software Engineering Education and TrainingFebruary 17 - 19, 2009, Hyderabad, India