Monday, 17 March 2014

A UML PROJECT ON

“COURSE REGISTRATION SYSTEM”
Overview: This paper presents a case study highlighting the best practices for designing and building a web-based auction system using   UML (Unified   Model   Language)   and component-based programming. We use the Use Case, Class, Sequence, and Component  Diagrams  offered  by UML for designing the system. This enables new functions to be added and updated easily.]
     
                                                         
S.NO
CONTENTS:
1
ABSTRACT
2
INTRODUCTION
2.1
EXISTING SYSTEM
2.2
PROPOSED SYSTEM
3
LITERATURE SURVEY
3.1
ABOUT UML
3.2
RATIONAL ROSE
3.3
DESCRIPTION ABOUT CASE STUDY
3.3.1
MODULE SPECIFICATION
3.3.2
FUNCTIONAL DECOMPOSITION AND STRUCTURE
4
SOFTWARE REQUIREMENTS
5
UML DIAGRAMS
5.1
DATA-FLOW DIAGRAMS
5.2
E-R DIAGRAMS
6
DATA DICTIONARY
7
TEST DATA GENERATION
8
COST AND RESOURCE ESTIMATION
9
USER-MANUAL
10
CONCLUSION AND REFERENCE


                                        1. ABSTRACT
The course reservation project helps the user to know the procedures followed in universities to enroll students for a particular course.   The limitation of the existing system are :the system is not efficient to meet the needs, the system is very slow and time consuming, not more than one choice can be given by a student, the number of seats left out and the course details cannot be known.   The problems that are overcome are the existing system uses spreadsheet as backend now the proposed system uses access as backend, the basic requirement of the system has being improved, its has become user friendly.   The proposed system is very efficient. Now a student can know the number of seats that are being allotted in a day. The person can even get the course detail. The report displays the number of students per course and the number of students allotted seat on a particular day. 
The different areas where we can use this application are:
·                    Any education institute can make use of it for providing information to student and instructor about the courses and content of the courses available .
Students can registre for courses available

·                    It can be used in universities and college  and modifications can be done easily according to requirements.

                                               2. INTRODUCTION


Online course reservation system is used to choose the course through online by the students .
They are provided with a catalog they can choose the course. The catalog contains the detailed     description about each course and also the availabilty of the course which help to decide on their own.
2.1)Existing system:
The existing system is very slow and time consuming, not more than one choice can be given by a student, the number of seats left out and the course details cannot be known. The problems that are overcome are the existing system uses spreadsheet as backend
2.2)proposed system:
The proposed system is very efficient. Now a student can know the number of seats that are being allotted in a day. The person can even get the course detail. The report displays the number of students per course and the number of students allotted seat on a particular day.
                                    3.LITERATURE SURVEY     
3.1)About UML:
The Unified Modeling Language (UML) is a standard language for specifying, visualizing, The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems.

The UML is a very important part of developing object oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural UML-Unified modeling language

The Unified Modeling Language (UML) is used to specify, visualize, modify, construct and document the artifacts of an object-oriented software intensive system under development. UML offers a standard way to visualize a system's architectural blueprints, including elements such as:

An Overview of the UML:

 The UML is a language for
·                    Visualizing
·                    Specifying
·                    Constructing
·                    Documenting,

3.2)Rational rose:
Rational Rose is an object-oriented Unified Modeling Language (UML) software design tool intended for visual modeling and component construction of enterprise-level software applications.
In much the same way a theatrical director blocks out a play, a software designer uses Rational Rose to visually create (model) the framework for an application by blocking out classes with actors (stick figures), use case elements (ovals), objects (rectangles) and messages/relationships (arrows) in a sequence diagram using drag-and-drop symbols.
Rational Rose documents the diagram as it is being constructed and then generates code in the designer's choice of C++, Visual Basic, Java, Oracle8, CORBA or Data Definition Language.
Two popular features of Rational Rose are its ability to provide iterative development and roundtrip engineering. Rational Rose allows designers to take advantage of iterative development (sometimes called evolutionary development) because the new application can be created in stages with the output of one iteration becoming the input to the next. (This is in contrast to waterfall development where the whole project is completed from start to finish before a user gets to try it out.)
Then, as the developer begins to understand how the components interact and makes modifications in the design, Rational Rose can perform what is called "round-trip engineering" by going back and updating the rest of the model to ensure the code remains consistent.
Rational Rose is extensible, with downloadable add-ins and third-party partner applications. It supports COM/DCOM (ActiveX), JavaBeans, and Corba component standards.
3.3)Introduction of case study:
3.3.1) Module specification:
User Interface:-
The external users are students and instructors. The student logs in his account to choose courses and subsequently database gets updated.
Hardware Interface:-
The hardware interface used for handling the software will be computer and wireless MAN as the internet connection.
Software Interface:-
The Operating Systems can be any version of Windows which supports TCP/IP protocols and software for dynamic database.
Performance Requirements:-
The PCs used must be at least Pentium 4 machines so that they can give optimum performance of the product.
Software System Attributes:-
Reliability-The software should be highly reliable because any error could lead to loss of life and property.
Security- The software should be secured from unauthorized authentication.
Maintenance and Performance- The software needs regular maintanence as new features will get added based on improvement in technology.
Performance is always important in a software which has to be  operating 24*7 so there has to be a backup or alternate for the software.
Requirement Analysis:-
        Textual analysis: This covers the requirements and diagrams of the project. The complete process of online course registration system.
3.3.2) Functional decomposition and structure:
A hierarchy diagram shows the relationships between the modules of a computer program.
The vertical lines connecting the modules indicate the calling structure from the high-level modules to the lower- level modules. The little arrows next to the lines show the data that is passed between modules and contain the program logic to actually perform the functions.
Functionalities a student can perform in the system:
- Can edit his profile data i.e. address/homepage/email id information and update.
- Register a course
      - Constraints checked here include 
 MAX courses registered this semester, in our system its 3, 
 Course previously not registered, 
 Seats lefts in the course, 
 Prerequisite course registered and 
 Conflicts in timing with other currently registered courses.
- View his schedule
    - Drop course option is provided on this page
   - Can view textbook information of the courses department wise.
- Can view courses with prerequisite information
- Can view the list of courses using the day and period parameters.
- Can view courses previously taken along with grades information
Functionalities an Adminstrator  can implement in the system:
- Can view / edit information and also update.
- Can edit Course details - Details such as Seats left - to increase or decrease the capacity of the course (seats cannot be more than class capacity)
- Can add a new course to the database.
- The input parameters in the form are checked for valid input data before updating the database.
- Can view classroom availability as well as maximum capacity of classroom when course information is updated or new classroom is added
- Admin can view info of all the students registered in the courses
                              4.SOFTWARE REQUIREMENT SPECIFICATION 
Introduction:
Overview:
       Online Course Registration is a web-based program aimed to make easier and more convenient the class registration process, a hassle through whichstudents go every semester. Online Course Registration System attempts toalleviate these hassles by providing several services to students through theinternet.

Purpose:
     Online Course Registration System provides a way to search for classeswithout having to open a
course catalog, a way to “shop” around and view
various possible schedules, and finally, officially register for the chosen classes.
Overall Description:
Product Perspective:
The product should be able to provide effective and reliable access between student and the college database system. The student should get the apt and detailed information  from the website in order to make correct decisions.
Product functions:-
The product should provide a service for students to register courses with ease.
Database to update the student info and seats allotted.
General Constraints:-
Some desired features of the new system include: 
The ability to search/view course offerings on-line
 Provide transcripts on-line
 Evaluate prerequisites for courses against student records
 Inform students of registration stops and provide ability to resolve and registration conflict(s)
 Allow students to fill out applications for graduation and plans of study. 
     Server capacity is how many users can access or can be online at once. More is the number of users more will be the network traffic and hence the server comes in a down state. Personal firewall and updating is a tough task, it should be such that it should not block the network traffic, making the system slower. Firewall of the UMS should not collide with the firewall of the user system.
The various parts of the system are:
Login/Security–Login using user ID and password--will connect to server
Course Search –This will be a database system fairly similar to the current versionof Online Course Announcement  with the ability to search for courses withsearch keys: course number, professor, meeting time and department.
Course page –for each course in the database, there will be a view that will give the following information:- Course number, title- Instructor- Meeting Time- Location- Description- Number of credits- Number of students already registered
   Number of open slots- Waitlist if applicable- Exam Group

User Interface:

Login:
There will be a login screen into which the student enters a user ID and password.
Course Page:
Information displayed:- Course number, title- Instructor- Meeting Time- Location- Description- Number of credits- Number of students already registered- Number of open slots- Waitlist if applicable- Exam Group- Web site of corresponding Critical Review page
Non-Functional Requirements:
Performance–course search should be fast, despite many students accessing thedatabase at once
Testing–must test the database search
Reliability–Make sure still reliable with large number of users!
Ease of Use-make user interaction easy and obvious so that non-computer-proficient students can use the system
Outside Dependencies–connecting to server for login- accessing course information, or make dummy database
                                                                                                                                                                                                                                                                                                                                                 Student can make changes to his/her courses that are about to be taken for a semester in the future. All system (browser) interfaces are based ISO accepted industry standards for the WWW. Among others the online registration system will have the following functionalities:
 Student Profile 
- Student Address 
- Student Authentication/Change PIN 
- Email Address 
Registration 
- Registration Status  
- Course Status  
- Student’s Current Schedule 
- Register for a course
- Add or drop a course
- Course Evaluation Guide  
- Registration Schedule
Grades
- View past grades earned from each course taken up to the last completed semester.
- View grades 
- Keep a count of credits finished 
- Display a computed value of current Marks
Registration Assistance
Stop a registration request course for error conditions:
- Courses have scheduling conflict
- Course does not exist
- Course requires a prerequisite that is not met
- Course has already been registered and or completed
                                               5. DESIGNS
USE CASE DIAGRAM:
A Use Case diagram shows a set of use cases and actors and their relationship. Use Case diagram addresses the dynamic view of the system. The components of Use Case diagram are
1.     Use Cases
2.     Actors
3.     Relationships

1. Use Cases:  Use Case is a set of sequence of activities which yields an observable value and returns to an actor.
Oval:  Notation:                                                             
           
                                        Use Case Name

2.  Actors: An Actor represents a human being or a machine who/which interacts with the system or initiates the activity to perform the behaviour of the system.

Notation :


3. Relationships: The Use Case diagram contains the following relationships. They are
a)     Dependency
b)    Association
c)     Generalization
a) Dependency: It is a semantic relationship; if we change the semantics of one thing (independent) may affect the changes in the other thing (dependent).
Notation:   
b) Association: It is a structural relationship which defines a set of links in between two objects.
   Notation:       Unidirectional                 
                             Bidirectional          
c) Generalization: It is a specialization/generalization relationship in which objects of the specialized relationship (child) are substitutable for the objects of generalized relationship (parent).
      Notation:
Common Modelling Technique:
1.     Identify the Actors.
2.     Identify the Use Cases.
3.     Identify the Relationships.

1.Identify the Actors: In this step the Actors involved in the system are being identified.
2.Identify the Use Cases: In this step the Use Cases or the set of activities involved in the system are being identified.
3.Identify the Relationships: In this step the relationship between the Use Cases and the Actors are being established
ACTIVITY DIAGRAM:
An activity diagram is a special kind of a statechart diagram that shows the flow from activity to activity within a system.
Activity Diagram displays a special state diagram where most of the states are action states and most of the transitions are triggered by completion of the actions in the source states. This diagram focuses on flows driven by internal processing.
In UML an activity diagram is used to display the sequence of activities. Activity Diagrams show the workflow from a start point to the finish point detailing the many decision paths that exist in the progression of events contained in the activity.
They may be used to detail situations where parallel processing may occur in the execution of some activities. Activity Diagrams are useful for Business Modeling where they are used for detailing the processes involved in business activities.
The following sections describe the elements that constitute an Activity diagram:
-Activities: An activity is the specification of a parameterized sequence of behavior. An activity is shown as a round-cornered rectangle enclosing all the actions, control flows and other elements that make up the activity.
Notation:


-Actions: An action represents a single step within an activity. Actions are denoted by round cornered rectangles.
-Action Constraints: Constraints can be attached to an action. The following diagram shows an action with local pre- and post-conditions.
-Control Flow: A control flow shows the flow of control from one action to the next. Its notation is a line with an arrowhead.
-Initial Node: An initial or start node is depicted by a large black spot, as depicted below.
-Final Node: There are two types of final node: Activity and Flow final nodes. The activity final node is depicted as a circle with a dot inside. The flow final node is depicted as a circle with a cross inside.
-Fork and Join Nodes: Forks and joins have the same notation, either a horizontal or vertical bar
(the orientation is dependent on whether the control flow is running left to right or top to bottom).
They indicate the start and end of concurrent threads of control. The following diagram shows an example of their use.
A join is different from a merge in that the join synchronizes two inflows and produces a single outflow. The outflow from a join cannot execute until all inflows have been received. A merge passes any control flows straight through it.
Notation:             
CLASS DIAGRAM
Class:
A class diagram describes the static structure of the symbols in your new system.
It is a graphic presentation of the static view that shows a collection of declarative (static) model elements, such as classes, types, and their contents and relationships.
Classes are arranged in hierarchies sharing common structure and behaviour, and are associated with other classes.
Class diagrams are particularly useful for business modeling.
Business analysts can use class diagrams to model a business's current assets and resources, such as account ledgers, products, or geographic hierarchy.
A class diagram illustrates the graphical view of the static structure of a system. It is a collection of classes, interfaces, and their relationships.
A class diagram models the static structure of entities.
Modeling the static structure of classes, the class diagram shows each class's internal structure along with the relationship that the class has to other classes.
The UML representation of a class -- a class diagram -- is a rectangle containing three compartments stacked vertically.
Name:
Modeling the static structure of classes, the class diagram shows each class's internal structure along with the relationship that the class has to other classes. The top compartment shows the class's name.
                                              
                                 
                                                Figure: Class Name
Attributes:
The middle compartment lists the class's attributes. The attribute section of a class (the middle compartment) lists each. Class's attributes on a separate line. In business class diagrams, the attribute types usually correspond to units that make sense to likely readers of the diagram (i.e., minutes, dollars, etc.).
However, a class diagram that will be used to generate code needs classes whose attribute types are limited to the types provided by the programming language, or types included in the model that will also be implemented in the system.
    
  Figure: A generic Class diagram with Attribute List
Operations:
The class's operations are documented in the third (lowest) compartment of the class diagram's rectangle. Like attributes, the operations of a class are displayed in a list format, with each operation on its own line. Operations are documented using the following notation: name (parameter list): type of value returned.
When an operation has parameters, they are put inside the operation's parentheses; each parameter uses the format "parameter name : parameter type", which can include an optional indicator to show whether or not the parameter is input to, or output of, the operation. This optional indicator appears as an "[in]" or "[out]" .
                                                           
Figure: A generic Class diagram
Class diagrams are used in one of the following ways:
To model the vocabulary of a system and specify the abstraction and responsibilities.
To model simple collaborations to visualize and specify them and the relationships between the elements of a collaboration.
To mode the logical database schema. The class diagrams are a superset of the entity relationship diagram.
SEQUENCE DIAGRAM
A sequence diagram is an interaction diagram that emphasizes the time ordering of the messages.
A sequence diagram displays the time sequence of the objects participating in the interaction.
It consists of the vertical dimension (time) and horizontal dimension (different objects).
A sequence diagram depicts the sequence of actions that occur in a system.
It is a very useful tool to easily represent dynamic behavior of the system.
The invocation of methods in each object and thee order in which invocation occurs is sequence diagram.
Sequence diagram represents the interaction among different objects of a system.
A sequence diagram is made up of objects and messages and it is two dimensions in nature.
The vertical axis represents time during which the object exists during interaction.
This vertical line is called object lifeline.
The horizontal line represents different objects.
Elements in Sequence Diagram :
OBJECT: An object is important element in sequence diagram. It is n instance of a class. A sequence diagram shows interaction among objects over period of time.
MESSAGE: The interaction between objects in sequence diagram is represented as messages. The notation for messages varies depending on the type of message. Simple messages and special messages to create and destroy objects can be represented in a sequence diagram.
Each message is labeled with message name .The label can include arguments and some control information or a message that object send to it self-recursively. Here also the message can be of three types Simple message, Synchronous, Asynchronous.
COLLABORATION DIAGRAM
A collaboration diagram is an interaction diagram that emphasizes the structural organization of the objects that send and receive messages.
A collaboration diagram displays an interaction organized around the objects and their links to one another. Numbers are used to show the sequence of messages.
A collaboration diagram is an interaction diagram that shows similar information to sequence diagrams but its primary focus in on object relationships. On collaboration diagrams, objects are shown with association connectors between them. Messages are added to the associations and show as short arrows pointing in the direction of the message flow.
The sequence of messages is shown through a numbering scheme. Collaboration diagrams let you show a spatial organization of components and interactions rather than concentrating on the sequence of the interactions.
A collaboration diagram shows an interaction organized around the objects in the interaction and their links to each other. Unlike a Sequence diagram, a collaboration diagram shows the relationships among the objects.
On the other hand, a collaboration diagram does not show time as a separate dimension, so sequence numbers determine the sequence of messages and the concurrent threads. A collaboration diagram is a cross between a symbol diagram and Sequence diagram, in that it describes a specific scenario by numbered arrows that show the movement of messages during the course of a scenario.
The Collaboration diagram may be used to:
Describe a specific scenario by depicting the movement of messages between the objects Show a spatial organization of objects and their interactions, rather than the sequence of the interactions
STATE CHART DIAGRAM
State Chart:
A state chart diagram can be used to describe the behavior of an object. It is a graph of states as nodes and state transitions as directed edges. A state is displayed as rectangle, an edge as arrow. A node is labeled with the state name inside the bounds.
It may also be divided in two areas where the first contains the name and the other an activity in process while in this state, the start state, is a little empty circle. An end state is a double bordered circle.
State diagrams can be nested hierarchically, indicating sub state machines. Entering a sub state machine begins at starting state of the sub machine. Reaching an end state means leaving a sub state.
Initial state:
A condition at the beginning of the life of an object or an interaction during which it satisfies some condition, performs some action, or waits for some event.
                                                 
                                                               
SCD Initial State
                                            Figure: Initial state
Final state:
A condition at the end of the life of an object or an interaction during which it satisfies some condition, performs some action, or waits for some event.
                                                                SCD Final State
                                                    Figure: Final state
State:
A condition during the life of an object or an interaction during which it satisfies some condition, performs some action, or waits for some event.
                                                    States
                                           Figure: State Chart Diagram
States:
States represent situations during the life of an object. You can easily illustrate a state in Smart Draw by using a rectangle with rounded corners.
                                                      Transition
                                                                    Figure: States

History Indicator:
When a transition to a super state occurs, a History Indicator shows control resumes at the state within the super state that was current when the super state was interrupted.

                                                                            SCD History Indicator

                                                            Figure: History indicator
Transition:
A relationship between two states, indicates that an object in the first state will enter the second state and perform certain specified actions when a specified event occurs, if specified conditions are satisfied.
                                                                     event / action

                                                                 Figure: Transition


COMPONENT DIAGRAM
Component Diagram displays the high level packaged structure of the code itself. Dependencies among components are shown, including source code components, binary code components, and executable components. Some components exist at compile time, at link time, at run times well as at more than one time.
Component diagram is a diagram that shows the organizations and dependencies among components types or a component diagram shows a set of components and their relationship.
A component diagram shows the dependencies amongst the software components, which includes source code components; binary code components are executable components.
A component diagram only has a description form and not an instance form. It basically contains components, interfaces and their relationships (dependency generalization, association and realization), apart from notes and constants. They may also contain packages or subsystems.
We use a component diagram to visualize the static aspects of the physical components and their relationship and to specify their details for construction.
Basic Component Diagram Symbols and Notations
Component:
A component is a physical building block of the system. It is represented as a rectangle with tabs.
                                                    Component
                                                            Figure: Component

Interface:
An interface describes a group of operations used or created by components.
 

         

                                                             Figure: Interface
Dependencies:
           Draw dependencies among components using dashed arrows.

                                                        Dependencies       

                                               Figure: Component with dependency
It is used in any of the following ways:
1.     model the source code.
2.     model the executable releases.
3.     model physical database.
4.     model adaptable systems.
DEPLOYMANE DIAGRAM
Deployment diagram displays the configuration of run-time processing elements and the software components, processes, and objects that live on them. Software component instances represent run-time manifestations of code units.1
A deployment diagram shows the configuration of run time processing nodes and the components that live on them.
The deployment view contains the nodes instances connected by communication links deployment diagrams are used to visualize the static aspect of physical nodes and their relationships and specifies their details for constructions.
The main concepts of a deployment diagram are nodes and dependency and association relationships.
These diagrams may contain nodes and constraints apart from components these diagrams may also contain packages or subsystems.
Basic Deployment Diagram Symbols and Notations:
Node:
A node is a physical resource that executes code components.
                                              Node
                                                           Figure: Node

Association:
Association refers to a physical connection between nodes, such as Ethernet.

                                              Association
                                        Figure: Association between the nodes

Components and Nodes:
Place components inside the node that deploys them.
                                                      Components and Nodes
Figure: Components and nodes

Relationships:
Dependency:

A dependency is a semantic relationship between two things in which a change to one thing may affect the semantics of the other thing. Graphically, a dependency is rendered as a dashed line, possibly directed, and occasionally including a label.
                                             
                                                   Figure: Dependency
Association:
An association is a structural relationship that describes a set of links, a link being a connection among objects. Graphically, an association is rendered as a solid line, possibly directed, occasionally including a label, and often containing other adornments, such as multiplicity and role names.
                                                   0…1
                                                   employer                        employee

                                                          Figure: Association
The deployment view usually addresses the distribution, delivery and installation of the parts that make up the physical system.
These diagrams can be used to model the static development view in one of the following ways:
mode embedded systems.
model client/server systems.
model fully developed systems.
                                                   5.1. DATA FLOW DIAGRAM
A structured analysis technique that employs a set of visual representations of the data that moves through the organization, he paths through which the data moves, and the processes that produce, use, and transform data.
A DFD shows what kinds of data will be input to and output from the system, where the data will come from and go to, and where the data will be stored. It does not show information about the timing of processes, or information about whether processes will operate in sequence or in parallel 
   The following are used in drawing dfds:

                                                          File:Data-flow-diagram-notation.svg
An Example of a data flow diagram:
                             http://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/DataFlowDiagram_Example.png/360px-DataFlowDiagram_Example.png
DFD for Online Course Reservation System:
5.2.ER-DIAGRAM
An Entity-Relationship Model (ERM) is an abstract and conceptual representation of data. Entity-relationship modeling is a database modeling method, used to produce a type of conceptual schema or semantic data model of a system, often a relational database, and its requirements in a top-down fashion. Diagrams created by this process are called entity-relationship diagrams, ER diagrams.
The Building Blocks: Entities, Relationships, and Attributes:
An entity may be a physical object such as a house or a car, an event such as a house sale or a car service, or a concept such as a customer transaction or order.
A relationship captures how two or more entities are related to one another. Relationships can be thought of as verbs, linking two or more nouns.
Examples: an ‘owns’ relationship between a company and a computer, a supervises relationship between an employee and a department.
Every entity (unless it is a weak entity) must have a minimal set of uniquely identifying attributes, which is called the entity's primary key.
Entity-relationship diagrams don't show single entities or single instances of relations. Rather, they show entity sets and relationship sets. Example: a particular song is an entity. The collection of all songs in a database is an entity set. The eaten relationship between a child and her lunch is a single relationship. The set of all such child-lunch relationships in a database is a relationship set.
Connections
Two related entities.
An entity with an attribute.
A relationship with an attribute.

Two Related Entities
 

An Entity with an attribute

 
Description: 2                 Description: 3            


ER Diagram for Online Course Reservation:

              dia (1).png

                                            6. DATA DICTIONARY
Student:
Field name
Data Type
Constraint
Name
String
Not Null
Address
Varchar2
Not Null
Marks
Int
Not Null
StudentID
Int
Primary key

Admin:
Field name
Data Type
Constraint
AdminID
Int
Primary key
Authenticate
String
Not Null
Reject
String
Not Null

                              7.  TEST DATA GENERATION
Introduction:
Testing presents an interesting anomaly for the software engineer. During earlier software engineering activities, the engineer attempts to build software from an abstract concept to a tangible product. Now comes testing. The engineer creates a series of test cases that are intended to “demolish” the software that has been built. In fact, testing is the one step in the software process that could be viewed (psychologically, at least) as destructive rather than constructive.
Software engineers are by their nature constructive people. Testing requires that the developer discard preconceived notions of the “correctness” of software just developed and overcome a conflict of interest that occurs when errors are uncovered.
If testing is conducted successfully (according to the objectives stated previously), it will uncover errors in the software. As a secondary benefit, testing demonstrates that software functions appear to be working according to specification, that behavioral and performance requirements appear to have been met. In addition, data collected as testing is conducted provide a good indication of software reliability and some indication of software quality as a whole. But testing cannot show the absence of errors and defects, it can show
Only that software errors and defects are present. It is important to keep this (rather gloomy) statement in mind as testing is being conducted.

Testing principles:
Before applying methods to design effective test cases, a software engineer must understand the basic principle that guide software testing:
All tests should be traceable to customer requirements
Tests should be planned long before testing begins
80 percent of all errors uncovered during testing will likely be traceable to 20 percent of all program components. The problem, of course, is to isolate these suspect components and to thoroughly test them.
Testing should being “in the small” and progress toward testing “in the large”.
Exhaustive testing is not possible
To be most effective an independent third party should conduct testing
A rich variety of test case design methods have evolved for software. These methods provide the developer with a systematic approach to testing. More important, methods provide a mechanism that can help to ensure the completeness of tests and provide the highest likelihood for uncovering errors in software.
Any engineered product (and most other things) can be tested in one of two ways:
Knowing the specified function that a product has been designed to perform, tests can be conducted that demonstrate each function is fully operational
While at the same time searching for errors in each function; (2) knowing the internal
Working of a product, tests can be conducted to ensure that “all gears mesh,” that is, internal operations are performed according to specifications and all internal components have been adequately exercised. The first test approach is called black box testing and the second, white-box testing.
v Testing performed were:
ü UNIT TESTING
ü INTEGRATION TESTING
ü DATABASE TESTING
ü RECOVERY TESTING
ü FUNCTIONALITY TESTING
§  SMOKE TEST
§  SANITY TEST
ü COMPATIBILITY TESTING
ü LOAD TESTING
ü SYSTEM TESTING
ü PERFORMANCE TESTING
ü USER ACCEPTANCE TESTING

White box testing
Sometimes called glass-box testing is a test case design method that uses the control structure of the procedural design to derive test cases. Using white-box testing methods, the software engineer can derive test cases that (1) guarantee that all independent paths within a module have been exercised at least once, (2) exercise all logical decisions on their true and false sides, (3) execute all loops at their boundaries and within their operational bounds, and (4) exercise internal data structures to ensure their validity.
White-box testing of software is predicated on close examination of procedural detail. Providing test cases that exercise specific sets of conditions and/or loops tests logical paths through the software. The “status of the program” may be examined at various points to determine if the expected or asserted status corresponds to the actual status. Basis path testing is a white-box testing technique first proposed by Tom McCabe. The basis path method enables the test case designer to derive a logical complexity measure of a procedural design and use this measure as a guide for defining a basis set of execution paths. Test cases derived to exercise the basis set are guaranteed to execute every statement in the program at least one time during testing.
In this system, the system was tested for the calculation matters were the data provided for giving the right output or not. If wrong data was provided then what it is throwing error or accepting
Black box testing:
Also called behavioral testing, focuses on the functional requirements of the software. That is, black box testing enables the software engineer to derive sets of input conditions that will fully exercise all functional requirements for a program. Black box testing is not an alternative to white-box techniques. Rather, it is a complementary approach that is likely to uncover a different class of error than white-box methods. When computer software is considered, black box testing alludes to tests that are conducted at the software interface. Although they are designed to uncover errors, black-box tests are used to demonstrate that software functions are operational, that input is
Properly accepted and output is correctly produced and that the integrity of external information is maintained. A black-box test examines some fundamental aspect of a system with a little regard for the internal logical structure of the software. Black-box testing attempts to find errors in the following categories:
1.     Incorrect or missing functions,
2.     Interface errors,
3.     Errors in data structures or external database access,
4.     Behavior or performance errors, and
5.     Initialization and termination errors. By applying back-box techniques, we derive a set of test cases that satisfy the following criteria:
a.                             Test cases that reduce, by a count that is greater than one, the number of additional test cases that must be designed to achieve reasonable testing and
b.                             Test cases that tell us something about the presence or absence of classes of errors, rather than an error associated only with the specific test at hand.

White-box testing should not, however, be dismissed as impractical. A limited number of for validity. The attributes of both black and white box testing can be combined to provide an approach that validates the software interface and selectively ensures that the internal workings of the software are correct.
Black box testing for this system was done to check the internal testing i.e, the system is working properly in each case or no. What kind of errors are there in database design.
Test data generation
Input
Behaviour
Output
Login id
Valid
Permission granted
Login id
Not valid
Permission not granted
Password
Valid
Permission granted
Password
Not valid
Permission not granted
Interview
Pass
Select applicant
Interview
Not pass
Reject applicant
Course
Available
Course registered
Course
Not avalaible
Course not registered
Allot seats
Seats available
Block seats
Allot seats
Seats not available
Cannot block seats


            8. COST AND RESOURCE ESTIMATION:
Software cost estimation is the process of predicting the effort required to develop a software system. Many estimation models have been proposed over the last 30 years.
Models may be classified into 2 major categories: algorithmic and non-algorithmic. Each has its own strengths and weaknesses. A key factor in selecting a cost estimation model is the accuracy of its estimates. Unfortunately, despite the large body of experience with estimation models, the accuracy of these models is not satisfactory.
Keywords: project estimation, effort estimation, cost models.
Introduction
Accurate cost estimation is important because:
• It can help to classify and prioritize development projects with respect to an overall business plan.
• It can be used to determine what resources to commit to the project and how well these resources will be used.
• It can be used to assess the impact of changes and support replanning.
• Projects can be easier to manage and control when resources are better matched to real needs.
• Customers expect actual development costs to be in line with estimated costs.
Software cost estimation involves the determination of one or more of the following estimates:
• effort (usually in person-months)
• project duration (in calendar time)
• cost (in dollars)
The three fundamental issues that need to be resolved are:
• Which software cost estimation model to use?
• Which software size measurement to use – lines of code (LOC), function points (FP), or feature point?
• What is a good estimate?
The widely practiced cost estimation method is expert judgment. For many years, project managers have relied on experience and the prevailing industry norms as a basis to develop cost estimate. However, basing estimates on expert judgment is problematic:
• This approach is not repeatable and the means of deriving an estimate are not explicit.
• It is difficult to find highly experienced estimators for every new project.
• The relationship between cost and system size is not linear. Cost tends to increase exponentially with size. The expert judgment method is appropriate only when the sizes of the current project and past projects are similar.
• Budget manipulations by management aimed at avoiding overrun make experience and data from previous projects questionable.
In the last three decades, many quantitative software cost estimation models have been developed. They range from empirical models such as Boehm’s COCOMO models to analytical models. An empirical model uses data from previous projects to evaluate the current project and derives the basic formulae from analysis of the particular database available. An analytical model, on the other hand, uses formulae based on global assumptions, such as the rates at which developer solve problems and the number of problems available.
A good software cost estimate should have the following attributes:
• It is conceived and supported by the project manager and the development team.
• It is accepted by all stakeholders as realizable.
• It is based on a well-defined software cost model with a credible basis.
• It is based on a database of relevant project experience (similar processes, similar technologies, similar environments, similar people and similar requirements).
• It is defined in enough detail so that its key risk areas are understood and the probability of success is objectively assessed.
Process of estimation
Cost estimation is an important part of the planning process. For example, in the top-down planning approach, the cost estimate is used to derive the project plan:
1. The project manager develops a characterization of the overall functionality, size, process, environment, people, and quality required for the project.
2. A macro-level estimate of the total effort and schedule is developed using a software cost estimation model.
3. The project manager partitions the effort estimate into a top-level work breakdown structure. He also partitions the schedule into major milestone dates and determines a staffing profile, which together forms a project plan.
The actual cost estimation process involves seven steps :
1. Establish cost-estimating objectives
2. Generate a project plan for required data and resources
3. Pin down software requirements
4. Work out as much detail about the software system as feasible
5. Use several independent cost estimation techniques to capitalize on their combined strengths
6. Compare different estimates and iterate the estimation process
7. After the project has started, monitor its actual cost and progress, and feedback results to project management
Software sizing
The software size is the most important factor that affects the software cost. This section describes five software size metrics used in practice. The line of code and function point are the most popular metrics among the five metrics.
Line of Code: This is the number of lines of the delivered source code of the software, excluding comments and blank lines and is commonly known as LOC . Although LOC is programming language dependent, it is the most widely used software size metric. Most models relate this measurement to the software cost. However, exact LOC can only be obtained after the project has completed. Estimating the code size of a program before it is actually built is almost as hard as estimating the cost of the program.
A typical method for estimating the code size is to use experts' judgment together with a technique called PERT . It involves experts' judgment of three possible code-sizes: Sl, the lowest possible size; Sh the highest possible size; and Sm, the most likely size. The estimate of the code-size S is computed as:
64 m h l S S SS+ +=PERT
can also be used for individual components to obtain an estimate of the software system by summing up the estimates of all the components. of the experts’ estimates and the rationale for the estimates.
Function points: This is a measurement based on the functionality of the program and was first introduced by Albrecht . The total number of function points depends on the counts of distinct(in terms of format or processing logic) types in the following five classes:
1. User-input types: data or control user-input types
2. User-output types: output data types to the user that leaves the system
3. Inquiry types: interactive inputs requiring a response
4. Internal file types: files (logical groups of information) that are used and shared inside the
system
5. External file types: files that are passed or shared between the system and other systems
Each of these types is individually assigned one of three complexity levels of {1 = simple, 2 =medium, 3 = complex} and given a weighting value that varies from 3 (for simple input) to 15(for complex internal files).
This initial function-point count is either directly used for cost estimation or is further modified by factors whose values depend on the overall complexity of the project. This will take into account the degree of distributed processing, the amount of reuse, the performance requirement, etc. The final function-point count is the product of the UFC unadjusted function-point counts and these project complexity factors. The advantage of the function-point measurement is that it can be obtained based on the system requirement specification in the early stage of software development
Extensions of function point: Feature point extends the function points to include algorithms as a new class. An algorithm is defined as the set of rules which must be completely expressed to solve a significant computational problem. Each algorithm used is given a weight ranging from 1 (elementary) to 10 (sophisticated algorithms) and the feature point is the weighted sum of the algorithms plus the function points. This measurement is especially useful for systems with few input/output and high algorithmic complexity, such as mathematical software, discrete simulations, and military
Applications.
Object points: This measurement is based on the number and complexity of
the following objects: screens, reports and 3GL components. Each of these objects is counted and given a weight ranging from 1 (simple screen) to 10 (3GL component) and the object point is the weighted sum of all these objects.It is easy to use at the early phase of the development cycle and also measures software size reasonably well, this measurement has been used in major estimation
models such as COCOMO II for cost estimation .
Cost estimation
There are two major types of cost estimation methods: algorithmic and non-algorithmic.
Algorithmic models vary widely in mathematical sophistication. Some are based on simple arithmetic formulas using such summary statistics as means and standard deviations.Others are based on regression models and differential equations . To improve the accuracy of algorithmic models, there is a need to adjust or calibrate the model to local circumstances. These models cannot be used off-the-shelf. Even with calibration the accuracy can be quite mixed

 Non-algorithmic Methods
Analogy costing: This method requires one or more completed projects that are similar to the new project and derives the estimation through reasoning by analogy using the actual costs of previous projects. Estimation by analogy can be done either at the total project level or at subsystem level. The total project level has the advantage that all cost components of the system will be considered while the subsystem level has the advantage of providing a more detailed assessment of the similarities and differences between the new project and the completed projects. The strength of this method is that the estimate is based on actual project experience.
Expert judgment: This method involves consulting one or more experts. The experts provide estimates using their own methods and experience. Expert-consensus mechanisms such as Delphi technique or PERT will be used to resolve the inconsistencies in the estimates. The Delphi technique works as follows:
1) The coordinator presents each expert with a specification and a form to record estimates.
2) Each expert fills in the form individually (without discussing with others) and is allowed to ask the coordinator questions.
3) The coordinator prepares a summary of all estimates from the experts (including mean or median) on a form requesting another iteration
4) Repeat steps 2)-3) as many rounds as appropriate.
Parkinson: Using Parkinson's principle “work expands to fill the available volume”  the cost is determined (not estimated) by the available resources rather than based on an objective assessment. If the software has to be delivered in 12 months and 5 people are available, the effort is estimated to be 60 person-months. Although it sometimes gives good estimation, this method is not recommended as it may provide very unrealistic estimates. Also, this method does not promote good software engineering practice.
Price-to-win: The software cost is estimated to be the best price to win the project. The estimation is based on the customer's budget instead of the software functionality. For example, if a reasonable estimation for a project costs 100 person-months but the customer can only afford 60 person-months, it is common that the estimator is asked to modify the estimation to fit 60 person months’ effort in order to win the project. This is again not a good practice since it is very likely to cause a bad delay of delivery or force the development team to work overtime.
Bottom-up: In this approach, each component of the software system is separately estimated and the results aggregated to produce an estimate for the overall system. The requirement for this approach is that an initial design must be in place that indicates how the system is decomposed into different components.
Top-down: This approach is the opposite of the bottom-up method. An overall cost estimate for the system is derived from global properties, using either algorithmic or non-algorithmic methods. The total cost can then be split up among the various components. This approach is more suitable for cost estimation at the early stage.
Algorithmic methods
The algorithmic methods are based on mathematical models that produce cost estimate as a function of a number of variables, which are considered to be the major cost factors. Any algorithmic model has the form:
Effort = f(x1, x2, …, xn)
where {x1, x2, …, xn} denote the cost factors. The existing algorithmic methods differ in two aspects: the selection of cost factors, and the form of the function f..
Cost factors
Besides the software size, there are many other cost factors. The most comprehensive set of cost factors are proposed and used by Boehm et al in the COCOMO II model . These cost factors can be divided into four types:
Product factors: required reliability; product complexity; database size used; required reusability; documentation match to life-cycle needs;
Computer factors: execution time constraint; main storage constraint; computer turnaround constraints; platform volatility;
Personnel factors: analyst capability; application experience; programming capability; platform experience; language and tool experience; personnel continuity;
Project factors: multisite development; use of software tool; required development schedule.
The above factors are not necessarily independent, and most of them are hard to quantify. In many models, some of the factors appear in combined form and some are simply ignored. Also, some factors take discrete values, resulting in an estimation function with a piece-wise form.
4.2.2 Linear models
Linear models have the form:
Effort = å= + n
i i i x a a
1 0
where the coefficients a1, …, an are chosen to best fit the completed project data. The work of
Nelson belongs to this type of models . Boehm's comment that "there are too many nonlinear interactions in software development for a linear model to work well"  is widely accepted.
4.2.3 Multiplicative models
Multiplicative models have the form:
Effort = Õ=
n
i
x
i
i a a
1 0
Again the coefficients a1, …, an are chosen to best fit the completed project data. Walston-Felix used this type of model with each xi taking on only three possible values: -1, 0, +1. Doty model  also belongs to this class with each xi taking on only two possible values: 0, +1. These two models seem to be too restrictive on the cost factor values.
 Power function models
Power function models have the general form:
Effort = a´Sb
where S is the code-size, and a, b are (usually simple) functions of other cost factors. This class contains two of the most popular algorithmic models in use, as follows:
COCOMO (Constructive Cost Model) models
This family of models was proposed by Boehm . The models have been widely accepted in practice. In the COCOMOs, the code-size S is given in thousand LOC (KLOC) and Effort is in person-month.
A) Basic COCOMO. This model uses three sets of {a, b} depending on the complexity of the software only:
(1) for simple, well-understood applications, a = 2.4, b = 1.05;
(2) for more complex systems, a = 3.0, b = 1.15;
(3) for embedded systems, a = 3.6, b = 1.20.
The basic COCOMO model is simple and easy to use. As many cost factors are not considered, it can only be used as a rough estimate.
B) Intermediate COCOMO and Detailed COCOMO. In the intermediate COCOMO, a nominal effort estimation is obtained using the power function with three sets of {a, b}, with coefficient a being slightly different from that of the basic COCOMO:
(1) for simple, well-understood applications, a = 3.2, b = 1.05
(2) for more complex systems, a = 3.0, b = 1.15
(3) for embedded systems, a = 2.8, b = 1.20
Then, fifteen cost factors with values ranging from 0.7 to 1.66 are determined . The overall impact factor M is obtained as the product of all individual factors, and the estimate is obtained by multiplying M to the nominal estimate.
VERIFICATION:
Testing against specification of system or component. Study it by examining its inputs and relatedoutputs. Key is to devise inputs that have a higher likelihood of causing outputs that reveal the presence of defects. Use experience and knowledge of domain to identify such test cases. Failingthis a systematic approach may be necessary. Equivalence partitioning is where the input to a program falls into a number of classes. E.g. positive numbers vs. negative numbers. Programs normally behave the same way for each member of a class. Partitions exist for both input andoutput. Partitions may be discrete or overlap. Invalid data (i.e. outside the normal partitions) is one or more partitions that should be tested. Test cases are chosen to exercise each portion. Also test boundary cases (atypical, extreme, zero) since these frequently show up defects. For completeness, test all combinations of partitions. Black box testing is rarely exhaustive (becauseone doesn't test every value in an equivalence partition) and sometimes fails to reveal corruptiondefects caused by "weird" combination of inputs. Black box testing should not be used to try andreveal corruption defects caused, for example, by assigning a pointer to point to an object of thewrong type. Static inspection (or using a better programming language!) is preferable for this.
Testing based on knowledge of structure of component (e.g. by looking at source code).Advantage is that structure of code can be used to find out how many test case need to be performed. Knowledge of the algorithm (examination of the code) can be used to identify theequivalence partitions. Path testing is where the tester aims to exercise every independentexecution path through the component. All conditional statements tested for both true and falsecases. If a unit has n control statements, there will be up to 2n possible paths through it. Thisdemonstrates that it is much easier to test small program units than large ones. Flow graphs are a pictorial representation of the paths of control through a program (ignoring assignments, procedure calls and I/O statements). Use flow graph to design test cases that execute each path.Static tools may be used to make this easier in programs that have a complex branching structure.Tools support. Dynamic program analyzers instrument a program with additional code.
  Typically this will count how many times each statement is executed. At end, print out report showingwhich statements have and have not been executed. Problems with flow graph derived testing:Data complexity not taken into account.Does not test all paths in combination.Really only possible at unit and module testing stages because beyond that complexity is too high.
 Interface testing
Usually done at integration stage when modules or sub-systems are combined. Objective is todetect errors or invalid assumptions about interfaces between modules. Reason these are notshown up in unit testing is that test case may perpetuate same incorrect assumption made bymodule designer. Particularly important when OO development has been used. Four types of interface:1. Parameter: data (or occasionally function references) passed from one unit to another.2. Shared memory: block of memory shared between units (e.g. global variable) .One places data thereand the other retrieves it.3. Procedural: object-oriented or abstract data type form of interface, encapsulating several procedures.4. Message passing: one sub-system requests a service by passing a message. Client-server interfacealso used by some OO architectures.
Testing process:
Best testing process is to test each subsystem separately, as we have done in my project. Best doneduring implementation. Best done after small sub-steps of the implementation rather than largechunks. Once each lowest level unit has been tested, units are combined with related units andretested in combination. This proceeds hierarchically bottom-up until the entire system is tested asa whole. Typical levels of testing:Unit -procedure, function, methodModule -package, abstract data type, classSub-system - collection of related modules, cluster of classes, method-message pathsAcceptance testing - whole system with real data (involve customer, user, etc)Alpha testing is acceptance testing with a single client (common for bespoke systems).Beta testing involves distributing system to potential customers to use and provide feedback. In, this project, Beta testing has been followed. This exposes system to situations and errors that mightnot be anticipated by us.
                                       9. USER MANUAL

INPUTS AND OUTPUTS

The major inputs and outputs and major functions of the system are follows:

Inputs:

·        user is registered and enter his user id and password for login.
·        user enter user id or date to track the user login information
·        New users give his completed personnel, address and phone details for registration.
·        User gives his user id, hint question, answer for getting the forgotten password.
·        User can select the courses for registration
·        The payment is done by credit or cash.
·        The user can change the courses in a given duration of time.

Outputs:

·        Users can have their own preferences.
·        The user defined data can store in the centralized database.
·        Administrator will get the login information of a particular user.
·        The new user’s data will be stored in the centralized database.
·        User can get his forgot password.
                                      
                               10.CONCLUSION
The Project was focussed on providing a feasible solutionto the problems faced by institutes while registering new students into the college. The work of manually calling in students interviewing them allotting courses is very hectic. The institute would become a madhouse with people running everwhere to get their work done. Hence, the designed model keeps tracks of students and instructors, which ensures an organized environment. It provides a wireless network for effective communication between the college db and studnets. The model has options for online payment or cash whichever is easy for the student. It is by far the most useful software that is being used on a daily basis among various institutions around the world.
Therefore I can conclude by saying that the designed model fulfills all requirements to ensure that it benefits institutions through modernized means.  

REFERENCES
2)”The Unified Modeling Language User Guide” second edition by Grady Booch,James Rumbaugh and Ivar Jacobson.
3)”The unified software development process”,Pearson Education,India,2008 by Ivar Jacobson,Grady Booch and James Rumbaugh.

1 comment:

  1. When I thought about the way things have been recently, i owe my thanks to God for letting me find this amazing personality, i mailed Mr. alex roughly 2 months now, I was actually very uncertain about investing, very scared because i was also low on cash.I gave it my all, my first investment of $2,000 two weeks ago brought me $ 29,230 last week, and what intrigues me the most is the way him handles he partners, i recommend him too to my friend jeff, after trading with him, his testimonies have let me come here to attest for him. We are happy to meet a professional in you. I am proud to recommend him to any person who has a passion for trading, meet a good mentor and get good fortunes.Contact this veteran at: totalinvestmentcompany@gmail.com

    ReplyDelete