Professional Documents
Culture Documents
Basics of Programming
Courses
Course Objective
Course Content
1. Introduction to Programming
i. What is Programming?
ii. Datatypes
v. Control Structures
https://aspire.tcs.com/aspire/courses/basics_of_programming/index.html 1/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
5. Programming Approaches
i. Structured Programming
i. Introduction to Optimization
i. Introduction to Testing
v. Testing Techniques
https://aspire.tcs.com/aspire/courses/basics_of_programming/index.html 2/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
vii. Debugging
Courses
https://aspire.tcs.com/aspire/courses/basics_of_programming/index.html 3/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.1_what-is-programming_1.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
There are two ways that are commonly used to plan the solution
to a problem. These are to draw a flowchart and to write pseudo code, or both.
Pseudo code
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.1_what-is-programming_2.html 1/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
pseudo code is not executable on the computer. It lets you state your solution
with more precision than plain English. However psuedo code has lesser
precision than is required when using a formal programming language. An
example is given below:
Read n
Print i
Increment i
end while
Stop
In the above example, the program enters the while loop only if
the condition ( i less than or equal to n) is true. Two statements Print i and
Increment i are executed for each iteration. At the end of each iteration, the
condition is evaluated again and the loop continues as long as the condition is
true.
Flowchart
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.1_what-is-programming_2.html 2/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Please refer the links below to learn more about pseudo code and
flow chart.
http://ceng.anadolu.edu.tr/emrekacmaz/bil158/flowchart-
pseudocode-examples.pdf
http://ozark.hendrix.edu/~burch/csbsju/cs/150/sched/pseudo.pdf
http://www.cosc.canterbury.ac.nz/tim.bell/dt/Tutorial_Pseudocode.pdf
http://users.csc.calpoly.edu/~jdalbey/SWE/pdl_std.html
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.1_what-is-programming_2.html 3/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.1_what-is-programming_2.html 4/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
1. Desk-checking
2. Translating
3. Debugging
Desk-checking
Translating
II. then translates the program into a form which the computer
can understand. A by-product of the process is that the
translator tells us if we have improperly used the
programming language. These types of mistakes are called
as syntax errors. The translator gives descriptive error
messages.
Debugging
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.1_what-is-programming_3.html 2/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.1_what-is-programming_3.html 3/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.2_why-programming-is-required_1.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
1. Machine languages
2. Assembly languages
3. High-level languages
5. Natural languages
1. Machine languages
2. Assembly languages
They are not as convenient to use as the more recent languages. At the time
they were developed, however, they were considered as a great leap forward.
To replace the 1s and 0s used in machine language, assembly languages use
mnemonic codes. Mnemonic codes are abbreviations that are easy to
remember: A for add, C for compare, MP for Multiply and so on. Although
these codes are not English words, they are better accepted than numbers (0s
and 1s)alone. Just like machine language, each type of computer has its own
assembly language.
3. High-Level Languages
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.2_why-programming-is-required_2.html 3/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
5. Natural Languages
http://homepage.cs.uri.edu/faculty/wolfe/book/Readings/Reading13.htm
https://aspire.tcs.com/aspire/courses/basics_of_programming/module1/session1.2_why-programming-is-required_3.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
programming concepts. For many years, Pascal was considered the entry
language for such people, and was generally used in schools and universities to
teach programming at a professional level. Nowadays more "practical"
languages like C++, C#, and Java are taught, for the reason that they provide a
more direct approach to learning how to develop software with tools that are
more commercially viable than Pascal.
Requirement gathering
Software release
Documentation
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.1_overview-of-software-development_1.html 2/2
12/9/13 Introduction to Computer Programs
Basics of Programming
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.1_overview-of-software-development_2.html 1/6
12/9/13 Introduction to Computer Programs
At the design documents stage, you have to define what is in that black box.
Good development tools save a lot of time for the developers, plus
money in terms of improved productivity. In terms of time saving the most
important development tools are editors and debuggers. An editor helps a
developer to write code quickly.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.1_overview-of-software-development_2.html 3/6
12/9/13 Introduction to Computer Programs
2.1.1.5 Testing
forget to release it. This is usually referred to as memory leakage. When testing
goes on for many days or weeks, it often results in allocation of all of the
available memory until no memory is left. This is the point where your
software starts showing abnormal behavior. Another potential problem in
long-term operation is counter overflow. This happens when you increment a
counter but forget to decrement it resulting in an overflow when the product is
used for long time. The regression testing may be started as soon as some
components are ready. This type of testing requires, by its very nature, a very
long period of time. The process should be continued as more components of
the product are integrated. The process of integration and communication
through interfaces may create new bugs in the code.
Expected results
Results obtained
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.1_overview-of-software-development_2.html 5/6
12/9/13 Introduction to Computer Programs
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.1_overview-of-software-development_2.html 6/6
12/9/13 Introduction to Computer Programs
Basics of Programming
Bug fixes
New functionality
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.1_overview-of-software-development_3.html 1/3
12/9/13 Introduction to Computer Programs
Future enhancements
2.1.1.7 Documentation
products.
In addition to that, you may also want to add new features to the
product for the next release because competitor products have other features.
Better support will increase your customer loyalty and will create referral
business. You may adopt two strategies to add new features. You may provide
an upgrade to the current release as a patch, or wait till you have developed a
list of new features and make a new version. Both strategies are useful
depending how urgent the requirement for new features is.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.1_overview-of-software-development_3.html 3/3
12/9/13 Introduction to Computer Programs
Basics of Programming
What is a Problem?
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_1.html 1/2
12/9/13 Introduction to Computer Programs
state and desired state. A problem could also be the result of the knowledge
that there is a gap between the actual and desired or ideal state of objectives.
Clarity of the problem is determined by the clarity of the knowledge which one
precisely wants and which one has. Greater clarity of the problem will help in
finding a better and an effective solution.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_1.html 2/2
12/9/13 Introduction to Computer Programs
Basics of Programming
There are different ways of problem solving – each has its own
advantages and disadvantages. The process an individual adopts as a manager
will be influenced by organizational policies, his/her own personality and
communication style and the kind of information available about the problem.
Broadly, there are 2 problem solving models available to a manager.
A. Rational Problem-Solving
What is happening?
Where is it happening?
When is it happening?
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_2.html 2/3
12/9/13 Introduction to Computer Programs
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_2.html 3/3
12/9/13 Introduction to Computer Programs
Basics of Programming
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_3.html 1/4
12/9/13 Introduction to Computer Programs
Brainstorming
Checklists
Once the root cause is found, plans can be made to fix it.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_3.html 3/4
12/9/13 Introduction to Computer Programs
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_3.html 4/4
12/9/13 Introduction to Computer Programs
Basics of Programming
That is, what will occur as a result of the solution? This whole
process is about fixing or closing the gap between the problem and the goal.
Writing down the problem ensures that they are not side-tracking from, but
addressing the problem.
Reading
Discussing
Asking Questions
Sleeping on it
Brainstorming
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_4.html 1/2
12/9/13 Introduction to Computer Programs
If you want, add images next to your main line that illustrate
what each line means to you (some people think better with
pictures, others with words).
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_4.html 2/2
12/9/13 Introduction to Computer Programs
Basics of Programming
5. Select the best solution: Now that there are a wide variety of
possible solutions available, it is time to select the best solution from among
them to fix the problem, given the circumstances, resources and other
considerations. Here the managers are trying to figure out what exactly would
work best given the nature of the problem. There are always a number of
things that can affect a solution, for instance, money, time, resources,
procedures, rules, policies, and so on. All of these factors must be thought
about. Managers should prioritize the solutions by their effectiveness. This is a
slow process of elimination. There may be some possible suggestions that may
need to be immediately eliminated. Eventually, managers should narrow down
the choices to one best possible solution which will promise them the best or
optimal outcomes.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_5.html 1/2
12/9/13 Introduction to Computer Programs
When does the action called for by the decision go into effect?
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_5.html 2/2
12/9/13 Introduction to Computer Programs
Basics of Programming
www.cls.utk.edu/pdf/ls/Week3_Lesson21.pdf
www.pitt.edu/~groups/probsolv.html
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.2_overview-of-problem-solving-techniques_6.html 2/2
12/9/13 Introduction to Computer Programs
Basics of Programming
Edit time is the phase during which the code of the program is
being edited. During this phase, the code may not be finalised. The editing is
usually performed by a human programmer.
Compile time is the phase during which the edited program or the
source code is translated into machine code by a compiler.
Run time is the phase during which the behavior of the program
is exhibited. Run time is the time during which a program is running
(executing), in contrast to other phases of a program's lifecycle such as compile
time, link time, load time, etc.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module2/session2.3_phases-in-the-execution-of-a-computer-program_1.html 2/2
12/9/13 Introduction
Basics of Programming
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.1_introduction-to-basic-programming-concepts.html 1/1
12/9/13 Datatypes
Basics of Programming
3.2 Datatypes
sum = x+y
Here the two numbers are the data and the type of data (numeric
data-integer, decimal etc.) is data type. In more elaborate terms, a data type
used in a program determines the type of data, memory needed for storing the
data, and the kind of operation that can be performed with the data (e.g. you
can multiply two numbers together, you can concatenate alphabets and make
it a word and multiple words into a sentence.)
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.2_datatypes_1.html 1/2
12/9/13 Datatypes
What can we infer from the figure above? We can see that
different types of data like integer , string , date etc. have been used in the
above form.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.2_datatypes_1.html 2/2
12/9/13 Datatypes
Basics of Programming
Data types are divided into primitive and composite types. The
primitive data types are the basic data types that are available in most of the
programming languages.
The data types that are derived from primary data types are
known as non-primitive or composite data types. These data types are used to
store group of values. Composite type includes Array, Structure and Class etc.
Numeric Types
Common sub
Data Type Description Example
types
Integer int, long represents integers 9009, -1
Floating- represents real 99.99,
float , double
point numbers 0.0001
Table 3.2 : Numeric Types
types.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.2_datatypes_2.html 2/2
12/9/13 Variables
Basics of Programming
The input data needed for a program and the output data
generated by the program are stored in the computer memory. While writing a
program, the programmer needs to specify the memory required for storing the
data needed for the program and generated by the program. The memory
location where data is stored is called a variable. The program can change the
data in that memory location any number of times, hence the memory location
is named variable. Program also needs memory location where it can store
data but cannot alter it later. Such memory location is called constant memory
location.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.3_variables_1.html 1/3
12/9/13 Variables
Program Steps:
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.3_variables_1.html 2/3
12/9/13 Variables
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.3_variables_1.html 3/3
12/9/13 Variable
Basics of Programming
Initializing a variable
data-type variable-name;
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.3_variables_2.html 1/3
12/9/13 Variable
counter = 10;
gender = ‘F’;
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.3_variables_2.html 2/3
12/9/13 Variable
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.3_variables_2.html 3/3
12/9/13 Operators
Basics of Programming
int result; // declare a variable result of type int to store the result
after operation.
result = num1 + num2; // add num1 and num2 and store the sum in
variable result.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.4_operators.html 1/2
12/9/13 Operators
http://msdn.microsoft.com/en-us/library/x04xhy0h.aspx
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.4_operators.html 2/2
12/9/13 Control Structures
Basics of Programming
3.5.1 Introduction
For example, every day a person drives his car from city A to city
B through a straight national highway to reach his office. One day, there is a
big traffic jam on the way to city B. If the person wants to reach city B then the
he has to select an alternate route. Here changing route is equal to changing
the flow of program (controlling the flow) and the decision of selectiing an
alternate route will be based on some parameters like distance or condition of
the road.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.5_control-structures_1.html 1/2
12/9/13 Control Structures
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.5_control-structures_1.html 2/2
12/9/13 Control Structures
Basics of Programming
3.5.2.1 Sequence:
3.5.2.2 Selection
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.5_control-structures_2.html 1/2
12/9/13 Control Structures
if
if-else
switch
3.5.2.3 Repetition
while
do-while
for
http://www.scriptingmaster.com/asp/conditional-logic.asp
http://www.tutorialspoint.com/java/java_loop_control.htm
http://revolution.byu.edu/programmingconcepts/ControlStruct.php
http://www.cplusplus.com/doc/tutorial/control/
http://www.tutorialspoint.com/java/java_decision_making.htm
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.5_control-structures_2.html 2/2
12/9/13 Arrays -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
3.6.1 Introduction
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.6_arrays_1.html 1/2
12/9/13 Arrays -- TATA Consultancy Services Pvt. Ltd.
Names of students
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.6_arrays_1.html 2/2
12/9/13 Arrays -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Array Creation
After creating an array, data can be added to it. For adding data
to an array use the index of the array.
array_name[index] = value;
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.6_arrays_2.html 1/3
12/9/13 Arrays -- TATA Consultancy Services Pvt. Ltd.
variable_name = array_name[index];
int quizScores[SIZE ];
For calculating the average score, iterate the array using for loop
and calculate the sum and find the average.
int totalScore= 0;
avgScore = totalScore/SIZE;
individual score in an array and iterating the array using a for loop.
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
https://www-
927.ibm.com/ibm/cas/hspc/student/data_structures/ArraysOneDim.html
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.6_arrays_2.html 3/3
12/9/13 Functions -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
3.7.1 Introduction
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.7_functions_1.html 1/2
12/9/13 Functions -- TATA Consultancy Services Pvt. Ltd.
specific task.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.7_functions_1.html 2/2
12/9/13 Functions -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
// function body
Example:Function definition
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.7_functions_2.html 1/2
12/9/13 Functions -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.7_functions_2.html 2/2
12/9/13 Functions
Basics of Programming
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.7_functions_3.html 1/3
12/9/13 Functions
void alert(){
The main function should know the name of the sub function and
the arguments/inputs needed by the sub function to invoke/call the sub
function.
functionname([arguments]) ; or
alert();
store(“Happy B’day”);
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.7_functions_3.html 2/3
12/9/13 Functions
http://www.c4learn.com/function-definition-in-c-programming-
defining-a-function.html
http://www.tenouk.com/Module4.html
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.7_functions_3.html 3/3
12/9/13 Composite Datatypes-- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
3.8.1 Introduction
Programs not only use primitive data types but also composite
data types like Date, String, Employee, Student etc. Composite data types are
constructed using primitive data types and other composite data types.
Composite data types can be built-in data types (e.g. String or Date) or
programmer defined data types (e.g. Student, Employee).
C program
typedef struct {
int id;
char college[100];
char stream[25]
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.8_composite-types_1.html 1/2
12/9/13 Composite Datatypes-- TATA Consultancy Services Pvt. Ltd.
char grade;
} Student;
Java program
class Student{
int id;
String name;
String college;
String stream;
char grade;
};
Both define a new type Student, where Id, name, college, stream,
grade are members (data members) or properties of Student type.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.8_composite-types_1.html 2/2
12/9/13 Composite Datatypes -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Here stud1 and stud2 are variables that store composite data.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.8_composite-types_2.html 1/2
12/9/13 Composite Datatypes -- TATA Consultancy Services Pvt. Ltd.
http://en.wikipedia.org/wiki/Composite_data_type
https://aspire.tcs.com/aspire/courses/basics_of_programming/module3/session3.8_composite-types_2.html 2/2
12/9/13 Introduction to Developing a User Interface
Basics of Programming
4.1.1 Introduction
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.1_introduction-to-developing-a-user-interface_1.html 1/2
12/9/13 Introduction to Developing a User Interface
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.1_introduction-to-developing-a-user-interface_1.html 2/2
12/9/13 Introduction to Developing a User Interface
Basics of Programming
In a command line user interface, The user provides the input by typing
a command string with the computer keyboard and the system provides output by
printing text on the computer monitor. This is normally used by programmers and
system administrators and by technically advanced personal computer users.
However this type of user interfaces poses the following disadvantages too:
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.1_introduction-to-developing-a-user-interface_2.htm 1/2
12/9/13 Introduction to Developing a User Interface
Not very user friendly and hence error rates are high – especially when
a user is trying to enter data. A mistake made in typing while using
command line is often not forgiven. That is, a user is usually not
warned or prompted for confirmation while using direct commands in
the command line. Hence chances of wrong data being entered is very
high.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.1_introduction-to-developing-a-user-interface_2.htm 2/2
12/9/13 Introduction to Developing a User Interface
Basics of Programming
GUI typically allows user interaction with the system through the
use of visual elements, such as windows, buttons, tables, forms, menus, etc.
thus freeing the user from learning complex command languages. This kind of
interface takes advantage of the computer's graphics capabilities to make the
program easier to use.
Windows - You can divide the screen into different areas. In each
window, you can display a different file or run a different
program. You can change the size and shape of the windows and
even move them around the display screen at will.
Use of GUI over Command line user interfaces provides us with the
following benefits:
Decrease in training cost and support line cost (saving time and
money) – A well designed and consistent GUI does not require
any training for the users. Also the users are less likely to get
stuck while trying to find a way around getting used to the
application. Hence the training and support cost are
significantly reduced.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.1_introduction-to-developing-a-user-interface_3.htm 2/3
12/9/13 Introduction to Developing a User Interface
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.1_introduction-to-developing-a-user-interface_3.htm 3/3
12/9/13 Introduction to Developing a User Interface
Basics of Programming
WUI is a subset (or a type of) of Graphical User Interface (GUI). WUI
accepts input and provide output by generating web pages which are transmitted via
the Internet and viewed by the user using a web browser program.
All Benefits and Attributes that apply to GUI also apply to a WUI, hence
won't be discussing them separately.
For further reading on this topic kindly refer to the document in the link below:
www.advanced-ict.info/theory/ICT2/2-10%20User%20Interfaces.ppt
Refer the below link to discover more about Touch User Interface:
http://en.wikipedia.org/wiki/Touch_user_interface
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.1_introduction-to-developing-a-user-interface_4.htm 1/1
12/9/13 Introduction to Developing a User Interface
Basics of Programming
For most of the end users, User Interface is the System. Hence the look
and feel that a User Interface provides is one of the major factors that decide the User
Satisfaction and User Experience. For example, if cost isn't a factor, for the same
function (of making calls) which one out of the two phones below would you prefer??
The best example of this from real world is the "Butterfly Ballot" used in
Palm Beach, Florida during the 2000 U.S. presidential election was a fiasco, primarily
due to the design of a confusing user interface.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.2_what-is-the-need-for-a-good-UI.htm 1/2
12/9/13 Introduction to Developing a User Interface
For further reading on the topic of importance of good UI, please refer the
pdf at the link below
www.elsevierdirect.com/companions/9780120884360/casestudies/Chapter_01.pdf
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.2_what-is-the-need-for-a-good-UI.htm 2/2
12/9/13 Introduction to Developing a User Interface
Basics of Programming
Users do not care much about what’s underneath but what they
actually do on what they experience, what they feel, and what they see. In other
words, it is the design quality that essentially affects the business results.
Good design and user interface not only impacts the consumers,
but also influences the decision of potential investors.
Be prepared to hold the line - When you are developing the user
interface for your system you will discover that your
stakeholders often have some unusual ideas as to how the user
interface should be developed. You may, of course, listen to
these ideas but you also need to make your stakeholders aware
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_1.htm 1/3
12/9/13 Introduction to Developing a User Interface
Follow the contrast rule - If you are going to use color, you need to
ensure that your screens are still readable. The ideal way to do
this is to follow the contrast rule: Use dark text on light
backgrounds and light text on dark backgrounds. Reading dark
blue text on a white background is easy, but reading blue text on
a dark red background is difficult. The problem is that of
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_1.htm 2/3
12/9/13 Introduction to Developing a User Interface
Expect your users to make mistakes - How many times have you
accidentally deleted some text in one of your files or deleted the
file itself? Were you able to recover from these mistakes or were
you forced to redo hours, or even days, of work? The reality is
that to err is human, so you should design your user interface to
recover from mistakes made by your users.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_1.htm 3/3
12/9/13 Introduction to Developing a User Interface
Basics of Programming
4.3.2.1 HTML
When you look at a web page in a browser, you see words, at the
simplest level. These words usually appears with some style characteristics,
such as different colors and font sizes. Generally, a page also displays images
or may be video. Sometimes there is a form where you can enter (or search) for
information, or change the display of the page to your liking. Sometimes a page
contains animated content and content that changes while the rest of the page
remains the same.
What is HTML?
display content. HTML separates "content" (words, images, audio, video, and
so on) from "presentation" (the definition of the type of content and the
instructions for how that type of content should be displayed). HTML uses a
set of pre-defined elements to identify content types. Elements contain one or
more "tags" that contain or express content. Tags starts and ends with angle
brackets, and the "closing" tag (the one that indicates the end of the content) is
prefixed by a forward slash.
For example,
the paragraph element
consists of the start tag "
<p>" and the closing tag "
</p>". The following
example show a paragraph contained within the HTML paragraph element:
The browser uses the tags to indicate how to display the content
in the tags.
<p>My dog
ate <b>all</b> the
guacamole.</p>
When
displayed, this looks like the figure on the left.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_2.htm 2/3
12/9/13 Introduction to Developing a User Interface
<html>
<body>
</body>
</html>
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_2.htm 3/3
12/9/13 Introduction to Developing a User Interface
Basics of Programming
HTML Tags
In this example there is a start tag and ends with a closing tag.
Closing tags looks the same as the start tag but also contain a forward slash
immediately after the leading less-than sign. Almost all the elements in HTML
are written using both start and closing tags. The starting and closing tags
should be appropriately nested, that is closing tags should be written in the
opposite order of the start tags. Proper nesting is the one rule that must be
obeyed in order to write valid code.
Note that in the first example, the closing tag for the nested
element is placed before the closing tag for the element in which it is nested.
<img src="smileyface.jpg">
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_3.htm 1/3
12/9/13 Introduction to Developing a User Interface
Attributes
An attribute name.
An attribute value.
A few attributes can only have a single value. They are Boolean
attributes and may be shortened by only specifying the attribute name or
leaving the attribute value empty. Thus, the below 3 examples have the same
meaning:
<input required="required">
<input required="">
<input required>
<p class=foo bar> (Beware, this probably does not mean what you
think it means.)
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_3.htm 2/3
12/9/13 Introduction to Developing a User Interface
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_3.htm 3/3
12/9/13 Introduction to Developing a User Interface
Basics of Programming
The above four are the most important, among many more
entries, because they represent characters that have a special meaning in
HTML.
<!DOCTYPE html>
The doctype has a long history, but for now all you may need to
know is that this doctype tells the browser to interpret the HTML and CSS
code according to W3C standards and not try to pretend that it is Internet
Explorer from the 90's.
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<!-- Note that it is "h" + "1", not "h" + the letter "one" →
</body>
</html>
For further learning of basic HTML please refer to the tutorial in the link
below:
www.w3schools.com/html/default.asp
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_4.htm 2/2
12/9/13 Introduction to Developing a User Interface
Basics of Programming
In the late ‘90s, HTML coders noticed that they were retyping the
same old tags again and again on the same page, leading to larger HTML files
and above all, more time was consumed in this unfruitful process, which
further led to frustration. You may also have found yourself in the same
situation, adding in mountains of <font> tags, despite wanting them all the
same; or using tricks like invisible gifs for spacing.
Then, someone had a great idea: have one file that defines all the
values that those piles of tags would have done, and then have the pages
checking this file and formatting the content pages accordingly. You can hence
leave out most of the formatting tags in HTML and use only nice structural
elements (such as headings, paragraphs and links) — separating structure and
presentation.
If you ever decide to change the look of your site, you modify that
one CSS file (your style sheet) and all the HTML pages reading from that file
will display accordingly. This makes maintenance of your design much easier.
CSS Syntax
The selector is the HTML element that you want to style. The
property is the title of the actual property, and the value is the style you apply
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_5.htm 1/2
12/9/13 Introduction to Developing a User Interface
to that property.
body {
background: #eeeeee;
As you can see in the above code we have separated the color
from the font-family with a semi-colon, various fonts are separated with
commas and contained the “Times New Roman” within quotation marks. The
end result sets the body color to light gray, and sets the font to ones that most
users will have installed on their computer.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_5.htm 2/2
12/9/13 Introduction to Developing a User Interface
Basics of Programming
1. Internal Stylesheet
First we will explore the internal method. Here you are simply
placing the CSS code within the <head></head> tags of each HTML file you
want to style with the CSS. The syntax for this is shown in the example below.
<head>
<title><title>
<style type=”text/css”>
</style>
</head>
<body>
With this method each HTML file contains the CSS code needed
to style the page. This means that any changes you want to make to one page,
the same have to be made to all. This method works best when you need to
style only one page, or if you want individual pages to have varying styles.
2. External Stylesheet
Next we will explore the external method. Using any text or HTML
editor such as 'Notepad', an external CSS file can be created. A CSS file
contains no HTML, only CSS. You simply save it with the .css file extension.
You can associate the file externally by placing one of the following links in the
head section of every HTML file you want to style with the CSS file.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_6.htm 1/3
12/9/13 Introduction to Developing a User Interface
<head>
<title></title>
</head>
<body>
or
<head>
<title></title>
</head>
<body>
By using an external style sheet, all of your HTML files link to one
CSS file in order to style the pages. Meaning, that if you need to alter the design
of all your pages, you only need to edit one .css file to make global changes to
your entire website.
Easier Maintenance
Reduced Bandwidth
Improved Flexibility
3. Inline Styles
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_6.htm 2/3
12/9/13 Introduction to Developing a User Interface
Inline styles does NOT allow the user to change styles of elements
or text formatted this way
Which is better?
So with all these various ways of inserting CSS into your HTML
files, you may now be wondering which is better, and if more than one method
is used, in what order do these different ways load into the browser?
Choosing between the <link related=> & the @import methods are
completely up to you. I will mention that the @import method may take a
second longer to read the CSS file in Internet Explorer than the option.
To learn how to implement CSS in HTML pages, refer the link below
www.w3schools.com/css/default.asp
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_6.htm 3/3
12/9/13 Introduction to Developing a User Interface
Basics of Programming
But the good news is, there are various other technologies using
which the webpages can be made dynamic. Examples of those technologies are
asp.net, jsp, javascript etc. The discussion on specific technologies are out of
the scope of this curriculum. However for further reading you may refer the
website below.
JavaScript : www.w3schools.com/js/default.asp
ASP.NET : www.w3schools.com/aspnet/default.asp
JSP : www.tutorialspoint.com/jsp/index.htm
https://aspire.tcs.com/aspire/courses/basics_of_programming/module4/session4.3_basic-steps-to-be-followed-for-developing-a-good-UI_7.htm 1/1
12/9/13 Programming Approaches
Basics of Programming
5.1. Introduction
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.1_structured-programming.html 1/2
12/9/13 Programming Approaches
implies that instructions may be executed selectively using IF-THEN and/or IF-
THEN-ELSE statements. These conditional statements work in the following
way. IF a condition is true or is met, THEN a specific set of instructions will be
executed.
Structured Design
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.1_structured-programming.html 2/2
12/9/13 Programming Approaches
Basics of Programming
Master file
Earnings
Deductions
Taxing
Net earning
Print reports
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.2_modular-programming_1.html 2/3
12/9/13 Programming Approaches
Bottom-up Design
Stepwise Refinement
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.2_modular-programming_1.html 3/3
12/9/13 Programming Approaches
Basics of Programming
In top down
design, the problem is
broken down into sub-
problems. The main
problem is solved by the
corresponding main
program. The sub-
problems solutions are
provided by
subprograms, known as
subroutine, functions, or
procedures depending on
Figure 5.02
the programming
language. A subprogram
executes or performs the computer instructions required to solve a given
subproblem.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.2_modular-programming_2.html 1/3
12/9/13 Programming Approaches
Procedures
void Procedure_Name(parameter)
//List of Statements.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.2_modular-programming_2.html 2/3
12/9/13 Programming Approaches
Example:
void WelcomeNote ()
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.2_modular-programming_2.html 3/3
12/9/13 Programming Approaches
Basics of Programming
Functions
Data_type Function_Name(parameter)
Return statement;
Example:
float product;
product = x*x*x;
return product;
The most important thing to note is that the function must have a
result type which dictates what type of value the function represents.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.2_modular-programming_3.html 1/4
12/9/13 Programming Approaches
Parameters
For example:
a = a+b;
b = a-b;
Both total and difference are local variables and only exist within
the procedure, as soon as the procedure finishes they and their values
disappear. The following program is an example of the main program:
void main()
val1=2;
val2=4;
sum_and_difference(val1,val2);
cout<<val1;
The values of val1 and val2 are simply copied into the variables a
and b of the procedure sumAndDifference. At the end of the procedure the values
are not copied back! The value of val1 that the final output statement displays
is therefore 2 (not 0).
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.2_modular-programming_3.html 2/4
12/9/13 Programming Approaches
s =a+b;
d =a-b;
void main()
val1=2;
val2=4;
Built in functions
https://aspire.tcs.com/aspire/courses/basics_of_programming/module5/session5.2_modular-programming_3.html 4/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
The main focus and scope of the best approach tells you the
various optimization techniques that can be applied at the source code level.
Double check if you use the correct collection types. Then have a
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.1_introduction-to-optimization.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
look if you accidentally created more objects than needed (object creation in
loops is a typical reason for performance problems).
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.1_introduction-to-optimization.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Identify the
parts of the application
or program executed
more frequently or which
consume more execution
time. 80 or 90 % of a
program's execution time
may be spent executing
Figure 6.1. Pareto overview 20% or 10% of the code
(Pareto principle).
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.2_code-optimization-strategy.html 1/1
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Unrolling loop.
Functional optimization
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_1.html 1/1
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
function runWithoutIdentifyingCommonSubExpressions() {
j=0;
for( i=36000000;i>0;i--)
j += (i-sqrt(i)-sqrt(sqrt(i)))/sqrt(123456)+(i-sqrt(i)-
sqrt(sqrt(i)))/sqrt(654321);
print(j);
function runWithoutIdentifyingCommonSubExpressions() {
j=0;
commonValueInAllLoopIterations =
1/sqrt(123456)+1/sqrt(654321);
for( i=36000000;i>0;i--)
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_2.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
j += (i-sqrt(i)-sqrt(sqrt(i)));
j=j*commonValueInAllLoopIterations
print(j);
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_2.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
double x = 0;
x+=Math.sqrt(n);
fnXyzAddsModifiedResultToDynamicLiveFile(x);
x+=Math.sqrt(n+1);
fnXyzAddsModifiedResultToDynamicLiveFile(x);
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_3.html 1/1
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
calculateTotalSalary()
totalSalary=0;
da=(10000*0.1);
hra=(10000*0.05);
totalSalary=basic+da+hra;
print totalSalary;
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_4.html 1/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
This would give us the output, but it is a poor code from a reuse
point of view. In case at a later time da or hra calculation changes, we need to
change it at different places.
This is where modularity comes to the picture. The same code can
be modularized as follows:
calculateHRA( basic)
hra=(basic*0.05);
return hra;
calculateDA( basic)
da=(basic*0.1);
return da;
calculateTotalSalary()
totalSalary=0;
totalSalary=basic+calculateHRA(basic)+calculateDA( basic);
print totalSalary;
requires the da or the hra alone, they can just call the corresponding function.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_4.html 3/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
double salary=100;
double salary=basicPay;
double totalSalary=0;
double da=(10000*0.1);
double hra=(10000*0.05);
double totalSalary=basic+da+hra;
print(totalSalary);
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_5.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_5.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
/**
* integers from 1 to N.
* Below code snippet calculates the sum by simply looping the value of
N
*/
function sumOfIntegers(int n)
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_6.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
function sumOfIntegers(int n)
int sum = n * (1 + n) / 2;
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.3_standard-techniques-list_6.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
https://aspire.tcs.com/aspire/courses/basics_of_programming/module6/session6.4_code-optimization-summary.html 1/1
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Testing is
the process of evaluating
a system and/or its
components with the
intent to find out
whether it satisfies the
stated requirements or
not. This testing activity
will give the actual and
expected, and, the
difference between
actual and expected
results. In other words Figure 8.1 : Testing
testing means executing
a system in order to identify any gaps, errors or missing requirements when
compared with the actual or desired requirements.
Meets the requirements which will guide the further design and
development.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.1_introduction-to-testing.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
It depends
on the process and the
associated stakeholders
of the project(s).
Stakeholder can be
referred to all the people
who are part of the
project being executed.
Stakeholders are those
people who are having an
interest in the successful
completion of the project.
The important thing to
remember is that the
stakeholders should also Figure 8.2 : Who Does Testing
have some say in
defining the project objectives, since they are the people who will be affected
by the outcome. When defining project stakeholders, the project manager and
members of his/her team should carefully think through who will be the end
users of the product. Project stakeholders usually include Customers/clients,
company, project team including project manager, senior managers etc.
Software Tester.
Software Developer.
End User.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.2_who-does-testing.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Software Tester
The role of a software tester is mainly to write the test cases and
perform integration/system testing.
Software Developer
End User
The Acceptance testing is done by the end user at the end of the
project.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.2_who-does-testing.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
In both method stubs and drivers are used to stand-in for missing
components and are replaced as and when the levels are completed. For eg: If
we have Modules x, y, z. 'x' module is ready and need to test it. But it calls
functions from y and z (which are not ready). To test a particular module we
write dummy piece of code which simulates y and z which will return values
for x. These pieces of dummy code are called stubs in a Top Down Integration.
Now consider that modules y and z are ready and module x is not
ready, and we need to test y and z which return values from x. So to get the
values from 'x' we write a dummy code for 'x' which returns values for y and z.
These pieces of dummy code are called drivers in Bottom Up Integration.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.3_testing-approches.html 1/1
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Functional Testing.
Non-Functional Testing.
Unit Testing.
System Testing.
Example
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.4_levels-of-testing_1.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.4_levels-of-testing_1.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
The goal of unit testing is to isolate each part of the program and
show that the individual parts are working correctly in terms of requirements
and functionality.
There is a limit to the number of scenarios and test data that the
developer can use to verify the source code. So after the developer has
exhausted all options there is no other choice but to stop unit testing and
combine the code segments with other units.
Bottom-up integration:
Top-Down integration:
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.4_levels-of-testing_2.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
This is the next level in testing in which we test the whole system.
Once all the components are integrated, the entire application is tested
rigorously to see whether it meets the quality standards. This type of testing is
usually performed by a specialized testing team.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.4_levels-of-testing_3.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
More ideas will be shared about the application and more tests
can be performed on it to determine its accuracy and the reasons why the
project was initiated. Acceptance testing is done not only to point out simple
spelling mistakes, cosmetic errors or Interface gaps, but also to point out any
bugs in the application that will result in system crashes or major errors in the
application at a later stage.
Security Testing
Performance testing
You will get to learn more on non functional testing once you are
into projects.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.4_levels-of-testing_3.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Black
box testing takes
an external
perspective of the
test object (the
entire application)
to derive test
cases. These tests
can be functional Figure 8.3 : Black box testing
or non-functional,
though usually it is functional. The test designer selects valid and invalid input
and determines the correct output. There is no knowledge of the test object's
internal structure, which means, the tester will not be having any idea on the
application's code but knows how the application behaves in response to a
particular input.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.5_testing-techniques_1.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.5_testing-techniques_1.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Variable 1
Purchase_Amount (p_amt)
Numeric
negative & zero (<0) (invalid class. As we will not purchase for
amount of 0 or less that is an invalid input) C2
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.5_testing-techniques_2.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
positive (>0)
[1..499] C3 Valid
[500..4999] C4 valid
Variable 2
M (member) C1
NM (non member) C2
Sl Expected
Input conditions/data
No output(Rs)
Non numeric invalid p_amt;(p_amt =abc) &
1 Error
invalid cust_type (cust_type = 'o')
2 Valid p_amt in C4 = 1000; & Valid cust_type (M) 900
Table 2
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.5_testing-techniques_2.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
The test inputs need to be from large sample space. That is, from
a huge set of data which will take time. Also it is difficult to
identify all possible inputs in limited testing time. So writing
test cases is slow and difficult.
this testing.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.5_testing-techniques_3.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
White box
testing is a security
testing method that can
be used to validate
whether the code which
is implemented follows
the intended design, to
validate necessary
security functionality,
and to find other
vulnerabilities.
The test strategy must account for the fact that time and budget
constraints will prevent testing each and every component of a software
system and should balance test effectiveness with test efficiency based on
risks to the system. The level of effectiveness necessarily depends on the use of
software and its consequence of failure. The higher the cost of failure for
software, then a more rigorous and sophisticated testing approach must be
adopted to ensure effectiveness. Risk analysis provides the right context and
information to derive a test strategy.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.5_testing-techniques_4.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.5_testing-techniques_4.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Pseudocode:
Read a.
Read b.
sum = a + b.
print sum.
Syntactic Errors.
Logical Errors.
Syntactic Errors:
Logical Errors:
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.5_testing-techniques_5.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
An early start to testing can help reduces the cost, time to rework
and error free software can be delivered to the client. However in Software
Development Life Cycle (SDLC) testing can be started from the Requirements
Gathering phase and will continue till the deployment of the software.
However it also depends on the development model that is being used. In a
Water fall model, which is one of the commonly used development model,
formal testing is conducted in the testing phase, but in incremental model
(another type of model), testing is performed at the end of every
increment/iteration and at the end, the entire application is tested again.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.6_when-to-start-stop-testing_1.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.6_when-to-start-stop-testing_1.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Bug rate falls below a certain level. Which means the testers are
not getting any priority 1(highest priority), 2, or 3 (low priority)
bugs.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.6_when-to-start-stop-testing_2.html 1/1
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
7.7 Debugging
For any new s oftware or hardware development process, debugging is a necessary process
whether it is a commercial product or an enterprise or personal application program. For complex products,
debugging is done as the result of the unit test for the smallest unit of a system, again at component or
module test when parts are brought together, and then at system test when the product is used with other
existing products, and finally during customer beta test (explained earlier), where users try the product out in
a real world situation. As most computer programs and programmed hardware devices contain thousands of
lines of code, almost any new product is likely to contain a few bugs.
Debugging tools (called debuggers) will help identify coding errors at various development
stages. Some programming language packages will include a facility for checking the errors in the code the
moment it is being written.
Some of the debugging tools available are GDB (For Unix C++), Expeditor (MF) and so on. Please
do a search in Google to get some of the most commonly used debugging tools in the software industry.
Links :
http://www.worldcolleges.info/College/E-
Books/download/software%20testing%20life%20cycle(STLC).pdf
http://www.ipl.com/pdf/p0820.pdf
http://www.cs.swan.ac.uk/~csmarkus/CS339/presentations/20061202_Oladimeji_Levels_of_Testing.pdf
https://aspire.tcs.com/aspire/courses/basics_of_programming/module7/session7.7_debugging.html 1/1
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Introduction
For example , A butterfly goes through four stages in its life. Each
and every stage is different from the others. Following figure illustrates the life
cycle of a butterfly.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_1.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Adult - When the pupa has finished changing, it molts one last
time and emerges as an butterfly(adult) or moth.
Adult is the stage when butterfly and moth mate and reproduce.
Females lay their eggs on plants or any other surfaces, and the cycle starts
again.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_1.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Each phase produces feedback that affects the next phase of the SDLC.
For instance, the requirements gathered during the requirement analysis phase
influence the design, which is translated into working software code during the
implementation phase. The software code is verified against the requirements during
the testing phase and the software is maintained when it is in use during
maintenance phase.
Requirements Analysis
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_2.html 1/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
During this phase, the needs of the company are outlined. Users (and in
some cases, clients) make their wish-lists about what they would like the software to
do. Business Analysts(who analyzes the requirements) ask questions about the
intended use of the software system, what type of data will be processed,how the
data can be accessed and how the software should handle the data in the system. At
the end of analysis phase, the development team should have a detailed list of
functions that the software system will perform. In this phase,emphasis is on the
system's goals, rather than the way in which the system will achieve those goals.
Design
In the design phase, the results of the requirements analysis phase are
translated into software design plan. Focus shifts from the system's goals to the way
in which those goals will be achieved and how the ideas of the requirements-
gathering phase are achieved. Designers consider many different criteria, from the
hardware and operating system platform that hosting the software or the solution to
the way subsystems will communicate with each other.
During the design phase, the designer's convert the dreams of the users
and managers into reality. Emphasis is on making a practical,working design for
what has been outlined in the requirements analysis phase.
Construction
During this phase, the output of the design phase are translated into
program code. Software that does not meet the needs of the user or the company is
wasteful. During construction phase the programmers should make it their central
goal to fulfill the requirements of the users and to meet the design outlined in the
design phase
Testing
Please go through ' Testing and Debugging ' module to know more
details about testing.
Maintenance
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_2.html 2/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
maintenance team would take corrective action and fix the issues.
Refer the links given below to get more information about SDLC.
http://softwarelifecyclepros.com/wp-content/uploads/2012/05/Tutorial-
Software-Development-LifeCycle-SDLC.pdf
http://www.cpe.ku.ac.th/~plw/oop/e_book/ood_with_java_c++_and_uml/ch4.pdf
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_2.html 3/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
1. Waterfall Model
2. V-Shaped Model
3. Iterative Model
4. Incremental Model
5. Spiral Model
1. Waterfall Model
It is one of the most widely used SDLC Model. It is also called as "
Classic Life Cycle" or "Linear Sequential model" . It is one of the simplest model
to understand and use. It is characterized by a series of steps that must be
completed in a linear or sequential order. It is called ' Water fall ' because we
move to next step after getting input from previous step (phase), like in a
waterfall, water flows down to from the upper steps. Each phase is completed
and verified before the next phase. There is sequential progression from one
phase to another in this model.
1. Requirements Analysis
2. Design
The Design phase needs a new team to design the software. Most
commonly it is done by a System Analyst/Designer. It represents the physical
design of the system which is designed from the set of requirements gathered
from the requirement phase.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_3.html 2/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
System Analysts use UML (We will discuss about this in detail
later) tools to design software systems. Pseudo codes are written by system
analyst for developers to refer during implementation. Pseudo codes are rough
codes written in English or any other language which can be read/understand
by anyone. It shows how the software actually works.
3. Implementation
4. Testing
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_3.html 3/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_3.html 4/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
2. V-Shaped Model
Like the Waterfall model, the V-Shaped life cycle model provides
a sequential path of individual phases that must be completed before
development proceeds to the next phase. V-shaped model means Verification
and Validation model.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_4.html 1/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
The test plans(for each phase) are developed during each level of
Verification. Once coding is completed, testing will be conducted as part of
Validation.
Verification phases
Requirements
Requirement analysis (upper left point of the V )is the first step in
the verification process. The requirements are collected by analyzing the needs
of the users. User acceptance tests and System tests are designed as part of
this phase. System and acceptance test design plan focuses on verifying the
functionality specified in the requirements definition.
High-level Design
As the V-shaped model moves down the left side, developers will
focus on high-level design architecture and the overall system design. System
engineers will analyze and understand the business of the proposed system or
software by studying the user requirement document. They will come up with
different techniques and possibilities by which the user requirements can be
implemented. If any of the requirements are not feasible, then the user is
informed about the issue
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_4.html 2/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Low-Level Design
Validation phases
Unit testing
Integration testing
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_4.html 3/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Advantages of V-model
Disadvantages of V-model
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_4.html 4/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
3. Iterative Model
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_5.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_5.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
4. Incremental Model
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_6.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
system.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_6.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
5. Spiral Model
I. Planning
III. Development/Engineering
IV. Evaluation
Following Figure illustrates the Spiral life cycle model. The angular
component in the diagram represents the progress in the current spiral, and the
radius represents the project cost.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_7.html 1/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Focus on risk avoidance makes this model model ideal for large scale
and mission critical products.
Risk analysis phase of this model requires highly specific expertise, and
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_7.html 2/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Summary
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.1_phases-of-software-development-life-cycle_7.html 3/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
UML diagrams are not only made for developers but also for
common people, business users and anybody interested to understand the a
software or non software. It is clear that UML is not a development
methodology rather than it accompanies with processes to make a successful
system.
UML breaks the complex system into small pieces that can be
understood easily. Complex system can be understood by different developers
who are working on different platforms. Handing over the system or
application to new team becomes easier. UML model is not a platform or
system specific. UML unifies all different developers under one roof.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.2_introduction-to-the-unified-modeling-language_1.html 1/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.2_introduction-to-the-unified-modeling-language_1.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Structural Diagrams
Behavioral Diagrams
1. Structural Diagrams
1. Class diagram
2. Object diagram
3. Component diagram
4. Deployment diagram
2. Behavioral Diagrams
Any system can have two aspects, static and dynamic. A model is
considered as complete when both the system and dynamic aspects are
covered fully.
2. Sequence diagram
3. Collaboration diagram
5. Activity diagram
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.2_introduction-to-the-unified-modeling-language_2.html 2/2
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
It is used to
Use Cases
Actors
Relationships
1. Use Cases
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.3_developing-use-case-diagrams_1.html 2/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.3_developing-use-case-diagrams_1.html 3/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
2. Actors
3. Relationships
Association :
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.3_developing-use-case-diagrams_2.html 1/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
In the following figure ,Purchase Ticket is the Use case and the
Traveler is the actor. A given ticket purchase can only be made by one
traveler,but a traveler can purchase any number of tickets(represented as
1..*).This is a type of association relationship.
Include Relationship :
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.3_developing-use-case-diagrams_2.html 2/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Example :
The included use case LogIn cannot stand alone and the original
use case CheckOrderStatus is not complete without the LogIn use case.
The rectangle around the use case is called the system boundary
box and it indicates the scope of your system - the use cases inside the
rectangle represent the functionality that you intend to implement.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.3_developing-use-case-diagrams_2.html 3/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
There are two actors customer and other is the sales clerk. In this
example Sales Clerk checks out an item is the use case identified.
Following figure shows what the above use case might look like in
UML schematic form. The use case is drawn as an oval. The actors are
represented as stick figures. Actors and use case are connected using lines.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.3_developing-use-case-diagrams_3.html 1/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
The Special Order and Normal Order use cases are extended from
Order use case,it is an extends(generalization)relationship. Customer(actor)
lies outside the system as it is an external user of the system.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.3_developing-use-case-diagrams_3.html 3/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.3_developing-use-case-diagrams_3.html 4/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
These diagrams are used at a very high level of design. High level
design is refined again and again to get a complete picture of the system. A
well structured use case also describes some extra elements such as
precondition, post condition and exceptions. These extra elements are used to
make test cases during testing phase.
Following are the places where use case diagrams can be used:
http://www.uml-diagrams.org/use-case-diagrams-examples.html
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.3_developing-use-case-diagrams_4.html 1/1
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Class diagrams are the most popular UML diagrams used for the
implementation of software application. It is very important to learn the how to
draw the class diagram.
Object Notation:
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_1.html 1/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_1.html 2/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
System . The class diagram has been drawn considering all the points
mentioned above:
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_1.html 3/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_1.html 4/4
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
It is used to model the life line of an object, the activation and the
message passing. Sequence diagrams are two-dimensional diagrams: one
dimension (usually the vertical) is used to display evolution through time, the
other to distinguish between different objects. An object is a vertical line with a
thick bar on the line which indicates the life line of an object. Message passing
is modeled by arrows pointing from one object to the next at a certain state
transition on the life lines of both objects. When message passing is
instantaneous, the arrows are horizontal.
Lifelines
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_2.html 1/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Message
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_2.html 2/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_2.html 3/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
Activity
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_3.html 1/6
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Action
Calling an Activity(Action)
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_3.html 2/6
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Sending Signals(Action)
Decision Node
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_3.html 3/6
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Merge Node
Merge node has several inputs and only one output. It is used for
merging of flows. It is represented by the diamond given below.
Fork
A fork has only one input and two or more outputs. For the
branching of flows in two or more parallel flows we use a synchronization bar,
which is represented as a vertical line or thick horizontal. Branching allows
parallel flows within an activity.
Join
Initial Node
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_3.html 5/6
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Activity Partition
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_3.html 6/6
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Basics of Programming
The third action Passenger Checks In(3) means that at this point
the activity passenger check in is processed.
passenger task service is completed. This is represented by a the black dot with
border(the activity final node).
Between point (8) and point (11) the flows are independent from
each other. Simultaneously processed Flows (9 and 10) are merged at the
second cross bar (11). It means that only when the passenger is on the plane
(10) and the luggage has been loaded onto the plane (9), then the control flow
continue below the cross bar (11).
In this example, one more action (12) and subsequent to that the
final state (13) follow, meaning that after the passenger is on the plane (10)
and the luggage has been loaded onto the plane (9), the airplane can taxi
towards the runway (12).
We can see here that the last action airplane taxis toward runway
(12) is only defined as a single action, even though this process is very complex
and could be described in many other activity diagrams.
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_4.html 2/3
12/9/13 Basics of Programming -- TATA Consultancy Services Pvt. Ltd.
Please refer the below link for further information about UML Diagrams
http://www.smartdraw.com/resources/tutorials/uml-
diagrams/#/resources/tutorials/Introduction-to-UML
http://sourcemaking.com/uml/introduction
https://aspire.tcs.com/aspire/courses/basics_of_programming/module8/session8.4_examining-other-uml-diagrams_4.html 3/3