Iterative approach along with incremental development forms the heart of software development process or cycle which has been developed in response to the weaknesses of the sequential approach of water fall model.
Iterative approach begins with the execution of an initial plan and is ended with deployment with the interactions between the implementation and testing components of the cycle.
Iterative approach forms an important part of the extreme programming, rational unified process and agile software development frame works apart from the cyclic software development process.
It is similar to following the plan- do- check- act cycle of business development process.
BASIC IDEA BEHIND ITERATIVE APPROACH
- The basic idea behind this iterative approach is to develop a system or application through repeated cycles or iterations and in smaller units at one time (called incremental development).
- Such an approach allows the software testers and developers to take the advantage of earlier learnt lessons during the development of the software system or application.
- Learning comes simultaneously from development as well use of the software system or application.
- The basic idea of this whole iteration approach is to implement a task and its redesigning as stated in the project control list.
- It involves analysis of the current version of the software system or application.
STEPS IN ITERATIVE APPROACH
- The key steps involve implementation of the sub sets of the software system or application requirements and this in turn leads to the enhancement of the evolving versions until the implementation of the full software system or application.
- At each step of iteration approach slight modifications in the design are made and new functional features are added.
- The first step in the procedure for iterative approach involves the process of initialization.
- The objective of the initialization step is to create a basic version of the software system or application to which the users of the software can react and give useful feedback.
- The created basic version offers a sample of all the key features and aspects of the problem concerned and also provides a solution to that problem which can be easily implemented.
- The second step is the iteration step.
- The third step involves the controlling of the project development cycle.
- The third step involves creation of a list records of all the tasks and processes that are needed to be performed and the steps which guide the whole process of iteration process.
- The project control list also includes the new features and aspects that have to be added to the software system or application.
- Apart from all this the list also mentions the areas of the software system or application that have to be redesigned from the existing solution of the problem.
- During the analysis phase the list is regularly revised and new points are continuously added.
PRINCIPLES OF ITERATION TESTING
According to the principles of the iteration testing:
- The design as well as its implementation of any iteration should be simple, modular and straight forward.
- However the level of designing is not mentioned in the project control list.
- The analysis of an iterative project is solely based up on the user feedback and the program analysis methodologies available.
- The analysis includes testing of the structure, usability, modularity, reliability, efficiency and goal achievement rate.
- If the project is found lagging in any of these aspects, the project control list is modified accordingly.
- The iterative approach involves slicing up of functionality of the software system in to small portions or increments as they are commonly called.
- In each and every increment functionality is added via cross discipline method and from the requirements to the deployment.
Wednesday, January 18, 2012
What are different aspects of iterative approach?
Posted by
Sunflower
at
1/18/2012 01:46:00 PM
0
comments
Labels: Analysis, Application, Approach, Ideas, Implementation, Incremental, Initialization, Iteration, Iterative, Iterative testing, Objectives, Principles, Software testing, Steps, Test Cycles, Units
|
| Subscribe by Email |
|
Monday, October 10, 2011
Some details about Multi dimensional arrays in C...
An array can be defined as the collection of variables of the same type that are referenced by a common name. Arrays are of two types namely one dimensional arrays and multi dimensional arrays. One dimensional array consists of finite homogenous elements whereas a multi dimensional array is composed of elements each of which is itself an array. Arrays refer to a named list of a finite number n of similar data elements. Each of the data elements can be referenced respectively by a set of consecutive numbers, usually 0, 1, 2, 3, 4,….., n. the simplest form of a multi dimensional array is the two dimensional array.
You can declare a two dimensional array as follows:
Type array name [ rows ] [ columns ];
Where type is the base data type of the array having name name, rows, the first index, refers to the number of rows in the array and columns, the second index refers to the number of columns in t5he array. For example:
Int sales [ 5 ] [ 10 ] ;
The general form of array initialization is shown below:
Type array name [ size N ] = { value list } ;
The value list is a comma separated list of array elements values. The element’s values in the value list must have the same data type as that of the base type of the array.
Int days [ 5 ] = { 1, 2, 3, 4, 5 } ;
Character arrays can also be initialized as shown below:
Char string [ 10 ] = { ‘c’ , ‘a’ , ‘t’ ‘\0’ } ;
Multi-dimensional arrays can also be initialized in the same way as simple dimensions one. For example:
Int abc [ 3 ] [ 2 ] = { 1, 1,
2, 2,
3, 3 } ;
This can be done it the other way also :
Int abc [ 3 ] [ 2 ] = { 1, 1, 2, 2, 3, 3 } ;
A multi dimensional array of strings can be initialized as shown below:
Type array name [ size N ] = { value list } ;
Here type declares the base type of the array, the array name specifies the name with which the array will be referenced and size defines how many elements the array will hold. The size must be an integer value or integer constant without any sign. The value list is a comma separated list of array’s elements values. The element values in the value list must have the same data type as that of the base type of the array.
Int days [ 5 ] = { 1, 2, 3, 4, 5 } ;
Character arrays can also be initialized as shown below:
Char string [ 10 ] = { ‘c’ , ‘a’ , ‘t’ , ‘s’ , ‘\0’ } ;
Multi dimensional arrays are also initialized in the same as the single dimensional one. For example:
Int cube [ 3 ] [ 2 ] = { 1, 1,
2, 2,
3, 3 } ;
This can be done in the other way also:
Int abc [ 3 ] [ 2 ] = { 1, 1, 2, 2, 3, 3 } ;
A multi dimensional array of strings can be initialized as shown below:
Char abc [ 3 ] [ 2 ] = { “Sunday” , “Monday” } ;
C allows you to skip the size of the array in an array initialization statement. This is called unsized array initialization. C allows arrays of more than 2 dimensions. The exact limit of dimensions is determined by the compiler we are using.
Posted by
Sunflower
at
10/10/2011 04:44:00 PM
0
comments
Labels: Array, Arrays, C, C Language, Characters, Columns, Constants, Data, Data types, Dimensions, Initialization, Integer, Languages, Multi dimensional arrays, Rows, Strings, Types, Values, Variables
|
| Subscribe by Email |
|
Wednesday, September 14, 2011
Some details about pointers and strings in C...
There doesn’t exist anything in C like real strings. A string is an array. It can be defined as an array of characters. A string is terminated by a nul character “\0”. A string can be initialized normally as follows:
Char string[10];
String[0] = ‘c’;
String[1] = ‘a’;
String[2] = ‘t’;
String[3] = ‘s’;
Another way of initializing and declaring a string is as follows:
Char string[10] = “cats”;
The following statement asks compiler to allocate 10 bytes of memory for the string entered by the user. The string can store only 9 characters and the tenth one being used for “nul” character.
We can easily access strings and their constituent characters using character pointers. The string arrays are mostly used for storing char data type elements in the memory. The array of string pointers is preferred over two dimensional arrays of characters mainly for two reasons. The first reason is by implementing array of pointers, you can make more efficient use of available memory since it consumes lesser number of bytes for storing arrays of strings. The second main reason is that an array of string pointers makes the manipulation of strings easier. You can easily exchange the positions of strings in the array using pointers without touching their memory locations. This makes managing strings very convenient. Another way of initializing a string is by using pointers like
for example:
Char string[ ] = “cats”;
Char *a;
Here is a pointer pointing to the string “string”. Pointers are another suitable way to access string arrays and modify them as we want. Since strings are composed of characters, we should use pointers to characters. The types of the variable and the pointers must match otherwise an error will be generated. Be careful that you don’t use “&” (address of) operator to assign the address of a variable to the desired pointer. If you used it, the name of the array will be used as the address of that particular array. For this reason only we do not use “&” (address of) while passing a string to the function scanf(). For example see the following code:
Int a;
Char name[10];
Scanf(“%d%s”, &a, name);
The pointer allows us to access the required character in the string because we made it to point to that string. Functions can be passed to print labels and to call the function. Below is an example:
Void printlbl(char lbl[ ])
{
Printf (“the label: %s\n”, lbl);
}
int main()
{
char lbl2[] = "abc";
Printlbl(lbl2);
}
Now if we want to pass a pointer to the string array lbl2, we will use the following code:
Char *lblptr = lbl2;
The above declared pointer can be used in the function also like shown below:
Printlbl (lblptr) ;
After execution you will observe that both the statements give the same output. Now you will ask me why so? The answer for this is that when we pass an array as a parameter or an argument to a function, a pointer is automatically created without we knowing it and the arrays are passed by reference method automatically the way a pointer is passed. So the above written code can also be written the other way as follows:
void Printlbl(char *lbl)
{
printf("the Label: %s\n",lbl);
}
a code for dynamically allocated string is given below:
string = (char *)malloc(sizeof(char) * (len+1));
Some stings can be allocated dynamically. This is done when we don’t know how much long a string will go until the program is executed or when we don’t what size of string the user will enter.
Posted by
Sunflower
at
9/14/2011 09:01:00 PM
0
comments
Labels: Arrays, C Language, Characters, Code, Compiler, Data types, Declaration, Errors, Functions, Initialization, Memory, Pointers, program, software engineering, Strings, Variables
|
| Subscribe by Email |
|
Wednesday, September 7, 2011
How are strings and arrays defined in C?
A string can be defined as a group of characters, usually letters of the alphabet. When C is either to compare a string with another string, output it, copy it to another string, or whatever, the functions are intended to do what they are called to do until a null, which is a zero, is detected. Such strings are often called an ASCII-Z string. C treats a string as an array termination with a NULL character. C does not have a separate data type for strings and so strings exist as the arrays of characters. An extra byte must be left to store the NULL “\0”. Strings are declared as the arrays of characters. For example:
char name[25];
Strings can be fully or partially initialized depending on the requirements of the user. For example:
char fill[10] = { ‘a’, ‘ ‘, ‘r’,’o’,’p’,’l’,’a’,’n’,’e’,’\0’ };
There exist certain predefined functions for modifying strings. The library cstring.h houses all these functions. Strcpy() is used to copy one string into another string. Strlen() is used to determine the length of the string. Strcmp() is function for comparing two strings i.e., which one is bigger in terms of length. Strcat() is used to concatenate two strings. The second string is appended to the end of the first string. Strrev() is used to reverse a string alphabetically.
An array is a C derived data type and can be defined as a collection of variables of the same data type that are referenced by a common name. All arrays consist of contiguous memory locations where the lowest address corresponds to the first element and highest address corresponds to the last element. Arrays are useful when quite many elements of the same data type are needed to be stored and processed. The numbers in [ ] are called indices or subscripts. A string itself is an array of characters. Arrays are of two types namely one- dimensional arrays and multi dimensional arrays. Multi dimensional array comprises of elements which themselves are arrays. The general form of an array declaration is as follows:
Type array-name [size];
Here type states the data type of the array elements. The array name declares the name of the array, and finally the size defines how many elements will be there in the array. The data type of the array is called the base type.
A multidimensional array consists of M*N elements where M is the number of rows and N is the number of columns. It can be declared as follows:
Type array-name [rows][columns];
Where single dimensional arras can be read using a single loop, it takes nested loops to read and access the elements of a multi dimensional array. One loop is used to process the rows and the other one is used to process the columns. The arrays can be initialized during the run time as follows:
Type array-name [size 1]……….[size N]= {value list};
The value list consists of the array elements. C allows you to skip the size of arrays in an initialization statement. These types of arrays are called unsized arrays. For example:
Int abc[ ] = {1,2,3,5,7};
The best way to assign values to an array is using a "for" or "while" loop because it’s not affordable to write a separate initialization for every element. Arrays can be passed s parameters to the functions to maintain a structured design. Always keep in mind that in C subscripts start from 0. A string from an array of strings can be accessed by using pointers. But keep in mind that pointers hold only address of the strings. From there it is able to obtain the whole chunk of the contiguous memory.
Posted by
Sunflower
at
9/07/2011 06:35:00 PM
0
comments
Labels: Arrays, C, C Language, Characters, Copy, Data, Elements, Functions, Initialization, Length, Letters, Nested loops, Null, Output, Requirements, Size, Strings, User, Values, Variables
|
| Subscribe by Email |
|
Tuesday, September 6, 2011
What is Assignment and Logical Comparison in C...
An expression as we all know is composed of one or more operations. When the expression is terminated by a semi colon, it becomes a statement which is the small executable unit in any program. The assignment statements are used to assign a value to a variable. The assigned value can be a constant variable or an expression. An assignment statement can be written in general form as:
A=bcd;
Where A is a variable to whom we are assigning a value and bcd is the assigned value. The “=” sign is called assignment operator. Assignments can be chained together. The assigning operator “=” assigns the value to the left hand operand and returns the value of the assignment. Assignment statements are very much needed for variable initialization since variables are initialized using assignment statements. There are 2 ways to do this:
- Un-initialized variable
- Initialized variable
An un-initialized variable has to be initialized in separate statements whereas an initialized variable combines declaration and assignment in to one statement.
Examples are:
Int a;
a=3; ------------------------uninitialized variable
int a= 3; -------------------- initialized variable
Assignment also follows when you use dynamic initialization. Sometimes variables of different types are mixed with each other. It’s a very common and observed phenomenon. In such cases a type conversion takes place. Here also it follows from the principal of assignment statement that “the value of the right side of the expression or of the assignment is converted to the type of the variable on left side i.e., target variable. Both the sides of assignment should be compatible with each other for type conversion. When conversion takes place from smaller data type to a larger data type no data is lost. Precedence of operators while assigning values with an expression should always be kept in mind.
Some programs need the power of decision making or comparison. This is granted through logical expressions which are nothing but the statements resulting into a 0 (true) or 1 (false) value. These are a combination of constants, variables and logical and relational operators. Be careful that two or more variables and operators should not occur in continuation. A logical expression may contain just one signed or unsigned variable or a constant or it may have two or more also joined by varied relational and logical operators. Following are some valid logical operators: the logical OR operator (||), the logical AND operator (&&) and the logical NOT (!) operator. The OR operator combines 2 expressions as its operands. If either of its operand evaluates to true, the OR operator also evaluates to true. This operator is basically used for testing evaluating expressions. The AND operator combines 2 expressions into one and the operator evaluates to one if and only if both the operands evaluate to 1. The NOT operator works on a single operand since it is a unary operator. It is used to negate or reverse the truth value of the operand. It has a higher precedence than of the relational and logical operators. Therefore, this should be enclosed within parentheses. This operator is useful as a test for zero. OR and AND operators have lower precedence than relational operators. Relational operators are used to define relationships between variables. C provides 6 basic relational operators : < (less than), > (greater than), <= (less than or equal to), >= (greater than or equal to), == (equal to), and != (not equal to). Do not confuse the = and the == operators. “=” is assignment operator whereas “==” is relational equality operator.
Posted by
Sunflower
at
9/06/2011 11:40:00 AM
0
comments
Labels: Assignment, C, C Language, Comparisons, Constants, Conversions, Declaration, Executable, Expressions, Initialization, Logical, Logical comparison, Operations, Operators, Variables
|
| Subscribe by Email |
|