Enterprise Apps

450 views

Published on

Paper presented at IEEE CS conference, CSEET-09

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
450
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Enterprise Apps

    1. 1. 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)
    2. 2. <ul><li>Enterprise applications have recently gained focus as an important part of the computing curriculum. </li></ul><ul><li>Many web-based courses exist with a focus on technologies like CGI-Perl, Java/JSP/Servlets, HTML, Java Script, PHP and MySQL. </li></ul><ul><li>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 ”. </li></ul><ul><li>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. </li></ul><ul><ul><li>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.. </li></ul></ul>
    3. 3. Table 1: Progressive evolution of technology content through various course iterations Course iteration & Title Technology Year 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 (I st iteration) 2004 Yes Yes Yes Yes X X X Web-Application Engineering (II nd iteration) 2005 Shifted to lower level courses Yes Yes Yes Yes X X Enterprise Application Development (III rd iteration) 2006 Shifted to lower level courses Yes Yes Yes Yes Yes X Enterprise Application Development (IV th iteration) 2007 Shifted to lower level courses Yes Yes Yes Yes Yes Yes
    4. 4. Table 2: Progressive evolution of projects content through various course iterations Course iteration & Title Technologies Taught Some typical student projects Web-Application Programming (I st iteration) Java/Swings/ Applets/ JDBC, Servlets/ JSP, Java Beans/ EJBs, Model-View-Controller framework <ul><li>Website for training and placement society </li></ul><ul><li>Website for the robotics club </li></ul><ul><li>Distance-education MBA course website for a university </li></ul>Web-Application Engineering (II nd iteration) Servlets/ JSP, Java Beans/ EJBs, Model-View-Controller framework, RMI & Web Service Framework <ul><li>Data Mining Algorithms as Web Services </li></ul><ul><li>Data Warehouse ETL operations as Web Services </li></ul><ul><li>RMI based system for a Punch-card client-server application </li></ul>Enterprise Application Development (III rd iteration) Servlets/ JSP, Java Beans/ EJBs, Model-View-Controller framework, RMI & Web Service Framework, J2ME <ul><li>Airline Reservation System using mobile phones </li></ul><ul><li>Educational Mobile Games </li></ul><ul><li>Mobile Learning through content sharing </li></ul>Enterprise Application Development (IV th iteration) Servlets/ JSP, Java Beans/ EJBs, Model-View-Controller framework, RMI & Web Service Framework, J2ME, Other J2EE Design Patterns <ul><li>Development of reusable components using design patterns </li></ul><ul><li>Development of more scalable & maintainable applications </li></ul>
    5. 5. <ul><li>The primary process in learning is that new information is related to relevant knowledge that is already existing in an individual’s cognitive structure. </li></ul><ul><li>Cognitive structure is hierarchically organized in terms of highly inclusive concepts under which are subsumed less inclusive sub-concepts and informational data. </li></ul><ul><li>The steps to this process are: </li></ul><ul><ul><li>Subsumptive : meaning and new examples are added to an existing concept </li></ul></ul><ul><ul><li>Superordinate : ideas and concepts are synthesized and therefore new inclusive concepts are created </li></ul></ul><ul><ul><li>Combinatorial : additional background is added to achieve a more global understanding of the concept. </li></ul></ul>
    6. 6. <ul><li>incrementally evolving network of components </li></ul>A’
    7. 7. <ul><li>Program= Data + Algorithm </li></ul>Software = Data + Algorithm + Documents Software = UI + Data + Algorithm + Documents Software = UI + Program Variables + Database + External Data + Business Logic + Control Logic + Documents
    8. 8. Table 3: Evolution of project characteristics through phases of application increments
    9. 9. Table 4(I): Application Architecture and Engineering through progressive evolution of course increments
    10. 10. Table 5: Evolution of Application Architecture through phases of application increments
    11. 11. Table 5 (contd.): Evolution of Application Architecture through phases of application increments
    12. 12. Table 4(II): Application Architecture and Engineering through progressive evolution of course increments
    13. 13. <ul><li>Incorporation of </li></ul><ul><ul><li>PSP and TSP </li></ul></ul><ul><ul><li>Security issues </li></ul></ul><ul><ul><li>other software engineering activities/tool like: </li></ul></ul><ul><ul><ul><li>Deployment and maintenance </li></ul></ul></ul><ul><ul><ul><li>Configuration management and other Umbrella activities </li></ul></ul></ul><ul><ul><ul><li>Re-Engineering </li></ul></ul></ul><ul><ul><ul><li>Requirement Patterns </li></ul></ul></ul><ul><ul><ul><li>Design Patterns </li></ul></ul></ul><ul><ul><ul><li>Quality Metrics </li></ul></ul></ul><ul><ul><li>other J2EE features like Java Server Faces (JSF), Ajax, Struts etc. </li></ul></ul><ul><li>Using alternative platforms like .NET </li></ul>
    14. 14. <ul><li>[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. </li></ul><ul><li>[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  . </li></ul><ul><li>[3] Ellen L. Walker and Logan Browne, “Teaching Web Development with Limited Resources”, SIGCSE’99, New Orieans, LA, USA, 1999. </li></ul><ul><li>[4] James Koegh, “J2ME: The Complete Reference”, Tata McGraw-Hill Edition, 2003. </li></ul><ul><li>[5] Jim Koegh, “J2EE: The Complete Reference”, Tata McGraw-Hill Edition, 2002. </li></ul><ul><li>[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. </li></ul>
    15. 15. <ul><li>[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. </li></ul><ul><li>[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. </li></ul><ul><li>[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. </li></ul><ul><li>[10] Phil Hanna, “JSP 2.0: The Complete Reference”, Tata McGraw-Hill Edition, 2003. </li></ul><ul><li>[11] Roger S. Pressman, “Software Engineering: A Practitioner’s Approach”, Mc Graw Hill, Sixth Edition, 2005. </li></ul>
    16. 16. <ul><li>[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. </li></ul><ul><li>[13] Sanjay Goel, Activity based flexible credit definition, Tomorrow's Professor, Stanford University, USA, 2003. </li></ul><ul><li>[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. </li></ul><ul><li>[15] Thomas K. Moore, “Bringing The Enterprise into a Database Systems Course”, SIGCSE’02, Kentucky, USA, February 27- March 3, 2002. </li></ul><ul><li>[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. </li></ul>

    ×