Software Engineering Lab Manual
Software Engineering Lab Manual
Dr Naveen Singh
(HOD-CSE)
Software Engineering LAB (BCS-651)
PO1: An ability to use the methodology and modern engineering tools necessary for
engineering practice.
Objective: Prepare a SRS document in line with the IEEE recommended standards.
Description:
An SRS is basically an organization's understanding (in writing) of a customer or potential client's system
requirements and dependencies at a particular point in time (usually) prior to any actual design or
development work. It's a two-way insurance policy that assures that both the client and the organization
understand the other's requirements from that perspective at a given point in time.
The SRS document itself states in precise and explicit language those functions and capabilities a software
system (i.e., a software application, an eCommerce Web site, and so on) must provide, as well as states any
required constraints by which the system must abide. The SRS also functions as a blueprint for completing a
project with as little cost growth as possible. The SRS is often referred to as the "parent" document because
all subsequent project management documents, such as design specifications, statements of work, software
architecture specifications, testing and validation plans, and documentation plans, are related to it.
It's important to note that an SRS contains functional and nonfunctional requirements only; it doesn't offer
design suggestions, possible solutions to technology or business issues, or any other information other than
what the development team understands the customer's system requirements to be.
It provides feedback to the customer. An SRS is the customer's assurance that the development
organization understands the issues or problems to be solved and the software behavior necessary to
address those problems. Therefore, the SRS should be written in natural language (versus a formal
language, explained later in this article), in an unambiguous manner that may also include charts,
tables, data flow diagrams, decision tables, and so on.
It decomposes the problem into component parts. The simple act of writing down software
requirements in a well-designed format organizes information, places borders around the problem,
solidifies ideas, and helps break down the problem into its component parts in an orderly fashion.
It serves as an input to the design specification. As mentioned previously, the SRS serves as the
parent document to subsequent documents, such as the software design specification and statement
of work. Therefore, the SRS must contain sufficient detail in the functional system requirements so
that a design solution can be devised.
It serves as a product validation check. The SRS also serves as the parent document for testing and
validation strategies that will be applied to the requirements for verification.
SRSs are typically developed during the first stages of "Requirements Development," which is the initial
product development phase in which information is gathered about what requirements are needed--and not.
This information-gathering stage can include onsite visits, questionnaires, surveys, interviews, and perhaps a
return-on-investment (ROI) analysis or needs analysis of the customer or client's current business
environment. The actual specification, then, is written after the requirements have been gathered and
analyzed.
The basic issues that the SRS shall address are the following:
a) Correct
b) Unambiguous
c) Complete
d) Consistent
e) Ranked for importance and/or stability
f) Verifiable
g) Modifiable
h) Traceable
● Correct - This is like motherhood and apple pie. Of course you want the specification to be correct.
No one writes a specification that they know is incorrect. We like to say - "Correct and Ever
Correcting." The discipline is keeping the specification up to date when you find things that are not
correct.
● Unambiguous - An SRS is unambiguous if, and only if, every requirement stated therein has only
one interpretation. Again, easier said than done. Spending time on this area prior to releasing the
SRS can be a waste of time. But as you find ambiguities - fix them.
● Complete - A simple judge of this is that is should be all that is needed by the software designers to
create the software.
● Consistent - The SRS should be consistent within itself and consistent to its reference documents. If
you call an input "Start and Stop" in one place, don't call it "Start/Stop" in another.
● Ranked for Importance - Very often a new system has requirements that are really marketing wish
lists. Some may not be achievable. It is useful provide this information in the SRS.
● Verifiable - Don't put in requirements like - "It should provide the user a fast response." Another of
my favorites is - "The system should never crash." Instead, provide a quantitative requirement like:
"Every key stroke should provide a user response within 100 milliseconds."
● Modifiable - Having the same requirement in more than one place may not be wrong - but tends to
make the document not maintainable.
● Traceable - Often, this is not important in a non-politicized environment. However, in most
organizations, it is sometimes useful to connect the requirements in the SRS to a higher level
document. Why do we need this requirement?
1. Introduction
1.1 Purpose
1.6 References
2. Overall Description
2.1 Product perspective
2.2 Product functions
2.3 User classes and characteristics
2.4 Operating environment
2.5 User environment
2.6 Design/implementation constraints
2.7 Assumptions and dependencies
4. System Features
4.1 System feature
Actions, which are represented by diamond shapes, show how two entities
share information in the database. In some cases, entities can be self-linked.
For example, employees can supervise other employees.
Attributes, which are represented by ovals. A key attribute is the unique,
distinguishing characteristic of the entity. For example, an employee's social
security number might be the employee's key attribute.
A multivalued attribute can have more than one value. For example, an
employee entity can have multiple skill values.
Connecting lines, solid lines that connect attributes to show the relationships of
entities in the diagram.
Cardinality specifies how many instances of an entity relate to one instance of
another entity. Ordinality is also closely linked to cardinality. While cardinality
specifies the occurrences of a relationship, ordinality describes the relationship
as either mandatory or optional. In other words, cardinality specifies the
maximum number of relationships and ordinality specifies the absolute
minimum number of relationships.
Components:
External Entity an outside system that sends or receives data, communicating with
the system being diagrammed. They are the sources and destinations of information
entering or leaving the system. They might be an outside organization or person, a
computer system or a business system. They are also known as terminators, sources
and sinks or actors. They are typically drawn on the edges of the diagram.
Process any process that changes the data, producing an output. It might perform
computations, or sort data based on logic, or direct the data flow based on business
rules. A short label is used to describe the process, such as “Submit payment.”
Data store files or repositories that hold information for later use, such as a database
table or a membership form. Each data store receives a simple label, such as “Orders.”
Data flow the route that data takes between the external entities, processes and data
stores. It portrays the interface between the other components and is shown with
arrows, typically labeled with a short data name, like “Billing details.”
DFD rules
2. DFD Level 1 provides a more detailed breakout of pieces of the Context Level
Diagram. You will highlight the main functions carried out by the system, as you
break down the high-level process of the Context Diagram into its subprocesses.
Practical Number: 4
Model your analysis of your usage requirements in the form of a system use case
model
Use case models should be developed from the point of view of your project
stakeholders and not from the (often technical) point of view of developers. There are
guidelines for:
Use Cases
Actors
Relationships
1. Use Cases
A use case describes a sequence of actions that provide a measurable value to an
actor. A use case is drawn as a horizontal ellipse on a UML use case diagram.
2. Actors
An actor is a person, organization, or external system that plays a role in one or more
interactions with your system (actors are typically drawn as stick figures on UML Use
Case diagrams).
3. Relationships
There are several types of relationships that may appear on a use case diagram:
The rectangle around the use cases is called the system boundary box and as the
name suggests it indicates the scope of your system – the use cases inside the
rectangle represent the functionality that you intend to implement.
we start by identifying as many actors as possible. You should ask how the actors
interact with the system to identify an initial set of use cases. Then, on the diagram,
you connect the actors with the use cases with which they are involved. If actor
supplies information, initiates the use case, or receives any information as a result of
the use case, then there should be an association between them.
Conclusion: The Use case diagram was made successfully by following the steps
described above.
Output:
Authentication
User/BT Searching
Data Transfer
Administrator
Mobility Management
login
Employee
Enquiry
Administrator
Report
Resources Update
Practical Number: 5
Description:
Hardware Requirements:
Pentium 4 processor (2.4 GHz), 128 Mb RAM, Standard keyboard n mouse, colored
monitor.
Software Requirements:
Theory:
Activity diagrams are typically used for business process modeling, for modeling the
logic captured by a single usecase or usage scenario, or for modeling the detailed
logic of a business rule. Although UML activity diagrams could potentially model the
internal logic of a complex operation it would be far better to simply rewrite the
operation so that it is simple enough that you don’t require an activity diagram. In
many ways UML activity diagrams are the object-oriented equivalent of flow charts
and data flow diagrams (DFDs) from structured development.
● Initial node. The filled in circle is the starting point of the diagram. An initial
node isn’t required although it does make it significantly easier to read the
diagram.
● Activity final node. The filled circle with a border is the ending point. An
activity diagram can have zero or more activity final nodes.
● Join. A black bar with several flows entering it and one leaving it. All flows
going into the join must reach it before processing may continue. This
denotes the end of parallel processing.
● Decision. A diamond with one flow entering and several leaving. The flows
leaving include conditions although some modelers will not indicate the
conditions if it is obvious.
● Merge. A diamond with several flows entering and one leaving. The
implication is that one or more incoming flows must reach this point until
processing continues, based on any guards on the outgoing flow.
● Flow final. The circle with the X through it. This indicates that the process
stops at this point.
General Guidelines
Decision Points
Decision Points
Guards
Parallel Activities
Swimlane Guidelines
.Action-Object Guidelines
General Guidelines
● Activities
● Question “Black Hole” Activities. A black hole activity is one that has
transitions into it but none out, typically indicating that you have either missed
one or more transitions.
● Question “Miracle” Activities. A miracle activity is one that has transitions out
of it but none into it, something that should be true only of start points.
● Decision Points
A decision point is modeled as a diamond on a UML Activity diagram.
● Decision Points Should Reflect the Previous Activity. In figure1 we see that
there is no label on the decision point, unlike traditional flowcharts which
would include text describing the actual decision being made, we need to
imply that the decision concerns whether the person was enrolled in the
university based on the activity that the decision point follows. The guards,
depicted using the format [description], on the transitions leaving the decision
point also help to describe the decision point.
● Avoid Superfluous Decision Points. The Fill Out Enrollment Forms activity in
FIGURE1 includes an implied decision point, a check to see that the forms
are filled out properly, which simplified the diagram by avoiding an additional
diamond.
● Guards
● Guards Should Not Overlap. For example guards such as x <0, x = 0, and x >
0 are consistent whereas guard such as x <= 0 and x >= 0 are not consistent
because they overlap – it isn’t clear what should happen when x is 0.
● Guards on Decision Points Must Form a Complete Set. For example, guards
such as x < 0 and x >0 are not complete because it isn’t clear what happens
when x is
● Exit Transition Guards and Activity Invariants Must Form a Complete Set. An
activity invariant is a condition that is always true when your system is
processing an activity.
● Guards Are Optional. It is very common for a transition to not include a guard,
even when an activity includes several exit transitions.
5. Parallel Activities
It is possible to show that activities can occur in parallel, as you see in FIGURE 1
depicted using two parallel bars. The first bar is called a fork, it has one transition
entering it and two or more transitions leaving it. The second bar is a join, with two or
more transitions entering it and only one leaving it.
● A Fork Should Have a Corresponding Join. In general, for every start (fork)
there is an end (join). In UML 2 it is not required to have a join, but it usually
makes sense.
● Swimlane Guidelines
7 Action-Object Guidelines
Activities act on objects, In the strict object-oriented sense of the term an action
object is a system object, a software construct. In the looser, and much more useful
for business application modeling, sense of the term an action object is any sort of
item. For example in FIGURE 3 the ExpenseForm action object is likely a paper form.
Conclusion: The activity diagram was made successfully by following the steps
described above.
Practical Number: 6
Objective: Identify the classes. Classify them as weak and strong classes and draw
the class diagram.
Description:
Classes
Illustrate classes with rectangles divided into compartments. Place the name
of the class in the first partition (centered, bolded, and capitalized), list the
attributes in the second partition (left-aligned, not bolded, and lowercase), and
write operations into the third.
Active Classes
Active classes initiate and control the flow of activity, while passive classes
store data and serve other classes. Illustrate active classes with a thicker
border.
Visibility
Use visibility markers to signify who can access the information contained
within a class. Private visibility, denoted with a - sign, hides information from
anything outside the class partition. Public visibility, denoted with a + sign,
allows all other classes to view the marked information. Protected visibility,
denoted with a # sign, allows child classes to access information they
inherited from a parent class.
Associations
Multiplicity (Cardinality)
The UML Class diagram is used to visually describe the problem domain in terms of
types of objects (classes) related to each other in different ways.
i) Association
The most abstract way to describe static relationship between classes is using the
Association link, which simply states that there is some kind of a link or a
dependency between two classes or more.
Weak Association
ClassA may be linked to ClassB in order to show that one of its methods includes
parameter of ClassB instance, or returns instance of ClassB.
Strong Association
ClassA may also be linked to ClassB in order to show that it holds a reference to
ClassB instance.
ii) Aggregation (Shared Association) (Weak Class)
In cases where there’s a part-of relationship between ClassA (whole) and ClassB
(part), we can be more specific and use the aggregation link instead of the
association link, highlighting that the same ClassB instance can also be aggregated
by other classes in the application (therefore aggregation is also known as shared
association). Class B is weak Class.
It’s important to note that the aggregation link doesn’t state in any way that ClassA
owns ClassB nor that there’s a parent-child relationship (when parent deleted all its
child’s are being deleted as a result) between the two. Actually, quite the opposite!
The aggregation link is usually used to stress the point that ClassA instance is not
the exclusive container of ClassB instance, as in fact the same ClassB instance has
another container/s.
The association link can replace the aggregation link in every situation, while
aggregation cannot replace association in situations where there’s only a ‘weak link’
between the classes, i.e. ClassA has method/s that contain parameter of ClassB, but
ClassA doesn’t hold reference to ClassB instance.
Martin Fowler suggest that the aggregation link should not be used at all because it
has no added value and it disturb consistency, Quoting Jim Rumbaugh "Think of it as
a modeling placebo".
We should be more specific and use the composition link in cases where in addition
to the part-of relationship between ClassA and ClassB - there’s a strong lifecycle
dependency between the two, meaning that when ClassA is deleted then ClassB is
also deleted as a result. Class Person is strong class.
The composition link shows that a class (container, whole) has exclusive ownership
over other class/s (parts), meaning that the container object and its parts constitute a
parent-child/s relationship.
Unlike association and aggregation, when using the composition relationship, the
composed class cannot appear as a return type or parameter type of the composite
class. Thus, changes to the composed class cannot propagate to the rest of the
system. Consequently, usage of composition limits complexity growth as the system
grows.
Clarification: It is possible for a class to be composed by more than one class. For
example, ClassA may be composed by ClassB and ClassC. However, unlike
aggregation, instances of ClassB and ClassC will never share the same ClassA
instance. That would violate the propagation of changes principle. ClassB instance
will have its own instance of ClassA, and ClassC instance will have its own instance
of ClassA.
Conclusion: The Class diagram was made successfully by following the steps
described above.
When using a component diagram to show the internal structure of a component, the
provided and required interfaces of the encompassing component can delegate to
the corresponding interfaces of the contained components.
The example above illustrates what a typical insurance policy administration system
might look like. Each of the components depicted in the above diagram may have
other component diagrams illustrating its internal structure.
The component diagram notation set now makes it one of the easiest UML diagrams
to draw. Figure 1 shows a simple component diagram using the former UML 1.4
notation; the example shows a relationship between two components: an Order
System component that uses the Inventory System component. As you can see, a
component in UML 1.4 was drawn as a rectangle with two smaller rectangles
obtruding from its left side.
Output:
Hardware Requirements:
Pentium 4 processor (2.4 GHz), 128 Mb RAM, Standard keyboard and mouse,
colored monitor.
Theory:
UML sequence diagrams model the flow of logic within the system in a visual
manner, enabling the user both to document and validate the logic, and are
commonly used for both analysis and design purposes. Sequence diagrams are the
most popular UML artifact for dynamic modeling, which focuses on identifying the
behavior within your system. Sequence diagrams, along with class diagrams and
physical data models are the most important design-level models for modern
application development.
2. The logic of methods. Sequence diagrams can be used to explore the logic
of a complex operation, function, or procedure. One way to think of sequence
diagrams, particularly highly detailed diagrams, is as visual object code.
The dashed lines hanging from the boxes are called object lifelines, representing the
life span of the object during the scenario being modeled. The long, thin boxes on the
lifelines are activation boxes, also called method-invocation boxes, which indicate
processing is being performed by the target object/class to fulfill a message.
How to Draw Sequence Diagrams
Sequence diagramming really is visual coding, even when you are modeling a usage
scenario via a system-level sequence diagram.
While creating a sequence diagram ,start by identifying the scope of what you are
trying to model.You should typically tackle small usage scenarios at the system level
or a single method/service at the detailed object level.
You should then work through the logic with at least one more person, laying out
classifiers across the top as you need them. . The heart of the diagram is in the
messages, which you add to the diagram one at a time as you work through the
logic. You should rarely indicate return values, instead you should give messages
intelligent names which often make it clear what is being returned.
It is interesting to note that as you sequence diagram you will identify new
responsibilities for classes and objects, and, sometimes, even new classes. The
implication is that you may want to update your class model appropriately, agile
modelers will follow the practice Create Several Models in Parallel, something that
CASE tools will do automatically. Remember, each message sent to a class invokes
a static method/operation on that class each message sent to an object invokes an
operation on that object.
Regarding style issues for sequence diagramming, prefer drawing messages going
from left-to-right and return values from right-to-left, although that doesn’t always
work with complex objects/classes. Justify the label on messages and return values,
so they are closest to the arrowhead. Also prefer to layer the sequence diagrams:
from left-to-right. indicate the actors, then the controller class(es), and then the user
interface class(es), and, finally, the business class(es). During design, you probably
need to add system and persistence classes, which you should usually put on the
right-most side of sequence diagrams. Laying your sequence diagrams in this
manner often makes them easier to read and also makes it easier to find layering
logic problems, such as user interface classes directly accessing persistence .
Another example of a sequence diagram
AUTHENTIC
: User/BT
1: Access_ Request()
2: Authenticity_check()
3: Access_Granted()
4: Device_Search()
5: Range_Check()
6: Frequency_Selection()
7: Signalling_Complete()
8: Results()
9: Send_Data()
10: Transmitting()
11: Acknowldegement()
Practical Number: 9
Description:
OUTPUT:
Collaboration diagram for issuing Book:
Withdrawal/Deposit: The software allows the user to select the kind of operation to be
performed i.e. whether he wants to withdraw or deposit the money.
Amount:- The amount to be withdrawan or deposited is then mentioned by the user.
Denominations:- The user is also provided with the facility to mention the required
denominations. Once he enters his requirements the machine goes through its calculations
on the basis of current resources to check whether it is possible or not. If yes, the amount is
given to the user otherwise other possible alternatives are displayed.
oney Deposition:- Money deposition shall be done with an envelope. After typing the
amount to be deposited and verification of the same, the customer must insert the envelope
in the depositary.
ance Transfer:- Balance transfer shall be facilitated between any two accounts linked to the
card for example saving and checking account.
Billing:- Any transaction shall be recorded in the form of a receipt and the same would be
dispensed to the customer. The billing procedures are handled by the billing module that
enable user to choose whether he wants the printed statement of the transaction or just the
updation in his account.
Balance Enquiry:- Balance enquiry for any account linked to the card shall be facilitated.
Cancelling:- The customer shall abort a transaction with the press of a Cancel key. For
example on entering a wrong depositing amount. In addition the user can also cancel the entire
session by pressing the abort key and can start a fresh session all over again.
Map locating other machines:- The machine also has a facility of displaying the map that
marks the locations of other ATM machines of the same bank in the entire city.
Mobile Bills Clearings:- The machine also allows the user to clear off his pending mobile
bills there only, if the name of his operator is mentioned there in the list. The machine displays
the list of the companies supported by that bank to the user.
Software Engineering
Laboratory Manual
2.3 User Characteristics
There are different kind of users that will be interacting with the system. The intended user of
the software are as follows:-
User A: A novice ATM customer. This user has little or no experience with
electronic means of account management and is not a frequent user of the product.
User A will find the product easy to use due to simple explanatory screens for each
ATM function. He is also assisted by an intarctive teaching mechanism at every
atep of the transaction, both with the help of visual and audio help sessions.
2.4
Constraints
The number of invalid pin entries attempted must not exceed three. After three
unsuccessful login attempts, the card is seized/blocked and need to be unlocked by
the bank.
The simultaneous access to an account through both, the ATM and the bank is not
supported.
The minimum amount of money a user can withdraw is Rs 100/- and the
maximum amount of money a user can withdraw in a session is Rs.10,000/- and
the maximum amount he can withdraw in a day is Rs 20,000/-
fore the transaction is carried out, a check is performed by the machine to ensure
that a minimum amount of Rs 1000/- is left in the user’s account after the
withdrawal failing which the withdrawal is denied.
← The minimum amount a user can deposit is Rs 100/- and the maximum amount he
can deposit is Rs 10,000/-.
Software Engineering
Laboratory Manual
A user can select only that cellular operator for mobile bill clearings that is supported by the
bank.The software requires a minimum memory of 20GB. The databse used should be
Oracle7.0.There shall be a printer installed with the machine to provide the use er with the printed
statement of the transaction. For voice interactions, speakers should also be there to accompany the
machine.
The requirements stated in the SRS could be affected by the following factors:
One major dependency that the project might face is the changes that need to be incorporated with
the changes in the bank policies regarding different services. As the policies changes the system
needs to be updated with the same immediately. A delay in doing the same will result to
tremendous loss to the bank. So this should be changed as and when required by the developer.
2.6
Another constraint relating to the operating environment is that we are specific to Oracle Database.
2.7
The project could be largely affected if some amount is withdrawn from the user’s account from
the bank at the same time when someone is accessing that account through the ATM machine.
Such a condition shall be taken care of.
2.8
At this stage no quantities measures are imposed on the software in terms of speed and memory
although it is implied that all functions will be optimized with respect to speed and memory.
It is furthermore assumed that the scope of the package will increase considerably in the future.
Laboratory Manual
3.1.1
User Interface Requirements
The interface provided to the user should be a very user-friendly one and it should provide an
optional interactive help for each of the service listed. The interface provided is a menu driven
one and the following screens will be provided:-
1. A login screen is provided in the beginning for entering the required username/pin no.
and account number.
2. An unsuccessful login leads to a reattempt(maximum three) screen for again entering the
same information. The successful login leads to a screen displaying a list of supported
languagesfrom which a user can select any one.
3. In case of administrator, a screen will be shown having optins to reboot system, shut
down system, block system, disable any service.
4. In case of reboot/ shut down, a screen is displayed to confirm the user’s will to reboot
and also allow the user to take any backup if needed.
5. In case of blocking system, a screen is provided asking for the card no. By entering the
carnd no of a particular user, system accees can be blocked for him.
6. Administrator is also provided with a screen that enables him to block any service
provided to the user by enterin the name of the service or by selecting it from the list
displayed.
7. After the login, a screen with a number of options is then shown to the user. It contains
all the options along with their brief description to enable the user to understand their
functioning and select the proper option.
9. A screen will be provided that displays the location of all other ATMs of same bank
elsewhere in the city.
10. A screen will be provided for the user to perform various transactions in his account.
The following reports will be generated after each session dealt with in the machine:-
1. The login time and logout time along with the user’s pin no and account number is
registered in the bank’s database.
2. The ATM’s branch ID through which the session is established is also noted down in the
bank’s database.
3. Various changes in the user’s account after the transactions,if any, are reported in the
database.
4. A printed statement is generated for the user displaying all the transactions he
performed.
Other various user interface requirements that need to be fulfilled are as follows:-
There are various hardware components with which the machine is required to interact.
Various hardware interface requirements that need to be fulfilled for successful functioning of
the software are as follows:-
o Width - 85.47mm-85.72mm
o Height - 53.92mm-54.03mm
o Thickness - 0.76mm+0.08mm
The slot for a card in thye card reader may include an extra indentation for the
embossed area of the card. In effect it acts as a polarization key and may be used
to aid the correct insertion orientation of the card. This is an additional
characteristic to the magnetic field sensor which operates off the magnetic stripe
and is used to open a mechanical gate on devices such as ATMs.
There shall be a 40 column dot matrix receipt printer.
There shall be a 40 column dot matrix statement printer.
The receipt dispenser shall be a maximum of 4" width and 0.5" thickness.
The statement dispenser shall be a maximum of 5" width and 0.5" thickness.
The envelope depository shall be a maximum of 4.5" width, 10" length and 0.5"
thickness.
The transaction management software used to manage the transaction and keep track
of resources shall be BMS version 2.0.
The card management software used to verify pin no and login shall be CMS
version 3.0.
Yamaha codecs 367/98 for active speakers.
The database used to keep record of user accounts shall be Oracle version7.0.
The machine needs to communicate with the main branch for each session for various functions such as login
verification, account access etc. so the following are the various communication interface requirements that
are needed to be fulfilled in order to run the software successfully:-
The system will employ dial-up POS with the central server for low cost
communication.
The communication protocol used shall be TCP/IP.
4.
System Features
Description
The system is designed to provide the user with the facility of remote banking and perform various
other functions at an interface without any aid of human bank teller. The functioning of the system
shall be as follows:-
At the start, the user is provided with a log in screen and he is required to enter his PIN
NO. and Account details which are then verified by the machine. In case of an unsuccessful attempt
a user is asked again for his credentials but the maximum number of attempt given to the user is
limited to 3 only, failing which his card is blocked and need to be unblocked by the bank for any
future use.
After a successful log in, the user is presented with a list of language. The user can select any one in the list
for interaction with the machine for the entire session. After the language selection the user is also asked
whether he wants to fix that language for future use also so that he is never asked for language in future. In
addition there is also a facility for the user to switch to any other language during that session.
After the language selection, the user is directed towards a main page that displays a set of options/services
along with their brief description, enabling the user to understand their functioning. The user can select any
of the listed option and can continue with the transaction.
The machine also provides the user with a number of miscellaneous services such as:
The machine lists a set of operators that are supported by the bank. A user can clear off his pending mobile
phone bills be selecting his operator.
The machine also has the facility to display a map that marks the location of other ATMs of the same bank in
the city. This may help the user to look for the ATM nearest to his destination.
At any moment if the user wants to abort the transaction, he is provided with an option to cancel it. Just by
pressing the abort button he can cancel all the changes made so far and can begin with a new transaction.
After the user is finished with his work, for security purpose, he is required to log out and then take his card
out of the slot.
Validity Checks
In order to gain access to the system, the user is required to enter his/her correct user id/pin no and account
no failing which his card may be blocked.
The user can access only one account at a time and can enter only one account no.
Also if the user is an administrator, he is required to enter his login id in order to access and change the
facilities provided by the system.
Sequencing Information
The information about the users and their account should be entered into the database prior to any of the
transactions and the backup be maintained for all account information
Error Handling/ Response to Abnormal Situations
If any of the above validation/sequencing flow does not hold true, appropriate error messages will be
prompted to the user for doing the needful.
2. Receipt Generation
After ech transaction user has performed, a receipt is generated that contains all the information about the
transaction. The format of the generated receipt is as shown below:-
KPM BANK
Account No:-
User Name:-
TRANSACTIONS:
FROM
TO TYPE
AMOUNT
Logout Time:- BARCODE
Nonfunctional Requirements
5.1 Performance Requirements
The following list provides a brief summary of the performance requirements for the software:
5.1.1 Capacity
The card verification time must not exceed 0.8 sec. under normal server workload and 1 sec. under peak
server workload.
The pin number verification time must not exceed 0.3 sec. under normal server workload and 0.5 sec. under
peak server workload.
Account balance display time must not exceed 2 sec. under normal server workload and 3 sec. under peak
server workload.
Account balance transfer time must not exceed 3 sec. under normal server workload and 4 sec. under peak
server workload.
Cash withdrawal transaction time must not exceed 4 sec. under normal server workload and 5 sec. under
peak server workload.
Deposit transaction time after insertion of the deposit envelope must not exceed 5 sec. under normal server
workload and 6 sec. under peak server workload.
Receipt printing time after must not exceed 3 sec. under normal server and peak server workload.
Touch screen and button response time must not exceed 5000ms.
Credit card advance time must not exceed 6 sec. under normal traffic and server and peak traffic and server
workload.
5.1.3 Quality
The primary objective s to produce quality software. As the quality of a piece of software is difficult to
measure quantitatively, the following guidelines will be used when judging the quality of the software:
5.2.1
Reliability
The data communication protocol shall be such that it ensures reliability and quality of data and voice
transmission in a mobile environment. For example, CDMA.
5.2.2
Availability
The product will have a backup power supply incase of power failures.
Any abnormal operations shall result in the shutting down of the system.
After abnormal shutdown of the ATM, the system shall have to be manually restarted by a maintenance
personnel.
There should be no inconsistency introduced in the account during whose transaction the system is
abnormally shut down.
5.2.3
Security
The system shall be compatible with AIMS security standards.
The system shall have two levels of security i.e. ATM card and pin verification both authenticated by the
CMS software.
The Encryption standard used during pin transmission shall be triple DES.
The password shall be 6-14 characters long.
Passwords shall not contain name of customers as they are easy to be hacked.
User should be provided with only three attempts for login failing which his card needs to be blocked.
The product cabinet cover shall be manufactured using Fiber glass for security purposes.
5.2.4 Maintainability
The system components i.e. modem, memory, disk, drives shall be easily serviceable without
requiring access to the vault.
The system should have the mechanism of self-monitoring periodically in order to detect any fault.
The system should inform the main branch automatically as soon as it detects any error. The kind of
fault and the problem being encountered should also be mentioned by the system automatically.
The Administrator has the authority to fix the rules and regulations and to set or update the
policies as and when required.
The staff at the bank performs the following:
a. Making the entries in the system regarding all the details of the bank account of the
user.
b. Keeping the bank account of the user updated as soon as changes are encountered so
that the data is in consistent state.
d. Unblocking of ATM card that got blocked due to more than three unsuccessful login
attempt.
e. Blocking of a lost/stolen ATM card on complaint of the user, only if he presents his
verification and a FIR filed for that case.
f. Costantly monitor all the ATMs in the city to check whether any one of them is
encountering any fault.