Virtual Class Room (Unicast)<br />By<br />Shakeel Shahzad Chaudhery<br />Department of Computer Sciences<br />Quaid-i-Azam University Islamabad<br />Feburary 2011<br />Concept of E-Learning:<br />With the ever-increasing popularity and accessibility of the Internet, it is only natural that the educational community should want to make use of this tremendous resource. Use of the Internet and Web are leading to significant changes in educational models. Effective exploitation of these changes requires adequate attention to understanding the technology, the educational processes and issues, student’s characteristics, etc. As this use of Internet is increasing, a traditional classroom has shifted to E-Learning. While advancements in communication tools were easily adapted to learning methods, it was the introduction of the personal computer and the development of the Internet that would create the most radical transformation in higher education. Learning by computer can be as easy as communicating with your professor and fellow classmates via email, student utilizing an interactive CD-ROM. Thus, E-Learning can be defined an approach to facilitate and enhance learning by means of personal computers, CD-ROMs, and the Internet. It may be as simple as that teacher may simply post their material on Internet; students can read it online or can download it for further access. Since student won’t be in a classroom with professor and classmates, he will need to be capable of independent learning. Instructor will provide him with a syllabus, course documents, and required readings. The interaction between the professor and the student will happen via e-mail, discussion board, forums etc. Since the class doesn’t meet in a physical space at a scheduled time, the student will have to learn independently. He will be responsible for keeping up with the assigned reading and completing assignments according to the timeline on the syllabus. The growing popularity of E-Learning has introduced new terms to education, as Virtual Classroom, where student will be present with his professor and fellow learners in a classroom. They will not be present physically in the classroom but connected to the classroom via Internet. Virtual classroom aims to simulate the experience of attending a class over the web. So everyone is able to see other participant virtually. <br />Concept of Virtual Classroom: <br />Just as the term virtual means a simulation of the real thing, Virtual Classroom is a simulated classroom via departmental network, which provides a convenient communication environment for Quaid-i-Azam university (Computer Science department) students just like traditional face-to-face classroom. A virtual classroom allows students to attend a class from the department and aims to provide a learning experience that is similar to a real classroom. When we go to college we have a schedule of lectures, which we must attend. Student must arrive on time, and when he enters the classroom, he finds a teacher, fellow learners, a blackboard or whiteboard, LCD projector, optionally a television screen with videos. Likewise, a Virtual Classroom is a scheduled, online, teacher-led training session where teachers and students interact together using computers linked to a departmental network. It can be used as a solution for live delivery and interaction that addresses the entire process of creating and managing our teaching-learning process. It facilitates instructor and student in teaching-learning events, such as a seminar, online discussion or a live training for employees in company. As in traditional classroom, there are professor and fellow learners present with the student; we have many participants present in virtual classroom. They can talk with each other as in the traditional classroom via chat. Similarly presenter uses whiteboard, gives notes/resources, and gives presentation as given in traditional one. Thus, virtual classroom can be visualized as a classroom where a lecture or session is conducted using departmental network. <br />The Virtual Classroom (VCR) is actually developed to provide the simulation of classrooms in departmental network for the ease of teachers/presenters and students/participants. It aims to complement the efforts of educators within the network to integrate technology into their classrooms and curricula and to link their schedule to the network in educationally productive ways. <br />The VCR vision is to empower, enable and connect students/participants and teachers/presenter around the departmental network using Virtual Class Room. It provides students with a stimulating, positive and enjoyable environment along with the opportunity to develop skills that are essential in the 21st century: online quiz system, lectures/presentations recordings, chatting within the network to ask questions and to collaborate, file sharing, directory sharing, audio/video input/output device sharing etc. <br />Virtual education refers to instruction in a learning environment where teachers/presenters and students/participants are separated by time or space, or both, and the teachers/presenters provide course content through course management applications, multimedia resources, the network, audio/videoconferencing, etc. Students/Participants receive the content and communicate with the teacher via the same technologies. <br />A virtual classroom is a learning environment created in the virtual space. The objectives of a virtual classrooms are to improve access to advanced educational experiences by allowing students/participants and teachers/presenters to participate in remote learning communities using personal computers; and to improve the quality and effectiveness of education by using the computer to support a collaborative learning process. The explosion of the knowledge age has changed the context of what is learnt and how it is learnt – the concept of virtual classrooms is a manifestation of this knowledge revolution. <br />The basic idea behind VCR is remote access, which sounds to control or operate some process or thing from distance. We normally use chat remote desktop software and web cam sharing tools, VCR combines both of these technologies and provides a better way to communicate and present.<br />There are many remote desktop access and similar tools that are working in the market, most of them are not free or provide limited features like no single software in my knowledge provides cam sharing, video recording, audio chatting and remote desktop sharing at the same with multicast feature there are some which provide this facility but in terms of unicasting like Skype etc. Basically these tools are of two different types:<br />1).Chat Messengers<br />2).Remote Desktop Access.<br /> Still one cannot use these software over LAN and this is where VCR fits in because VCR provides corresponding features in pretty handy manners.<br /><ul><li>Problem Definition:
Remote monitoring interface for accessing attendees’ desktop with remote mouse and keyboard access.
Scope:</li></ul>System should allow teachers to present remotely, take quiz, remote communication via text or audio/video chat with file sharing facility.<br />This system is like a virtual/Virtual Class Room, in which teacher/presenter will be presenting from his/her office and the students/participants will be attending from the computer labs using LAN.<br />System should provide complete control to the presenter over client/student systems remotely, allow file share to multiple or single user, private or public chat.<br />System should recognize users with their LAN user names i.e. no need of creating new users and remembering their passwords etc.<br />Online quiz can be created, conducted and checked as well through digital classroom tool. <br />Scope Included (My side):<br />Session depends upon Teacher/Presenter (i.e. no online teacher means no session).<br />Sessions according to schedule.<br />Students/participants will join the session (i.e. only allowed).<br />Server connection with centralized database.<br />Audio, video, web cam recording.<br />File sharing for private and public.<br />Desktop sharing for Students (i.e. Unicast).<br />Remote desktop access for teacher (i.e. Unicast)<br />Remote Event Controls<br />Quiz Create, conduct, analyze and results view.<br />Schedule management, students/participants management.<br />System Configuration.<br /><ul><li>Terminologies frequently used:</li></ul>Hardware:<br />This tool should be installed on both client and server sides while database should be centralized in the network server.<br />Language and Platform:<br />This project involves different technologies but main are J2EE and JMF.<br />Server side:<br />Java/JMF:<br />We all are aware of Java technology. Java Media Framework is an API of java which helps to interact with media devices like audio/video devices.<br />Client Side:<br />Java/JMF:<br />J2EE and JMF are used over the client side to perform certain events that will be described in later chapters.<br />Database:<br />MySQL:<br />MySQL is used as DBMS and connectivity of MySQL with java is performed by MySQL J Connector.<br /><ul><li>System working exploration:</li></ul>The working principle of the system is:<br />Teacher/presenter will start session and students/participants will join.<br />System will automatically start the session according to the schedule only if concerned teacher/presenter is logged in.<br /><ul><li>Advantages of Virtual Classroom: </li></ul>Following are some of the advantages of Virtual classroom over traditional classroom model: <br />• Sessions can be recorded:<br />The session recording is the main advantage of the Virtual Class Room (VCR) as it will allow teachers/presenters and students/participants to record the whole session for later use. Students/Participants can record the session only if allowed by the teacher/presenter while teachers/presenters can record the session anytime they want to. Also, if teacher/presenter starts recording the session, it’ll ask him to store into the database or his/her system while students/participants can record session into their individual systems. Users can end the session recording anytime if they want to.<br /> • Quicker to organize: <br /> As all the schedule will already be stored into the system centralized database by the teacher/presenter so it will be easy for the teachers/presenters to organize the whole sessions with just turning on their systems and system will prompt them if his/her class timings has been scheduled. Also, if not scheduled, he/she can start the session manually as well.<br />• One to one communication: <br />In Virtual Class Room (VCR), there is one to one communication of all the users but with some constraints. Teacher/Presenter can communicate to the whole class or can select single or multiple students/participants for private chat. But students/participants can not communicate individually to other students but only to the whole channel or the teacher/presenter.<br /><ul><li>Limitations of Virtual Classroom: </li></ul>Following are some of the limitations of Virtual classroom:<br />• Familiarity with the Tools: <br />As in the real class rooms, students just raise their hands and can ask questions/queries to the teachers anytime they want to. Same concept tried to be introduced in the Virtual Class Room as students/participants can text their queries to the teachers/presenters over the chat channel. And teacher/presenter can answer the queries.<br />But the main problem is, all users should be trained enough to use this system as this concept will be introduced first time in the departmental labs or network. We tried our best to make the user friendly interfaces and provide them with the guides/manual as well so that everyone using Virtual Class Room, could easily use it.<br /> • Time dependency: <br />If schedule is not maintained, teacher/presenter will have to start session manually that will take him to inputs for course title and will ask him/her to select the number of students who should be in the session.<br />• Network should be fully functional: <br />All sessions can be only started if the network will be fully functional and will be configured properly.<br />• Technical Limitations: <br />Technical issues such as bandwidth speed of the connection or power failure may create problem while session will be going on.<br /><ul><li>Summary:
This chapter entails the introduction, scope, goals and objectives of the Virtual Class Room (VCR). Keeping in view the importance of remote access and problems faced by the PC users while using the existing devices, Virtual Class Room (VCR) is suggested.</li></ul>2.1Purpose:<br /><ul><li>The purpose of VCR is to provide an easy and remote interface to presenter or teacher to present his lecture effectively, on the other hand it’s a tool for students to attend their lectures, and communicate with their teachers. This whole process seems very expansive at hardware level and there is where VCR fits in to solve it using software resources. Main specs of VCR are:
Remote desktop access and control.</li></ul>2.2Scope:<br /><ul><li>Interface to present lectures remotely using LAN, that include online quiz management system, audio video and text based chat management system, with ability of private or public chat modules, presentation/lecture recording and on-demand availability, Remote desktop access uni-cast for attendee and multicast for presenter.</li></ul>2.3Overview:<br /><ul><li>This document has been prepared in accordance with the IEEE Standard 830-1998, IEEE Recommended Practice for Software Requirements Specifications [IEEE 830-1998 (1998)]. It provides the information of VCR perspective, VCR functions, User characteristics, Constraints, Assumptions and dependencies and specific requirement.</li></ul>2.4Product Perspective:<br /><ul><li>The VCR will allow teachers/presenters to present their lectures remotely over LAN from their offices within the department and will allow students/Attendees to participate/attend the lectures from the departmental labs. The system is developed to provide an easy interface to perform corresponding functionality, i.e. teacher can share his desktop with student, access desktops of student take online quizzes, share his webcam etc. Also, the system will allow teacher to have remote control over attendees computer..
All the teachers/presenters can share, transfer files or directories to any or all of the students/Attendees but vice versa is not true as students/Attendees can share file or directory only to the teachers/presenters.
JRE should be installed on both presenter or attendees modules.
Java Media Framework.</li></ul>2.4.1User Interfaces:<br /><ul><li>This system contains two main user’s presenter and attendee, and another user which is allowed to make changes to the data base; all of them have been provided very usable and interactive interfaces:
View recorded lectures.</li></ul>2.4.2Hardware Interfaces:<br /><ul><li>Audio/Video chat needs webcam and Microphone devices to be attached at presenter end.</li></ul>2.4.3Software Interfaces:<br /><ul><li>The following software interfaces are required to run virtual classroom within the network.
Operating System: VCR is platform independent.</li></ul>2.4.4Communication protocols/interfaces involved:<br /><ul><li>TCP/IP, UDP, and RTP protocols are used for communications, and will be explained in later chapters.</li></ul>2.5Product Functions:<br /><ul><li>The working of Virtual Classroom is based upon the following major functions:
Teacher/Presenter can chat with everyone in the session and can also make private conversations, where as students/attendees are bound to chat with teacher only as private and can chat in a group channel.
Teachers/Presenters can share to everyone while students/Attendees can share only to the teachers/presenters but if allowed by the teacher than possible to share with anyone.
Presenter Desktop Sharing:</li></ul>Teachers/Presenters can share their screens to the students/Attendees and that will be a multicast session using UDP protocol so it should be faster and can be viewed by every user.<br />Attendees Desktop Control and Sharing:<br />Teacher/Presenter could have remote access to student’s desktop and also have remote control of attendee’s computer i.e. remote mouse and keyboard control.<br /><ul><li>Audio/Video Devices Sharing/Chat:</li></ul>Teachers/Presenters can select one of multiple attached audio video devices to converse or share with attendee or may use auto selected devices.<br /><ul><li>Quiz Management System:</li></ul>Teachers/Presenters can create quizzes, allow students/Attendees to solve those quizzes remotely and let the system to check and mark the quizzes according to their given criteria.<br /><ul><li>Schedule Management:</li></ul>A schedule management system is provided to start sessions automatically if teacher is online on the system.<br /><ul><li>Configuration Management:
Different configuration settings for tool interface or look and feel or may be for communication ports.
Teachers/ Presenters can manage the students according to the different functionalities provided by the system.</li></ul>2.6Constraints:<br /><ul><li>Java 2EE 6 is used for the development.
Different API’s like JMF are used for audio/video devices interaction.
MySQL 5 or later are required as DBMS.</li></ul>2.7Specific Requirements:<br />The importance of each and every requirement is of top level and is used by the administrative and educational purposes.<br />2.7.1Functional Requirements:<br />The functional requirements of the system are given in the table below with their importance level and detail.<br /><ul><li>R1. Start Session manually or automatically.General Description:If the system is turned on, VCR will automatically start the session after prompting to the teacher/presenter.If a teacher/presenter wants to start a session himself/herself, he/she can start session manually.Importance:Top LevelNeed For:Usage of the system purposes.Constraints:If schedule is not managed in the database then system will not be able to start session automatically.Details:If schedule is managed by the teacher/presenter, system will automatically start the session.If teacher/presenter wants to start session manually, he can do this by clicking “Start Session” button.
R2. Login System.General Description:Teachers/Presenters can login the system from his office PC.Students/Participants can login the system from departmental labs.Importance:Top LevelNeed For:Usage of the system purposes.Constraints:If any user has no account in the system, he/she can’t access the system.Details:Teachers can login with their departmental account that will be recognized by VCR.Students can login with their departmental accounts that will be recognized by VCR.
R3. File Sharing. (Client Side)General Description:Students/Participants can share their files to teacher/presenter only.Importance:Top LevelNeed For:Sharing.Constraints:Students/Participants can’t share files to each other, online in the joined session.Details:Student/Participant can share file to teacher/presenter at any time while using chat if he/she is in the session.
R4. Directory Sharing. (Client Side)General Description:Students/Participants can share their directories to teacher/presenter only.Importance:Top LevelNeed For:Sharing.Constraints:Students/Participants can’t share directories to each other, online in the joined session.Details:Student/Participant can share directory to teacher/presenter at any time while using chat if he/she is in the session.
R5. Text Chat. (Client Side)General Description:Students/Participants can do text chat to the teachers/presenters and that chat will be displayed to the whole session.Importance:Top LevelNeed For:Collaboration.Constraints:Students/Participants can’t do private chat to anyone.Session should be created by teacher/presenter and should be joined by him/her. Details:Student/Participant can chat by joining the session created by teacher/presenter.
R6. Video Recording. (Client Side)General Description:Students/Participants can start video recording only if allowed be the teacher/presenter.Importance:Top LevelNeed For:Later use.Constraints:Video can’t be recorded until teacher/presenter allows to. Details:If allowed by the teacher/presenter, students/participants can just click over the “Start Recording” button and can start saving the whole lecture into video format for later use. Also, this will allow individual students to store the lecture in video format on their own systems.This function will capture the screens of the teacher/presenter screen and all the actions.
R7. Screen Sharing (Unicast)General Description:First time when system will start accessing the remote systems, this function will work and capture the screens.Importance:Top LevelNeed For:Main requirement of the system.Constraints:If there is no session started, this function can’t work. Details:When teacher/presenter will first start sharing the screen to the clients, the first event that will be instantiated is screen sharing (Unicast) function. After this multiple threads will be created that will allow the whole network systems to get that screen.
R8. Configuration Management.General Description:To configure the server and all the IP addresses of the network.Importance:Top LevelNeed For:Server will easily identify the clients in the network.Constraints:If network is changed and not configured, system will not work. Details:Teachers/Presenters can configure the server and clients addresses for the ease of the system working and functionality.
R9. Schedule Management.General Description:Teacher/Presenter can manage schedule so that automatically session will be prompted to them and also for the ease that system could differentiate the communication slots to different lectures, if given at the same time.Importance:Medium LevelNeed For:System could easily get the data of required students from the server of related courses.Constraints:If schedule is not managed, no auto session will be occurred. Details:Teacher/Presenters can store the schedule into server database and remaining all functionality will be provided by the Virtual Class Room (VCR).
R10. Student/Participant Management.General Description:Teacher/Presenter can manage students/participants within the network.Importance:Low LevelNeed For:To keep the better control and management and provide the simulation of real class rooms.Constraints:No such constraints.Details:Teacher/Presenter can mute, kick, ban students/participants to manage the environment of the Virtual Class Room (VCR).
R11. Quiz Creation. (Server Side)General Description:Teacher/Presenter can create online quiz using Virtual Class Room (VCR).Importance:Medium LevelNeed For:To check the students/participants interest in previous or running lecture(s).Constraints:No such constraints.Details:Teacher/Presenter can start creating quiz by clicking “Create Quiz” button and four different options will be given like Blanks, True/False, Multiple Choice (radio button), Multiple Choice (Choice group button).
R12. Quiz Solving. (Client Side)General Description:Students/Participants can solve quiz created and given by the teacher/presenter.Importance:Medium LevelNeed For:To check the students/participants interest in previous or running lecture(s).Constraints:No such constraints.Details:The quiz will be displayed to all screens within the network that are attending this session. After solving the quiz, quiz will be submitted to the database or quiz will be auto submitted if time interval, set by teachers/presenters is over.
R13. Quiz Checking. (Database)General Description:System will auto check all the quizzes submitted by the students if criteria given by the teacher/presenter.Importance:Medium LevelNeed For:To make it easy for the teacher/participant to check the quiz of individual students/participants.Constraints:If criteria are not defined, system will not check the quiz.Details:As soon as quiz will be submitted to the system, database will start checking the quiz of individual and will show the results after sometime on the user screen and will store the result in database as well for teacher/presenter further use.
R14. Start Quiz.General Description:Teacher can start the quiz.Importance:Medium LevelNeed For:To make it easy for the teacher/participant to check the quiz of individual students/participants.Constraints:If quiz is not created and no quiz in the database, this option will not work.Details:Teacher/Presenter can start quiz by selecting “Start Quiz” and quiz will be displayed to the users.</li></ul>2.7.2Non- Functional Requirements:<br />Non functional requirements are the constraints or limitations under which system should provide its services to users. Following are the non functional requirements of the Virtual Class Room (VCR).<br />Tools:<br />System will be developed using Net Beans IDE 6.9.1 as primary source of programming language (Java).<br />Time:<br />System should be delivered. Complete within the required time period.<br />User Friendly:<br /><ul><li>System should provide the user a pleasant look and feel.
Selection of colors should be proper.</li></ul>Support future enhancement:<br /><ul><li>Design of application should support future enhancement so that in future any other improvements can be made in the system easily and efficiently.
Object oriented methodology can be used to support future enhancement.</li></ul>Robustness:<br /><ul><li>System should be robust. It should not fail most of the time under normal circumstances,
Exception handling should be proper.</li></ul>The system is made to keep speed, reliability and usability for teacher and student, in mind. So the behavior could not affect the number of system, and as it contains very heavy functionality like audio/video share with remote desktop at the same, so such technologies were used in the system which could not disturb its performance too. <br />Audio video web cam share is not very common in java desktop based applications, this tool provides this functionality using RTP protocol which is suppose to be better than TCP/IP and UDP, also it provides facility to record lectures and view them on demand.<br />3.1Block Diagram of the Proposed System:<br />Figure 3.1 Block Diagram of Virtual Class Room<br />Figure 3.1 describes the Virtual Class Room (Proposed System VCR) of the system. It does not include the actual components that will perform the task but it depicts the idea of system working. In this figure there is a database server, teacher/presenter system and student/participant systems. Virtual Class Room will be installed on the teacher/presenter system and students/participants systems as well in departmental lab. All sessions will be stored in the database and teacher/presenter can retrieve the already stored sessions or the new sessions. Teacher/Presenter will be provided with a graphical user interface (GUI) that will allow him/her to manage all the functionality of the Virtual Class Room (VCR). <br />Figure 3.1 depicts the manner in which the user interacts with the application in detail.<br />3.1.2Control Flow:<br />The control flow of the Virtual Class Room (VCR) is described below in the diagram that shows the control flow of the system in departmental network.<br />Resume VideoInput/output devicesDirectory sharingFile transferText messageVideoSelectionAudioDNS Login<br />Figure 3.2 Control Flow of Virtual Class Room<br />3.2Use case Analysis:<br />Use case view represents the interface or interfaces that a system makes visible to the outside world, the external entities that interact with it, and their interrelationships.<br /><ul><li>Responsibilities for the system.
Teachers/Presenters can login on the virtual class room.
Teachers/Presenters can view the list of logged students/participants.
Teachers/Presenters can manage schedule, students/participants.
Teachers/Presenters can perform control events to the students/participants systems.
All users can share files and directories for better collaboration.</li></ul>Keeping in mind the above responsibilities, following use cases and actors can be derived.<br /><ul><li>Use CasesActorsUser management, session management, file transfer/share, directory transfer/share, presenter desktop sharing, input/output device(s) sharing, audio/video/text chat, quiz management system, schedule management, configuration management, student management, session record/view, students/participants desktop control and sharing.Teachers/Presenters.Students/Participants.</li></ul>3.2.1Use Case Diagram:<br />Virtual Class Room<br />3.3Use Case Description:<br />Use Case 1 (UC1): User management<br /><ul><li>Function:User ManagementFunction description:This function will let the teachers/presenters to manage the students/participants.Primary actor:Teacher/PresenterStudent/ParticipantInput:All users are logged in successfully from the network system and are in the same session.Output:Teacher/Presenter will perform specific functions and all those functions will be acted as per provided functionality.Source:All usersDestination:System/NetworkPre-condition:Teacher/Presenter will take the action.Post-condition:Action will be performed on the selected student(s)/participant(s). Success scenario:Teacher/Presenter will select student(s).Teacher/Presenter will select the action to be performed.</li></ul>Use Case 2 (UC2): Session Management<br /><ul><li>Function:Session ManagementFunction description:This function lets teachers to start session and control session using their LAN user name and password, on the other hand it lets students to join sessions using their LAN user names and passwordsPrimary actor:Teacher/PresenterInput:Teacher/Presenter is logged in successfully from the network system and start auto or manual sessionOutput:Session StartedThe system will allow all the concerned students/Attendees to join the session.All communication will be started between users.Source:All usersDestination:System/NetworkPre-condition:Teacher/Presenter start/end the presentation.Post-condition:Session will be successfully started/ended Success scenario:Students/Attendees will start joining session.Teacher/Presenter can select any of the student/participant to perform certain action.Teacher/Presenter and student/participant can perform all actions provided within the system.</li></ul>Use Case 3 (UC3): File/Directory Sharing/transfer<br /><ul><li>Function:File/Directory Sharing or TransferFunction description:This function will allow the teacher/presenter and students/Attendees to share files and directories within the session, also the can send/Transfer files with each otherPrimary actor:Teacher/PresenterStudents/AttendeesInput:All users are logged in successfully from the network system and attending the same session.A user starts sharing or sending a file/directoryOutput:The system will allow all the concerned users to collaborate to each other and share files and directories.All communication will be started between users.Source:All usersDestination:System/NetworkPre-condition:Teacher/Presenter starts the session.Post-condition:File or directory will be successfully shared/transferred.Success scenario:Any user will start sharing the file or directory to other users.Teacher/Presenter can share to everyone.Student/Participant can share only to teacher/presenter.Users can select files from any of the already shared files.</li></ul>Use Case 4 (UC4): Presenter desktop sharing<br /><ul><li>Function:Presenter Desktop SharingFunction description:This function will allow the teacher/presenter to share screen to students/Attendees Primary actor:Teacher/PresenterStudents/AttendeesInput:All users are logged in successfully from the network system and attending the same session.Output:The system will allow all the concerned users to collaborate to each other.All communication will be started between users.Screen is sharedSource:All usersDestination:System/NetworkPre-condition:Teacher/Presenter starts the session.Post-condition:Screen is successfully shared or accessed.Success scenario:Teacher/Presenter will allow the students/Attendees to view his/her screen.</li></ul>Use Case 5 (UC5): Audio/Video devices sharing/chat<br /><ul><li>Function:Audio/Video Devices Sharing/ChatFunction description:This is to let presenter/teacher to share his webcam i.e. for video chat and may be microphone for audio chatPrimary actor:Teacher/PresenterStudents/AttendeesInput:All users are logged in successfully from the network system and are part of the same session.Output:The system will allow all the concerned users to collaborate to each other.All communication will be started between users.Teacher shares webcam or microphoneSource:All usersDestination:System/NetworkPre-condition:Teacher/Presenter selects a device and format for audio and video chat or accepts to go with system selected devicesPost-condition:Input/output devices are successfully shared and teacher perform audio video chat.Success scenario:Teacher/Presenter has selected devices successfullyTeacher/Presenter will start collaborating through the selected input/output device(s). </li></ul>Use Case 6 (UC6): Quiz Management System<br /><ul><li>Function:Quiz Management SystemFunction description:This function will allow the teacher/presenter to Create and conduct quizzes online, and let the system to check quizzes automatically, and display the results Primary actor:Teacher/PresenterStudents/AttendeesInput:All users are logged in successfully from the network system and are part of the same session.Output:The system will allow all the concerned users to collaborate to each other.All communication will be started between users of the systemSource:All usersDestination:System/NetworkPre-condition:Teacher/Presenter starts creating a quiz or select a pre-created quiz.Post-condition:Quiz will be successfully created, conducted, checked and results are displayed.Success scenario:Teacher/Presenter will start creating a quiz or select a pre-created quiz.After successfully creating quiz, teacher/presenter will allow concerned students/Attendees to solve the online and remotely quiz within the network range, with some time constraints.Students/Attendees will solve the quiz and submit that to the system.System will check the quiz according to teacher/participant given criteria and display the results. </li></ul>Use Case 7 (UC7): Schedule Management<br /><ul><li>Function:Schedule ManagementFunction description:This function will allow the teacher/presenter or some admin to enter and manage the schedule of department i.e. lecture timingsPrimary actor:Teacher/Presenter/AdminInput:Teacher/Presenter/Admin is successfully logged into the system.Output:The system will allow teacher/presenter/Admin to input and manage the schedule.Source:All usersDestination:System/NetworkPre-condition:Teacher/Presenter/Admin starts managing schedule.Post-condition:Schedule will be successfully stored.Success scenario:Teacher/Presenter/Admin will start inputting schedule.After successfully inputting schedule, he/she will store that into the database.System will auto check the schedule each time any of the teacher/presenter logged into the system.If there is a time of his/her lecture/presentation, system will ask to start session automatically?</li></ul>Use Case 8 (UC8): Configuration Management<br /><ul><li>Function:Configuration ManagementFunction description:This function will let Presenter/Attendee to set customized network communication settings or look and feel of their systemPrimary actor:Presenter/AttendeeInput:Presenter/Attendee is successfully logged into the system.Output:The system will allow Presenter/Attendee to manage the configuration of system according to their desire or feasibilitySource:All usersDestination:System/NetworkPre-condition:Teacher/Presenter selects to change the default portPost-condition:Particular port will be assigned to the operation.Success scenario:Teacher/Presenter selects to change the default port.System will check the new port’s availability Port will be assigned to the operation.</li></ul>Use Case 9 (UC9): Student Management<br /><ul><li>Function:Student ManagementFunction description:This function will allow the teacher/presenter to manage the students/participants of the continued sessionPrimary actor:Presenter/AttendeeInput:Teacher/Presenter is successfully logged into the system.Output:The system will allow teacher/presenter to manage the users.Source:All usersDestination:System/NetworkPre-condition:Teacher/Presenter selects a single or multiple students/Attendees.Post-condition:Particular action will be performed to the student/participant.Success scenario:Teacher/Presenter will select any action from the given actions i.e. kick, ban, mute etc.System will check the selected student(s)/participant(s).System will check the selected action.System will successfully perform that action over the selected student(s)/participant(s).</li></ul>Use Case 10 (UC10): Session Record/View<br /><ul><li>Function:Session Record/ViewFunction description:This function will allow the teacher/presenter to record the session or students/participants can also record/view.Primary actor:Presenter/TeacherStudents/ParticipantsInput:All users are successfully logged into the system.Output:Session will be recorded/viewed into the centralized database.Source:All usersDestination:System/NetworkPre-condition:Teacher/Presenter selects to record session.Post-condition:Session will be recorded into the centralized database.Success scenario:Teacher/Presenter will select Start Recording/Viewing.System will start gathering all the events and screens of the session.After the session will be ended, system will prompt for the successfully storage/view of session.Users can also stop recording/viewing at any time.</li></ul>Use Case 11 (UC11): Attendees Desktop Control and Sharing<br /><ul><li>Function:Attendees Desktop Control and SharingFunction description:This function will allow the teacher/presenter to get remote access of attendee’s screen and can also perform remote mouse or key board operations to the screen Primary actor:Teacher/PresenterStudents/AttendeesInput:All users are logged in successfully from the network system and attending the same session.Output:The system will allow all the concerned users to collaborate to each other.All communication will be started between users.Screen is sharedSource:All usersDestination:System/NetworkPre-condition:Teacher/Presenter starts the session.Post-condition:Screen is successfully shared or accessed.Success scenario:Teacher/Presenter will have access to the students screenTeacher can successfully perform remote events over attendee’s screen</li></ul>Use Case 12 (UC12): Text Chat<br /><ul><li>Function: Text ChatFunction description:This function will allows the teacher/presenter and students/Attendees to converse using traditional text chat style, while using System Primary actor:Teacher/PresenterStudents/AttendeesInput:All users are logged in successfully from the network system and attending the same session.Output:The system will allow all the concerned users to collaborate to each other.All communication will be started between users.Source:All usersDestination:System/NetworkPre-condition:Teacher/Presenter starts the session.Post-condition:Communication will be performed.Success scenario:Students/Attendees will start joining session.Teacher/Presenter can select any of the student/participant to perform certain action.Teacher/Presenter and student/participant can perform all actions provided within the system.Teacher/Presenter can select a single user or all the users to chat.Students/Attendees can chat only to the teacher/presenter or in the groups’ channel.Teacher/Presenter can create new channels.</li></ul>Design is a creative process requiring insight and flair on the part of the designer. It is the key to effective engineering. The design process involves several models of the system at different level of abstraction. As a design is decomposed, errors and omissions in earlier stages are discovered. These feedbacks allow earlier design models to be improved. Object oriented design is concerned with developing an object oriented model of application domain. The identified objects may or may not map directly into system objects. [Somerville, 1988]<br /><ul><li>System Sequence Diagrams:</li></ul>Object-oriented design is concerned with defining software objects and their collaborations. A common notation to illustrate these collaborations is the interaction/sequence diagram. It shows the flow of messages between software objects, and thus the invocation of methods [Larman, 1980]<br />Since Virtual Class Room contains too many use cases to I am going to show only the use cases that was in my scope:<br /><ul><li>Architecture Design:</li></ul>In this section, we describe the main architecture of the system in detail. While main classes and modules of the system are described at abstract level, their detail will be given in the next section.<br /><ul><li>Main Architecture of System:
Basic Architecture:</li></ul>The basic architecture of Virtual Class Room (VCR) is Client-Server. The system will run on both client and server sides and should be installed properly.<br /><ul><li>Communication Architecture:</li></ul>The Virtual Class Room is communicating with clients, server and database server with three different protocols that are;<br />i).TCP/IP<br />ii).RTP<br />iii).UDP<br /><ul><li>Complete Model Diagram:</li></ul>DatabaseClientClientClientClientClientClientClientClientServer<br /><ul><li>Class Diagram:</li></ul>A class diagram consists of a group of classes and interfaces reflecting important entities of the business domain of the system being modeled, and the relationships between these classes and interfaces. The classes and interfaces in the diagram represent the members of a family tree and the relationships between the classes are analogous to relationships between members in a family tree. Interestingly, classes in a class diagram are interconnected in a hierarchical fashion, like a set of parent classes (the grand patriarch or matriarch of the family, as the case may be) and related child classes under the parent classes. Similarly, a software application is comprised of classes and a diagram depicting the relationship between each of these classes would be the class diagram. Thus, a class diagram is a pictorial representation of the detailed system design. <br />Quiz-pollID: integer-question: varchar-option1: string-option2: string-option3:string-option4: string+allow: Boolean+createQuiz: ConstructorQuizManagement+ createQuiz();Session+ sessionName: String+ createSession();+ getSession();<br />creates<br /><ul><li>1..*
TeacherManager</li></ul>The system implementation is the next phase after completion of design phase. The purpose of the implementation phase is to transfer the design into executable computer software. In the implementation phase the system is built to meet the design specification. Implementation phase includes some additional issues that must be taken care or resolved before or while implementing the system. This includes performance of hardware devices, software, utilities or tools that aid in development and the problems faced during their installation. In addition as the software evolves there may be the need of some changes in comparison with the design. These changes must be recorded before or while applying them.<br />5.1 Tools Selection:<br />Tools selection is a very important stage to develop a new system, the development process, deployment and maintenance depends on tool selection. There are few things should be kept in mind while selecting a tool, some of them are as follow:<br /><ul><li>System to be developed is web-based or desktop based.
Does tool provide required technologies to be used in the system?
The language must provide the necessary data structures and language constructs for implanting the requirements.
The language should support the selected analysis and design approaches so that these could be fully implemented by the developer.
Java is object oriented language. As object oriented approach is used during analysis and design phase of software development so it was necessary to select an object oriented language.
Provides JMF which makes it very simple to interact with the hardware devices.
Easy Connector API to connect with databases.
</li></ul>5.2 Net Beans IDE<br /><ul><li>Net beans IDE 6.8 has used to develop Virtual Class Room, the main reasons of selecting net beans IDE are:
GUI: The major requirement of today’s developers is to have a good User Interface for their users. They can provide whatever functionality they need but it the GUI that lets the user better knows the existence of that particular functionality and its easier for them to click and select than type something on a black boring screen. Thus, today’s developers need IDE’s such as net beans that develop readymade windows forms with all the required buttons, labels, text boxes and like that can be tailor made for the program in question.
Database Integration: Database based program developers know how hard it is to interface your back-end database to your front-end program. This is where netbeans packs the punch by providing you a CRUD(create, Read, Update, Delete) application shell.</li></ul>Highly Structured Code: Netbeans provide very easy to use interface which also allows us to auto set the coding structure and also auto generated code is structured with a unique standard.<br />Scalability: Netbeans is known for development of scalable projects due to best organization structure of projects with netbeans platform API.<br />Common Language Routine: The CLR is described as the “Execution Engine” of Net Beans. It provides the environment within which programs run.<br />5.3 MySQL as DBMS:<br />When it comes to these two databases, the differences begin with the open-source nature of MySQL. MySQL is an extensible, open storage database engine, offering multiple variations such as Berkeley DB, InnoDB, Heap and MyISAM. Also MySQL is fr3e for educational purposes. MySQL is the clear leader, mainly due to the format of its default table, MyISAM. MyISAM databases leave a small footprint using little disk space, memory and CPU. While the system runs on the Windows platform without flaw, it tends to perform better on Linux and other UNIX-like systems. Because of its stability, many internet powerhouses such as Yahoo! use MySQL as their back-end database. Also MySQL provides best security mechanisms in the entire open source DBMSs available.<br />5.4 Code Documentation Standard:<br />Code of project has been documented well with coding standard as told by external project in charge. These standards are described below:<br /><ul><li>Fully object oriented design is flowed in implementation of the system.
A general design structure is used for the system; this design generalization will enable future enhancements easily.
Each class is well documented in form of class documentation. Documentation of these classes is provided in the appendices.
Each class method is documented before starting.</li></ul>5.5 Operating System Selection:<br /> The virtual class room is developed to run on almost any platform and is also tested on Linux Red Hat 7, Win Xp, Win 7, Win Vista and MAC OS X Leopard. <br />6.1 Testing Introduction:<br />Testing is the final step towards the evolvement of any software, which rectifies all of the minute flaws that could have been left in the software during its development.<br />In this project the importance of software testing cannot be overemphasized. Once the source code has been generated, application is tested to allow errors to be identified and rectified before the delivery of software. While it is not possible to remove every error/bug in such a large application, but the goal is to remove almost all bugs in the early software development cycle. <br />6.2 Testing Objectives:<br />Testing of the application is done to achieve the following objectives.<br />Execution of the Application is done with intent to find the errors in the program<br />Application is designed to be tested on different mobiles and also different users have also tested the application. <br />6.3 Testing Strategies:<br />As for the testing of mobile application is concerned, among the plenty of testing strategies application is tested on different mobile phones to check its Urdu validity also Urdu mobile application is tested on different mobiles for different users to get the proper feedback of the application.<br />6.4Testing of Application on different Systems<br />As Virtual Class Room is a client Server system so it is tested over departmental network with one system as a database server and one system as a server to serve all other clients. <br />6.5Evaluation<br />To evaluate the effectiveness of the application, I have performed different tasks such as testing of the application on different systems, then using different systems as clients to collaborate and test with the server database and server system with different users to test the application. In first step after developing the application it is tested on different systems with different features to check its functionality and working on the server side and what kind of problems occurred in the application. In the second step client’s functionality is tested with the server and what kind of problems occurred in the application. During testing of application on different systems it was found that some of the users have come up with their remarks as ‘fair, bad’ etc. Two of the main reasons for users giving such remarks are that some of the users were not very much familiar to the handling of client server applications and other is that some users did not understand the functionality of the Application.<br />6.6 Summary<br />In this chapter, I have discussed all the issues that were concerned in the testing which included the testing of the application on different systems to test features that supports the application and also tested the application by different users I have also described the evaluation of the application. In the next chapter I’ll discuss the conclusion of the system.<br />Software Evaluation and Documentation:<br />For evaluation of software it is necessary to test that it fulfills all requirements and does it without any error. The evaluation is unlikely to produce good results unless a development process has been followed [Scholtz, 2003]. VCR is developed for the computer science CS department so teachers can start presents their lectures remotely, so they will be the main testers of the tool.<br />On the basis of informal testing performed by small group of users, we can summarize our result as follows.<br /><ul><li>Good and useable interface, easy to use
Errors are prevented to occur, exception handling is implemented and errors are controlled with displaying messages.
Teachers can share screen and view client screens with very little of speed problem.
Multiple devices and format selection may available in very less number of systems.
We have focused on the teacher’s usability, performance and quality. The goals are established during requirements analysis, iterative testing is done during design and development phases and the results are compared to the intended goals. The recommended corrections by the results are identified. These are made and the tool is retested before continuing the remaining development. All major modules were developed individually the made unit testing and then modules were integrated one by one and at each level very strong testing is made as the data was suppose to travel on the network,, so was made serializable byte stream. </li></ul>Conclusion:<br />The system is made to keep speed, reliability and usability for teacher and student, in mind. So the behavior could not affect the number of system, and as it contains very heavy functionality like audio/video share with remote desktop at the same, so such technologies were used in the system which could not disturb its performance too. <br />Audio video web cam share is not very common in java desktop based applications, this tool provides this functionality using RTP protocol which is suppose to be better than TCP/IP and UDP, also it provides facility to record lectures and view them on demand.<br />As given in system specification, we have implemented most of the functionalities of the proposed virtual classroom. Our virtual classroom will be used for conducting web seminars. It has mainly two users, presenter and participant. A presenter will conduct a session for participants, which will attend the session from anywhere in the departmental network. When a session is started, presenter can conduct seminars for participants in the session. As a presenter he can add new users to session, he can create agenda for the session, that will give an outline about the session, he can add various resources (i.e. files or web links) to the session, he can show power point presentation to participants, also he can use white board, <br />He can answer participant’s doubts using chat facility; he can create different poll questions. When participant enters in classroom, he can attend the session. He is able to download the resources submitted by presenter, he can not chat with other participants in classroom, he can answer the questions, and also he can see the responses submitted by participants to those questions, he can view the slide transition, also he can ask and answer questions to the teacher/presenter.<br />VCR Features:<br /><ul><li>Remote desktop sharing.
On demand recorded lectures display.</li></ul>Future Enhancements:<br />VCR is well documented, Scalable and maintainable tool, it is optimized for speed but still kept simple to use and understand. So it could be upgraded very easily.<br />The following future enhancements can be applied to it:<br /><ul><li>Change Audio/Video share protocol from RTP to TCP/IP RTP.
Could create a heterogeneous client module.</li></ul>Screenshots of the System:<br />This is the main dashboard that will help teachers/presenters to perform mostly used functions from the main screen.<br />This is the window that will allow teachers/presenters to name the session or he/she can automatically start the session that will be created in the database.<br />This button will start the session:<br />This is the main Presenter Module that will allow teacher/presenter to perform different events. He/she can share screen, start chatting by making channels, start quiz, share cam, and control the different activities provided by the system.<br />This button can allow teacher/presenter to start the quiz.<br />Here is the most detailed look of the dash board depicting all the functions being provided to the teachers/presenters.<br />This is a view of “Create Quiz” where teachers/presenters can make or create quiz by using this system.<br />You can see two tabs, one is Quiz name and other is Create Quiz.<br />Create Quiz tab will be disabled until the Quiz Name tab is fully satisfied.<br />In this screen shot, teacher/presenter enters the quiz name and quiz description that will be added to the database after pressing Save button.<br />On the right side of the screen you can see a heading Previous Quizzes that will retrieve the list of all quizzes stored in the database for different uses.<br />Now here is the Create Quiz tab that will provide four different options that are:<br /><ul><li>True/False
Blanks button will allow teachers/presenters to enter a question and the related answers to that blanks and after hitting save button, this will be stored into the database.</li></ul>Multiple Choice button will allow him/her to enter question and then will add choices. Students/Participants can select only a single choice from this option.<br />Multiple Selection button will allow him/her to create multiple selection questions.<br />True/False button will allow him/her to add true/false questions.<br />Also, it is designed in such a simple way that in true/false, multiple choice and multiple selection options, teachers/participants will just have to enter options and those that are correct options should be selected from the “Correct” option.<br />When teacher/participant hits the save button, system prompts him/her to be sure if he is yet done or not.<br />From the presenter module, teacher/presenter can hit the share screen button to start sharing the screen.<br />This button as shown in the above figure will allow him/her to share screen.<br />As soon as teacher/presenter hits the Share Screen button, a message will be prompted that will acknowledge him that your request is being responded and kindly wait until it is fully acted upon.<br />Here is the client screen. In this screen there is a tab of “Teachers Desktop” that will show Clients with the teacher/presenter desktop.<br />After the screen is fully shared, students/participants can view the teacher/presenter screen as shown in the figure.<br />