Top Banner
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)
17

Enterprise Apps

May 06, 2015

Download

Technology

Sanjay Goel

Paper presented at IEEE CS conference, CSEET-09
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Enterprise Apps

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)

Page 2: Enterprise Apps

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..

Page 3: Enterprise Apps

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

Page 4: Enterprise Apps

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

Page 5: Enterprise Apps

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.

Page 6: Enterprise Apps

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’

Page 7: Enterprise Apps

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

Page 8: Enterprise Apps

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

Page 9: Enterprise Apps

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

Page 10: Enterprise Apps

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

Page 11: Enterprise Apps

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

Page 12: Enterprise Apps

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

Page 13: Enterprise Apps

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

Page 14: Enterprise Apps

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.

Page 15: Enterprise Apps

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.

Page 16: Enterprise Apps

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.

Page 17: Enterprise Apps

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