29
3. Technical Part 3.1. Project Standard The project standard applied by us is MVC i.e. Model View Controller. Model–view–controller (MVC) is a software architectural pattern for implementing user interfaces . It divides a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user. As with other software patterns, MVC expresses the "core of the solution" to a problem while allowing it to be adapted for each system. Particular MVC architectures can vary significantly from the traditional description here. Components The central component of MVC, the model, captures the behavior of the application in terms of its problem domain, independent of the user interface. The model directly manages the data, logic and rules of the application. A view can be any output representation of information, such as a chart or a diagram; multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants. The third part, the controller, accepts input and converts it to commands for the model or view. Interactions In addition to dividing the application into three kinds of components, the model–view–controller design defines the interactions between them. A controller can send commands to the model to update the model's state (e.g., editing a document). It can also send commands to its associated view to change the view's presentation of the model (e.g., by scrolling through a document). A model notifies its associated views and controllers when there has been a change in its state. This

water fall3.docx

  • Upload
    asheem

  • View
    216

  • Download
    0

Embed Size (px)

DESCRIPTION

water fall model

Citation preview

Page 1: water fall3.docx

3. Technical Part3.1. Project Standard

The project standard applied by us is MVC i.e. Model View Controller.

Model–view–controller (MVC) is a software architectural pattern for implementing user interfaces. It divides a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user.

As with other software patterns, MVC expresses the "core of the solution" to a problem while allowing it to be adapted for each system. Particular MVC architectures can vary significantly from the traditional description here.

Components

The central component of MVC, the model, captures the behavior of the application in terms of its problem domain, independent of the user interface. The model directly manages the data, logic and rules of the application. A view can be any output representation of information, such as a chart or a diagram; multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants. The third part, the controller, accepts input and converts it to commands for the model or view.

Interactions

In addition to dividing the application into three kinds of components, the model–view–controller design defines the interactions between them.

● A controller can send commands to the model to update the model's state (e.g., editing a document). It can also send commands to its associated view to change the view's presentation of the model (e.g., by scrolling through a document).

● A model notifies its associated views and controllers when there has been a change in its state. This notification allows the views to produce updated output, and the controllers to change the available set of commands. In some cases an MVC implementation might instead be "passive," so that other components must poll the model for updates rather than being notified.

● A view requests information from the model that it uses to generate an output representation to the user.

3.2. Proposed Tools

The tools used in this project are NetBeans and MySQL.

● NetBeans is an integrated development environment (IDE) for developing primarily with Java, but also with other languages, in particular PHP, C/C++,

Page 2: water fall3.docx

and HTML5. It is also an application platform framework for Java desktop applications and others.

The NetBeans IDE is written in Java and can run on Windows, OS X, Linux, Solaris and other platforms supporting a compatible JVM.

The NetBeans Platform allows applications to be developed from a set of modular software components called modules. Applications based on the NetBeans Platform (including the NetBeans IDE itself) can be extended by third party developers.

● MySQL  is (as of March 2014) the world's second most widely used open-source relational database management system (RDBMS). It is named after co-founder Michael Widenius's daughter, My. The SQL phrase stands for Structured Query Language.

The MySQL development project has made its source code available under the terms of the GNU General Public License, as well as under a variety of proprietary agreements. MySQL was owned and sponsored by a single for-profit firm, the Swedishcompany MySQL AB, now owned by Oracle Corporation.

MySQL is a popular choice of database for use in web applications, and is a central component of the widely used LAMP open source web application software stack (and other 'AMP' stacks). LAMP is an acronym for "Linux, Apache, MySQL,Perl/PHP/Python." Free-software-open source projects that require a full-featured database management system often use MySQL.

For proprietary use, several paid editions are available, and offer additional functionality. Applications which use MySQL databases include: TYPO3, MODx, Joomla, WordPress, phpBB, MyBB, Drupal and other software. MySQL is also used in many high-profile, large-scale websites,

3.3. Description of Hardware and Software

Hardware required for this project are basic computer system components such as mouse, keyboard, monitor, CPU and printer (where printer is optional). Windows XP is used by us to develop this project

3.4. Interfaces

Interfaces used in this project are Swing, DLL Interface and TCP Network Interface. Small descriptions of these interfaces are as follow:-

Swing is a GUI widget toolkit for Java . It is part of Oracle's Java Foundation Classes (JFC) — an API for providing agraphical user interface (GUI) for Java programs.

Page 3: water fall3.docx

Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract Window Toolkit (AWT). Swing provides a native look and feel that emulates the look and feel of several platforms, and also supports a pluggable look and feel that allows applications to have a look and feel unrelated to the underlying platform. It has more powerful and flexible components than AWT. In addition to familiar components such as buttons, check boxes and labels, Swing provides several advanced components such as tabbed panel, scroll panes, trees, tables, and lists.

Unlike AWT components, Swing components are not implemented by platform-specific code. Instead they are written entirely in Java and therefore are platform-independent. The term "lightweight" is used to describe such an element.

Swing is currently in the process of being replaced by JavaFX.

Dynamic-link library (also written unhyphenated), or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows andOS/2 operating systems. These libraries usually have the file extension DLL,OCX (for libraries containing ActiveX controls), or DRV (for legacy system drivers). The file formats for DLLs are the same as for Windows EXE files – that is, Portable Executable (PE) for 32-bit and 64-bit Windows, and New Executable (NE) for 16-bit Windows. As with EXEs, DLLs can contain code,data, and resources, in any combination.

Data files with the same file format as a DLL, but with different file extensions and possibly containing only resource sections, can be called resource DLLs. Examples of such DLLs include icon libraries, sometimes having the extensionICL, and font files, having the extensions FON and FOT.

The TCP/IP protocol suite includes protocols that work at all layers of the DoD model and was developed at roughly the same time.

As noted above, the Network Interface layer corresponds to the Physical and Data Link layer in the OSI model. This layer deals with binary digits (0s and 1s) being transmitted across the network medium. In many cases this will be twisted pair Category 5 (CAT5) Ethernet cable.The Network Interface layer controls the movement of bits across the medium, so it must use some organised method of managing the sending and receiving of data. In Ethernet networks, the commonest method isCarrier Sense Multiple Access / Collision Detection (CSMA/CD), but other methods exist, includingCarrier Sense Multiple Access / Collision Avoidance (CSMA/CA) and Token Passing.

3.5. Security This project does not require any additional security since this project can be accessed only by the doctor and the receptionist. It has only those security measures which are being provided by NetBeans.

3.6. Design Representation

Page 4: water fall3.docx

We have tried to represent our project in such a way so to decrease the complexity for the receptionist while entering the information of the patient. We have used the components such as buttons, text field, check box, etc. so to optimize the working and hence make the working less time consuming. For ex:- if we want to enter the gender of the patient, instead of providing a text box to type the gender, we can use a radio button.

3.7. Coding Language

The coding language used is Java. A small description of this language is as follows:-

Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. Java is, as of 2014, one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers. Java was originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

The original and reference implementation Java compilers, virtual machines, and class libraries were originally released by Sun under proprietary licences. As of May 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java (bytecode compiler), GNU Classpath (standard libraries), and IcedTea-Web (browser plugin for applets).

4. Software Engineering Approach for Analysis

4.1. Software Engineering Paradigm Applied

We applied Waterfall model in our project. The description of this model is as follows.

4.1.1 Description

The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing,Production/Implementation and Maintenance.

Page 5: water fall3.docx

The waterfall development model originates in the manufacturing and construction industries; highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development.

The first known presentation describing use of similar phases in software engineering was held by Herbert D. Benington at Symposium on advanced programming methods for digital computers on 29 June 1956. This presentation was about the development of software for SAGE. In 1983 the paper was republished with a foreword by Benington pointing out that the process was not in fact performed in a strict top-down fashion, but depended on a prototype.

The first formal description of the waterfall model is often cited as a 1970 article by Winston W. Royce, although Royce did not use the term "waterfall" in that article. Royce presented this model as an example of a flawed, non-working model. This, in fact, is how the term is generally used in writing about software development—to describe a critical view of a commonly used software development practice.

The most important aspect of the waterfall model is that unless a particular stage is complete, the next stage cannot be started off with. Here, in this article, we will try to understand a simple waterfall model, broken into six stages. Let us try to understand each of these stages one by one. 

Stage 1: Requirement Phase

Whether you design a small program to add two numbers or you are into developing a software system for the automation of an entire airline company, this is the first stage which can never be overridden. Unless you know what you are going to design, you cannot approach the problem. Here, the specifications of the output or the final product is studied and marked.

Stage 2: Specification Phase

With all the requirements and constraints in hand, a final view of how the product should exactly be, is decided. The exact way in which the software should function is mentioned in this stage.

Stage 3: Design Phase

Here the actual work begins. Every type of resource which will be required for the smooth designing of the software, is mentioned here in this phase. What type of database will be required, what type of data should be supported, etc. are some of the important aspects that are decided in this phase. The algorithm of the process in which the software needs to be designed, is made in this phase. This algorithm forms the backbone for the actual coding process, that takes place in the next phase.

Stage 4: Implementation and Testing Phase

Page 6: water fall3.docx

Now starts the coding. Here, the software is coded as per the algorithm. Hence it becomes very important that the algorithm should be properly designed. The software designed, needs to go through constant software testing and error correction processes to find out if there are any flaw or errors.

Stage 5: Integration and Testing Phase

Here the various codes designed by different programmers are integrated and is tested if the software works as per the specifications provided. The setup of the final software which needs to be installed at the clients system, is also designed and tested, so that the client does not face any problem during the installation of the software. The product is then handed over to the client.

Stage 6: Maintenance Phase

The cycle of software development does not end with handing the software to the client. Software designers may have to constantly provide support to the client to resolve any issues which may arise. During the maintenance phase, support and debugging is provided for all such problems.

Page 7: water fall3.docx

4.1.2. Advantages and Disadvantages

Advantages of Waterfall Software Development

Page 8: water fall3.docx

1. It is very easy yet powerful method of software development. The phases are arranged so that it helps even the new developers to understand the “big picture” of how to go about developing the software through the software development life cycle.

2. It calls for a disciplined approach to save on project time and cost as well effort. Otherwise the implementation team may develop a code only to realize later that it was not at all required. This happens much more than one might realize and it cause issues both in development and testing.

3. The project management stakeholders are forced to correctly define the business requirements documentation (BRD) and the project management requirements. At the sametime the developers are forced to understand these thoroughly before they start writing the software requirements specification (SRS), high level design and code.

4. It essentially requires documentation at every stage. This gives better understanding of the requirements, the logic of the codes and tests that were conducted on the software.

Disadvantages of Waterfall Software Development

1. In this method, all the requirements of the software need to be specified upfront and there is no room for committing mistakes.

2. The project scope statement needs to be detailed in infinite depth from the start because changes are not possible when using waterfall methodology. This is because the only way to amend something which has been already developed is to go back and start again. This will cause huge problems on projects where the project sponsors are indecisive and quickly causes scope creep.

3. Key team members stay idle for long durations. You see Waterfall does not operate on a matrix basis which makes project resource management an extremely rigid activity. Basically those allocated to the project stay on it until that phase is over. This as you can imagine, has a direct knock on effect on the project budget.

4. It is a very rigid method which does not entertain any change in requirements and which makes any subsequent functionality changes required extremely difficult and expensive to implement. As such the fast pace of changing requirements determined makes this methodology difficult to use and calls for more nimble methods of software development such as agile methodology or SCRUM methodology.

4.1.3. Reasons for Use

Materials are clear, fixed and well known.• Product definition is reliable.• Understanding Technology• There are no ambiguous requirements• This Project is short

A waterfall model enforces management to a plan. The interim checkpoints, by nature, hold you accountable to that plan, and if there is a variance, force

Page 9: water fall3.docx

you to do three things: 1) Acknowledge the variance.  If you set up your waterfall model correctly, the interim periods you define should be frequent enough to allow you to take action while there is time to impact the outcome; 2) Ask why there is a variance; and 3) Re-plan the future periods given what you now know.

Planning, or more precisely, getting a plan right, is an ongoing process. People make plans based on assumptions. Managing an existing customer base can be tricky, and having frequent enough visibility into key metrics in order to take meaningful action allows you to challenge your assumptions with enough time to take meaningful action. One important point to clarify here: This isn’t an opportunity to make excuses for why you didn’t hit your numbers.  This is an opportunity for you to understand what you need to do differently to improve your performance (while there’s still time) and create more accurate plans and forecasts in the future.  If you do need to re-plan, the waterfall still allows you to measure against your original plan and your revised plan.

Growth is great. Improvements in key metrics are great. In order to run a business and plan/manage it successfully, though, you also need some predictability. Waterfalls provide you with a historical snapshot of how well you did delivering to plan.  You always have historical information on your original plan, your re-plan, and your actual performance for each measurable period – in one table.  It’s a simple, yet very effective visual tool.

4.2 Requirement Analysis

4.2.1 Software Requirement Specification

JAVA

Java is a high-level, third generation programming language, like C,FORTRAN, Smalltalk, Perl, and many others. You can use Java to write computer applications that play games, store data or do any of the thousands of other things computer software can do. Compared to other programming languages, Java is most similar to C. However although Java shares much of C's syntax, it is not C. Knowing how to program in C or, better yet, C++, will certainly help you to learn Java more quickly, but you don't need to know C to learn Java. A Java compiler won't compile C code, and most large C programs need to be changed substantially before they can become Java programs. What's most special about Java in relation to other programming languages is that it lets you write special programs called applets that can be downloaded from the Internet and played safely within a web browser. Java language is called

Page 10: water fall3.docx

as an Object-Oriented Programming language and before begining for Java, we have to learn the concept of OOPs(Object-Oriented Programming).The major characteristics of Java are:

● The programs you create are portable in a network. (See portability.) Your source program is compiled into what Java calls bytecode, which can be run anywhere in a network on a server or client that has a Javavirtual machine. The Java virtual machine interprets the bytecode into code that will run on the real computer hardware. This means that individual computer platform differences such as instruction lengths can be recognized and accommodated locally just as the program is being executed. Platform-specific versions of your program are no longer needed.

● The code is robust, here meaning that, unlike programs written in C++ and perhaps some other languages, the Java objects can contain no references to data external to themselves or other known objects. This ensures that an instruction can not contain the address of data storage in another application or in the operating system itself, either of which would cause the program and perhaps the operating system itself to terminate or "crash." The Java virtual machine makes a number of checks on each object to ensure integrity.● Java is object-oriented, which means that, among other characteristics, an object can take advantage of being part of a class of objects and inherit code that is common to the class. Objects are thought of as "nouns" that a user might relate to rather than the traditional procedural "verbs." A method can be thought of as one of the object's capabilities or behaviors.● In addition to being executed at the client rather than the server, a

Java applet has other characteristics designed to make it run fast.

MySQL

MySQL is an open source relational database management system (RDBMS) based on Structured Query Language (SQL). 

MySQL runs on virtually all platforms, including Linux, UNIX, and Windows. Although it can be used in a wide range of applications, MySQL is most often associated with web-based applications and online publishing and is an important component of an open source enterprise stack called LAMP. LAMP is a Web development platform that uses Linux as the operating system, Apache as the Web server, MySQL as the relational database management system and PHP as the object-oriented scripting language. (Sometimes Perl or Python is used instead of PHP.)

Page 11: water fall3.docx

MySQL, which was originally conceived by the Swedish company MySQL AB, was acquired by Oracle in 2008.  Developers can still use MySQL under the GNU General Public License (GPL), but enterprises must obtain a commercial license from Oracle.

Features of MySQL

The following list shows the most important properties of MySQL. This section is directed to the reader who already has some knowledge of relational databases. We will use some terminology from the relational database world without defining our terms exactly. On the other hand, the explanations should make it possible for database novices to understand to some extent what we are talking about.

Relational Database System: Like almost all other database systems on the market, MySQL is a relational database system.

Client/Server Architecture: MySQL is a client/server system. There is a database server (MySQL) and arbitrarily many clients (application programs), which communicate with the server; that is, they query data, save changes, etc. The clients can run on the same computer at the server or on another computer (communication via a local network or the Internet).

Almost all of the familiar large database systems (Oracle, Microsoft SQL Server, etc.) are client/server systems. These are in contrast to the file-server systems, which include Microsoft Access, dBase and FoxPro. The decisive drawback to file-server systems is that when run over a network, they become extremely inefficient as the number of users grows.

Windows Operating System

Windows OS, computer operating system (OS) developed by Microsoft Corporation to run personal computers (PCs). Featuring the first graphical user interface (GUI) for IBM-compatible PCs, the Windows OS soon dominated the PC market. Approximately 90 percent of PCs run some version of Windows.

Page 12: water fall3.docx

The first version of Windows, released in 1985, was simply a GUI offered as an extension of Microsoft’s existing disk operating system, or MS-DOS. Based in part on licensed concepts that Apple Inc. had used for its Macintosh System Software, Windows for the first time allowed DOS users to visually navigate a virtual desktop, opening graphical “windows” displaying the contents of electronic folders and files with the click of a mouse button, rather than typing commands and directory paths at a text prompt.Subsequent versions introduced greater functionality, including native Windows File Manager, Program Manager, and Print Manager programs, and a more dynamic interface. Microsoft also developed specialized Windows packages, including the networkable Windows for Workgroups and the high-powered Windows NT, aimed at businesses. The 1995 consumer release Windows 95 fully integrated Windows and DOS and offered built-in Internet support, including the World Wide Web browser Internet Explorer.With the 2001 release of Windows XP, Microsoft united its various Windows packages under a single banner, offering multiple editions for consumers, businesses, multimedia developers, and others. Windows XP abandoned the long-used Windows 95 kernel (core software code) for a more powerful code base and offered a more practical interface and improved application and memory management. The highly successful XP standard was succeeded in late 2006 by Windows Vista, which experienced a troubled rollout and met with considerable marketplace resistance, quickly acquiring a reputation for being a large, slow, and resource-consuming system. Responding to Vista’s disappointing adoption rate, Microsoft developed Windows 7, an OS whose interface was similar to that of Vista but was met with enthusiasm for its noticeable speed improvement and its modest system requirements.

4.2.1.1 Glossary

Advantages of Java over .Net

Page 13: water fall3.docx

· J2EE is being marketed by an entire industry.· J2EE is a proven platform, with a few new web services APIs. .NET is a rewrite and introduces risk as with any first-generation technology.· Only J2EE lets you deploy web services today.· Existing J2EE code will translate into a J2EE web services system withoutmajor rewrites. Not true for Windows DNA code ported to .NET.· .NET web services are not interoperable with current industry standards. Their BizTalk framework has proprietary SOAP extensions and does not support ebXML.· J2EE is a more advanced programming model, appropriate for well-traineddevelopers who want to build more advanced object models and take advantage ofperformance features· J2EE lets you take advantage of existing hardware you may have· J2EE gives you platform neutrality, including Windows. You also get good (but not free) portability. This isolates you from heterogeneous deployment environments.· J2EE has a better legacy integration story through the Java Connector Architecture (JCA)· J2EE lets you use any operating system you prefer, such as Windows, UNIX, or mainframe. Developers can use the environment they are most productive in.· J2EE lets you use Java, which is better than C# due to market-share and maturity. According to Gartner, there are 2.5 million Java developers. IDC predicts this will grow to 4 million by 2003. 78% universities teach Java, and 50% of universities require Java.

Advantages of MySQL over Oracle

● MySQL is a free open source program; hence it is in easy reach of ordinary web publishers and small businesses.

● MySQL is provided under the GNU GPL license that basically means that anyone can use as long as any other work derived from it is shared under the same license.

● Oracle is often limited to huge companies.● Oracle Support Pl-SQL, in addition to SQL. MySQL support only SQL● Oracle provides security features such as row lock while MySQL provides

column lock.● Oracle requires username, password, and profile validation at the time of

logging while Mysql requires only username, password and host.

Page 14: water fall3.docx

● Oracle9i Database supports the use of temporary tables for an individual session, or global to all users.

● Mysql is light, reliable and can connect to multi-Client Program.

6. Implementation Phase

6.1.1. Languages used: Java

Characteristics of Java

1) Simple, Small and familiar Java is a simple and small language. The Syntax of java is just like C++, so it is very easy to learn. It is simple because it i) does not use header files ii) eliminated the use of pointer iii) operator overloading and virtual base classes are eliminated.

2) Object oriented Java is a pure Object oriented. Everything in java is object. All programs and data reside inside objects and classes

3) Distributed Java has networking facilities. so java can create application on network.

4) Robust java gives importance to memory management by using the technique called Garbage Collection and Exception handling.

5) Secure since java is used on internet, security is an important issue. A security code is asked before a java code is interpreted on internet.

Page 15: water fall3.docx

6) Platform independent Java compiler generates a platform independent code called bytecode.

7) Portable The Bytecode generated by java can be used on any machine. So it can be portable.

8) Compiled and Interpreted Generally, computer languages are either complied or interpreted. but java combines both compiler and interpreted.

9) High performance The use of bytecode makes the performance high. the speed is also high with comparing c, C++.

10) Multithreading and interactive Multithreading means handling more than one job at a time. Java supports Multithreading.

11) Dynamic and extensible Java is a dynamic language. So it is capable of linking dynamic new classes, methods and objects. Java supports functions written in C and C++ also. These functions are called native methods. During Run-Time Native methods can be linked dynamically.

6.1.3. Code Efficiency

The three most basic mantras to efficient coding are:

Reusability

Readability

Writability

All over the world the best coders are known to write the least amount of code. They’ve learned how to code efficiently and how to leverage old code to be reusable. Once we’ve learnt how to make our code reusable, we can easily reduce the amount of lines because not every line of code is unique. The more you can reuse the less you’ll have to write every time. This saves time and money which is always a good thing.

Our code must be readable and understandable to its users. The coding must be done in a systematic manner, following all the guidelines of general notations so that it could be understood by anyone who reads it.

Page 16: water fall3.docx

To make our code efficient we need to have the convenience to make any changes to it. We could not call our code efficient unless we could make any updates in one part of our code and not distorting the other part of the code. Moreover, our code should be re-writeable which means that if we have achieved some functionality in a certain way then we should be able to achieve the same functionality using some other way also.

6.1.4. Optimization of Code

Code optimization is a set of methods of code modification to improve code quality and efficiency. A program may be optimized so that it becomes of a smaller size, consumes less memory, executes more rapidly, or performs fewer input/output operations.

The basic requirement optimization methods should comply with is that an optimized program must have the same output and side effects as its non-optimized version. This requirement, however, may be ignored in case the benefit from optimization is estimated to be more important than probable consequences of a change in the program behavior.

However, we should understand that multiple complex optimizations at the level of machine code may cause a great slow-down of compilation. The benefit they allow you to gain may be too much insignificant compared to general system design optimizations. One should also keep in mind that modern languages, with all their syntactic and semantic "frills", have many nuances and subtleties, so that a programmer who isn't familiar with them may be surprised by an outcome of optimization.

In this software we have achieved optimization by writing less lines of code and getting more return from it. We’ve made our code reusable and hence it has significantly reduced the length of code. We tried to make our code achieve more functionality with less number of lines of codes.

6.2 Testing

6.2.1 Testing Objectives

Testing has different goals and objectives. The major objectives of testing are as follows:

▪ Finding defects which may get created by us while developing the software.▪ Gaining confidence in and providing information about the level of quality of the software.▪ To prevent defects.

Page 17: water fall3.docx

▪ To make sure that the end result meets the business and user requirements.▪ To ensure that it satisfies the BRS that is Business Requirement Specification and SRS that is System Requirement Specifications.▪ To gain the confidence of the users by creating a quality software.Testing helps in finalizing the software application against user requirements. It is very important to have good test coverage in order to test the software application completely and make it sure that it’s performing well and as per the specifications.

While determining the coverage the test cases should be designed well with maximum possibilities of finding the errors or bugs. The test cases should be very effective. This objective can be measured by the number of defects reported per test cases. Higher the number of the defects reported the more effective are the test cases.

Once the delivery is made to the end users they should be able to operate it without any complaints. In order to make this happen the tester should know as how the customers are going to use this product and accordingly they should write down the test scenarios and design the test cases. This will help a lot in fulfilling all the user’s requirements.

Software testing makes sure that the testing is being done properly and hence the system is ready for use. Good coverage means that the testing has been done to cover the various areas like functionality of the application, compatibility of the application with the OS, hardware and different types of browsers, performance testing to test the performance of the application and load testing to make sure that the system is reliable and should not crash or there should not be any blocking issues. It also determines that the application can be deployed easily to the machine and without any resistance. Hence the application is easy to install, learn and use.

6.2.2 Testing Methods and Strategies

We have used two types of testing methods in our software:

White box testing

It tests internal structures or workings of an application, as opposed to its functionality. In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases. The tester chooses inputs to exercise paths through the code and determine the appropriate outputs.

White-box testing can be applied at the unit, integration and system levels of the software testing process. Though this method of test design can uncover many errors

Page 18: water fall3.docx

or problems, it has the potential to miss unimplemented parts of the specification or missing requirements. Hence, to cover that, we have applied black box testing after that.

White-box testing is a method of testing the application at the level of the source code. These test cases are derived through the use of the design techniques mentioned above: control flow testing, data flow testing, branch testing, path testing, statement coverage and decision coverage as well as modified condition/decision coverage. White-box testing is the use of these techniques as guidelines to create an error free environment by examining any fragile code. These White-box testing techniques are the building blocks of white-box testing, whose essence is the careful testing of the application at the source code level to prevent any hidden errors later on. These different techniques exercise every visible path of the source code to minimize errors and create an error-free environment. The whole point of white-box testing is the ability to know which line of the code is being executed and being able to identify what the correct output should be.

Black box testing

Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied to virtually every level of software testing: unit, integration, system and acceptance. It typically comprises most if not all higher level testing, but can also dominate unit testing as well.

This is a software testing technique whereby the internal workings of the item being tested are not known by the tester. For example, in a black box test on any software design the tester only knows the inputs and what the expected outcomes should be and not how the program arrives at those outputs. The tester does not ever examine the programming code and does not need any further knowledge of the program other than its specifications.The advantages of this type of testing include:● The test is unbiased because the designer and the tester are independent of each other.● The tester does not need knowledge of any specific programming languages.● The test is done from the point of view of the user, not the designer.● Test cases can be designed as soon as the specifications are complete.

The test cases covered by us are as follows:

● While logging in, if the password and id set doesn’t match then the logging in should not happen. ● Even if the password is correct, the logging in should not happen if the id is wrong.● If the id is correct but password is wrong, the logging in should not happen.

Page 19: water fall3.docx

7. Conclusion

We have tried to achieve a lot of convenience for both the doctors and their patients through our Patient's Medical Records and History Software, and we have been successful so far. This project has been helpful in creating a system which would aid in managing the records of the patients and keeping them in a systematic manner over long periods of time. Although we have tried our best in achieving this perfection, there still remain certain aspects which we have not been able to cover.

7.1) Limitations-

Some of the above-mentioned limitations to our project are as follows:1) This software cannot be accessed over the web.2) Patient has no access to his records as these records are maintained between the doctor and their office.3) This software can only be accessed by the authorized personnel from within the network of the centralized system and the systems connected to it, which in this case is, the doctor's clinic.4) In case of any loss of data in the centralized system which maintains the database, this loss of data will reflect in the records of the doctors.

7.2) Future Scope

As good as the start of this project may be, there will always be scope for development and enhancement in the quality of the project so it serves to a wider population that is not just limited to a single office and a handful of systems.Needless to say, there are many ideas that can add to the future of this project, some of which are as follows:1) Web connectivity2) Conversion into an android app3) Patient access4) Patient feedback5) Chat system