Professional Documents
Culture Documents
1.0. ABSTRACT
2.1. Purpose
2.2 Scope
2.3 Goals/ Aim
2.4 Features of ur project ( Advantages)
8.0. TESTING
7.1 Testing Introduction
7.2 Unit Testing
7.3 White Box Testing
7.4 Black Box Testing
7.5 Integration Testing
7.6 Test Cases
9 Implementation
10.0. CONCLUSION
12.0 BIBLIOGRAPHY
1. Abstract
The Gmail Client which we have developed is basically fulfills the needs of college system in
terms of assistance, sending notices to the college staffs, students, sending the daily updates to
the people of the college, sending the results to the students which can be internal exams or
external exams results through our mailing system. One may think we have so many kinds of
mailing system like yahoo mailing, gmailmailing and like so, but it lacks any kind of central
tracking or giving the control to some one who may be head from any kind of departments, or
colleges, like principal or administrator , if using gmail or other cant get the complete control
on others emails account as because if using this existing mailing system than the principal or
administer also has to become one of the member of this mailing accounts. So that’s means
being the member itself cant have control on other members accounts.
This central controlling of mailing system will be provided by our Gmail Client wherein we
have divided mailing system on the based on two kinds of users , one is Administrator and
the other one is user. Administrator will have complete control on users accounts(other than
administrator), complete control in the sense like administrator can change the password of the
users if he wants to restrict them from login into our mailing system and like so. The one of the
important feature of our Gmail Client is that intramailing interaction can be done in an easier
and in a convenient way.
2.0 Introduction
The Gmail Client which we have developed basically fulfills the needs of
college system in terms of assistance, sending notices to the college staffs, students, sending
the daily updates to the people of the college, sending the results to the students which can be
internal exams or external exams results through our mailing system, intramailing interaction
can be done in an easier and in a convenient way.
2.1 Purpose
The purpose of developing this project is to provide effective and efficient intra
mailing system, which can be effectively controlled by the admin or head of the college.
2.2 Scope
Our project better suits for intra organization such as Colleges, Company’s etc
where they need efficient communication between users and effective control by the admin of
the site.
2.3 Goals:
Goal or aim of our project college mailing system is to enhance the features of
existing mailing system and utilize the existing system features such as mailing
communication and also to import new features such as central control of our website by the
admin of the organization such as company, college etc.
2.4 Features of our project (Advantages)
Can be used to send any kind of notices such as exam tables or attendance
or information regarding any kind of due fees to be paid onto the students
login accounts in our Gmail Client.
The head or the administrator can have the complete control on our Gmail Client
which is one of the important features of our project.
This mailing system can be used before and after appearing for the internal or
External exams wherein user should send the mail to the administrator mentioning
His/her present thereby administrator will send the acknowledgement in the form of
mail, this can also be useful for the college management wherein students appearing
for the exam if falls in different batches, say morning batch or afternoon batch, than
admin can block the passwords for the afternoon batch students if the exam is for
morning batch students, thereby the afternoon batch students cant send the request of
their present as they cant login in the morning batch , as their login ids will be
temporarily blocked by the administrator.
Also it will be useful, when head of the college or admin checks the status of students
such as his/her attendance, fees etc. Considering this details admin will send the acknow
-ledgement to the student when his/her attendance, fees is clear. So that after receiving the
acknowledgement student will appear for the exam, whose exam paper will be evaluated only
when student gets clearance acknowledgement from the admin or head.
3.0. System Analysis
3.1 Existing System
Existing mailing System like gmail, yahoo mail and so, can be
used within any department or college wherein all the members can pass outs mails to each
other but the only thing is the lack of control on others members mail accounts by the head
person in the department who also be the member. Being the head , he/she should access the
other mail accounts as they have rights to access their accounts, as part of controlling the
accounts. For instance head of the college or administrator using the existing system can send
to the members of the existing system but cant have control on others accounts , as being the
member itself cant get permission to view others mails accounts and control those accounts.
Admin module:
Administrator will have complete control on users accounts(other than administrator),
complete control in the sense like administrator can change the password of the users if
he wants to restrict them from login into our mailing system and like so.
TECHINICAL FEASIBILITY:
Evaluating the technical feasibility is the trickiest part of a feasibility study. This is
because, at this point in time, not too many detailed design of the system, making it difficult to
access issues like performance, costs on (on account of the kind of technology to be deployed)
etc.
Technologies that are to be required for the development of the new system.
ii) Find out whether the organization currently possesses the required technologies:
Is the required technology available with the organization?
For instance –
“Will the current printer be able to handle the new reports and forms required for the new
system?”
OPERATIONAL FEASIBILITY:
Proposed projects are beneficial only if they can be turned into information systems that will
meet the organizations operating requirements. Simply stated, this test of feasibility asks if the
system will work when it is developed and installed. Are there major barriers to
Implementation? Here are questions that will help test the operational feasibility of a project:
Is there sufficient support for the project from management from users? If
the current system is well liked and used to the extent that persons will not be
Are the current business methods acceptable to the user? If they are not,
Users may welcome a change that will bring about a more operational and useful systems.
Have the user been involved in the planning and development of the project?
Early involvement reduces the chances of resistance to the system and in
Since the proposed system was to help reduce the hardships encountered
In the existing manual system, the new system was considered to be operational feasible.
ECONOMIC FEASIBILITY:
Economic feasibility attempts 2 weigh the costs of developing and implementing a new
system, against the benefits that would accrue from having the new system in place. This
feasibility study gives the top management the economic justification for the new system.
A simple economic analysis which gives the actual comparison of costs and benefits
are much more meaningful in this case. In addition, this proves to be a useful point of reference
to compare actual costs as the project progresses. There could be various types of intangible
benefits on account of automation. These could include increased customer satisfaction,
improvement in product quality better decision making timeliness of information, expediting
activities, improved accuracy of operations, better documentation and record keeping, faster
retrieval of information, better employee morale.
When we defining and constructing credit card validation systems will uncover
many requirements that may be difficult at outset. Instead knowledge of the
system and requirements will grow as work progress the whole software
engineering process is designed to uncover details and incompatibilities in the
requirements that may not be obvious to customer and bankers at outset.
Several cases or increments of software development additional increases will be
build and delivered in successive increment system normally involves as are
deliver successive new versions, the development of first version from sketch
called green field development is special case of incremental development the
development of first increment is an important activity series we establish the
architectural base that must last for the entire system’s life time.
Waterfall model states that the phases (analysis, design, and coding, testing,
support) are systematized in a linear order and each phase should accomplished
entirely earlier of the next phase begins.
In this way the step by step phase initially analyzing phase is completed and that
output takes place at the end of analyze phase after that output will be given as
input for the design phase, depending on the inputs it generates all design
steps ,like ways all phases processed and produced all successful outputs, And
will to find out whether the project is pursuing on the exact path or not. If not the
project
may be discard or any other action takes place to continue. The model is the most
commonly used and also known as linear sequential lifecycle model.
ADVANTAGES:
1. This model is very easy to use and implement.
2. Each phase is completed at a time and processed.
3. This model better works for smaller projects if only the requirements are
well understood.
4. In each phase have deliverables and that must be reviewed.
DISADVANTAGES:
1. If the requirements are gathered are inaccurate then the final product is
inaccurate and the error is known in the final phase of the model. Any sort
of errors that cannot be detected in any previous phase.
2. For long, object-oriented, complex and ongoing projects it’s a poor model.
3. This model has high risks.
Fig: Waterfall Lifecycle Model
(Source: http://www.freetutes.com/systemanalysis/sa2-waterfall-software-life-
cycle.html)
PROTOTYPE MODEL:
In this model the requirements are gathered firstly, and the prototype is
deployed according to the requirements. This prototype is a quick design which
goes through the coding, design and testing. The phases are not done in detail. By
seeing this prototype the client feels like a real system, so that the client
understands the entire requirements of the systems.
ADVANTAGES:
Quick
Design
Refine Build
Requireme Prototy
Customer
Evaluation
of the
prototype
Desig
n
Impleme
Test
Maintai
(Source:
http://testingtutor.com/TESTING_ARTICLES/Software_Life_Cycle_Models.htm
l)
4.0. SOFTWARE REQUIREMENT SPECIFICATIONS
The .NET Framework has two main components: the common language runtime and
the .NET Framework class library. The common language runtime is the foundation of
the .NET Framework. You can think of the runtime as an agent that manages code at
execution time, providing core services such as memory management, thread management,
and remoting, while also enforcing strict type safety and other forms of code accuracy that
ensure security and robustness. In fact, the concept of code management is a fundamental
principle of the runtime. Code that targets the runtime is known as managed code, while code
that does not target the runtime is known as unmanaged code. The class library, the other
main component of the .NET Framework, is a comprehensive, object-oriented collection of
reusable types that you can use to develop applications ranging from traditional command-line
or graphical user interface (GUI) applications to applications based on the latest innovations
provided by ASP.NET, such as Web Forms and XML Web services.
The .NET Framework can be hosted by unmanaged components that load the common
language runtime into their processes and initiate the execution of managed code, thereby
creating a software environment that can exploit both managed and unmanaged features.
The .NET Framework not only provides several runtime hosts, but also supports the
development of third-party runtime hosts.
For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for
managed code. ASP.NET works directly with the runtime to enable Web Forms applications
and XML Web services, both of which are discussed later in this topic.
Internet Explorer is an example of an unmanaged application that hosts the runtime (in the
form of a MIME type extension). Using Internet Explorer to host the runtime enables you to
embed managed components or Windows Forms controls in HTML documents. Hosting the
runtime in this way makes managed mobile code (similar to Microsoft® ActiveX® controls)
possible, but with significant improvements that only managed code can offer, such as semi-
trusted execution and secure isolated file storage.
The following illustration shows the relationship of the common language runtime and the
class library to your applications and to the overall system. The illustration also shows how
managed code operates within a larger architecture.
Features of the Common Language Runtime
The common language runtime manages memory, thread execution, code execution, code
safety verification, compilation, and other system services. These features are intrinsic to the
managed code that runs on the common language runtime.
With regards to security, managed components are awarded varying degrees of trust,
depending on a number of factors that include their origin (such as the Internet, enterprise
network, or local computer). This means that a managed component might or might not be
able to perform file-access operations, registry-access operations, or other sensitive functions,
even if it is being used in the same active application.
The runtime enforces code access security. For example, users can trust that an executable
embedded in a Web page can play an animation on screen or sing a song, but cannot access
their personal data, file system, or network. The security features of the runtime thus enable
legitimate Internet-deployed software to be exceptionally feature rich.
The runtime also enforces code robustness by implementing a strict type- and code-
verification infrastructure called the common type system (CTS). The CTS ensures that all
managed code is self-describing. The various Microsoft and third-party language compilers
generate managed code that conforms to the CTS. This means that managed code can
consume other managed types and instances, while strictly enforcing type fidelity and type
safety.
In addition, the managed environment of the runtime eliminates many common software
issues. For example, the runtime automatically handles object layout and manages references
to objects, releasing them when they are no longer being used. This automatic memory
management resolves the two most common application errors, memory leaks and invalid
memory references.
The runtime also accelerates developer productivity. For example, programmers can write
applications in their development language of choice, yet take full advantage of the runtime,
the class library, and components written in other languages by other developers. Any
compiler vendor who chooses to target the runtime can do so. Language compilers that target
the .NET Framework make the features of the .NET Framework available to existing code
written in that language, greatly easing the migration process for existing applications.
While the runtime is designed for the software of the future, it also supports software of today
and yesterday. Interoperability between managed and unmanaged code enables developers to
continue to use necessary COM components and DLLs.
The runtime is designed to enhance performance. Although the common language runtime
provides many standard runtime services, managed code is never interpreted. A feature called
just-in-time (JIT) compiling enables all managed code to run in the native machine language
of the system on which it is executing. Meanwhile, the memory manager removes the
possibilities of fragmented memory and increases memory locality-of-reference to further
increase performance.
For example, the .NET Framework collection classes implement a set of interfaces that you
can use to develop your own collection classes. Your collection classes will blend seamlessly
with the classes in the .NET Framework.
As you would expect from an object-oriented class library, the .NET Framework types enable
you to accomplish a range of common programming tasks, including tasks such as string
management, data collection, database connectivity, and file access. In addition to these
common tasks, the class library includes types that support a variety of specialized
development scenarios. For example, you can use the .NET Framework to develop the
following types of applications and services:
Console applications.
Scripted or hosted applications.
Windows GUI applications (Windows Forms).
ASP.NET applications.
XML Web services.
Windows services.
For example, the Windows Forms classes are a comprehensive set of reusable types that
vastly simplify Windows GUI development. If you write an ASP.NET Web Form application,
you can use the Web Forms classes.
Another kind of client application is the traditional ActiveX control (now replaced by the
managed Windows Forms control) deployed over the Internet as a Web page. This application
is much like other client applications: it is executed natively, has access to local resources,
and includes graphical elements.
In the past, developers created such applications using C/C++ in conjunction with the
Microsoft Foundation Classes (MFC) or with a rapid application development (RAD)
environment such as Microsoft® Visual Basic®. The .NET Framework incorporates aspects
of these existing products into a single, consistent development environment that drastically
simplifies the development of client applications.
The Windows Forms classes contained in the .NET Framework are designed to be used for
GUI development. You can easily create command windows, buttons, menus, toolbars, and
other screen elements with the flexibility necessary to accommodate shifting business needs.
For example, the .NET Framework provides simple properties to adjust visual attributes
associated with forms. In some cases the underlying operating system does not support
changing these attributes directly, and in these cases the .NET Framework automatically
recreates the forms. This is one of many ways in which the .NET Framework integrates the
developer interface, making coding simpler and more consistent.
Unlike ActiveX controls, Windows Forms controls have semi-trusted access to a user's
computer. This means that binary or natively executing code can access some of the resources
on the user's system (such as GUI elements and limited file access) without being able to
access or compromise other resources. Because of code access security, many applications
that once needed to be installed on a user's system can now be safely deployed through the
Web. Your applications can implement the features of a local application while being
deployed like a Web page.
The following illustration shows a basic network schema with managed code running in
different server environments. Servers such as IIS and SQL Server can perform standard
operations while your application logic executes through the managed code.
ASP.NET is the hosting environment that enables developers to use the .NET Framework to
target Web-based applications. However, ASP.NET is more than just a runtime host; it is a
complete architecture for developing Web sites and Internet-distributed objects using
managed code. Both Web Forms and XML Web services use IIS and ASP.NET as the
publishing mechanism for applications, and both have a collection of supporting classes in the
.NET Framework.
XML Web services, an important evolution in Web-based technology, are distributed, server-
side application components similar to common Web sites. However, unlike Web-based
applications, XML Web services components have no UI and are not targeted for browsers
such as Internet Explorer and Netscape Navigator. Instead, XML Web services consist of
reusable software components designed to be consumed by other applications, such as
traditional client applications, Web-based applications, or even other XML Web services. As
a result, XML Web services technology is rapidly moving application development and
deployment into the highly distributed environment of the Internet.
If you have used earlier versions of ASP technology, you will immediately notice the
improvements that ASP.NET and Web Forms offers. For example, you can develop Web
Forms pages in any language that supports the .NET Framework. In addition, your code no
longer needs to share the same file with your HTTP text (although it can continue to do so if
you prefer). Web Forms pages execute in native machine language because, like any other
managed application, they take full advantage of the runtime. In contrast, unmanaged ASP
pages are always scripted and interpreted. ASP.NET pages are faster, more functional, and
easier to develop than unmanaged ASP pages because they interact with the runtime like any
managed application.
The .NET Framework also provides a collection of classes and tools to aid in development
and consumption of XML Web services applications. XML Web services are built on
standards such as SOAP (a remote procedure-call protocol), XML (an extensible data format),
and WSDL ( the Web Services Description Language). The .NET Framework is built on these
standards to promote interoperability with non-Microsoft solutions.
For example, the Web Services Description Language tool included with the .NET
Framework SDK can query an XML Web service published on the Web, parse its WSDL
description, and produce C# or Visual Basic source code that your application can use to
become a client of the XML Web service. The source code can create classes derived from
classes in the class library that handle all the underlying communication using SOAP and
XML parsing. Although you can use the class library to consume XML Web services directly,
the Web Services Description Language tool and the other tools contained in the SDK
facilitate your development efforts with the .NET Framework.
If you develop and publish your own XML Web service, the .NET Framework provides a set
of classes that conform to all the underlying communication standards, such as SOAP,
WSDL, and XML. Using those classes enables you to focus on the logic of your service,
without concerning yourself with the communications infrastructure required by distributed
software development.
Finally, like Web Forms pages in the managed environment, your XML Web service will run
with the speed of native machine language using the scalable communication of IIS.
Active Server Pages.NET
Language Support
The Microsoft .NET Platform currently offers built-in support for three languages: C#,
Visual Basic, and JScript.
The ability to create and use reusable UI controls that can encapsulate common
functionality and thus reduce the amount of code that a page developer has to
write.
The ability for developers to cleanly structure their page logic in an orderly
fashion (not "spaghetti code").
The ability for development tools to provide strong WYSIWYG design support
for pages (existing ASP code is opaque to tools).
ASP.NET Web Forms pages are text files with an .aspx file name extension. They can
be deployed throughout an IIS virtual root directory tree. When a browser client
requests .aspx resources, the ASP.NET runtime parses and compiles the target file into
a .NET Framework class. This class can then be used to dynamically process incoming
requests. (Note that the .aspx file is compiled only the first time it is accessed; the
compiled type instance is then reused across multiple requests).
An ASP.NET page can be created simply by taking an existing HTML file and
changing its file name extension to .aspx (no modification of code is required). For
example, the following sample demonstrates a simple HTML page that collects a user's
name and category preference and then performs a form postback to the originating
page when a button is clicked:
ASP.NET provides syntax compatibility with existing ASP pages. This includes
support for <% %> code render blocks that can be intermixed with HTML content
within an .aspx file. These code blocks execute in a top-down manner at page render
time.
ASP.NET supports two methods of authoring dynamic pages. The first is the method
shown in the preceding samples, where the page code is physically declared within the
originating .aspx file. An alternative approach--known as the code-behind method--
enables the page code to be more cleanly separated from the HTML content into an
entirely separate file.
In addition to (or instead of) using <% %> code blocks to program dynamic content,
ASP.NET page developers can use ASP.NET server controls to program Web pages.
Server controls are declared within an .aspx file using custom tags or intrinsic HTML
tags that contain a runat="server" attribute value. Intrinsic HTML tags are handled
by one of the controls in the System.Web.UI.HtmlControls namespace. Any tag that
doesn't explicitly map to one of the controls is assigned the type of
System.Web.UI.HtmlControls.HtmlGenericControl.
Server controls automatically maintain any client-entered values between round trips to
the server. This control state is not stored on the server (it is instead stored within an
<input type="hidden"> form field that is round-tripped between requests). Note also
that no client-side script is required.
1. ASP.NET Web Forms provide an easy and powerful way to build dynamic
Web UI.
2. ASP.NET Web Forms pages can target any browser client (there are no script
library or cookie requirements).
3. ASP.NET Web Forms pages provide syntax compatibility with existing ASP
pages.
4. ASP.NET server controls provide an easy way to encapsulate common
functionality.
5. ASP.NET ships with 45 built-in server controls. Developers can also use
controls built by third parties.
6. ASP.NET server controls can automatically project both uplevel and
downlevel HTML.
7. ASP.NET templates provide an easy way to customize the look and feel of list
server controls.
8. ASP.NET validation controls provide an easy way to do declarative client or
server data validation.
5) ACTIVE X DATA OBJECTS.NET
ADO.NET ARCHITECHTURE
DATA READER
DataTable2
XML DATAVIE
OUTPUT W
DATAVIE
MSSQL ORACLE ACEESS W
DATA STORE
ADO.NET is an extension of the ADO data access model which consists of only the connected
architecture. The Microsoft organization has realized the data related operations and have studied and
analyzed different data related technologies among which they found ADO to be interesting , later on
they extended the features of the ADO and defined own data related technology by refining the ADO
and hence given the name as ADO.Net. The Microsoft organization, grouped some set of namespaces
which can operates on data, and put together into technology called ADO.NET. The ADO.Net
technology enhances the features of the ADO, which consist of only connected architecture where as in
ADO.NET they have introduces a disconnected architecture.
The connected architecture important feature is the data provider, which consists of the four important
objects namely connection, command, data reader and data adapter.
The connection object provides the connection to the data store nothing but to the back end database
servers. The connection class consists of default constructors and parameterized constructors. The
constructor takes arguments, which provides the connection to the back end servers. The arguments
that the connection class constructors takes are Data Source, Database and security.
The first parameter Data Source represents the server name to which our application needs to be
connected. That’s means from the available servers we need to select the particular data base server
which can be done through the data source parameter. The second parameter indicates the database
to which we are going to connect, that’s means in that particular database server, to which data base
we want to connect can be done through the data base parameter. The third parameter security
indicates, the security provided for the database server. If the server is running under windows
authentication mode, than will use integrated security to be true that’s means no need to specify the
user name and password explicitly why because the system will takes the prebuilt username and
password which has been set for the system. On the other hand if the back end server Is running under
sql authentication mode that will specify the username and password which has be set during the
installation of the server, using the security parameter we can connect to the backend database server.
Also sqlconnection class consists of the methods such as open and close. The open method is used to
open the connection to the database server. Whereas the close method is used to disconnect the
connection from the server. Once the connection is opened while in the application use, the connection
should be closed when the application terminates.
The another object of the data provider is the command object, using which one can write the queries in
order to manipulate data in the database. Once the connection is opened, the sqlcommand class make
use of the connection and will operate on the database. The sqlcommand class will do manipulation
using the queries or the stored procedures. Which has to be decided by the programmers whether they
want to use the queries or the stored procedures using the method command type? If we want to use
queries than we need to select the text query or else we need to select stored procedure option from
the command type method.
Command object consists of three methods namely execute non query, execute reader and execute
scalar. The execute non query will returns the integer values as an output which indicates how many
records have been updated, or modified etc. the second method execute reader returns the complete
records been affected by the operations , whereas execute scalar returns the first row first column value
remaining will be neglected.
The third object in the connected architecture is the data reader, which reads the data in a forward only
mode , that’s means its retrieves the data from the data base server and forwards it to the application.
Another object is the data adapter which acts like an interface or bridge between the connected
architecture and disconnected architecture.
In the disconnected architecture the important feature is the dataset. It’s a collection of data tables and
data rows and the data tables will be linked using the data relations. When the dataset need to be filled
, its request to the data adapter which in turn fills the dataset by making use of fill method. of data
adapter.
Database
A database is similar to a data file in that it is a storage place for data. Like a data file, a
database does not present information directly to a user; the user runs an application that
accesses data from the database and presents it to the user in an understandable format.
A database typically has two components: the files holding the physical database and the
database management system (DBMS) software that applications use to access data. The
DBMS is responsible for enforcing the database structure, including:
Client/Server
In a client/server system, the server is a relatively large computer in a central location that
manages a resource used by many people. When individuals need to use the resource, they
connect over the network from their computers, or clients, to the server.
Examples of servers are: In a client/server database architecture, the database files and DBMS
software reside on a server. A communications component is provided so applications can run
on separate clients and communicate to the database server over a network. The SQL Server
communication component also allows communication between an application running on the
server and SQL Server.
Server applications are usually capable of working with several clients at the same time. SQL
Server can work with thousands of client applications simultaneously. The server has features
to prevent the logical problems that occur if a user tries to read or modify data currently being
used by others.
While SQL Server is designed to work as a server in a client/server network, it is also capable
of working as a stand-alone database directly on the client. The scalability and ease-of-use
features of SQL Server allow it to work efficiently on a client without consuming too many
resources.
Scalability
The same database engine can be used across platforms ranging from laptop computers running
Microsoft Windows® 95/98 to large, multiprocessor servers running Microsoft Windows
NT®, Enterprise Edition.
Data warehousing
SQL Server includes tools for extracting and analyzing summary data for online analytical
processing (OLAP). SQL Server also includes tools for visually designing databases and
analyzing data using English-based questions.
Databases
A database in Microsoft SQL Server consists of a collection of tables that contain data, and
other objects, such as views, indexes, stored procedures, and triggers, defined to support
activities performed with the data. The data stored in a database is usually related to a
particular subject or process, such as inventory information for a manufacturing warehouse.
SQL Server can support many databases, and each database can store either interrelated data or
data unrelated to that in the other databases. For example, a server can have one database that
stores personnel data and another that stores product-related data. Alternatively, one database
can store current customer order data, and another; related database can store historical
customer orders that are used for yearly reporting. Before you create a database, it is important
to understand the parts of a database and how to design these parts to ensure that the database
performs well after it is implemented.
Unique Constraints
Primary Key Constraints
The primary key constraint is similar to the unique key constraint. The
primary key constraint just like the former avoids duplication of values. Its needs it
best felt when a relation has to be set between tables, because in addition to prevent
in duplication it also does not allow null values.
The design phase begins with the requirements specification for the
software to be developed. Design is the first step to moving from the problem domain
towards the solution domain. Design is essentially the bridge between requirement
specification and the final solution for satisfying the requirements. It is the most critical
factor effecting the quality of the software.
In the system design the focus on the deciding which modules are
needed for the system, the specification of these modules and how these modules
should be interconnected.
Detailed Design:
Verifiability
Completeness
Consistency
Traceability
Simplicity / Understandability
1) Application Architecture:
will include all the necessary data access functionalities, such as establishing the
connection to the data base server, than after connecting successfully will use the
Data manipulation commands such as insert, delete, update, select operations
depending upon the needs of the application. But in order to use the ADO.NET
objects in our application we need to include the respective namespace provided
by the ADO.NET. That’s in order to connect to the MS SQL server2005; we need
to include the System.sqlclient namespace in our application. The namespace
sqlclient is to connect to the MS SQL server database. If we want to connect to
oracle database server we need to include oracleclient namespace, if we want to
connect to ACCESS database server we need to include odbc namespace in our
application.
2) Software Architecture:
Login
Inbox
Compose
Sentbox
Deletebox
AddContacts
UpdateProfile
View Members
ResetMember
Passwords
In this software architecture, the users block consists of the modules such
as admin and users. Will design all the forms necessary for the user module and
admin module. In the admin module will design the login page for signing for the
admin where he need to give his username and password. Admin will have Inbox
which holds incoming messages, sent box which holds sent items. Admin can
view the members and he/she can reset the member passwords in order to restrict
user from login. In order to sent the mail admin will make use of compose option,
using which he/she can send the mail to one or many users.
Similarly for the User module will create the necessary web forms using
ASP.NET that is for user login will create login form, for sending mail user can
use compose mail option in order to send the mails to members in our website.
User will have options such as inbox, sent box, delete box, update profile , add
contacts, using update profile user can change his/her existing profile , using add
contacts user can add other contacts to his profile. In order to design these
options will make use of asp.net to design the respective web forms and for
logging out of the application will create logout form.
In the business logic will check the necessary validations corresponding to the
user module and admin module during their modules evaluations. In the business
logic we make sure that all the validations relating to the every module in the
application will be satisfied thoroughly. Once after all the validations are
evaluated to be true, will move with the data access logic.
In the data access logic, will connect to the necessary database server by
including the required namespace. I.e. System.sqlclient if the database server we
are using is MS SQL SERVER2005
\
UML diagrams
Introduction
Modeling is an activity that has been carried out over the years in software development.
When writing applications by using the simplest languages to the most powerful and
complex languages, you still need to model. Modeling can be as straightforward as drawing
a flowchart listing the steps carried out by an application.
Defining a model makes it easier to break up a complex application or a huge system into
simple, discrete pieces that can be individually studied. We can focus more easily on the
smaller parts of a system and then understand the "big picture." Hence, the reasons behind
modeling can be summed up in two words:
Readability
Reusability
The Unified Modeling Language, or UML, as it is popularly known by its TLA (three-letter
acronym!), is the language that can be used to model systems and make them readable. This
essentially means that UML provides the ability to capture the characteristics of a system by
using notations. UML provides a wide array of simple, easy to understand notations for
documenting systems based on the object-oriented design principles. These notations are
called the nine diagrams of UML.
Different languages have been used for depicting systems using object-oriented
methodology. The prominent among these were the Rumbaing methodology, the Brooch
methodology, and the Jacobson methodology. The problem was that, although each
methodology had its advantages, they were essentially disparate. Hence, if you had to work
on different projects that used any of these methodologies, you had to be well versed with
each of these methodologies. A very tall order indeed! The Unified Modeling Language is
just that. It "unifies" the design principles of each of these methodologies into a single,
standard, language that can be easily applied across the board for all object-oriented
systems. But, unlike the different methodologies that tended more to the design and detailed
design of systems, UML spans the realm of requirements, analysis, and design and,
uniquely, implementation as well. The beauty of UML lies in the fact that any of the nine
diagrams of UML can be used on an incremental basis as the need arises. Considering all
these reasons, it is no wonder that UML is considered "the" language of choice.
UML does not have any dependencies with respect to any technologies or languages. This
implies that you can use UML to model applications and systems based on either of the
current hot technologies; for example, J2EE and .NET. Every effort has been made to keep
UML as a clear and concise modeling language without being tied down to any
technologies.
INTRODUCTION TO UML:
Goals of UML
The primary goals in the design of the UML were:
The use case diagram is used to identify the primary elements and processes that form the
system. The primary elements are termed as "actors" and the processes are called "use
cases." The use case diagram shows which actors interact with each use case.
Class diagram:
The class diagram is used to refine the use case diagram and define a detailed design of the
system. The class diagram classifies the actors defined in the use case diagram into a set of
interrelated classes. The relationship or association between the classes can be either an "is-
a" or "has-a" relationship. Each class in the class diagram may be capable of providing
certain functionalities. These functionalities provided by the class are termed "methods" of
the class. Apart from this, each class may have certain "attributes" that uniquely identify the
class.
Object diagram:
The object diagram is a special kind of class diagram. An object is an instance of a class.
This essentially means that an object represents the state of a class at a given point of time
while the system is running. The object diagram captures the state of different classes in the
system and their relationships or associations at a given point of time.
State diagram:
A state diagram, as the name suggests, represents the different states that objects in the
system undergo during their life cycle. Objects in the system change states in response to
events. In addition to this, a state diagram also captures the transition of the object's state
from an initial state to a final state in response to events affecting the system.
Activity diagram:
The process flows in the system are captured in the activity diagram. Similar to a state
diagram, an activity diagram also consists of activities, actions, transitions, initial and final
states, and guard conditions.
Sequence diagram:
A sequence diagram represents the interaction between different objects in the system. The
important aspect of a sequence diagram is that it is time-ordered. This means that the exact
sequence of the interactions between the objects is represented step by step. Different
objects in the sequence diagram interact with each other by passing "messages".
Collaboration diagram:
A collaboration diagram groups together the interactions between different objects. The
interactions are listed as numbered interactions that help to trace the sequence of the
interactions. The collaboration diagram helps to identify all the possible interactions that
each object has with other objects.
Component diagram:
The component diagram represents the high-level parts that make up the system. This
diagram depicts, at a high level, what components form part of the system and how they are
interrelated. A component diagram depicts the components culled after the system has
undergone the development or construction phase.
Deployment diagram:
The deployment diagram captures the configuration of the runtime elements of the
application. This diagram is by far most useful when a system is built and ready to be
deployed.
Now that we have an idea of the different UML diagrams, let us see if we can somehow
group together these diagrams to enable us to further understand how to use them.
Static:
The static characteristic of a system is essentially the structural aspect of the system.
The static characteristics define what parts the system is made up of.
Dynamic:
The behavioral features of a system; for example, the ways a system behaves in
response to certain events or actions are the dynamic characteristics of a system.
Implementation:
The UML diagrams that fall under each of these categories are:
Static
Use case diagram
Class diagram
Dynamic
o Object diagram
o State diagram
o Activity diagram
o Sequence diagram
o Collaboration diagram
Implementation
o Component diagram
o Deployment diagram
The design view of a system is the structural view of the system. This gives an idea of
what a given system is made up of. Class diagrams and object diagrams form the design
view of the system.
Process View:
The dynamic behavior of a system can be seen using the process view. The different
diagrams such as the state diagram, activity diagram, sequence diagram, and
collaboration diagram are used in this view.
Component View:
Component view shows the grouped modules of a given system modeled using the
component diagram.
Deployment View:
The deployment diagram of UML is used to identify the deployment modules for a given
system.
Finally, we have the use case view. Use case diagrams of UML are used to view a system
from this perspective as a set of discrete activities or transactions.
Send/save/cancel
ForgotPassword ComposeMail
Inbox Inboxdetails
SentBox
SentBoxDetails
SignIn
User DeleteBox
DeletedItems
AddContacts
Contacts
SignUp ViewContacts
EditProfile
Edit
Drafts
NewRegistration
Update
ii)Admin:
Send/save/cancel
composemail
InboxDetails
AdminInbox
Sent Itemdetails
SignIn SentBox
Admin
Deleted mailsdetails
DeleteBox
viewmembers
ResetMemberpassword
Draft
2)CLASS DIAGRAM
i)USER
ii)ADMIN:
3) OBJECT DIGRAM:
4) SEQUENCE DIAGRAM:
i)USER
User Login Compose Inbox SentBox DeleteBox EditProfile Contacts Application Database
send valid/invalid
response for login response for login whether valid login or invalid login
Retrieves db
Response for Inbox Response of Inbox
mail send
retrievesdb
saved/unsaved
Sends successul or unsuccessful editprofile response for editprofile
retrievesdb
contactresponse
view contacts
ii)ADMIN:
Admin Login Inbox Compose SentBox DeleteBox View Resetpwds Application Database
Members
login
send usernam,password,branch
checks in db
valid/invalid
valid/invalid login sends valid or invalid response
retrievesdb
view members response for viewmembers
response retrievesdb
reset passwords
5) COLLABORATION DIAGRAM
i)USER:
ii)ADMIN:
6) STATECHART DIAGRAM
7) ACTIVITY DIAGRAM
For User:
For Admin:
8) COMPONENT DIAGRAM
9) DEPLOYMENT DIAGRAM
6.4)Database Design
The data pertaining to proposed system is voluminous that a careful design of
the database must proceed before storing the data in the database.
A database management system provides flexibility in the storage and retrieval
of data bad production of information. The DBMS is a bridge between the application
program, which determines what data are needed and how they are processed, and the
operating system of the computer, which is responsible for placing data on the magnetic
storage devices. A schema defines the database and a subschema defines the portion of the
database that a specific program will use.
Data Model:
The organization of the data is represented by a data model and identifies the
logical organization of data. In a model of real world similar things are usually grouped
into classes of object called object types.
A data model is a pattern according to which data are logically organized. It
consists of the named logical units of data and expresses the relationships among the data
as determined by the interpretation of the model of real world.
The relational data model is a formal model for representing relationships
among attributes of an entity set and the association between entity sets.
In the relational data model all attribute relationships and all associations are
represented as relations. There is no distinction even at the model level, between the
different kinds or relations. Syntactically all the relations are the same. The data model
does not produce the introduction of additional semantic information to distinguish
different relations according to their properties of models namely:
Network Model
Hierarchical data model
In the relational data model all attribute relationships and all associations are
represented as relations. There is no distinction even at the model level, between the
different kinds or relations. Syntactically all the relations are the same. The data model
does not produce the introduction of additional semantic information to distinguish
different relations according to their properties.
NORMALIZATION
FIRST NORMALFORM:
SECOND NORMALFORM:
THIRD NORMALFORM:
Database tables
ContactDb :
ContactId int Unchecked
ContactName varchar(500) Checked
Address varchar(2000) Checked
PhoneNo varchar(50) Checked
contactsemail varchar(1000) Checked
UserId int Checked
DraftDb:
DraftId int Unchecked
Toaddr varchar(300) Checked
Ccaddr varchar(300) Checked
Subject varchar(500) Checked
Attachment varchar(500) Checked
Mailcontent varchar(8000) Checked
SendId varchar (100) Checked
UserId int Checked
MailAttachment_db:
MailAttachId int Unchecked
MailId int Checked
Attachment varchar(MAX) Checked
UserMailsDb:
MailId int Unchecked
MailSubject varchar(MAX) Checked
MailContent varchar(MAX) Checked
MailTo_List varchar(1000) Checked
CC_List varchar(1000) Checked
SentId varchar(1000) Checked
status char(10) Checked
UserRegistrationDb:
MailCcList
MailToLis
t
login
USER
login
Admin
Level1
login
Compose mail
USER
Sent box
Inbox
Delete box
login
Compose mail
Admin
Sent box
Inbox
Delete box
Level 2:
User
Edit profile
Add
contacts
login
Compose mail
USER
Sent box
Inbox
View
members
Reset
members
login
Compose mail
ADMIN
Sent box
Inbox
Delete box
Level3:
User
Edit profile
Add
contacts
Sent box
Inbox
Delete box
ADMIN
ViewMem
ResetMem
Sent box
Inbox
Delete box
6.5) User Interfaces or Output Screens.
Registration page
Login page
Forgot password page
User home page
Admin home page
7.0 Code
Registration:
cmd.Parameters.Add("@Username",SqlDbType.VarChar,50).Value=Username;
cmd.Parameters.Add("@email", SqlDbType.VarChar,50).Value =
email;
cmd.Parameters.Add("@password", SqlDbType.VarChar, 50).Value =
password;
cmd.Parameters.Add("@gender", SqlDbType.Char).Value = gender;
cmd.Parameters.Add("@dob", SqlDbType.DateTime).Value = dob;
cmd.Parameters.Add("@mob", SqlDbType.VarChar,50).Value = mob;
cmd.Parameters.Add("@loc", SqlDbType.VarChar,50).Value = loc;
cmd.Parameters.Add("@SecQues", SqlDbType.VarChar,50).Value =
SecQues;
cmd.Parameters.Add("@SecAns", SqlDbType.VarChar,50).Value =
SecAns;
cmd.Parameters.Add("@Altemail", SqlDbType.VarChar,50).Value =
Altemail;
cmd.Parameters.Add("@branch", SqlDbType.VarChar,50).Value =
branch;
cmd.Parameters.Add("@usertype", SqlDbType.Int).Value = usertype;
cmd.Parameters.Add(new SqlParameter("@resUserReg",
SqlDbType.VarChar, 50));
cmd.Parameters["@resUserReg"].Direction =
ParameterDirection.Output;
//cmd.Parameters.Add("@resUserReg",SqlDbType.VarChar,50);
//cmd.Parameters["@resUserReg"].Direction =
ParameterDirection.Output;
cmd.ExecuteNonQuery();
string resUserReg =
cmd.Parameters["@resUserReg"].Value.ToString();
return resUserReg;
}
// following code is for user Registration in Registration.aspx.cs
if (UsrRegResult == "no")
UsrRegResultlbl.Text = " User Succussful Registration";
}
catch (Exception ex)
{
UsrRegResultlbl.Text = "Insertion failed " + ex.Message;
}
}
//following code is for login in BAL
DataSet ds;
}
else
{
Response.Redirect("UserInbox.aspx");
}
}
else
{
LoginUsernameTxtbx.Text = string.Empty;
Loginpwdtxtbx.Text = string.Empty;
BranchLoginDDL.Items.Clear();
BranchLoginDDL.Items.Add("select");
BranchLoginDDL.Items.Add("BTECH");
BranchLoginDDL.Items.Add("MCA");
BranchLoginDDL.Items.Add("MBA");
BranchLoginDDL.Items.Add("MTECH");
BranchLoginDDL.Items.Add("Admin");
BranchLoginDDL.SelectedItem.Text = "select";
usrloginresultlbl.Text = "Invalid User Login";
}
}
}
//following code of BAL is for getting the security question based on
username
public DataSet GetSecrtyQs(string username)
{
ds = new DataSet();
ds = UserRegObj.GetSecurityQues(username);
return ds;
}
On clicktogetsecurityquestion button click:
//following .cs code to obtain security question
CollegeMailingSystemBAL.UserRegEdit getQes = new
CollegeMailingSystemBAL.UserRegEdit();//creating object of BAL in DAL
con = DBcon();
if (Convert.ToBoolean(con.State))
con.Close();
con.Open();
sda = new SqlDataAdapter("select Password from
UserRegistrationDb where UserName='"+username+"' and
SecurityQuestion='"+securityques+"' and
SecurityAnswer='"+securtiyans+"'",con);
ds = new DataSet();
sda.Fill(ds);
return ds;
}
//following BAL code is to get forgotten userpassword
public DataSet Getpwd(string username, string secques, string
secans)
{
ds = new DataSet();
ds = UserRegObj.GetPassword(username, secques, secans);
return ds;
}
On submit button click:
//following .cs code is to get forgotten userpassword
else
{
frgtpwdSecAnslbl.Text = "Invalid security answer";
}
}
On backtoinbox button click:
protected void bcktoinbx_id(object sender, EventArgs e)
{
Response.Redirect("UserInbox.aspx");
}
}
On UserCompose button click:
protected void UsrHomComposebtn_Click(object sender, EventArgs e)
{
UsrHomComposebtn.Enabled = false;
Response.Redirect("UserComposemail.aspx");
using CollegeMailingSystemBAL;
if (!IsPostBack)
databind(); }
public void databind()
{
ds = Inboxobj.fillInbox(Session["UserName"].ToString());
InboxGv.DataSource = ds;
InboxGv.DataBind();
if (e.CommandName == "Subject")
{
Response.Redirect("UserInboxDetails.aspx?
mcid="+e.CommandArgument);//redirecting to UserInboxdetails //along with
mcid.
}
con = DBcon();
if (Convert.ToBoolean(con.State))
con.Close();
con.Open();
cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Deletecheckedmails";
cmd.Parameters.Add("@mailid", SqlDbType.Int).Value =
mailrecordid;
}
On Deletebutton click:
We use following same storedprocedure and method as defined for userchecked
deletemails:
storedprocedureName: Deletecheckedmails
DAL MethodName: deletecheckedmails(mailrecordid) //defined in DAL
BAL MethodName: deletecheckedmails(mailrecordid) //defined in BAL
}
}
databind();
}
8.0. TESTING
One is Black-Box testing – the specified function that a product has been
designed to perform, tests can be conducted that demonstrate each function is
fully operated.
The other is White-Box testing – knowing the internal workings of the
product ,tests can be conducted to ensure that the internal operation of the
product performs according to specifications and all internal components have
been adequately exercised.
White box and Black box testing methods have been used to test
this package. All the loop constructs have been tested for their
boundary and intermediate conditions. The test data was designed with a view
to check for all the conditions and logical decisions. Error handling has
been taken care of by the use of exception handlers.
Testing Strategies :
Unit Testing :
Unit testing focuses verification effort on the smallest unit of software design –
the module. The unit test is always white box oriented. The tests that occur as part of
unit testing are testing the module interface, examining the local data structures, testing
the boundary conditions, executing all the independent paths and testing error-handling
paths.
Integration Testing :
System Testing :
System testing validates software once it has been incorporated into a larger
system. Software is incorporated with other system elements and a series of system
integration and validation tests are conducted. System testing is actually a series of
different test whose primary purpose is to fully exercise the computer- based system.
Once the system has been developed it has to be tested. In the present system we have
to take care of valid property and assessment numbers i.e. there should not exist any
duplicate number in each case. Care should be taken that the appropriate data is
retrieved in response to the queries.
VALIDATION
done , in which all the modules of a system will be tested at once , there by getting the overall
performance of a system that means we can conclude the result on the entire system whether
our system is working as per our requirements or as per our expectations or not. The advantage
of developing or testing modules wise is that , we can reduce the effort, cost and time. Because
if we are testing module wise than we can know clearly which module is working fine and
which module is not working , thereby the module which is not working perfectly can be
evaluated once again by going necessary modifications unlike the system being tested on a
whole , where if any errors comes in than the entire system need to be tested or evaluated
which consumes more effort , time and cost.
9.0 Implementation
9.1 Running Application:
4) After restoring the data base, run the application by pressing F5 or debugging button.
9.2 Configuring Data Base:
As a future enhancement, in our application we can include study chats relating to the subjects
by the students and the professors.
11.0. BIBLIOGRAPHY
The following books were referred during the analysis and execution phase of the project
SOFTWARE ENGINEERING
By Roger.S.Pressman
Professional ASP.NET
By Wrox
MSDN 2002
By Microsoft
12.0. References