The target audiences are the group of people that will use the system and the admin who is controlling the system. In other to have clear understanding of system requirements, the Author has contact his target audience and vital information through a fact finding technique which will be discuss next.
Selected Technique
From many fact-finding techniques we use nowadays to find what the user really wants, the author chooses the one that he thinks is the most suitable in this case and the one to use is questionnaire to find out the system requirements which are going to be included in this project. The fact-finding technique is being preferred because it is easier and more economical way of receiving large amount of data for the author in order to get exactly user requirements. When conducted accordingly, the chosen technique provides a clearer and well requirement specification.
Questionnaire
This is an economical fact-finding technique that involves the setting up of a series of written questions to be distributed to a large number of people to get several views on the system requirements, and statistically analyze them (Farmer, McRobb, and Bennett, 2006).
Advantages of Questionnaire
This fact finding technique has the following advantages:
If designed carefully, the result of a questionnaire can be easily analyzed.
Provides data economically from large number of people.
(Farmer, McRobb, and Bennett, 2006)
Disadvantages of Questionnaire
Among the disadvantages of questionnaire are:-
It is not easy to be constructed.
At times it suffers from low response rates.
There No automatic follow-up or deeper inquiring medium available.
(Farmer, McRobb, and Bennett, 2006)
Appropriate Situation
Questionnaire technique is very useful when opinions from large number of people are needed or when building an application for the general public and when people are geographically dispersed (Farmer, McRobb, and Bennett, 2006)
Questionnaire Analysis
The author creates and distributed a total of 50 questionnaires out of which 46 were responded by the audience. The author has analyzed the responses based on the result 46 respondents of the questionnaire:
Note: The first three (3) questions are for the admin but still if you know you can answer, the Author is very glad to receive and work with your answer.
1. How do you find the general interface of car parking system?
Figure 4.3.1- Analysis survey question 1
This question was designed to help the author get an overview of how users think of the current systems interface. From the analysis, 28% think it's simple, 6% said it is complex, while 56% of the respondents think that the current systems interface is satisfactory thus the author will try to design this system's interface to be as good as the current systems or even better.
2. Is it comfortable if a system is restricted to display in specific Platform?
Figure 4.3.2- Analysis survey question 2
From the author analysis, 77% respondents of this question don't like systems to be restricted to specific platforms, while a 23% think it is good. Thus the system will be designed to display well in all platform.
3. How would you like the system navigation to be displayed?
Figure 4.3.3- Analysis survey question 3
This question was designed to target the navigational aspect of the new system. From the result above, 76% of the users said they preferred a simple navigation rather than a fancy and complicated one. While 24% want the navigation to be fancy.
4) Do you think simulator is important in a car parking system environment?
Figure 4.3.4- Analysis survey question 4
This question was to find out how people think on the importance of simulator in a car parking system. If users don't know how importance is the car parking system simulator, it will difficult for them to accept the system. But from the data we have it shows that 60% people agreed that simulator is important in reducing the complexity of real world.
5) Do you agree that parking system simulator will be helpful?
Figure 4.3.5- Analysis survey question 5
People may point out the need to have something if they really need it and it is not in place and it's absent is showing a significant drawbacks to the people daily activities. In the authors analysis, due to the problems people are facing nowadays and the introduction of some intelligent parking systems people start to realize that simulator is going to be very helpful. That's why people opt to agreed with it importance. 62% agreed it's helpful, 28% do not agree with that while 10% they don't have know.
6) Have you ever interacted with simulator?
Figure 4.3.6- Analysis survey question 6
Although people know the importance of simulators but only few have interaction with such kind of system. This is like a disadvantage to this approach but it may be because it's new to people. Since people agreed with it helps and importance it is going to be accepted by the people, if the system is very user friendly after completion.
7) Would like the car parking system simulator to have some or all of the following features? (You can select more than one (1) answer).
Figure 4.3.7- Analysis survey question 7
This question is based on some functional requirement of the system and they are among the most important features of the system. Tracking car, information on empty lot and searching vehicle lot this some of the limitation of many of the current system or some have some of the feature but they lack some which clearly show the deficiency of the system. People have experience the implication of not having them in the system. That is why 100% want to have information on available parking lots, 86% want the system to have tracking ability while 80% want the system to have vehicle searching feature.
8) How can you rate the response time of the current car parking systems? (4-high and 1-very low)
Figure 4.3.8- Analysis survey question 8
Base on the users who interact and know or have some experience of the current system, 50% and 40% rate response of the system as good and there voting indicate that they want the proposed system to maintain and if possible improve response of the system.
9) Do you want the system to be indicating to you where you or which lot you should park?
Figure 4.3.9- Analysis survey question 9
One of the causes of traffic in parking complex is the inadequacy of the system to assign each car its parking lot before passing the entrance gate. If each vehicle is assign with lot the driver will knows exactly where he/she they would go. This eliminate the wasting time in searching for the parking lot.
10) What do you think causes the wasting time in car parking complex?
Figure 4.3.10- Analysis survey question 10
Most of the time driver waste so much time in searching for an empty bay to park. This can be prevented if the system is sufficient enough to allocate parking lot to the car. 40% of the people blame the driver for parking anyhow, 40% blame the system for not providing possible solution while 20% state different problems.
Requirements Specification
Before the Author specifies the requirements it should be noted that the Author have split the requirements into their four appropriate categories to enhance their clarity:
• Functional requirements
• Non-functional requirements
• User interface and Usability requirements
• User requirements
Functional Requirements
Lot information
One of the function provided by the system is to allow the user to know the information about the empty lot. In case when a customer needs to know the available lots then the administrator can retrieve the information for them.
Car searching
The system should allow the user to search a car. The system should the customer to search where he parks his car if he forgot or misplace his ticket.
Calculation of charges
The system should generate the sums owed to any car driver. The system should process how much each car would paid depending on the time spent inside the parking complex.
Detection of car
The system should detect any car in the entrance. The system should also know any car that exit by removing its information attaches to a particular lot.
Assigning of lot
The system should allow the admin to assign lot a car when there is need for that. Because the system is responsible for assigning lot automatically, but if there any case or the admin want to reserve a space for car the system should provide that.
Monitoring
The system should allow the admin to monitor the traffic in the parking area and allow him to adjust the timing of entrance and exiting in other to control the traffic
Reservation
When the customer makes an enquiry, the admin can reserve space for him and store it in the database.
Non-functional requirements
These refer to the properties of the system and the constraints that are going to apply
to the system. All of them are significant to computerize system, or it was compulsory for computerize system.
Platform
The application that is to be created will be implemented in Java language because, it is dubbed as the most portable programming language as it can be used in any platform without alteration to the code. The system should also support a user running any type of computer.
Error Handling
The system should be able to avoid errors by not allowing the user to perform unnecessary action. Only valid actions will be permissible in the system. In the event of an error message, dialogs will be used to inform the user what is wrong and what is the right thing to do.
Response time
Performance is one key factor to be considered when developing a system. The system should be able to respond on time at a request made by user. There system must avoid any long delay of transferring information to response user's request at good time. The system to may work differently due to the delay occurence.
Effctiveness
The system should be an effective parking system simulator allowing users to go about their tasks efficiently. All necessary tasks and functions a user needs to perform should be provided by the system.
The development of the system should follow the project management Gantt chart and be completed in the allocated period of time.
Real-time
All information and data must keep it in real time. No information that obsolete. Every of them must be updating all the time.
User interface and usability requirements
The user interface and usability of the system should comply with usability heuristics Heuristics for User Interface Design (2001).
User requirements
The system should support the user's level of computer experience and literacy, so that the user can use the system with minimal help.
Additional Requirement
Storing car number:
The system should take the car number immediately after the driver press the ticket button then store it and printing it together with the lot number, time and other necessary information.
Summary
This chapter has completely describe the techniques been used in collecting the user requirement. The Author compiles all the functionality needed by the system to produce the required result.
CHAPTER 5.0 TOOLS AND TECHNIQUES
Introduction
In this chapter, the author will discuss on the development languages to be use in implementing the system. Good choice of programming language will lead to the successful system and wrong choice will to the other way. The author has selected some programming languages and some database also to compare in other to figure which is the most appropriate to apply in developing the system.
Programming Language
ASP.NET
ASP.Net is a web application framework marketed by Microsoft that programmers can use to build dynamic web sites, web applications and web services. It is part of Microsoft's.NET platform and is the descendant to Microsoft's Active Server Pages (ASP) technology. ASP.NET executes all code on the server (in the same way to a normal application). The server returns the resultant HTML to the client when the ASP.NET code has been processed. Then the server will use it to make the clients browser experience quicker and easier if the client supports JavaScript. Even with HTML being the restrictive factor here, ASP.NET still manages to bring true OOP (Object Oriented Programming) to the Internet. (Web design tutorials 2008)
Advantages Using ASP.NET
ASP.NET considerably reduces the amount of code required to build large program.
The source code is compiled the first time the page is requested. Execution is quick as the Web Server compiles the page the first time it is requested. The server saves the compiled version of the page for use next time the page is requested
ASP.NET makes development simpler and easier to maintain with an event-driven, server-side programming model
The Web server continuously monitors the pages, components and applications running on it. If it notices infinite loops, illegal software or activities, memory leaks, it seamlessly kills those activities and restarts itself. (why ASP.NET 2007)
Java Programming Language
JAVA is an object oriented programming language and it was intended to serve as a new way to manage software complexity. Java refers to a number of computer software products and specifications from Sun Microsystems that together provide a system for developing application software and deploying it in a cross-platform environment (article base 2005). Java is used in a range of computing platforms from embedded devices and mobile phones on the low end, to enterprise servers and supercomputers on the high end.
The Java Platforms
Java is generally thought of in terms of three platforms: Standard Edition (SE), Enterprise Edition (EE), and Micro Edition (ME). Each describes the mixture of a language version, a set of standard libraries, and a virtual machine to execute the code. EE is a superset of SE--any EE application can presume the existence of all of the SE libraries--and EE's use of the language is indistinguishable to SE's.(Web-dot-deb. 2010)
Advantages of java
Java API's can easily be accessed by developers
Java perform supports garbage collection, so memory management is automatic
Java always allocates objects on the stack
Java embraced the concept of exception specifications
Multi-platform support language and support for web-services
Using JAVA we can develop dynamic web applications
It allows you to create modular programs and reusable codes.(Web-dot-deb, 2010)
JAVA programming enables secure and high performance software development on multiple platforms.
Programming Language Comparison
The author has come out with some evaluation criteria in other to compare both programming languages. And they are as follows:-
Easy to use: This will define how straightforward a programming language is in terms of applying in a project.
Efficiency: This will rate the efficiency of a programming language when it comes to coding.
Platform: Describes the platform at which system developed with this programming language can be viewed.
Performance: This will rate the performance of the programming language with error prevention and regards to speed.
Language
Criteria
Asp.net
Java
Ease of use
the authors' has little experience on this language
Java is very well known to the Author and it's easier to use than ASP.net.
Efficiency
Asp.net is very competent in the sense that you don't have do too much of coding in designing the interface.
Also Java is very efficient and has some compilers that support drag and drop.
Platform
All Applications developed using this language, they are platform independent.
Java is entirely platform independent.
Performance
It has a very good rate of performance.
It has an excellent rate of performance and record.
Table 6.1: Programming language comparison
Chosen Language
Java is the chosen the programming language in this project. The reason of choosing Java is base on the strengths which are as follows:-
5.3.1 Strengths of Java over other programming languages
Java possesses some features and advantages which gives it an edge over other
programming languages that could alternatively be used for the development of the
Smart tool simulator in managing car parking system. Such strengths are;
• Java is simple
Java is considered a much simpler and easy to use object-oriented programming language when compared to the popular programming languages. Java was partially modeled after C++, and it has replaced the complexity of multiple inheritance in C++ with a simple structure called interface, and also has eliminated the use of pointers.
• Java is Object-oriented
Object-oriented programming models the real world. Everything in the world can be modeled as an object. For example, a squre is an object, a person is an object, and a window's icon is an object. Java is object-oriented because programming in Java is centered on creating objects, manipulating objects, and making objects work together.
• Java is Distributed
Distributed computing involves several computers communicating over a network. Java is designed to make distributed computing easy with the networking capacity that is inherently integrated into it. Coding network programs in Java is like sending and receiving data to and from a file.
• Portability
One of the most convincing reasons to adopt Java is its platform independence. Java runs on most major hardware and software platforms. Java applets are supported by all Java-compatible browsers. By moving existing software to Java, you are able to make it instantly compatible with these software platforms. Java programs become more portable. Any hardware and operating system dependencies are removed.
• Java is Interpreted
An interpreter is needed in order to run Java programs. The programs are compiled into Java Virtual Machine code called bytecode. The bytecode is machine independent and is able to run on any machine that has a interpreter.
• Security
Java is one of the first programming languages to consider security as part of its design. The Java language, compiler, interpreter, and runtime enviroment were each developed with security in mind.
• Reliability
Security and reliability go hand in hand. Security measures cannot be implemented with any degree of assurance without a reliable framework for program execution. Java provides multiple levels of reliability measures, beginning with the Java language itself.
• Java is Robust
Robust means reliable and no programming language can really assure reliability. Java puts a lot of importance on early checkin for possible errors, as Java compilers are able to detect many problems that would first show up during execution time in other languages. Java eliminates certain types of programming constructs in other languages that are prone to errors.
• Java is Multithreaded
Multithreaded is the capability for a program to perform several tasks simultaneously within a program. For instance, listing to music while you are writing in Ms Word will be considered as was discuss in chapter 3.
• Java is Dynamic
The Java programming language was design to adapt to an evolving environment. New methods and properties can be added freely in a class without affecting their clients. Also, Java is able to load classes as needed at runtime.
4.2.3 Limitations of Java
Here are some of the limitation that java possesses over the other major programming languages.
• Performance
Java can be perceived as considerably slower and more memory-consuming than natively compiled languages such as C or C++.
• Look and feel
The default look and feel of GUI application written in java using the swing toolkit is very different from native applications. It is possible to specify a different look and feel through the pluggable look and feel system of Swing.
• Single-paradigm language
Java is predominantly a single-paradigm language. However, with the addition of static imports in Java 5.0 the procedural paradigm is better accommodated than in earlier versions of Java.
(WebDotDev.com 2008)
Database Design
Oracle
Oracle is a powerful relational database management system that gives the user access to their data and helps them transform the data into information (Oracle 2010). Along with Microsoft SQL Server, Oracle is generally regarded as one of the two most accepted full-featured database systems on the market today.
With Oracle Application Express, you can construct public applications that do not need a user log in, or you can create protected applications that require authentication. Oracle Application Express provides a number of built-in authentication schemes including Single Sign On, Database Account Credentials, and an easy-to-use user management system (advantage of using Oracle 2010). You can also use custom schemes that border with just about any authentication service including Microsoft Active Directory and Oracle Applications. Additionally, you can modify authorization to meet the requirements of your environment and apply authorization selectively to an entire purpose, a page, or a page component. Finally, you can also take advantage of an inventive session state protection feature to prevent URL tampering and built-in features to protect an application form SQL insertion and cross-site scripting (XSS) attacks.
Microsoft SQL Server
SQL stands for Structured Query Language. SQL is used to communicate with and request information from a database. The Structured Query Language (SQL) comprises one of the essential building blocks of contemporary database architecture. SQL defines the methods used to create and operate relational databases on all major platforms.
SQL statements are used to execute responsibilities such as update data on a database, or retrieve data from a database. Some common relational database management systems that use SQL are: Oracle, Sybase, Microsoft SQL Server, Access, Ingress, etc. Although nearly all database systems use SQL, most of them also have their own additional proprietary extensions that are frequently only used on their system. (New Features and Enhancements
J2SE 5.0 2010)
Choice of Database
Oracle is the chosen database because is much versatile than SQL. Oracle can run and handle more transactions than SQL. Oracle would be better if you are going to have lots of database usage. Oracle is better with memory leaks and handles multiple threads. You can do SQL Transactions, stored procedures, DTS in Oracle that you cannot do in SQL earlier versions (oracle advantage over Mysql 2009). Oracle is expensive, although they came out with Oracle Free Edition to attract SQL users. Oracle are only limited to large corporations due to licensing costs and not all hosting companies have Oracle but its more reliable and secure. You can make billions of data with SQL, but it will be slow on the server.
Oracle JVM
Oracle Database 11g Release 1 (11.1) includes a fully functional Java Virtual Machine (JVM), as well as the Java class libraries for Sun's Java Development Kit (JDK) 5.0. When combined with Oracle's JDBC and SQLJ, this release provides an enterprise class platform, Oracle JVM, for developing and deploying server-based Java applications.
Oracle JVM Utilities Enhancements
The utilities enhancements include URL support in loadjava, list-based operation with dropjava, class closure tool and ojvmjava enhancements
Usability Enhancements
The following apply:
JDK-like command-line interface
Database-resident JAR support
Sharing of metadata for user classloaded classes
Two-tier duration for Java session state
Direct and immediate termination of Java sessions
Redirection output on the server
Support for JMX interface
Just-In-Time (JIT) Compiler
The JIT compiler complies Java bytecode on-the-fly resulting in hugh enhancement of the of Java execution time (as compared with interpreted mode). The JIT stores the compiled binaries avoiding recompilation.
Shared pool Memory
The shared_pool memory is consumed mainly during Java initialization in the database (for example, initjvm.sql), loadjava, Java source compilation, and call-specifications processing. How much increase is required depends on usage but at least shared_pool_size = 96M is recommended.
Java pool size Memory
The java pool size is used mainly for in-memory representation of Java method and class definitions, static Java states that are migrated to session space at end-of-call in shared server mode. How much increase is required depends on usage but at least java_pool_size = 50M is recommended.
JDK 5.0 Compatibility
This release has been thoroughly tested with Sun's Java Compatibility Kit for JDK 5.0. Oracle is committed to Oracle JVM keeping pace with Java and other internet standards.
JDBC
In this release, key JDBC features include support of the latest Java/JDBC standards (such as JDK 6 and JDBC 4.0) and the exposure of new Oracle Database 11g Release 1 (11.1) features to Java Developers (such as new SQL types, Streams/AQ, and Diagnosability).
Support for Java Standards: JDK 6.0 and JDBC 4.0
Support for Java standards include enhancements to Statement, ResultSet, and Wrapper Pattern, new SQLException framework, enhancements to BLOB and CLOB and new standard data types (java.sql.*)
New Performance, Scalability and Manageability Features
New performance, scalability and manageability features include:
Streams AQ integration and new native AQ protocol for JDBC-thin
Prefetch in first round trip for JDBC-thin
Support for JMX interface
Database startup and shutdown
Support for OCI client result cache
(Oracle Database Readme 11g Release 1(11.1) 2007)
Summary
In this chapter the Author compare some programming languages and data base(s) to be use in developing the system. The Author chooses the most suitable language which is java and oracle, and the Author is going to apply them in developing the system.