You are on page 1of 111

Table Of Contents

Table Of Contents.............................................................................................................................1
1 Company Profile............................................................................................................. .......................4
2 About Smartclass................................................................................................................................ ...8
3 About The Project ............................................................................................................. ....................9
3.1 Smartclass INDIA Assessment Engine.................................................................. ............................10
3.2 Smartclass INDIA Content Engine........................................................................................ ............10
4 Technologies Used......................................................................................................................... .......11
4.1 ASP.NET with C# ......................................................................................................... .................11
Visual Studio 97.............................................................................................................................11
Visual Studio 6.0.............................................................................................................................11
Visual Studio .NET (2002).............................................................................................................12
Visual Studio .NET 2003...............................................................................................................12
Visual Studio 2005.........................................................................................................................13
C#(C hash)......................................................................................................................................14
4.2 SQL SERVER 2000............................................................................................................. ............16
4.3 Platform Support............................................................................................................... ............16
4.4 Hardware requirements........................................................................................................ ..........16
4.5 Software requirements......................................................................................................... ..........16
4.6 Features of SQL Server 2000............................................................................. .............................18
Backup and Restore Enhancements................................................................................................18
SQL Server 2000 Performance Tuning Tools ................................................................................18
System (Performance) Monitor ......................................................................................................18
SQL Server 2000 Query Analyzer..................................................................................................18
Show Execution Plan......................................................................................................................18
Show Server Trace..........................................................................................................................19
SQL Server 2000 Profiler...............................................................................................................19
How to Use the Profiler for Performance Tuning...........................................................................20
Index Wizard...................................................................................................................................21
System (Performance) Monitor.......................................................................................................22
4.7 AJAX........................................................................................................................................... .23
User interface..................................................................................................................................23
Bandwidth usage.............................................................................................................................23
Separation of data, format, style, and function...............................................................................24
4.8 Disadvantages.................................................................................................... .........................24
Browser integration.........................................................................................................................24
Response-time concerns..................................................................................................................25
Search engine optimization.............................................................................................................25
Reliance on JavaScript....................................................................................................................25
Web analytics..................................................................................................................................25
5 Software Development Life Cycle (SDLC)............................................................................................... ..26
5.1 Phases Of SDLC................................................................................................ ............................27
Requirement Specification .............................................................................................................28
Requirement Analysis and Design..................................................................................................28
Coding and Testing ........................................................................................................................28
Deployment and Support................................................................................................................28
6 Project Requirements.............................................................................................. .............................28
6.1 HARDWARE: .............................................................................................................. ..................28
6.2 SOFTWARE:.............................................................................................................................. ....29
7 Internet Information Services.............................................................................................. ..................29
7.1 Versions............................................................................................................................ ...........29

1
7.2 History of IIS.................................................................................................................. .............30
7.3 Security.................................................................................................................... ...................30
7.4 Authentication mechanisms................................................................................ ............................30
7.5 Internet Information Services 7.0.................................................................................... ................31
8 .NET Framework............................................................................................................ ......................31
8.1 .NET Framework architecture...................................................................................... ....................33
Common Language Infrastructure (CLI)........................................................................................33
Assemblies......................................................................................................................................34
Metadata..........................................................................................................................................34
Base Class Library (BCL)...............................................................................................................34
Security...........................................................................................................................................34
8.2 Versions............................................................................................................................ ...........35
.NET Framework 1.0......................................................................................................................36
.NET Framework 1.1......................................................................................................................36
.NET Framework 2.0......................................................................................................................36
.NET Framework 3.0......................................................................................................................38
9 Enabling Active X................................................................................................................ .................39
9.1 Enabling Active X for Microsoft Internet Explorer 5.0 .........................................................................39
9.2 Enabling Active X for Microsoft Internet Explorer 6.0.................................................... ......................40
9.3 Enabling Active X for Microsoft Internet Explorer 7.0.................................................... ......................40
10 Enable cookies....................................................................................................................... ............40
10.1 For Internet Explorer 6 Users: .................................................................................. ....................41
10.2 For Internet Explorer 5 Users: .................................................................................. ....................41
10.3 For Netscape Users: ........................................................................................................ ............41
11 REQUIREMENT SPECIFICATION....................................................................................... .....................42
11.1 Project Background............................................................................................................. .........42
Existing System..............................................................................................................................42
Reason For Updation......................................................................................................................43
Improvement In Existing System....................................................................................................43
Software Requirement Specifications (SRS)..................................................................................44
11.2 Functional Requirements............................................................................................................. ..44
11.3 INFORMATION GATHERING...................................................................................... .....................46
11.4 Feasibility Analysis............................................................................................................ ...........46
Technical feasibility: ......................................................................................................................47
Economic feasibility: .....................................................................................................................47
Operational feasibility: ...................................................................................................................47
Social feasibility: ...........................................................................................................................47
12 Requirement Analysis and Design....................................................................................... ..................47
12.1 System Analysis..................................................................................................... .....................48
12.2 System Design........................................................................................................... .................48
12.3 DATABASE DESIGN..................................................................................................... .................51
13 Coding and Testing ........................................................................................................... .................53
13.1 Coding.................................................................................................................. .....................53
13.2 Testing ........................................................................................................................ ..............53
White-box and black-box testing....................................................................................................53
Test levels........................................................................................................................................54
A sample testing cycle....................................................................................................................55
Testing Types..................................................................................................................................56
IEEE standards for Software testing...............................................................................................58
Test cases, suites, scripts, and scenarios........................................................................................58
Exploratory vs. Scripted.................................................................................................................59
Manual vs. Automated....................................................................................................................60
13.3 TEST CASES.................................................................................................. .............................60

2
Roles in software testing.................................................................................................................60
Structure of test case.......................................................................................................................61
Test suite.........................................................................................................................................62
Scenario testing...............................................................................................................................63
Test plan..........................................................................................................................................63
Test plans in software development...............................................................................................63
Test plan template, based on IEEE 829 format...............................................................................63
14 IEEE Standard for Software Test Documentation .................................................................... ................70
14.1 IEEE Std 829-1998............................................................................................... .......................70
14.2 IEEE 829.................................................................................................................. ..................70
14.3 Test script................................................................................................................................. ..71
14.4 SMARTCLASS testing Process.............................................................................. ..........................72
14.5 About SharePoint Services..................................................................................... .......................72
14.6 The Actual Process................................................................................................................ .......74
15 INPUTS &OUTPUTS................................................................................................................... ..........76
16 Reference.............................................................................................................................. ..........110

3
1 Company Profile

Educomp Solutions Ltd. was incorporated in 1994 and has grown as the largest
technology driven innovative education company in India

Educomp is an eLearning enabler and specializes in the creation of rich media learning
content, management of learning and the delivery of learning.

They are leaders in training teachers for both technology skills and pedagogy skills and
work closely with schools to implement innovative models to create and deliver content
to enhance student learning. They participate in large-scale education infrastructure
projects to bridge the digital divide and we research ways to reach out to learners and
educators.

Established in 1994, Educomp is headquartered in New Delhi and has regional offices in
12 cities. The company has received investment from the Carlyle group as part of its
$250-million investment in technology companies in India.

It recently set up a US subsidiary, Edumatics Corporation, with Rs 2.5 crore seed


investment to develop and market e-learning technology and solutions in America. With

4
a turnover of Rs 20.5 crore for 2002-03, Educomp is looking to double its turnover to Rs
42 crore during the current fiscal.

The company is one of the few players offering computer-aided learning solutions in the
domestic education segment from Kindergarten to Class 12 (called K-12 initiative).

According to the offer document, it expects 225 schools to sign up for this project over
the next two years. On an average, it expects 10 classrooms to run Smart Class. Its also
proposes to invest in developing content from its Banglore facility for the American
market.

EDUCOMP A Journey through Years

5
Educomp has four business units — Smart Class, Education Infrastructure Projects
awarded by the government, Professional Development for teachers, and retail services.
The primary object of this offer is to part-finance the capital expenditure required for its
Smart Class project in the domestic and American markets and education infrastructure
under the BOOT (build-own-operate-transfer) modelIn a Smart Class project, the
company provides teacher-centric content mapped to the school syllabus, along with
hardware infrastructure and connectivity.

6
Though Smart Class, along with Professional Development, is a market that has
considerable growth potential, it is still at a nascent stage of development. In our view,
the extensive deployment of computer learning aids in classrooms across the country
will be slow to take-off. Since the barriers to enter this market are low, competition and
pricing will put pressure on sustaining operating margins in the 40 per cent range. While
the company plans to mitigate this risk through long-term annuity contracts with
schools, the risks of execution (in terms of delivering customized content for schools)
and scalability remain quite high. Since the US initiative is largely an unproven one, the
risks associated with this venture will be fairly high.

The Big Mind Behind Educomp Solutions:

More on http://www.educomp.com or http://www.edumatics.com

7
2 About Smartclass

Educomp’s smartclass™ is a technology oriented initiative for schools. It provides tools


and content for interactive self-paced learning by students, as well as rich-media
presentations for teacher-led classroom learning.

EDUCOMP’s `SmartClass' is a technology-enabled learning programme that promises


interactive classes, be it in history, maths or environment studies.

For instance, if children are learning about volcanoes, they will see how the massive
mountain actually erupts and spews out hot molten lava, on a video screen.

If it's time to study the World Wars in history, actual footage shown in the classroom
could bring the lesson out of the rote mode and into the sphere of total recall.

The Smart Class programme uses technology to transform classroom experience.

A knowledge centre set up at the school acts as the nerve centre of the network.

It is connected through campus-wide network to the existing classrooms that simply


turn into ETECs (Educomp Technology Enabled Class rooms).

One Plasma encased in tamper-proof custom-designed casings is installed in each


classroom connected to the dedicated PC for the teacher in each class.

The teacher's PC in each ETEC is connected to a central knowledge centre at the school.
The knowledge centre is virtually turned into a staff room where the teacher can request
for digital resources on topics to be taught over a specified period using a SmartClass
software engine.

However, the technology does not do away with conventional teaching methods.

Apart from the chalk and the blackboard, the teacher can now use videos, 3D images
and animation to teach the chosen topic inside classroom resulting in a multi-sensory
learning experience for students

Smartclass is available for teachers and students over the web, and can also be installed
on the school’s local server for faster and more reliable access to the content.

The content available consists of pedagogically sound and visually rich curriculum
resources mapped and customized as per the school's Scheme of Work. This content can
be streamed into the classroom and shown by teachers in the classroom to make
abstract concepts real.

Teachers may also include their own learning materials for use by their students.

8
The optional SAS engine available with smartclass supports creation and management of
question bank and eTests. With this tool, teachers will be able to create multiple choice
questions and deliver them to students.

3 About The Project

After the success gained by educomp Solutions in content digitization in the education
field for the Singapore schools (http://www.educomp.smartclass.com), it has
revolutionized the Indian schools now in a very different way not thought of before.

Education has made this world to change the way life should go on, then why not the
way Education has been should also change. In educational field Contents is the most
important and valuable resource for a student. And when the technology is so advanced,
it becomes even more important to give education a technology touch. Keeping this in
mind EDUCOMP Solutions planned to develop Smartclass INDIA as a web based
application to change the way education is going on in INDIA. It’s aim is to handle the
Teaching learning process in a purely technical way.

The Product has

• Smartclass INDIA Content Engine

9
• Smartclass INDIA Assessment Engine

As the Major modules

3.1 Smartclass INDIA Assessment Engine

SmartClass INDIA Assessment Engine is a simple solution designed to help teachers


meet their day-to-day challenges. The solution offers teachers instant access to relevant
instruction material, as also enables them assess and evaluate student learning.
SmartClass is teacher-centered, and keeps in mind the realities of a teacher's life.
Besides, teachers do not require any special skill-sets to work with this solution .Just
basic knowledge of computers is enough to work in a systematic teaching learning
process

"SmartClass INDIA Assessment Engine," will be a unique assessment tool developed


by eLearning company, Educomp, will help teachers assess in real-time what students
are learning. Students will be able to use wireless student-response systems (Educlick
remotes or HIIT Remotes), to interact with context sensitive questions in real-time.
Thus, teachers will be able to build continuous evaluation data for each child, and map
his/her potential, assign work and get the work submitted by students all online.

On the student part he will be at liberty to access his performance in the past to help
improve his potential.

3.2 Smartclass INDIA Content Engine


Imagine watching the visuals of World War II while flipping through the pages of your
history book or viewing the animated version of a story being narrated by your class
teacher. The SmartClass INDIA Content Engine promises all this and much more. The
programme for the digital classroom initiative, has been for interactive learning.

“The basic idea is to complement classroom lectures to help students register the
subject better through the audio-visual medium. One step ahead of the traditional chalk
and talk method, the format is instructor-friendly and the teachers can go back and forth
as per their requirement. The teachers can use digital resources like graphics,
animations, 3-D images and video clips extensively.

With its K12 content development team, the Educomp research centers, in Delhi and
Bangalore, have a repository of over 7,000 digital content modules and around 30,000
modules being developed to be used in the Smartclass INDIA Content Engine

This is a Web based application for INDIAN schools and the content engine is already
launched for SINGAPORE Schools. It is an ideal learning project for beginners in Asp.Net
and a good Start up project who wants to know about tier based application and during
the testing phase it was a challenge as well as more and more learning.

10
Keeping in mind the two aims

• Interactive
• Easy to Use

The Application Design is such that a user having elementary knowledge of computers
can easily go for the Smartclass.The system provides the user with a user-friendly
interface.The user need not to possess initially any expertise or needs to be an
experience holder. The Smartclass’s Content Engine brings the best of the digitized
content to the teacher as well as to the students .

4 Technologies Used

4.1 ASP.NET with C#

Visual Studio 97

Microsoft first released Visual Studio in 1997, bundling together many of its
programming tools for the first time. Visual Studio 97 was released in two editions,
Professional and Enterprise. It included Visual Basic 5.0 and Visual C++ 5.0, primarily
for Windows programming; Visual J++ 1.1 for Java and Windows programming; and
Visual FoxPro 5.0 for xBase programming. It introduced Visual InterDev for creating
dynamically generated web sites using Active Server Pages. A snapshot of the Microsoft
Developer Network library was also included.

Visual Studio 6.0

The next version, version 6.0, was released in 1998 and is the last version to run on the
Win9x platform. The version numbers of all of its constituent parts also moved to 6.0,
including Visual J++ which jumped from 1.1, and Visual InterDev which was at 1.0. This
version was the basis of Microsoft's development system for the next four years, as
Microsoft transitioned their development focus to the .NET Framework.

Visual Studio 6.0 was the last version to include Visual Basic as most of its programmers
knew it; subsequent versions would include a quite different version of the language
based on .NET. It was also the last version to include Visual J++, which included deeper
ties to Windows and proprietary extensions to the Java language that were incompatible
with Sun's version. This caused Sun to sue Microsoft. As part of the settlement,
Microsoft would no longer sell programming tools that targeted the Java Virtual Machine.

Although Microsoft's long-term goal was to unify its tools under one environment, this
version actually had one more environment than VS 97. Visual J++ and Visual InterDev

11
broke away from the Visual C++ environment, while Visual Basic and Visual FoxPro
maintained their separate tools.

Visual Studio .NET (2002)

The biggest change was the introduction of a managed code development environment
using the .NET Framework. Programs developed using .NET are not compiled to machine
language (like C++ is, for example) but instead to a format called Microsoft
Intermediate Language (MSIL) or Common Intermediate Language (CIL). When an MSIL
application is executed, it is compiled while being executed into the appropriate machine
language for the platform it is being executed on, thereby making code portable across
several platforms. Programs compiled into MSIL can be executed only on platforms
which have an implementation of Common Language Infrastructure. It is possible to run
MSIL programs in Linux or Mac OS X using non-Microsoft .NET implementations like
Mono and DotGNU.

This was the first version of Visual Studio to require an NT-based Windows platform. The
installer enforces this requirement.

Microsoft introduced C# (C-sharp), a new programming language, that targets .NET. It


also introduced the successor to Visual J++ called Visual J#. Visual J# programs use
Java's language syntax. However, unlike Visual J++ programs, Visual J# programs can
only target the .NET Framework, not the Java Virtual Machine that all other Java tools
target.

Visual Basic was drastically changed to fit the new framework, and the new version was
called Visual Basic .NET. Microsoft also added extensions to C++, called Managed
Extensions for C++, so that C++ programmers could create .NET programs.

Visual Studio .NET can be used to make applications targeting Windows (using Windows
Forms, part of the .NET Framework), Web (using ASP.NET and Web Services) and, with
an add-in, portable devices (using the .NET Compact Framework).

The Visual Studio .NET environment was rewritten to partially use .NET. All languages
are unified under one environment, except for Visual FoxPro. Compared to previous
versions of Visual Studio, it has a cleaner interface and greater cohesiveness. It is also
more customizable with tool windows that automatically hide when not in use.Also in
this version, Visual FoxPro was no longer being bundled and is now sold separately.

The internal version number of Visual Studio .NET is version 7.0.

Visual Studio .NET 2003

Microsoft released Visual Studio .NET in 2002 (the beta version was released on the
Microsoft developer network in 2001). Microsoft introduced a minor upgrade to Visual
Studio .NET in 2003 called Visual Studio .NET 2003. At that point, it referred to the
previous version as Visual Studio .NET 2002. It included an upgrade to the .NET
Framework, version 1.1. It also came with built-in support for developing programs for

12
mobile devices, using either ASP.NET or the .NET Compact Framework. As well, the
Visual C++ compiler was improved to be more standards-compliant, especially in the
area of partial template specialization. Visual C++ Toolkit 2003, a free version of the
same C++ compiler shipped with Visual Studio .NET 2003 without the IDE, though it is
no longer available and now superseded by the Express Editions.

Visual Studio 2003 shipped in four editions: Academic, Professional, Enterprise


Developer, and Enterprise Architect. The Enterprise Architect edition included an
implementation of Microsoft Visio's modeling technologies, which focused on creating
Unified Modeling Language-based visual representations of an application's architecture.
"Enterprise Templates" were also introduced, to help larger development teams
standardize coding styles and enforce policies around component usage and property
settings.Microsoft released Service Pack 1 for Visual Studio 2003 on September 13,
2006.The internal version number of Visual Studio .NET 2003 is version 7.1 while the file
format version is 8.0.

Visual Studio 2005

Visual Studio 2005, codenamed Whidbey (a reference to Whidbey Island in Puget


Sound), was released online in October 2005 and hit the stores a couple of weeks later.
Microsoft removed the ".NET" moniker from Visual Studio 2005 (as well as every other
product with .NET in its name), but it still primarily targets the .NET Framework, which
was upgraded to version 2.0. Visual Studio 2005's internal version number is 8.0 while
the file format version is 9.0.

The most important language feature added in this version was the introduction of
generics, which are similar in many respects to C++ templates. This potentially
increases the number of bugs caught at compile-time instead of run-time by
encouraging the use of strict type checking in areas where it was not possible before.
C++ also got a similar upgrade with the addition of C++/CLI which is slated to replace
the use of Managed C++.

Other new features of Visual Studio 2005 include the "Deployment Designer" which
allows application designs to be validated before deployments, an improved environment
for web publishing when combined with ASP.NET 2.0 and load testing to see application
performance under various sorts of user loads.

Visual Studio 2005 also added extensive 64-bit support. While the development
environment itself is only available as a 32-bit application, Visual C++ 2005 supports
compiling for x86-64 (AMD64 and Intel 64) as well as IA-64 (Itanium).The Platform SDK
included 64-bit compilers and 64-bit versions of the libraries.

Visual Studio 2005 is available in several editions, which are significantly different from
previous versions: Express, Standard, Professional, Tools for Office, and a set of five
Visual Studio Team System Editions. The latter are provided in conjunction with MSDN
Premium subscriptions, covering four major roles of software development: Architects,
Software Developers, Testers, and Database Professionals. The combined functionality of
the four Team System Editions is provided in a Team Suite Edition.

13
Microsoft released service Pack 1 for Visual Studio 2005 on 14 December 2006.

C#(C hash)

C# (pronounced “C-sharp”) is a new language that Microsoft has touted as a simplified


version of C and C++. In this respect, C# is very much like Java, eliminating some of
the more complex features of C++ such as pointers and multiple inheritance. Most of
the examples in this Code- Note are written in C# (and VB.NET), to give you a look at
this new language.

Like Java and C++, C# is an object-oriented (OO) language and contains expected OO
features such as inheritance (the ability of a class to extend another class),
polymorphism (the ability to separate an interface from its implementation), and
encapsulation (the ability of objects to hide certain methods and instance variables from
other objects).

Java and C++ developers will be immediately comfortable with C#, while the language
may present some challenges for Visual Basic developers. Even if you choose to develop
in another language under the .NET Framework, it is worthwhile to understand C#, as
the majority of MSDN .NET code is written in C#. In this sense, C# can be considered
the “intrinsic” language of the .NET Framework, as it was developed solely for the
managed environment, as opposed to C++ and Visual Basic, which had to evolve into
their .NET manifestations.

.NET is Microsoft’s new strategy for the development and deployment of software.
Depending on your interests and development background, you may already have a
number of preconceived notions regarding .NET. As we will see throughout this
CodeNote:

• .NET fundamentally changes the way applications execute under


the Windows Operating System.

• With .NET Microsoft is, in effect, abandoning its traditional


stance, one which favors compiled components, and is embracing
interpreted technology (similar, in many ways, to the Java paradigm).

• .NET brings about significant changes to both C++ and Visual


Basic, and introduces a new language called C# (pronounced “C sharp”).

• .NET is built from the ground up with the Internet in mind, embracing
open Internet standards such as XML and HTTP. XML is also used throughout the
framework as both a messaging instrument and for configuration files.

14
15
4.2 SQL SERVER 2000
SQL Server is a Client/ Server database. Most data processing is done on the server
side, while most queries are done on the client side. This maximizes efficiency, since all
information can be managed in one place and network resources are maximized. The
clients are able to access the data through API and SQL. Microsoft SQL Server is a much
more powerful database than Microsoft Access.

Unlike Access, SQL Server is a true “Client/ Server” database. What this means is that
the majority of the work in processing data is actually done on the server, rather than on
the user’s workstation.. Only the few desired rows are retrieved over the network and
brought down to the user’s workstation. Network traffic is thereby minimized, resulting
in better performance. In addition, performance can be greatly enhanced by adding
more “horsepower” to the server machine in the way disk space, memory, processor
speed, number of processors, etc., since this is the machine where the majority of
processing new occurs.

4.3 Platform Support

SQL Server 2000 only works on Windows-based platforms, including Windows 9x,
Windows NT, Windows 2000 and Windows CE.

4.4 Hardware requirements


To install SQL Server 2000, you should have the Intel or compatible platforms and the
following hardware:

Hardware Requirements
Processor Pentium 166 MHz or higher
32 MB RAM (minimum for Desktop Engine),
Memory 64 MB RAM (minimum for all other editions),
128 MB RAM or more recommended
270 MB (full installation),
250 MB (typical),
95 MB (minimum),
Hard disk space
Desktop Engine: 44 MB
Analysis Services: 50 MB minimum and 130 MB typical
English Query: 80 MB

4.5 Software requirements

16
SQL Server 2000 comes in six editions: Enterprise, Standard, Personal, Developer,
Desktop Engine, and SQL Server CE (a compatible version for Windows CE) and requires
the following software:

SQL
Operating Enterpris Standard Personal Develope Desktop
Server
System e Edition Edition Edition r Edition Engine
CE
Windows
No No No No No Yes
CE
Windows
No No Yes No Yes No
9x
Windows
NT 4.0
Workstatio
No No Yes Yes Yes No
n with
Service
Pack 5
Windows
NT 4.0
Server with Yes Yes Yes Yes Yes No
Service
Pack 5
Windows
NT 4.0
Server
Enterprise
Yes Yes Yes Yes Yes No
Edition
with
Service
Pack 5
Windows
2000
No No Yes Yes Yes No
Professiona
l
Windows
2000 Yes Yes Yes Yes Yes No
Server
Windows
2000
Yes Yes Yes Yes Yes No
Advanced
Server
Windows
2000 Yes Yes Yes Yes Yes No
DataCenter
Windows No No Yes Yes Yes No

17
XP
Professiona
l

4.6 Features of SQL Server 2000


Backup and Restore Enhancements

In SQL Server 2000, passwords can be defined for backup sets and media sets to
prevent unauthorized users from restoring sensitive SQL Server backups. SQL Server
2000 also has improved the speed of differential database backups such that they now
should complete in a time proportional to the amount of data changed since the last full
backup.

SQL Server 2000 also introduces a new model for specifying backup and restore options
for your database. Previous database options such as "truncate log on checkpoint" and
"select into/bulk copy" have been replaced by three recovery models: Full Recovery,
Bulk Logged Recovery, and Simple Recovery. These new models help clarify when you
are balancing increased or decreased exposure to losing work against the performance
and log space requirements of the different plans.

SQL Server 2000 also provides support for recovering transaction logs to specific points
of work using named log marks in the transaction log, as well as the ability to perform
partial database restores.

SQL Server 2000 Performance Tuning Tools

SQL Server 2000 includes several tools you may find useful while testing an application
for the performance.The include:
Query Analyzer
Profiler
Index Wizard
System (Performance) Monitor

SQL Server 2000 Query Analyzer

The SQL Server 2000 Query Analyzer is not only a great tool for developing and
debugging Transact-SQL code, it is also a great tool for performance tuning Transact-SQL
code. Let's take a look at some of the key features included with Query Analyzer that
can be used to help performance tune Transact-SQL code.

Show Execution Plan

18
Whenever you enter a query into the Query Analyzer, you can run it and see the results
immediately. While this lets you know if the results are what you expected, it doesn't tell
you much about performance. Sure, the bottom of the screen tells you how long the
query ran, but that's about all.
One of the most powerful features of the Query Analyzer is that you can turn on a
feature called Show Execution Plan. This option allows you to view the execution plan
used by SQL Server's Query Optimizer to actually execute the query. This option is
available from the Query menu on the main menu of Query Analyzer, and must be
turned on before the query is executed. Once the query is executed, the results of the
execution plan are displayed in graphical format in a separate window, available from a
tab that appears below the query results window on the screen.
The execution plan displayed in the Execution Plan window may be very simple, if the
query is simple, or it may be very complex, if the query is complex. It will show you,
step-by-step, how the Query Optimizer executed the query. The execution plan should
be read right to left, as the right part of the plan indicates the first step taken by the
Query Analyzer, and you continue reading the plan, from right to left, until you get to
the left side of the screen, which indicates the very last step taken by the Query
Analyzer. If the query you are working with takes a long time to run, and you want to
experiment with your query, you don't have to actually run the query each time. Query
Analyzer also has an option to create and display an Execution Plan without actually
running the query. This option is also available under the Query menu, and it is called
"Display Estimated Execution Plan".
When this option is selected, the Query Optimizer creates and displays the execution
plan, but does not actually run it. Notice that this is referred to as an "estimated"
execution plan.

Show Server Trace

The Show Server Trace can be used to help performance tune queries, stored
procedures, or Transact-SQL scripts. What it does is display the communications sent
from the Query Analyzer (acting as a SQL Server client) to SQL Server. This is the same
type of information that is captured by the SQL Server 2000 Profiler, described later in
this article. The main difference is that you only see the communications to SQL Server
that are instigated by the query or script you are running in Query Analyzer.
The Show Server Trace feature can be turned on from the Query menu on the main
menu of Query Analyzer, and must be turned on before the query is executed. Once the
query is executed, the results of the trace are displayed in a new window available from
a tab that appears below the query results window on the screen.

SQL Server 2000 Profiler

The SQL Server 2000 Profiler is a powerful tool for helping identify SQL Server
performance problems, but it is not a tool for the beginner. Essentially, it allows you to
capture the communications between your application and SQL Server. While the actual
capturing of data is not hard, what can sometimes be difficult for the beginner is
interpreting the captured data.

Profiler Features

19
The SQL Server 2000 Profiler can capture virtually all communication between a SQL
Server and any other application. The various communications you can capture are
referred to as events, and are grouped in Event Classes. Each Event Class includes one
or more specific events. For example, the Event Class "Performance" has eight events,
such as Execution Plan and Show Plan Statistics. Profiler offers you 13 different types of
Event Classes to choose from.
Every event includes a variety of data columns associated with them. For example, the
NTUserName or the ApplicationName that are just two of the many columns that contain
information about the various events that you can capture.
On a production system, thousands of events per second can occur, more than you could
ever attempt to analyze. To make the analysis of Profiler data a little easier, the Profiler
has the ability to filter only those events you are interested in. For example, you can
choose to only capture events between a specific user and SQL Server, or from a specific
application and SQL Server, or from and to a specific database residing on SQL Server.
You can also select which events you want to capture, and which data columns you want
to capture about each event. You don't have to capture all events or all data columns
about an event. This helps to substantially reduce the amount of data captured. A large
part of learning how to use the Profiler is deciding what events and data columns you
should and should not capture for analysis.
To make your life easier, the Profiler has the ability to create what are called Trace
Templates, which are files that let you save the various traces you create so that you can
use them over and over. This can be a great time saver if your trace is a complicated
one and you want to run it repeatedly.
Once you create and save a Trace Template, you can run the trace at any time. The
results of the trace (the events you capture) can be viewed and discarded, saved as a
trace file, or saved in a SQL Server table. Saving your trace results is handy, as you can
go back to it at any time to review it.
Once a trace has been run, you can view the results (view the captured events) using
the Profiler itself. In the Profiler window you can view each event and the data columns
you captured, line by line. In many cases, the events will include Transact-SQL code,
which you can view directly using the Profiler, or you cut and past into the Query
Analyzer if you want, for more detailed analysis.
Creating a trace for the first time can be hard if you are not familiar with all of the
various events and data columns. The easiest way to begin learning how to use the
Profiler is to use the Profiler's Create Trace Wizard. This tool includes a variety of basic
templates that you can customize for particular needs. For example, the "Find the Worst
Performing Queries" template can be used to help you identify those queries that take
longer than a predetermined amount of time to run, such as queries that take longer
than 1 second. There are a variety of these templates available with the Create Trace
Wizard, and you should explore them all.

How to Use the Profiler for Performance Tuning

The Profiler is a powerful tool for identifying performance related problems, and can be
used at any time during the development process. One of the areas where I find it
extremely useful is when troubleshooting performance of existing applications. As you
know, I highly suggest that performance be done early in the design phase of the

20
application to prevent performance problems in the first place, but this is not always
possible.
For example, you may have inherited an in-house application, or perhaps your company
has purchased an outside application that uses SQL Server as the back-end. In these
cases, you may be called in to try and resolve application-related performance problems.
One of the first problems when troubleshooting applications you are not familiar with is
not knowing how the application works. While somewhat tedious, you can use the
Profiler to "sneak a peek" at how your application communicates with SQL Server. You
can configure a trace in Profiler to capture all of the communication between the
application and SQL Server. Then, one step at a time, you can perform some task in the
application, and then review the communication between the application and SQL Server
to find out how the two communicate.
Interpreting the communications usually requires a solid understanding of Transact-SQL,
but if you know what you are doing, you can figure out how an application works with
SQL Server. While you won't need to analyze all the communications between the
application and SQL Server, you will want to focus on those areas of the application's
functionality that appear to be causing the performance problems, such as a specific
report, or some update process.
Generally, once you have created a trace of the offending operation, you can review the
Transact-SQL in the trace and identify the problem. For example, I analyzed one
particular in-house application and discovered the problem was that the VB code used to
access the SQL Server data was creating a cursor, and then moving only one row at a
time from SQL Server to the application. The problem was that there were several
million rows that were sent, which really slowed performance. Once I identified the
cause of the problem, I was able to get the VB code rewritten.
Another feature of the Profiler is that you can create traces of your application's activity
with SQL Server, then use this trace as input to the Index Wizard. The Index wizard then
analyzes the activity and can recommend that clustered and non-clustered indexes be
added or dropped in order to boost your database's performance. You will learn more
about the Index Wizard in the next section of this article.
As you can see, the Profiler is a very powerful tool, a tool that every SQL Server DBA
and developer needs to learn and master.

Index Wizard

The SQL Server 2000 Index Wizard will be a tool you will soon grow to love. Although
not perfect, this tool has the ability to evaluate actual production queries running against
your SQL Server, and based on the nature of these queries, recommend specific
clustered and non-clustered indexes that should be added to your database's tables. The
Index Wizard can be run from the SQL Server 2000 Profiler's Tools menu.
This tool can be used during testing of your database during the early stages of your
application's development, and it can be used after the database has gone into
production. In fact, you should consider running the Index Wizard on your database
periodically after your application has gone into production. This is because database
usage patterns can vary over time, and the optimal indexes for your database may
change along with how the database is actually used.
Although the Index Wizard can be a great tool, you also don't want to depend in it
exclusively for recommending indexes on your databases. While the Index Wizard is very

21
smart, it still can't make better choices than a DBA experienced in index tuning.
The best feature about the Index Wizard is that it can work with real data from your
production SQL Server databases, not fake or simulated data. This means that the
indexing recommendations made by it are tailored to how your database is actually
used. Here's how it works.
Before you can use the Index Wizard, you must first create what is called a workload. A
workload is a Profiler trace or a Transact-SQL script. In most cases, you will want to use
a Profiler trace because it reflects actual database activity.
If you want the Index Wizard to produce useful results, it is important that the workload
be created during a time period that is representative of typical day-to-day database
usage. This way, the Index Wizard will be able to offer suggestions based on the real
world use of your database.
Once the workload has been created, it can be feed to the Index Wizard. What the Index
Wizard does is to take a sample of the queries it finds in the workload, and analyzes
them using SQL Server 2000's Query Optimizer.
Once the Index Wizard is done analyzing the workload (if the workload is large, it can
take hours to run) it will recommend what it considers to be the best mix of clustered
and non-clustered indexes for the tables in your database, based on the workload it
analyzed. In addition, if you already have indexes on your database, and the Index
Wizard finds out that they are not being used, then it may recommend that they be
removed.
When the Index Wizard makes its recommendations, you have the option to allow the
Index Wizard to make them now (not recommended on a production database) to
schedule their creation for a later time, or to save them as a script. I recommend you
save them as a script, which allows you to take some time to carefully review the
recommendations. And only once you are happy with the recommendations, you can
then run them using the SQL Server 2000 Query Analyzer at an appropriate time. If you
disagree with any of the recommendations, you can easily make any changes you find
necessary to the script before you run it.

System (Performance) Monitor

The System Monitor is not a tool that is part of SQL Server 2000, but a tool included
with Windows 2000. The System Monitor allows you to monitor both Windows 2000's
and SQL Server 2000's performance, and is a great tool for monitoring and analyzing
performance. It can be run by anyone with Windows 2000 administrative rights on your
SQL Servers. SQL Server 2000 system administrative rights alone will not allow you to
run System Monitor.
System Monitor has the ability to monitor several hundred Windows 2000 performance
indicators (called counters), and over 110 SQL Server 2000 counters, more than enough
to monitor and troubleshoot SQL Server 2000's performance.
While System Monitor offers you an abundance of counters you can measure, in most
cases you will only want to monitor a handful of them, saving the more obscure counters
for special situations. While you might think that you might only need to monitor SQL
Server 2000 counters, and not Windows 2000 counters, this is not the case. More often
than not, you will probably spend more of your time monitoring Windows 2000 counters
than SQL Server counters. This is because SQL Server's performance is greatly
dependent on how Windows 2000 performs.

22
4.7 AJAX

Ajax (also known as AJAX), shorthand for "Asynchronous JavaScript and XML," is a web
development technique for creating interactive web applications. The intent is to make web pages
feel more responsive by exchanging small amounts of data with the server behind the scenes, so that
the entire web page does not have to be reloaded each time the user requests a change. This is intended
to increase the web page's interactivity, speed, and usability.

The first use of the term in public was by Jesse James Garrett in February 2005. Garrett
thought of the term when he realized the need for a shorthand term to represent the
suite of technologies he was proposing to a client.[2]

Although the term Ajax was coined in 2005, most of the technologies that enable Ajax
started a decade earlier with Microsoft's initiatives in developing Remote Scripting.
Techniques for the asynchronous loading of content on an existing Web page without
requiring a full reload date back as far as the IFRAME element type (introduced in
Internet Explorer 3 in 1996) and the LAYER element type (introduced in Netscape 4 in
1997, abandoned during early development of Mozilla). Both element types had a src
attribute that could take any external URL, and by loading a page containing JavaScript
that manipulated the parent page, Ajax-like effects could be attained. This set of client-
side technologies was usually grouped together under the generic term of DHTML.
Macromedia's Flash could also, from version 4, load XML and CSV files from a remote
server without requiring a browser being refreshed.

Advantages

User interface

The most obvious reason for using Ajax is an improvement to the user experience.
Pages using Ajax behave more like a standalone application than a typical web page.
Clicking on links that cause the entire page to refresh feels like a "heavy" operation.
With Ajax, the page often can be updated dynamically, allowing a faster response to the
user's interaction. While the full potential of Ajax has yet to be determined, some believe
it will prove to be an important technology, helping make the Web even more interactive
and popular than it currently is.

Bandwidth usage

By generating the HTML locally within the browser, and only bringing down JavaScript
calls and the actual data, Ajax web pages can appear to load relatively quickly since the
payload coming down is much smaller in size. An example of this technique is a large
result set where multiple pages of data exist. With Ajax, the HTML of the page (e.g., a
table structure with related TD and TR tags) can be produced locally in the browser and
not brought down with the first page of the document.

23
In addition to "load on demand" of contents, some web-based applications load stubs of
event handlers and then load the functions on the fly. This technique significantly cuts
down the bandwidth consumption for web applications that have complex logic and
functionality.

Separation of data, format, style, and function

A less specific benefit of the Ajax approach is that it tends to encourage programmers to
clearly separate the methods and formats used for the different aspects of information
delivery via the web. Although Ajax can appear to be a jumble of languages and
techniques, and programmers are free to adopt and adapt whatever works for them,
they are generally propelled by the development motive itself to adopt separation
between the following:

1. Adopt separation between the raw data or content to be delivered - which is


normally embedded in XML and sometimes derived from a server-side database.
2. Adopt separation between the format or structure of the webpage - which is
almost always built in HTML (or better, XHTML) and is then reflected and made
available to dynamic manipulation in the DOM.
3. Adopt separation between the style elements of the webpage: everything from
fonts to picture placement are derived by reference to embedded or referenced
CSS.
4. Adopt separation between the functionality of the web page which is provided by a
combination of
1. Javascript on the client browser (also called DHTML),
2. Standard HTTP and XMLHttp for client-to-server communication, and
3. Server-side scripting and/or programs using any suitable language
preferred by the programmer to receive the client's specific requests and
respond appropriately.

4.8 Disadvantages

Browser integration

The dynamically created page does not register itself with the browser history engine, so
triggering the "Back" function of the users' browser might not bring the desired result.

Developers have implemented various solutions to this problem. These solutions can
involve using invisible IFRAMEs to invoke changes that populate the history used by a
browser's back button. Google Maps, for example, performs searches in an invisible
IFRAME and then pulls results back into an element on the visible web page. The World
Wide Web Consortium (W3C) did not include an iframe element in its XHTML 1.1
Recommendation; the Consortium recommends the object element instead.

Another issue is that dynamic web page updates make it difficult for a user to bookmark
a particular state of the application. Solutions to this problem exist, many of which use
the URL fragment identifier (the portion of a URL after the '#'[6][7]) to keep track of, and

24
allow users to return to, the application in a given state. This is possible because many
browsers allow JavaScript to update the fragment identifier of the URL dynamically, so
that Ajax applications can maintain it as the user changes the application's state. This
solution also improves back-button support. It is, however, not a complete solution.

Response-time concerns

Network latency — or the interval between user request and server response — needs to
be considered carefully during Ajax development. Without clear feedback to the user,[8]
smart preloading of data and proper handling of the XMLHttpRequest object, users might
experience delay in the interface of the web application, something which they might not
expect or understand. Additionally, when an entire page is rendered there is a brief
moment of re-adjustment for the eye when the content changes. The lack of this re-
adjustment with smaller portions of the screen changing makes the latency more
apparent. The use of visual feedback (such as throbbers) to alert the user of background
activity and/or preloading of content and data are often suggested solutions to these
latency issues.

Microsoft's Ajax Extensions addresses this network latency issue by offering the
UpdateProgress control which allows the developer to alert the user that the page is
being updated.

Search engine optimization

Websites that use Ajax to load data which should be indexed by search engines must be
careful to provide equivalent data at a public, linked URL and in a format that the search
engine can read, as search engines do not generally execute the JavaScript code
required for Ajax functionality. This problem is not specific to Ajax, as the same issue
occurs with sites that provide dynamic data as a full-page refresh in response to, say, a
form submit (the general problem is sometimes called the hidden web).

Reliance on JavaScript

Ajax relies on JavaScript, which may be implemented differently by different browsers or


versions of a particular browser. Because of this, sites that use JavaScript may need to
be tested in multiple browsers to check for compatibility issues. It's not uncommon to
see a JavaScript code written twice, one part for IE, another part for Mozilla compatibles.
(see also Cross-platform web design). The level of IDE support for JavaScript is
exceptionally poor.

An issue also arises if the user has switched off JavaScript support in the browser, thus
disabling the functionality of the page.

Web analytics

Many web analytics solutions are based on the paradigm of a new page being loaded
whenever new or updated content is displayed to the user, or to track a series of steps in
a process such as a check-out. Since Ajax alters this process, care must be taken to

25
account for how to instrument a page or a portion of a page so that it can be accurately
tracked. Analytics systems which allow for the tracking of events other than a simple
page view, such as the click of a button or link, are the ones most likely to be able to
accommodate a site which heavily utilizes Ajax.

5 Software Development Life Cycle (SDLC)

Systems Development Life Cycle (SDLC) or sometimes just (SLC) is defined by the
U.S. Department of Justice (DoJ) as a software development process, although it is also
a distinct process independent of software or other Information Technology
considerations. It is used by a systems analyst to develop an information system,
including requirements, validation, training, and user ownership through investigation,
analysis, design, implementation, and maintenance. SDLC is also known as information
systems development or application development. An SDLC should result in a high
quality system that meets or exceeds customer expectations, within time and cost
estimates, works effectively and efficiently in the current and planned information
technology infrastructure, and is cheap to maintain and cost-effective to enhance. SDLC
is a systematic approach to problem solving and is composed of several phases, each
comprising multiple steps:

• The software concept - identifies and defines a need for the new system
• A requirements analysis - analyzes the information needs of the end users
• The architectural design - creates a blueprint for the design with the necessary
specifications for the hardware, software, people and data resources
• Coding and debugging - creates and programs the final system
• System testing - evaluates the system's actual functionality in relation to
expected or intended functionality.

26
Once upon a time, software development consisted of a programmer writing code to
solve a problem or automate a procedure. Nowadays, systems are so big and complex
that teams of architects, analysts, programmers, testers and users must work together
to create the millions of lines of custom-written code that drive our enterprises.

To manage this, a number of system development life cycle (SDLC) models have been
created:

• Waterfall
• Spiral,
• Build and fix,
• Rapid prototyping
• Incremental
• Synchronize and stabilize.

Process activities/steps in SDLC

5.1 Phases Of SDLC

27
Requirement Specification

Requirement Specification is the first and most important phase of the


SDLC. During this phase our Project Manager is in constant contact with the
Customer to find out requirements of the project in detail. Main tasks in this
phase include Requirement Determination, Risk Analysis, Setting up Schedules,
and deciding Deliverables. Communication with the Customer is carried out
using any of the following means of communication, such as Instant
Messenger, Email, Phone, Voice Chat or personal meeting. A System
Requirement Specification Document is prepared at the end of this phase.

Requirement Analysis and Design

Project Manager and System Analyst after reviewing the Customers


requirements analyzed the requirement and start designing of the project.
System Architecture, Database Design, Program Specifications and Test
Scenarios are determined. A Detail Design Document is prepared at the end of
analysis that can be used by the programmers to perform the coding.

Coding and Testing

Programmers begin programming in this phase using the Detail Design Document. As project
progress programmer's progresses is monitored by Project Manager and Project Leader respectively.
Project Manager is in constant contact with the customer and provides updates on the progress of the
project using MS Project. The programmers follow coding Standards decided by the company. Project
Leader helps the programmers with their coding problems and guides them to the solutions. Testing is
done by the QA Team simultaneously for the finished modules and approval is given to the modules
once they have passed their initial tests before integration.

Deployment and Support

This phase starts with Deployment of the Project. Initial hardware and software setup necessary to run
the project is a very critical phase of the project. After project is completed Project Manager contacts
the customer and prepares for the set-up. Software is handed over to the customer for acceptance
testing only after complete internal testing. Support to the project is provided for a limited number of
days during which any minor customer changes are finished.

6 Project Requirements

6.1 HARDWARE:
1) SERVER
a. Pentium processor 1 Ghz(Min),2 Ghz(Recommended)
b. 512 MB RAM (Min),1GB RAM (Recommended).
c. 14” COLOR MONITOR (RESOLUTION: 800*600).

28
d. Network Connection 512 Kbps Speed
2) CLIENT
a. Pentium Processor or Equivalent.
b. 128 MB RAM
c. 14” COLOR MONITOR (RESOLUTION: 800*600).
d. Network Connection of Min 256 Kbps speed

6.2 SOFTWARE:
1) SERVER
a. Microsoft Windows 2003Server/XP
b. Internet Information Server 6 or higher
c. Microsoft .net Framework SDK 2.0
d. SQL Server 2000/2005
2) CLIENT
a. Microsoft Windows 98 or higher.
b. Internet Explorer 5.5 or higher/Netscape Navigator
c. Macromedia flash player plug-in 7.0
d. Active X enabled in browser
e. Cookies allowed

7 Internet Information Services

Microsoft Internet Information Services (IIS; formerly called Server) is a set of


Internet-based services for servers using Microsoft Windows. It is the world's second
most popular web server in terms of overall websites. As of May 2007 it served 31% of
all websites according to Netcraft.[1] The servers currently include FTP, SMTP, NNTP and
HTTP/HTTPS.

7.1 Versions
• IIS 1.0, Windows NT 3.51 available as a free add-on
• IIS 2.0, Windows NT 4.0
• IIS 3.0, Windows NT 4.0 Service Pack 3
• IIS 4.0, Windows NT 4.0 Option Pack
• IIS 5.0, Windows 2000
• IIS 5.1, Windows XP Professional
• IIS 6.0, Windows Server 2003 and Windows XP Professional x64 Edition
• IIS 7.0, Windows Vista and Windows Server "Longhorn"

29
7.2 History of IIS

IIS was initially released as an additional set of Internet based services for Windows NT
3.51. IIS 2.0 followed adding support for the Windows NT 4.0 operating system and IIS
3.0 introduced the Active Server Pages dynamic scripting environment.

IIS 4.0 dropped support for the Gopher protocol and was bundled with Windows NT as a
separate "Option Pack" CD-ROM.

The current shipping version of IIS is 7.0 for Windows Vista, 6.0 for Windows Server
2003 and IIS 5.1 for Windows XP Professional. IIS 5.1 for Windows XP is a restricted
version of IIS that supports only 10 simultaneous connections and a single web site[2].
IIS 6.0 added support for IPv6.

Windows Vista does not install IIS 7.0 by default, but it can be selected among the list of
optionally installed components. IIS 7.0 on Vista will not limit the number of connections
allowed but will limit workloads based on the active concurrent requests, improving
usability and performance in peer-to-peer scenarios.

7.3 Security

Earlier versions of IIS were hit with a spate of vulnerabilities, chief among them CA-
2001-19 which led to the infamous "Code Red worm"; however, version 6.0 has only
three reported issues that affect it, two "moderately critical", the third "not critical". In
IIS 6.0, Microsoft has opted to change the behavior of pre-installed ISAPI handlers[3],
many of which were culprits in the vulnerabilities on 4.0 and 5.0, thus reducing the
attack surface of IIS. With its next release, IIS 7.0, Microsoft goes a step further by
modularizing many of the components, creating a customizable installation stack.

In IIS 5.1 and lower, by default all websites were run in-process and under the System
account[4], a default Windows account with elevated rights. Under 6.0 all request
handling processes have been brought under a Network Services account which has
significantly fewer privileges. In particular this means that if there is an exploit in a
feature or custom code, it wouldn't necessarily compromise the entire system given the
sandboxed environment the worker processes run in. IIS 6.0 also contained a new
kernel HTTP stack (http.sys) with a stricter HTTP request parser and response cache for
both static and dynamic content.

7.4 Authentication mechanisms

IIS 5.0 and higher support the following authentication mechanisms:

• Basic authentication scheme


• Digest access authentication
• Integrated Windows Authentication

30
7.5 Internet Information Services 7.0

Debuting with Windows Vista, and also to be included in Windows Server "Longhorn",
IIS 7.0 features a modular architecture. Instead of a monolithic server which features all
services, IIS 7 has a core web server engine. Modules offering specific functionality can
be added to the engine to enable its features. The advantage of having this architecture
is that only the features required can be enabled and that the functionalities can be
extended by using custom modules.

The following sets of modules are slated to ship with the server:

1. HTTP Modules
2. Security Modules
3. Content Modules
4. Compression Modules
5. Caching Modules
6. Logging and Diagnostics Modules

Writing extensions to IIS 7 using ISAPI has been deprecated in favor of the module API.
Much of IIS's own functionality is built on this API, and as such, developers will have
much more control over a request process than was possible in prior versions. Modules
can also be written using any .NET Framework language, and can be deployed on a per-
site basis.

A significant change from previous versions of IIS is that all web server configuration
information is stored solely in XML configuration files, instead of in the metabase. The
server has a global configuration file that provides defaults, and each virtual web's
document root (and any subdirectory thereof) may contain a web.config containing
settings that augment or override the defaults. Changes to these files take effect
immediately. This marks a significant departure from previous versions whereby web
interfaces, or machine administrator access, were required to change simple settings
such as default document, active modules and security/authentication. It also eliminates
the need to perform metabase synchronization between multiple servers in a farm of
web servers.

IIS 7 also features a completely rewritten administration interface that takes advantage
of modern MMC features such as task panes and asynchronous operation. Configuration
of ASP.NET is more fully integrated into the administrative interface.

8 .NET Framework

The Microsoft .NET Framework is a software component that can be added to or is


included with the Microsoft Windows operating system. It provides a large body of pre-

31
coded solutions to common program requirements, and manages the execution of
programs written specifically for the framework. The .NET Framework is a key Microsoft
offering, and is intended to be used by most new applications created for the Windows
platform.

The pre-coded solutions that form the framework's class library cover a large range of
programming needs in areas including: user interface, data access, database
connectivity, cryptography, web application development, numeric algorithms, and
network communications. The functions of the class library are used by programmers
who combine them with their own code to produce applications.

Programs written for the .NET Framework execute in a software environment that
manages the program's runtime requirements. This runtime environment, which is also
a part of the .NET Framework, is known as the Common Language Runtime (CLR). The
CLR provides the appearance of an application virtual machine, so that programmers
need not consider the capabilities of the specific CPU that will execute the program. The
CLR also provides other important services such as security mechanisms, memory
management, and exception handling. The class library and the CLR together compose
the .NET Framework. The framework is intended to make it easier to develop computer
applications and to reduce the vulnerability of applications and computers to security
threats.

First released in 2002, it is included with Windows Server 2003 and Windows Vista, and
can be installed on most older versions of Windows.

32
8.1 .NET Framework architecture

Common Language Infrastructure (CLI)

The most important component of the .NET Framework lies in the Common Language
Infrastructure, or CLI. The purpose of the CLI is to provide a language-agnostic
platform for application development and execution, including, but not limited to,
components for exception handling, garbage collection, security, and interoperability.
Microsoft's implementation of the CLI is called the Common Language Runtime, or
CLR. The CLR is composed of four primary parts:

• Common Type System (CTS)


• Common Language Specification (CLS)

33
• Just-In-Time Compiler (JIT)
• Virtual Execution System (VES)

Assemblies

The intermediate MSIL code is housed in .NET assemblies, which for the Windows
implementation means a Portable Executable (PE) file (EXE or DLL). Assemblies are the
.NET unit of deployment, versioning and security. The assembly consists of one or more
files, but one of these must contain the manifest, which has the metadata for the
assembly. The complete name of an assembly contains its simple text name, version
number, culture and public key token; it must contain the name, but the others are
optional. The public key token is generated when the assembly is created, and is a value
that uniquely represents the name and contents of all the assembly files, and a private
key known only to the creator of the assembly. Two assemblies with the same public key
token are guaranteed to be identical. If an assembly is tampered with (for example, by
hackers), the public key can be used to detect the tampering.

Metadata

All CIL is Self-Describing through .NET metadata. The CLR checks on metadata to ensure
that the correct method is called. Metadata is usually generated by language compilers
but developers can create their own metadata through custom attributes. Metadata also
contain the all information about assembly.

Base Class Library (BCL)

The Base Class Library (BCL), sometimes incorrectly referred to as the Framework Class
Library (FCL) (which is a superset including the Microsoft.* namespaces), is a library of
classes available to all languages using the .NET Framework. The BCL provides classes
which encapsulate a number of common functions such as file reading and writing,
graphic rendering, database interaction, XML document manipulation, and so forth. The
BCL is much larger than other libraries, but has much more functionality in one package.

Security

.NET has its own security mechanism, with two general features: Code Access Security
(CAS), and validation and verification. Code Access Security is based on evidence that is
associated with a specific assembly. Typically the evidence is the source of the assembly
(whether it is installed on the local machine, or has been downloaded from the intranet
or Internet). Code Access Security uses evidence to determine the permissions granted
to the code. Other code can demand that calling code is granted a specified permission.
The demand causes the CLR to perform a call stack walk: every assembly of each
method in the call stack is checked for the required permission and if any assembly is
not granted the permission then a security exception is thrown.

When an assembly is loaded the CLR performs various tests. Two such tests are
validation and verification. During validation the CLR checks that the assembly contains
valid metadata and CIL, and it checks that the internal tables are correct. Verification is

34
not so exact. The verification mechanism checks to see if the code does anything that is
'unsafe'. The algorithm used is quite conservative and hence sometimes code that is
'safe' is not verified. Unsafe code will only be executed if the assembly has the 'skip
verification' permission, which generally means code that is installed on the local
machine.

8.2 Versions

Microsoft started development on the .NET Framework in the late 90s originally under
the name of Next Generation Windows Services (NGWS). By late 2000 the first beta
versions of .NET 1.0 were being released.

Version Name Version Number Release Date

1.0 Beta 1 1.0.????.0 2000-11

1.0 Beta 2 1.0.2914.0 2001-06-20

1.0 RTM 1.0.3705.0 2002-01-05

1.0 SP1 1.0.3705.209 2002-03-19

1.0 SP2 1.0.3705.288 2002-08-07

1.0 SP3 1.0.3705.6018 2004-08-31

1.1 RTM 1.1.4322.573 2003-04-01

1.1 SP1 1.1.4322.2032 2004-08-30

1.1 SP1 (Windows Server 2003 Version) 1.1.4322.2300 2005-03-30

2.0 RTM 2.0.50727.42 2005-11-07

35
3.0 RTM 3.0.4506.30 2006-11-06

3.5 Beta 1 3.5 2007-04-27

.NET Framework 1.0

This is the first release of the .NET Framework that was released on February 13, 2002.
It is available on its own as a redistributable package or in a software development kit.
It is also part of the first release of Microsoft Visual Studio .NET (also known as Visual
Studio .NET 2002).

.NET Framework 1.1

This is the first major .NET Framework upgrade. It is available on its own as a
redistributable package or in a software development kit. It is also part of the second
release of Microsoft Visual Studio .NET (released as Visual Studio .NET 2003). This is the
first version of the .NET Framework to be included as part of the Windows operating
system - it is part of Windows Server 2003. Windows Server 2003 originally shipped
with the 1.1 RTM version.

8.2.1.1 Changes since 1.0


• Built-in support for mobile ASP.NET controls. Previously available as an add-on for
.NET Framework, now part of the framework.
• Security changes - enable Windows Forms assemblies to execute in a semi-
trusted manner from the Internet, and enable Code Access Security in ASP.NET
applications.
• Built-in support for ODBC and Oracle databases. Previously available as an add-on
for .NET Framework 1.0, now part of the framework.
• .NET Compact Framework - a version of the .NET Framework for small devices.
• Internet Protocol version 6 (IPv6) support.
• Numerous API changes.

.NET Framework 2.0

Released with Visual Studio .NET 2005, Microsoft SQL Server 2005 and BizTalk 2006.

• The 2.0 Redistributable Package can be downloaded for free from Microsoft.
• The 2.0 Software Development Kit (SDK) can be downloaded for free from
Microsoft.
• It is included as part of Visual Studio 2005 and Microsoft SQL Server 2005.
• Version 2.0 is the last version with support for Windows 2000

.NET Framework 2.0 shipped with Windows Server 2003 R2 (not installed by default).

36
8.2.1.2 Changes since 1.1
• Numerous API changes.
• A new hosting API for native applications wishing to host an instance of the .NET
runtime. The new API gives a fine grain control on the behavior of the runtime
with regards to multithreading, memory allocation, assembly loading and more
(detailed reference). It was initially developed to efficiently host the runtime in
Microsoft SQL Server, which implements its own scheduler and memory manager.
• Full 64-bit support for both the x64 and the IA64 hardware platforms.
• Language support for Generics built directly into the .NET CLR.
• Many additional and improved ASP.NET web controls.
• New data controls with declarative data binding.
• New personalization features for ASP.NET, such as support for themes, skins and
webparts.
• .NET Micro Framework - a version of the .NET Framework related to the Smart
Personal Objects Technology initiative more....

37
.NET Framework 3.0

Architecture of the .NET Framework 3.0

.NET Framework 3.0, formerly called WinFX,[1] includes a new set of managed code
APIs that are an integral part of Windows Vista and Windows Server "Longhorn"
operating systems. It is also available for Windows XP SP2 and Windows Server 2003 as
a download. There are no major architectural changes included with this release; .NET
Framework 3.0 includes version 2.0 of the Common Language Runtime. The .NET 3.0
installer available from Microsoft checks to see if .NET 2.0 is already installed. If not, it
installs it and then installs .NET 3.0 components. Otherwise it just installs .NET 3.0
components. This means that if you do not have .NET 2.0 installed, you do not need to
install it; you can install .NET 3.0 straight away. .NET 1.1 and its service-pack, however,
must be installed separately, preferably before installing .NET 3.0.[2]

38
.NET Framework 3.0 consists of four major new components:

• Windows Presentation Foundation (WPF), formerly code-named Avalon; a


new user interface subsystem and API based on XML and vector graphics, which
uses 3D computer graphics hardware and Direct3D technologies. See WPF SDK for
developer articles and documentation on WPF.
• Windows Communication Foundation (WCF), formerly code-named Indigo; a
service-oriented messaging system which allows programs to interoperate locally
or remotely similar to web services.
• Windows Workflow Foundation (WF) allows for building of task automation
and integrated transactions using workflows.
• Windows CardSpace (WCS), formerly code-named InfoCard; a software
component which securely stores a person's digital identities and provides a
unified interface for choosing the identity for a particular transaction, such as
logging in to a website.

9 Enabling Active X

The internet browser settings and configurations we suggest in this article relate to the
optimum performance of the LexisNexis® family of web-based products only. The
settings you choose in configuring your browser directly affects all of the internal and
external browser-based applications you use. You should always check with your
Network Administrator or your PC/IT team before you change any system setting or
configuration. If you have questions or concerns about the browser settings you should
use with your LexisNexis® products, please contact our Customer Support team.

Network users should check with their Network Administrator or IT department before
changing browser settings. If you are not on a network take the following steps as
appropriate for your browser to enable Active X:

Microsoft® Internet Explorer 5.0

Microsoft® Internet Explorer 6.0

Microsoft® Internet Explorer 7.0

9.1 Enabling Active X for Microsoft Internet Explorer 5.0


1. Click Tools then Internet Options.
2. Click Security.
3. Click Internet.
4. Click Custom Level.
5. Scroll to the Active X controls and plug-ins and verify that the options are set
to Enable or Prompt.
6. Scroll to the Scripting Section and verify that Active Scripting is set to Enable
or Prompt.
NOTE: Clicking a checked box removes the checkmark and disables the feature.

39
If you see checkmarks in the Enable or Prompt boxes, do not click on the
checked boxes.
7. Click OK.
8. Click OK.

9.2 Enabling Active X for Microsoft Internet Explorer 6.0


1. Click Tools then Internet Options.
2. Click Security.
3. Click Internet.
4. Click Custom Level.
5. Scroll to the Active X controls and plug-ins and verify that the options are set
to Enable or Prompt.
6. Scroll to the Scripting Section and verify that Active Scripting is set to Enable
or Prompt.
NOTE: Clicking a checked box removes the checkmark and disables the feature.
If you see checkmarks in the Enable or Prompt boxes, do not click on the
checked boxes.
7. Click OK.
8. Click OK.

9.3 Enabling Active X for Microsoft Internet Explorer 7.0


1. Click Tools then Internet Options.
2. Click the Security tab.
3. Click Internet.
4. Click Custom Level.
5. Scroll to Security and verify that all SSL boxes are checked.
6. Click OK to close the Internet Options window.
7. Close and reopen Internet Explorer.
8. Click OK.

10 Enable cookies

What Are Cookies?

Cookies are a feature of every modern web browser, such as Microsoft's Internet
Explorer and Netscape. They are not a security risk under normal use, but they are
sometimes "turned off" or disabled.

They are used by web site authors to store information in a private location on your
computer, for use only when browsing a web site. They are a required major feature of
most shopping carts and other online applications. Keeping them enabled is
recommended.

40
Enabling Cookies

Following the directions below to turn on "cookies" in your web browser. If you don't see
your browser listed, please check your documentation to find out how to enable cookies.

Go to the "Help" menu and click "About..." to find out what web browser you are using.

Third Party Blockers

• Sometimes you may have software installed that blocks cookies.

These third-party utilities should be disabled because they may interfere with web sites
you visit.

10.1For Internet Explorer 6 Users:


1. Open Internet Explorer 6
2. Go to Tools, Internet Options on the menu.
3. Click on the Privacy tab.
4. If you see "Custom", click the "Default" button to reset the settings.
5. The slider on the left should NOT be set to "Block All Cookies".
6. If you don't know which settings to put the slider on, put it on the "Medium"
option.
7. Click Ok to exit the option window and then close Internet Explorer.
8. Cookies are now enabled in Internet Explorer!

10.2For Internet Explorer 5 Users:


1. Open Internet Explorer 5
2. Go to Tools, Internet Options on the menu.
3. Click on the Security tab, and then the Custom Level button.
4. Look through the list for the section titled Cookies.
5. There should be two options in this section. Enable both of them.
6. Click Ok to save the settings, clicking Yes when it asks if you want to change the
security settings for the zone.
7. Click Ok to exit the rest of the open windows and then close Internet Explorer.
8. Cookies are now enabled!

10.3For Netscape Users:


1. Open Netscape.
2. Go to Edit, Preferences on the menu.
3. Click the Advanced link on the left side menu.
4. Click "Accept all cookies" under the Cookies section

Click Ok to exit the window and then close Netscape.

41
11 REQUIREMENT SPECIFICATION

Introduction

IEEE defines a requirement as

• A condition of capability needed by a user to solve a problem or achieve an


objective.

• A condition or a capability that must be met or possessed by a system… To satisfy


a contract, standard, specification, or other formally imposed documents.

Innovative use of IT in teaching methodologies is today seen as an effective way to raise


interest levels and academic standards of students in schools across the world.

Realising this, Educomp Solutions, a premium education company, together with IT


majors Intel and Microsoft thought of SmartClass,and now the Smartclass INDIA an
innovative technology solution that is revolutionising the way the teachers teach and
students learn in classrooms across the globe. The brand new paradigm in digital
learning will soon be an essential component of classroom teaching practices.

The initiative offers schools across India, including small towns, the best of breed
content, technology platform, hardware and software and provides them with a one stop
solution, making the adoption of digital learning in their classrooms seamless. "The
Indian education sector is one of the largest in the world with over a million schools and
over 220 million learners, yet less than two per cent of classrooms are digitally enabled.
This technology shift is urgently necessary if we have to build on our traditional
competencies for the knowledge economy of the future. The SmartClass programme is
offered through a BOOT (build own operate and transfer) system in which Educomp
installs the entire infrastructure and provides digital content library to the schools along
with in-campus training of teachers and maintenance support. Educomp's K12 content
development team has created India's largest repository of digital content — over 8,000
modules. This enables teachers to use graphics, animations, 3D images and video clips
in addition to the traditional chalk and talk methods of teaching. The result is a
completely new multi-sensory learning experience for students, which helps them to
improve their academic performance. Over one lakh students are learning in SmartClass
rooms across schools spread all over India, the U.S. and Singapore but with the pace of
technology, the numbers are going to be much larger in just a couple of years.

11.1Project Background

Existing System
Educomp Solutions is a product based company and the content digitization is the result
of the vision of the CEO Mr. Shantnu prakash’s vision to change the traditional way of
teaching learning process

42
The traditional system of teaching is the simple Chalk and talk Method, teacher may
use various teaching audio visual aids to give teaching a blend, every effort of a teacher
to make the teaching learning process interesting, could not always give 100% to the
students, there are always certain lacks in the process. To remove all those traditional
lacks this project came into existence with an effort to revolutionize the whole teaching
learning as well as assessment system

Reason For Updation


In the current system, a teacher will teach the students with a 17 inch plasma screen
giving the process a real touch, the excellent and lively contents prepared and of course
designed by the field experts will really help the teacher to improve the teaching.
Obviously, the teacher saves his time in preparing the teaching aids and in this way he
can more concentrate on the teaching part, beside teaching the project is also designed
keeping in mind the growing complexity of the school structures. The school Admin has
many rights in his hands to manage the school.

Improvement In Existing System


By making the whole information digitized, obviously, the teacher saves his time in
preparing the teaching aids and in this way he can more concentrate on the teaching
part, the admin has facilities to assign the rights to teachers, we can eliminate the lack
of information & thereby achieve a better Information Management in the school in the
company.
Objective

This Smartclass INDIA will cater to the following needs:

1) Digitization of the contents and resources.

2) No duplicity of Contents, same contents can be shared by as many as schools that


have access to the contents or registered.
3) Provide way to manage school information aside from the paper work.

4) Help improve in teacher learner relationship as teacher can make classroom more
interesting now.

5) Students can analyze their past performance.

6) The home page of the Smartclass INDIA will authenticate the user.

7) Every user type will have a separate USERID and password


8) There should be a response to every action taken by the user e.g. appropriate
messages etc.

9) Response time should be fast.

43
10)Convenient user-friendly interface.

11)Look and feel of all pages should be same.

12)Should provide some mean of search.

13)Web pages should be dynamically generated.

Software Requirement Specifications (SRS)


The requirement phase ultimately ends with the Software Requirement Specification
(SRS). Generally, the SRS is a document that completely describes what the proposed
Application should do without describing how the system will do it. The basic goal of the
requirement phase is to produce SRS, which describe the complete external behavior of
the proposed system.
In this phase the ‘specification documents’ (SRS) for Smartclass INDIA were laid
prepared i.e. planning what actually the project is intended to do. The requirements are
clearly elicited and freezed out and possible methods to reach the result are decided.

Introduction
• Background: The system is to give a total technology touch to the traditional
method of teaching learning and assessment process followed in our country and
economical solution to the information-handling Scenario of the state.
• Overall Description: The system is used to provide the teacher, Administrator
and students a completely new way to streamline the teaching learning process in
the country.
• Environment characteristics:
• People: The application has user friendly and displays messages time to time
depending upon the input provided by the user. So, any user having knowledge of
using internet can use this system.

11.2Functional Requirements

• School Creation Section: This section is used to register a new School


(SuperAdmin login).
• School Content Linkage: No redundant content must be lying on the server; the
same content will be linked to the school who registers for that class (SuperAdmin
login).

44
• Search Section: This section is used to facilitate the search process at many
places in the application.
• Enable Assessment For a school: The Application should have the facility to
enable or disable the Assessment part for a school if it registers only for the
Content part (SuperAdmin login).

• Section and without section support: The Application should have the facility
to enable/disable sections for a school, as same application will be accessed
across Singapore where there is no concept of Section in a class(SuperAdmin
login).
• Batch curriculum and content Uploading: The Application should have the
facility to upload the curriculum and the contents in batch (Using the Utilities) or
through the front end i.e.; manually (SuperAdmin login).
• Support for Linux: The application is to be made to run on Linux operating
system using mono.
• Support for MySQl:The Application is to be developed to be used with MySQl as
the database

Control Description

The School must firstly register on with the site to get a unique User Id & password for
the Admin User (For school Administrator), which is, required to further manage the
school functions, like adding a teacher, student etc.This is a one time process. The
unregistered Schools may contact Educomp for a school demo of the Application

Validation Criteria

Performance Bounds: The Application performance system may degrade as the


number of users increases and this degradation may only be in the form of increase in
Response Time. Upgrading the hardware available at the Server can solve this.

Classes of Tests: The system is tested for various kinds of users, inputs & conditions.

Response to Undesired Events: Undesired events i.e. if the user doesn’t provide
appropriate input. All these and other actions that are not legal are taken care off by the
system and appropriate messages are displayed in the Browser window. All these are
verified and tested properly

45
11.3INFORMATION GATHERING
Gathering information is difficult and takes time. All relevant personnel should be
consulted and no information overlooked. For Smartclass INDIA it required to consult the
experts of educational field to get into it. The strategy consists of:

• Identify information sources like field Experts

• Evolving a method of obtaining information from identified source, Like personal


meetings with the school administrators to note their key needs, Interviews and
articles, personal visits to the school.

• Using an already built model for the

Information Sources:

The main sources of information:

• Clients School (Who are Using SAS)


• Teaching Experts
• Field Experts
• Existing Teaching trends

11.4Feasibility Analysis

The role of the Feasibility Study (FS) has been interpreted by different people in
different ways leading to some misconceptions about its function and where it fits into
the project life-cycle. Some people think that a project starts with the feasibility study,
others think it is carried out by the project manager, and some will want a project to
progress irrespective of the results of the FS.

The English word feasible means capable of being carried out successfully. An event is
said to be feasible if it is considered possible and practicable. The FS is an investigation
into how possible a proposed scheme might be, and whether it is capable of being
carried out successfully. This is usually assessed on four standard criteria for feasibility

46
but other considerations may be relevant and necessary depending on the specific
nature of the project and its environment. The standard assessment criteria and typical
questions they address are :-

Technical feasibility:
Can we do this project? Is the technology available to make it work? Is it possible to
achieve the proposal within the performance criteria? Are there sufficient skilled
technologists available to staff this project? All this was having a ‘Yes’ answer in case of
Smartclass INDIA. As the project is to run as a web base application on any Client
system running Windows, Linux.

Economic feasibility:
Can we afford Smartclass INDIA? How much will this project cost financially? What are
the benefits and do they balance the capital outlay? If so, over what period will we pay
back that outlay and make a profit? This Application is fully balanced in all these Aspects
because the previous intranet version of Smartclass has been a great success. There is
no economical barrier in its development.

Operational feasibility:
Can we handle the outcome of this project? Do we have/will we be able to get the
resources to make the end-product worth while in the future? Or is the company content
with the current position? If the project goes ahead will the company be able to
retrain/redistribute existing staff or recruit additional manpower? If not, there would be
reason to reconsider. Smartclass INDIA has gone smooth so far and promises to get
complete on time,the whole heated CRC(Content Research Center) Team,Development
team and testing team are fully devoted to complete it right on time.

Social feasibility:
Do we want this project? It might be physically possible but what are the repercussions
and impacts on people in and outside the company? Will the proposal influence working
practices in a favourable way and improve working conditions for employees. Suppose it
will result in the loss of 10,000 jobs, or alternatively would create 10,000 posts which
could not be filled. Either of these two extremes is undesirable and would result in a
recommendation to prevent the project beginning. Social feasibility covers more than
just human issues. There could be a cost to the environment, a cost to society, a cost to
company culture. In respect to Smartclass INDIA ,the social effect is very kind, this
application is the revolution in that field which has revolutionized the whole world, of
course the educational field.The education has made this world to go by technology,
keeping this in mind the education field should also have some technology blend.

12 Requirement Analysis and Design

The main Aim is to analyze the requirement specification document and once analyzed
and fully reviewed it enters into the design phase that involves:
• Physical Design
• Logical Design

47
12.1System Analysis

System analysis produces a 3-dimensional logical technology free model of everything


that the system will do. This model serves as a starting point for the System
Architecture Stage and the Detailed Design Stage. System analysis revolves around
developing use case implementations for each use case in the increment. This involves
producing a high level sequence diagram for each flow in each use case and linking them
together to follow the flow of the use case. If this is the first or only increment then an
initial logical data model should be produced first using class diagrams. The logical data
model is then updated as part of each use case implementation. The state model
consists of one state chart for each object with state dependent behavior and can be
developed and updated at any part of the stage.

It is preferable that this model should be produced by those with a sound knowledge of
the problem domain under the guidance of system developers rather than just by
system developers themselves. It is a role that would suit analyst/programmers.
The Smartclass INDIA the main Flow is From
• Teacher-To-Student
• Student to teacher
• Teacher to Admin
• Admin to SuperAdmin

12.2System Design

System Design is a solution, a “how to” approach to the creation of a new system. This
important phase is composed of several steps. It provides the understanding and
procedural details necessary for implementing the system recommended in the
feasibility study. Design goes through logical and physical stages of development.
Logical design reviews the present physical system, prepares input and output
specifications, makes edit, security and control specifications; details the implementation
plan and prepares a logical design walkthrough. The physical design maps out the
details of the physical system, plans the system implementation, devises a test and
implementation plan, and specifies any new hardware and software.

Design is the highly creative phase in the software development where the designer
plans “how” a software system should be produced in order to make it functional,
reliable and reasonably easy to understand, modify and maintain. A software
specifications (SRS) document tells us “what” a system does, and becomes input to the
design process, which tells us “how” a software system works. The result is a software
design document (SDD).

The goal of the design process is to produce a model or representation of a system,


which can be used later to build that system. The produced model is called the design of
the system. The design of a system is essentially a blueprint or a plan for a solution for
the system. Design is the first step in moving from the problem domain toward the

48
solution domain. Design is essentially the bridge between requirements specification and
the final solution for satisfying the requirements.

System Design through Logical and Physical Design

Logical Design Physical Design

System Determine Procedure


Specification Specifications
s

The process of software design involves the transformation of ideas into detailed
implementation descriptions, with the goal of satisfying the software requirements. To
transform requirements into a working system, designers must satisfy both customers
and the Developers (coding persons). The customers understand what the system is to
do. At the same time, the system builders must understand how the system is to work.

System Design, which is sometimes also called top-level design, aims to identify the
modules that should be in the system, the specifications of these modules, and how they
interact with each other to produce the desired results. At the end of system design all
the major data structures, file formats, output formats, and the major modules in the
system and their specifications are decided.

During detailed design, the internal logic of each of the modules specified in system
design is decided. During this phase further details of the data structures and
algorithmic design of each of the modules is specified. The logic of a module is usually
specified in a high-level design description language, which is independent of the target
language in which the software will eventually be implemented.

49
50
12.3DATABASE DESIGN

There are 57 user tables (77 including the system tables) involved in the database
of the CIMS(Client Information Management System). The database implementation of
the Client Information Management System has been performed in the MS-SQL Server
2000. Following are the table structure of the main tables of the database:

51
52
13 Coding and Testing

13.1Coding
The design must be translated into a machine readable form. The code generation step
performs this task. The development phase involves the actual coding of the entire
application. If design is performed in a detailed manner. Code generation can be
accomplished with out much complicated.In this phase the designs are translated into
code. Computer programs are written using a conventional programming language or an
application generator. Programming tools like Compilers, Interpreters, Debuggers are
used to generate the code. Different high level programming languages like C, C++,
Pascal, Java are used for coding. With respect to the type of application, the right
programming language is chosen.

In case of Smartclass INDIA it is coded using ASP.NET with C#, For database ,it used
smartdatastore

13.2Testing

INTRODUCTION

The separation of debugging from testing was initially introduced by Glenford J. Myers in
his 1978 book the "Art of Software Testing". From 1988 on it was seen as prevention
oriented period where tests were to demonstrate that software satisfies its specification,
to detect faults and to prevent faults. Dr. Gelperin chaired the IEEE 829-1989 (Test
Documentation Standard) with Dr. Hetzel writing the book "The Complete Guide of
Software Testing".

Software Testing: is the process used to help identify the correctness, completeness,
security, and quality of developed computer software

White-box and black-box testing

White box and black box testing are terms used to describe the point of view a test
engineer takes when designing test cases. Black box being an external view of the test
object and white box being an internal view. Software testing is partly intuitive, but
largely systematic. Good testing involves much more than just running the program a
few times to see whether it works. Software Testing is the process of executing software
in a controlled manner; in order to answer the question “Does this software behave as
specified?” Software testing is used in association with verification and validation.
Verification is the checking of or testing of items, including software, for conformance
and consistency with an associated specification. Software testing is just one kind of
verification, which also uses techniques such as reviews, inspections, and walk-throughs.
Validation is the process of checking what has been specified is what the user actually
wanted.

53
• Validation: Are we doing the right job?
• Verification: Are we doing the job right?

In order to achieve consistency in testing, it is imperative to have and follow a set of


testing principles. This enhances the efficiency of testing within SQA team members and
thus contributes to increased productivity..

Test levels

There are generally 3 main levels of software testing carried out:

Unit Testing: in which each unit (basic component) of the software is tested to verify
that the detailed design for the unit has been correctly implemented

Integration testing: in which progressively larger groups of tested software components


corresponding to elements of the architectural design are integrated and tested until the
software works as a whole.

System testing tests an integrated system to verify that it meets its requirements, which
can sometimes be sub-divided into:

o Functional testing
o Non-Functional testing

The following examples are different types of testing that should be considered during
System testing:

• Functional testing
• User interface testing
• Usability testing
• Performance testing
• Compatibility testing
• Error handling testing
• Load testing
• Volume testing
• Stress testing
• User help testing
• Security testing
• Capacity testing
• Sanity testing
• Smoke testing
• Exploratory testing
• Adhoc testing
• Regression testing
• Reliability testing
• Recovery testing

54
• Installation testing
• Maintenance testing

A further level of testing is also done, in accordance with requirements:

• Acceptance testing can be conducted by the client. It allows the end-user,


customer or client to validate whether or not to accept the product. Acceptance
testing may be performed after the testing and before the implementation phase.
A sample testing cycle

Although testing varies between organizations, there is a cycle to testing:

1. Requirements Analysis: Testing should begin in the requirements phase of the


software development life cycle.

During the design phase, testers work with developers in determining what
aspects of a design are testable and under what parameter those tests work.

2. Test Planning: Test Strategy, Test Plan(s), Test Bed creation.


3. Test Development: Test Procedures, Test Scenarios, Test Cases, Test Scripts to use
in testing software.
4. Test Execution: Testers execute the software based on the plans and tests and
report any errors found to the development team.
5. Test Reporting: Once testing is completed, testers generate metrics and make
final reports on their test effort and whether or not the software tested is ready
for release.
6. Retesting the Defects

55
Testing Types

Glass Box Testing

Testing performed by a programmer with access to and understanding of the source


code is called glass box testing or structural testing. Glass box testing is usually
performed during source code development and prior to black box testing which is also
known as functional testing. The original programmers typically perform some glass box
testing. Unlike glass box testing, black box testing is testing of the program from the
user’s perspective with no access to source code

COMPATIBILITY TESTING.

Testing to ensure compatibility of an application or Web site with different browsers,


OSs, and hardware platforms. Compatibility testing can be performed manually or can
be driven by an automated functional or regression test suite.

CONFORMANCE TESTING.

Verifying implementation conformance to industry standards. Producing tests for the


behavior of an implementation to be sure it provides the portability, interoperability,
and/or compatibility a standard defines.

56
FUNCTIONAL TESTING.

Validating an application or Web site conforms to its specifications and correctly


performs all its required functions. This entails a series of tests which perform a feature
by feature validation of behavior, using a wide range of normal and erroneous input
data. This can involve testing of the product's user interface, APIs, database
management, security, installation, networking, etcF testing can be performed on an
automated or manual basis using black box or white box methodologies.

LOAD TESTING.

Load testing is a generic term covering Performance Testing and Stress Testing.

PERFORMANCE TESTING.

Performance testing can be applied to understand your application or WWW site's


scalability, or to benchmark the performance in an environment of third party products
such as servers and middleware for potential purchase. This sort of testing is particularly
useful to identify performance bottlenecks in high use applications. Performance testing
generally involves an automated test suite as this allows easy simulation of a variety of
normal, peak, and exceptional load conditions.

Regression Testing

Tests are performed multiple times, including once after each major source code change.
The changes are usually due to inconsistencies found during the testing, and to
implementing new features and are likely to contain problems. The first tests to be run
with each new version are considered regression tests and compare the results before
and after the series of tests. The results of the regression tests are all concatenated into
a text file and are compared to a text file prepared using the identical method on the
previous version. The comparison will be performed using a standard text file
comparison utility and will report any new differences. The inconsistencies that have
been fixed by the development team should be easy to identify and confirm that the
fixes have been made correctly. The series of regression tests should consist of
automated quick-to-perform tests and all tests that have previously found errors. The
likelihood of an old error creeping back into the code when new ones are fixed is high
enough to justify keeping tests in the regression suite that have been long since fixed

SMOKE TESTING.

A quick-and-dirty test that the major functions of a piece of software work without
bothering with finer details. Originated in the hardware testing practice of turning on a
new piece of hardware for the first time and considering it a success if it does not catch
on fire.

STRESS TESTING.

57
Testing conducted to evaluate a system or component at or beyond the limits of its
specified requirements to determine the load under which it fails and how. A graceful
degradation under load leading to non-catastrophic failure is the desired result. Often
Stress Testing is performed using the same process as Performance Testing but
employing a very high level of simulated load.

IEEE standards for Software testing

Test cases, suites, scripts, and scenarios

A test case is a software testing document,which consists of event, action, input, output,
expected result and actual result. Clinically defined (IEEE 829-1998) a test case is an
input and an expected result. This can be as pragmatic as 'for condition x your derived
result is y', whereas other test cases described in more detail the input scenario and
what results might be expected. It can occasionally be a series of steps (but often steps
are contained in a separate test procedure that can be exercised against multiple test
cases, as a matter of economy) but with one expected result or expected outcome. The
optional fields are a test case ID, test step or order of execution number, related
requirement(s), depth, test category, author, and check boxes for whether the test is

58
automatable and has been automated. Larger test cases may also contain prerequisite
states or steps, and descriptions. A test case should also contain a place for the actual
result. These steps can be stored in a word processor document, spreadsheet, database
or other common repository. In a database system, you may also be able to see past
test results and who generated the results and the system configuration used to
generate those results. These past results would usually be stored in a separate table.

The term test script is the combination of a test case, test procedure and test data.
Initially the term was derived from the byproduct of work created by automated
regression test tools. Today, test scripts can be manual, automated or a combination of
both.

The most common term for a collection of test cases is a test suite. The test suite often
also contains more detailed instructions or goals for each collection of test cases. It
definitely contains a section where the tester identifies the system configuration used
during testing. A group of test cases may also contain prerequisite states or steps, and
descriptions of the following tests.

Collections of test cases are sometimes incorrectly termed a test plan. They might
correctly be called a test specification. If sequence is specified, it can be called a test
script, scenario or procedure.

Not all errors or defects reported must be fixed by a software development team. Some
may be caused by errors in configuring the test software to match the development or
production environment. Some defects can be handled by a workaround in the
production environment. Others might be deferred to future releases of the software, or
the deficiency might be accepted by the business user. There are yet other defects that
may be rejected by the development team (of course, with due reason) if they deem it
inappropriate to be called a defect.

Exploratory vs. Scripted

Exploratory testing means simultaneous, test design, and test execution, with an
emphasis on learning. Scripted testing means that learning and test design happens
prior to test execution, and quite often the learning has to be done again during test
execution. Exploratory testing is very common, but in most writing and training about
testing it is barely mentioned and generally misunderstood. Some writers consider it a
primary and essential practice. Structured exploratory testing is a compromise when the
testers are familiar with the software. A vague test plan, known as a test charter, is
written up, describing what functionalities need to be tested but not how, allowing the
individual testers to choose the method and steps of testing.

There are two main disadvantages associated with a primarily exploratory testing
approach. The first is that there is no opportunity to prevent defects, which can happen
when the designing of tests in advance serves as a form of structured static testing that
often reveals problems in system requirements and design. The second is that, even
with test charters, demonstrating test coverage and achieving repeatability of tests
using a purely exploratory testing approach is difficult. For this reason, a blended

59
approach of scripted and exploratory testing is often used to reap the benefits of while
mitigating each approach's disadvantages.

Manual vs. Automated

Some writers believe that test automation is so expensive relative to its value that it
should be used sparingly. Others, such as advocates of agile development, recommend
automating 100% of all tests. A challenge with automation is that automated testing
requires automated test oracles (an oracle is a mechanism or principle by which a
problem in the software can be recognized). Such tools have value in load testing
software (by signing on to an application with hundreds or thousands of instances
simultaneously), or in checking for intermittent errors in software. The success of
automated software testing depends on complete and comprehensive test planning.
Software development strategies such as test-driven development are highly compatible
with the idea of devoting a large part of an organization's testing resources to
automated testing. Many large software organizations perform automated testing. Some
have developed their own automated testing environments specifically for internal
development, and not for resale.

13.3TEST CASES
Roles in software testing

Software testing can be done by software testers. Until the 1950s the term software tester was used
generally, but later it was also seen as a separate profession. Participants of testing team
1.Tester
2.Developer
3.Customer
4.Information Service Management
5.Senior Organization Management
6.Quality team

In software engineering, the most common definition of a test case is a set of conditions or variables
under which a tester will determine if a requirement or use case upon an application is partially or fully
satisfied. It may take many test cases to determine that a requirement is fully satisfied. In order to fully
test that all the requirements of an application are met, there must be at least one test case for each
requirement unless a requirement has sub requirements. In that situation, each sub requirement must
have at least one test case. This is frequently done using a Traceability matrix. recommend creating at
least two test cases for each requirement. One of them should perform positive testing of requirement
and other should perform negative testing. Written test cases should include a description of the
functionality to be tested, and the preparation required to ensure that the test can be conducted.

If the application is created without formal requirements, then test cases can be written based on the
accepted normal operation of programs of a similar class. In some schools of testing, test cases are not
written at all but the activities and results are reported after the tests have been run.

60
What characterizes a formal, written test case is that there is a known input and an expected output,
which is worked out before the test is executed. The known input should test a precondition and the
expected output should test a postcondition.

Under special circumstances, there could be a need to run the test, produce results, and then a team of
experts would evaluate if the results can be considered as a pass. This happens often on new products'
performance number determination. The first test is taken as the base line for subsequent test / product
release cycles.

Written test cases are usually collected into Test suites.

A variation of test cases are most commonly used in acceptance testing. Acceptance testing is done by a
group of end-users or clients of the system to ensure the developed system meets their requirements.
User acceptance testing is usually differentiated by the inclusion of happy path or positive test cases.

Structure of test case

Formal, written test cases consist of three main parts with subsections:

• Information contains general information about Test case.


o Identifier is unique identifier of test case for further references, for example, while
describing found defect.
o Test case owner/creator is name of tester or test designer, who created test or is
responsible for its development
o Version of current Test case definition
o Name of test case should be human-oriented title which allows to quickly understand
test case purpose and scope.
o Identifier of the requirement which is covered by the test case. Also here could be an
identifier of a use case or a functional specification item.
o Purpose contains short description of test purpose, what functionality it checks.
o Dependencies
• Test case activity
o Testing environment/configuration contains information about configuration of
hardware or software which must be met while executing test case
o Initialization describes actions, which must be performed before test case execution is
started. For example, we should open some file.
o Finalization describes actions to be done after test case is performed. For example if
test case crashes database, tester should restore it before other test cases will be
performed.
o Actions step by step to be done to complete test.
o Input data description
• Results
o Expected results contains description of what tester should see after all test steps has
been completed

61
o Actual results contains a brief description of what the tester saw after the test steps has
been completed. This is often replaced with a Pass/Fail. Quite often if a test case fails,
reference to the defect involved should be listed in this column.

Not all written tests require all of these sections. However, the bare bones of a test can be reduced to
three essential steps:

• Establish the preconditions


• Exercise the item under test
• Verify the postconditions

It is important to note that if the preconditions cannot be established, the item cannot be tested
according to its software requirements specification and the test must not proceed.

Verifying the postcondition is equivalent to establishing that the actual results are as expected.

Note that several tests may need to be run to challenge the postcondition. For example, to test a user
login routine would need at least a case of a known username-password pair and a second case of an
unknown username-password pair.

Test suite

The introduction to this article provides insufficient context for those unfamiliar with the subject
matter.In software engineering, a test suite (more formally known as a validation suite) is a collection
of test cases that are intended to be used as input to a software program to show that it has some
specified set of behaviors (i.e., the behaviors listed in its specification).

A test suite often also contains detailed instructions or goals for each collection of test cases and
information on the system configuration to be used during testing. A group of test cases may also
contain prerequisite states or steps, and descriptions of the following tests.

Collections of test cases are sometimes incorrectly termed a test plan. They may also be called a test
script, or even a test scenario.

An executable test suite is a test suite that is ready to be executed. This usually means that there
exists a test harness that is integrated with the suite and such that the test suite and the test harness
together can work on a sufficiently detailed level to correctly communicate with the system under test
(SUT).

A test suite for a primality testing subroutine might consist of a list of numbers and their primality (prime
or composite), along with a testing subroutine. The testing subroutine would supply each number in
the list to the primality tester, and verify that the result of each test is correct.

62
The counterpart of an executable test suite is an abstract test suite. However, often terms test suites
and test plans are used, roughly with the same meaning as executable and abstract test suites,
respectively.

Scenario testing

Scenario testing is a software testing activity. It uses scenario tests, or simply scenarios, which are
based on a hypothetical story to help a person think through a complex problem or system. They can
be as simple as a diagram for a testing environment or they could be a description written in prose. The
ideal scenario has five key characteristics. It is (a) a story that is (b) motivating, (c) credible, (d)
complex, and (e) easy to evaluate. These tests are usually different from test cases in that test cases are
single steps and scenarios cover a number of steps. Test suites and scenarios can be used in concert for
complete system testing.

Test plan

A test plan is a systematic approach to testing a system such as a machine or software. The plan
typically contains a detailed understanding of what the eventual workflow will be.

Test plans in software development

In software testing, a test plan gives detailed testing information regarding an upcoming testing effort,
including

• Scope of testing
• Schedule
• Test Deliverables
• Release Criteria
• Risks and Contingencies

Test plan template, based on IEEE 829 format

1. Test Plan Identifier (TPI)


2. References
3. Introduction
4. Test Items
5. Software Risk Issues
6. Features to be Tested
7. Features not to be Tested
8. Approach
9. Item Pass/Fail Criteria
10. Entry & Exit Criteria
11. Suspension Criteria and Resumption Requirements
12. Test Deliverables
13. Remaining Test Tasks
14. Environmental Needs

63
15. Staffing and Training Needs
16. Responsibilities
17. Schedule (section not covered in document - see Contents and paragraphs)
18. Planning Risks and Contingencies
19. Approvals
20. Glossary

13.3.1.1Test plan identifier

For example: "Master plan for the Line of Credit Payment System. TP_PA1.0"

13.3.1.2References

List all documents that support this test plan.

Documents that are referenced include:

• Project Plan
• System Requirements specifications.
• High Level design document.
• Detail design document.
• Development and Test process standards.
• Methodology

13.3.1.3Introduction

State the purpose of the Plan, possibly identifying the level of the plan (master etc.). This is essentially
the executive summary part of the plan.

You may want to include any references to other plans, documents or items that contain information
relevant to this project/process.

Identify the objective of the plan or scope of the plan in relation to the Software Project plan that it
relates to. Other items may include, resource and budget constraints, scope of the testing effort, how
testing relates to other evaluation activities (Analysis & Reviews), and possible the process to be used
for change control and communication and coordination of key activities.

As this is the "Executive Summary" keep information brief and to the point.

13.3.1.4Test items (functions)

These are things you intend to test within the scope of this test plan. Essentially, something you will
test, a list of what is to be tested. This can be developed from the software application inventories as
well as other sources of documentation and information.

64
This can be controlled on a local Configuration Management (CM) process if you have one. This
information includes version numbers, configuration requirements where needed, (especially if
multiple versions of the product are supported). It may also include key delivery schedule issues for
critical elements.

Remember, what you are testing is what you intend to deliver to the Client.

This section can be oriented to the level of the test plan. For higher levels it may be by application or
functional area, for lower levels it may be by program, unit, module or build.

13.3.1.5Software risk issues

Identify what software is to be tested and what the critical areas are, such as:

1. Delivery of a third party product.


2. New version of interfacing software.
3. Ability to use and understand a new package/tool, etc.
4. Extremely complex functions.
5. Modifications to components with a past history of failure.
6. Poorly documented modules or change requests.

There are some inherent software risks such as complexity; these need to be identified.

1. Safety.
2. Multiple interfaces.
3. Impacts on Client.
4. Government regulations and rules.

Another key area of risk is a misunderstanding of the original requirements. This can occur at the
management, user and developer levels. Be aware of vague or unclear requirements and requirements
that cannot be tested.

The past history of defects (bugs) discovered during Unit testing will help identify potential areas
within the software that are risky. If the unit testing discovered a large number of defects or a
tendency towards defects in a particular area of the software, this is an indication of potential
future problems. It is the nature of defects to cluster and clump together. If it was defect ridden
earlier, it will most likely continue to be defect prone.

One good approach to define where the risks are is to have several brainstorming sessions.

• Start with ideas, such as, what worries me about this project/application.

13.3.1.6 Features to be tested

This is a listing of what is to be tested from the user's viewpoint of what the system does. This is not a
technical description of the software, but a USERS view of the functions.

65
Set the level of risk for each feature. Use a simple rating scale such as (H, M, L): High, Medium and
Low. These types of levels are understandable to a User. You should be prepared to discuss why a
particular level was chosen.

Sections 4 and 6 are very similar, and the only true difference is the point of view. Section 4 is a
technical type description including version numbers and other technical information and Section 6 is
from the User’s viewpoint. Users do not understand technical software terminology; they understand
functions and processes as they relate to their jobs.

13.3.1.7Features not to be tested

This is a listing of what is 'not' to be tested from both the user's viewpoint of what the system does and
a configuration management/version control view. This is not a technical description of the software,
but a user's view of the functions.

Identify why the feature is not to be tested, there can be any number of reasons.

• Not to be included in this release of the Software.


• Low risk, has been used before and was considered stable.
• Will be released but not tested or documented as a functional part of the release of this version
of the software.

Sections 6 and 7 are directly related to Sections 5 and 17. What will and will not be tested are directly
affected by the levels of acceptable risk within the project, and what does not get tested affects the
level of risk of the project.

13.3.1.8Approach (strategy)

This is your overall test strategy for this test plan; it should be appropriate to the level of the plan
(master, acceptance, etc.) and should be in agreement with all higher and lower levels of plans. Overall
rules and processes should be identified.

• Are any special tools to be used and what are they?


• Will the tool require special training?
• What metrics will be collected?
• Which level is each metric to be collected at?
• How is Configuration Management to be handled?
• How many different configurations will be tested?
• Hardware
• Software
• Combinations of HW, SW and other vendor packages
• What levels of regression testing will be done and how much at each test level?
• Will regression testing be based on severity of defects detected?
• How will elements in the requirements and design that do not make sense or are untestable be
processed?

66
If this is a master test plan the overall project testing approach and coverage requirements must also be
identified.

Specify if there are special requirements for the testing.

• Only the full component will be tested.


• A specified segment of grouping of features/components must be tested together.

Other information that may be useful in setting the approach are:

• MTBF, Mean Time Between Failures - if this is a valid measurement for the test involved and if the
data is available.
• SRE, Software Reliability Engineering - if this methodology is in use and if the information is
available.

How will meetings and other organizational processes be handled?

13.3.1.9Item pass/fail criteria

Show stopper issues. Specify the criteria to be used to determine whether each test item has passed or
failed. Show Stopper severity requires definition within each testing context.

13.3.1.10Entry & exit criteria

Specify the criteria to be used to start testing and how you know when to stop the testing process.

13.3.1.11Suspension criteria & resumption requirements

Suspension criteria specifies the criteria to be used to suspend all or a portion of the testing activities
while resumption criteria specifies when testing can resume after it has been suspended.

13.3.1.12Test deliverables

List documents, reports, charts, that will be presented to stakeholders on a regular basis during testing
and when testing has been completed.

13.3.1.13Remaining test tasks

If this is a multi-phase process or if the application is to be released in increments there may be parts
of the application that this plan does not address. These areas need to be identified to avoid any
confusion should defects be reported back on those future functions. This will also allow the users and
testers to avoid incomplete functions and prevent waste of resources chasing non-defects.

67
If the project is being developed as a multi-party process, this plan may only cover a portion of the
total functions/features. This status needs to be identified so that those other areas have plans
developed for them and to avoid wasting resources tracking defects that do not relate to this plan.

When a third party is developing the software, this section may contain descriptions of those test tasks
belonging to both the internal groups and the external groups.

13.3.1.14Environmental needs

Are there any special requirements for this test plan, such as:

• Special hardware such as simulators, static generators etc.


• How will test data be provided. Are there special collection requirements or specific ranges of
data that must be provided?
• How much testing will be done on each component of a multi-part feature?
• Special power requirements.
• Specific versions of other supporting software.
• Restricted use of the system during testing.

13.3.1.15Staffing and training needs

Training on the application/system.

Training for any test tools to be used.

The Test Items and Responsibilities sections affect this section. What is to be tested and who is
responsible for the testing and training.

13.3.1.16Responsibilities

Who is in charge?

This issue includes all areas of the plan. Here are some examples:

• Setting risks.
• Selecting features to be tested and not tested.
• Setting overall strategy for this level of plan.
• Ensuring all required elements are in place for testing.
• Providing for resolution of scheduling conflicts, especially, if testing is done on the production
system.
• Who provides the required training?
• Who makes the critical go/no go decisions for items not covered in the test plans?

13.3.1.17Planning risks and contingencies

What are the overall risks to the project with an emphasis on the testing process?
68
• Lack of personnel resources when testing is to begin.
• Lack of availability of required hardware, software, data or tools.
• Late delivery of the software, hardware or tools.
• Delays in training on the application and/or tools.
• Changes to the original requirements or designs.
• Complexities involved in testing the applications

Specify what will be done for various events, for example:

Requirements definition will be complete by January 1, 20XX, and, if the requirements change after
that date, the following actions will be taken:

• The test schedule and development schedule will move out an appropriate number of days.
This rarely occurs, as most projects tend to have fixed delivery dates.
• The number of tests performed will be reduced.
• The number of acceptable defects will be increased.
o These two items could lower the overall quality of the delivered product.
• Resources will be added to the test team.
• The test team will work overtime (this could affect team morale).
• The scope of the plan may be changed.
• There may be some optimisation of resources. This should be avoided, if possible, for obvious
reasons.

Management is usually reluctant to accept scenarios such as the one above even though they have seen
it happen in the past.

The important thing to remember is that, if you do nothing at all, the usual result is that testing is cut
back or omitted completely, neither of which should be an acceptable option.

13.3.1.18Approvals

Who can approve the process as complete and allow the project to proceed to the next level
(depending on the level of the plan)?

At the master test plan level, this may be all involved parties.

When determining the approval process, keep in mind who the audience is:

• The audience for a unit test level plan is different from that of an integration, system or master
level plan.
• The levels and type of knowledge at the various levels will be different as well.
• Programmers are very technical but may not have a clear understanding of the overall business
process driving the project.
• Users may have varying levels of business acumen and very little technical skills.

69
• Always be wary of users who claim high levels of technical skills and programmers that claim
to fully understand the business process. These types of individuals can cause more harm than
good if they do not have the skills they believe they possess.

14 IEEE Standard for Software Test Documentation

14.1IEEE Std 829-1998

The purpose of this standard is to describe a set of basic software test documents. A standardised test
document can facilitate communication by providing a common frame of reference (e.g., a customer
and a supplier have the same definition for a test plan). The content definition of a standardised test
document can serve as a completeness checklist for the associated testing process. A standardised set
can also provide a baseline for the evaluation of current test documentation practices. In many
organisations, the use of these documents significantly increases the manageability of testing.
Increased manageability results from the greatly increased visibility of each phase of the testing
process.

This standard specifies the form and content of individual test documents. It does not specify the
required set of test documents. It is assumed that the required set of test documents will be specified
when the standard is applied.

14.2IEEE 829

IEEE 829-1998, also known as the 829 Standard for Software Test Documentation is an IEEE
standard that specifies the form of a set of documents for use in eight defined stages of software
testing, each stage potentially producing its own separate type of document. The standard specifies the
format of these documents but does not stipulate whether they all must be produced, nor does it
include any criteria regarding adequate content for these documents. These are a matter of judgment
outside the purview of the standard. The documents are:

• Test Plan: a management planning document that shows:

• How the testing will be done


• Who will do it
• What will be tested
• How long it will take
• What the test coverage will be, i.e. what quality level is required

• Test Design Specification: detailing test conditions and the expected results as well as
test pass criteria.
• Test Case Specification: specifying the test data for use in running the test conditions
identified in the Test Design Specification
• Test Procedure Specification: detailing how to run each test, including any set-up
preconditions and the steps that need to be followed

70
• Test Item Transmittal Report: reporting on when tested software components have
progressed from one stage of testing to the next
• Test Log: recording which tests cases were run, who ran them, in what order, and
whether each test passed or failed
• Test Incident Report: detailing, for any test that failed, the actual versus expected
result, and other information intended to throw light on why a test has failed. This
document is deliberately named as an incident report, and not a fault report. The reason
is that a discrepancy between expected and actual results can occur for a number of
reasons other than a fault in the system. These include the expected results being
wrong, the test being run wrongly, or inconsistency in the requirements meaning that
more than one interpretation could be made. The report consists of all details of the
incident such as actual and expected results, when it failed, and any supporting
evidence that will help in its resolution. The report will also include, if possible, an
assessment of the impact upon testing of an incident.

• Test Summary Report: A management report providing any important information


uncovered by the tests accomplished, and including assessments of the quality of the
testing effort, the quality of the software system under test, and statistics derived from
Incident Reports. The report also records what testing was done and how long it took,
in order to improve any future test planning. This final document is used to indicate
whether the software system under test is fit for purpose according to whether or not it
has met acceptance criteria defined by project stakeholders.

14.3Test script

A test script is a short program written in a programming language used to test part of the
functionality of a software system. A written set of steps that should be performed automatically can
also be called a test script, however this is more correctly called a test case.

Any test that is written as a short program is regarded as an automated test. Test scripts written as a
short program can either be written using a special manual functional GUI test tool or in a well-known
programming language (such as C++, Tcl, Expect, Java, Perl, Python, or more recently, Ruby). Automated test
tools can test many areas of system functionality such as the user interface, performance of the system,
the system code and the requirements.

Automated testing has the advantage over manual testing in that it is easily repeatable, and thus is
favoured when doing regression testing. This however is not always the case as automated tests may be
poorly written and can break during playback. Since most systems are designed with human
interaction in mind, it is good practice that a human tests the system at some point.

For additional information about written test scripts, please see the test case article.

71
14.4SMARTCLASS testing Process
Following is a sample of the test case executed during Smartclass INDIA’s testing.The
application was tested for the following parameters:

• Functionality
• Security
• Performance
The Following is a flow of how the Bugs were reported to be resolved easily and at
earliest logs were maintained using the Share point Services

14.5About SharePoint Services

It Is actually a Microsoft Product offered for collaboration among different team members working in
an organisation.It makes it easy to integrate information at a central repository dor all members.It
makes communication easy.it has he following features:

72
73
14.6The Actual Process
Prior to the testng of anyweb based application it needs to be necessary changes made in the
web.config file of the application to configure it on a local machine.The changes are:

The username and password of the local SQL server is to be given along with the
database. Prior to this the application is to be configured in the IIS as a website to host
it locally.
Place the Folder in C:\Inetpub\wwwroot and goto

74
Goto Default web sites

Right Click on application(It will be shown there after placing in C:\Inetpub\wwwroot


Goto Properties and give the Anonymous access right to the application

Press Ok
Right Click and Browse the application
Now the Application is configured on your machine and can be accessed by

http://localhost/applicationname/home page

75
15 INPUTS &OUTPUTS

Login Screen
Enter user login And password

76
He/she will see the contents of the class to whom it is associated by the Admin user

Adding a teacher by the Admin login (The School Administrator)


• Click on teacher to add a new one

77
This will show the following page

Click on Add New and we get the page where we can link the teacher to the subjects as
well as classes

78
Click on the Subject Maths

Now click on the topic(s)

79
We will see the following page from where contents for a topic can be launched as
below:

Click on a content like “Batteries as a source of Electricity”. The Content is played in the
browser in a different page

80
A teacher can also upload his own resource (file format supported are mentioned)
• By clicking on Upload Own Resources

Uploaded resources are displayed and can be viewed when needed

81
A teacher can assign a test (SAS) to the students(To the whole section)
• By clicking on the Assign to students

If teacher wants to create a new SAS, he can add chapter level SAS or Subject level SAS
He can do so by clicking on
• SAS: Add New Chapter Level SAS
• SAS: Add New Comprehensive Assessment

82
A New question can be added to the SAS or questions can be selected from the already
created Question Bank, if a new question is added to the SAS, it also gets saved in the
question bank:

Click on Add from Question Bank

Select the questions to include in SAS

83
Give a name to SAS and press Done

84
If we want to add a new question to the SAS Click on:
• Add New Question
And then select the template you want to use for creating a Question depending upon
the question Format, at present four formats are supported.

85
Now if a SAS is created, the teacher has the rights to conduct it, Click on any already
created SAS to launch it, suppose we conduct a SAS for Sec 4 A for science subject, we
see the screen as:
• Enable the Record data check Box to conduct test with remotes
• If not checked SAS will be conducted without the Device

Click on Start will launch the test


Note the Configuration at the bottom of the Start

Machine Name ::JASVIR


Com Port Selected ::Com Port[7]
Device Selected ::Educlick

It is the machine setting for the device(Educlick) that is to be set by the teacher from
the
• Device Configuration (Explained later)

86
Click on start to conduct SAS without remotes, we see the Screen as with no Student
name displayed on the Right Side (Which is displayed if SAS conducted with Remotes)

The Following are the pictures of the test conducting devices

87
Educlick H-IIT Smart Assessment

Click on Start

The student names are displayed on Right and the student name blinks who give a
response

88
Click on next to move to next Question

Click on Submit to End a SAS, or we can Press Stop to stop the test in the middle, After
the test has been conducted, the following reports are generated

89
The reports can be analyzed as a score sheet for all students or as a Score Summary for
Each question

Question Wise View is like

90
Click on a Question to see the summary of answers for that Question.

The reports For the past SAS can also be viewed from the reports option in the more
options:
• Go to More Options
o Reports

91
Click on View to see a Report for a test

The test report can be analyzed in the same way as after conducting a test

92
Click on View All Content to see a different view for the Content list Display

Under More options, the teacher can also keep his profile as shown below
He/She has the rights to
• Change/Remove/Add a picture
• Change Password

93
In More options
• Add/Edit Remote Numbers
Is used to Assign a remote number to each student that is used as an identity for each
student while a SAS is conducted, it can be modified or assigned here.

To set Configuration for a Device(when a receiver is connected to the USB Port of the
Machine).
Click on
• Device Configuration

94
Under More Options and enter teacher Password(as no one except the teacher can
change the device settings)

The Standard Settings for the Educlick are shown Below

These Settigns can also be checked and set by following the procedure defined below
Press Windows key+R and type

95
This is to check whether a remote is working or not
Give a name to the connection

Specify the port to which the receiver is attached (Receiver Catches the response from
the Remote)

96
Set the device as the per the standards defined in the port Settings

The teacher also has the right to change the default view to the following
• Bubble
• ViewAllContent
• Toggle

97
Like the teacher the students is also allowed to view the content to the class to which he
is associated, this is in Admin’s hand (The school Administrator).An Admin can add a
student by clicking on
• Student

Select the class and section to which student belongs

98
Now this student can view only contents for the 1 Class

The content displayed when Maths is clicked

99
Click on a the Content to play it, if there are any resources, they will be displayed

Click on
• Percentages

100
To give any comment/Appreciate on the Contents Click on

• Give Feedback
Press Submit and it goes to the Customer Support User, who will send you a thanks mail
and in case any problem will give you a solution

101
Any content you like can be added to my favorites for quick play

Click on More Options we have

102
The students can also maintain his profile

Can change his/her picture and even change his/her password

103
To see the test assigned to him/her by the teacher, Click on
• View Assigned Test
This will give the assigned test list

Student can view & answer the test online and can submit it to the teacher
Click on submit when done

104
A Response message confirms your test submission to the teacher

105
To view the past performance the student can click on
• Reports

And view the last test he has taken

Click on a test to view

106
The Customer Support user will answer to the queries or feedback of the teacher
It has the following page as a main page after he logs in

He receives two types of mails


• Feedback
• Contact
Click on any report will show all the received mails
Here all the mails as per its status appears, it may have answered earlier, it may be
open to answer, or it may not have answered

107
If he wants to reply a mail, the following interface appears showing the user response
also

108
Suppose he doesn’t want to answer a mail, he will specify the reason for not answering
the mail for internal use. After he presses submit, no mail goes to user but this gets
saved in the database. The same is followed for the Contact Us Reports

109
16 Reference

World Wide Web Resources


www.educomp.com/html
www.corporateinformation.com
www.smartclass.edumatics.com
www.cygnet-infotech.com
www.mssqlcity.com
http://databases.about.com
http://msdn2.microsoft.com
http://en.wikipedia.org/wiki/Microsoft_Visual_Studio
http://en.wikipedia.org/wiki/AJAX
http://en.wikipedia.org/wiki/Internet_Information_Services
http://en.wikipedia.org/wiki/.NET_Compact_Framework
www.spokaneschools.org/help/articles/cookies.stm
http://support.lexisnexis.com/browserutility/record.asp?ArticleID=wg_enable_activex
http://en.wikipedia.org/wiki/Test_plan
http://en.wikipedia.org/wiki/IEEE
http://en.wikipedia.org/wiki/Software_testing
http://www.ruleworks.co.uk/testguide/BS7925-2.htm

Books

• Beginning ASP.NET 1.1 with C# -- Wrox Publication

• Professional ASP.NET1.1 – Wrox Publication

• Professional ASP.NET By Microsoft Corporation Press

• Software Engineering, By Roger S. Pressman

• Software Engineering, By Pankaj Jalote

• System Analysis and design By Elias M.Awad

110
111

You might also like