skip to main |
skip to sidebar
Spiral model is one of SDLC model which is useful to develop application in organised way.
Sprial model is iteration of more than one waterfall model. It means we devide application in small modules.
Follwoing steps will be follow in spiral model
1. We gather requirement for the module
2. We design the module and get approval from the client
3. We implement the module
4. We test that module
5. We deploy that module
6. We will plan for next module and go to step1 for next module.
The above steps will be followed for all the modules while whole application will not complete.

Waterfall model is one of SDLC model (Software Development Life Cycle) which helps to develop application in organised way.
In Waterfall model, Application life cycle is devided into following phases:
1. Requirement Gathering
In this phase, We need to gather requirement from the client and create RUD (Requirement Understanding Document) or SRS (Software Requirement specification). We also need to approve those document from Client to move to next phase.
2.Design
In this phase, We need to develop mock-up which will help to client to understand how application will work after development. If there is any change required then client suggest in this phase, so we can save our time in development. After getting approval on design, we need to move to next phase.
3. Implementation
In this phase, we will start implementation. Before going to implement anything, Develop needs to create unit test case document which helps to trace requirement with the SRS or RUD document. Unit testing is part of this phase only.
4. Verification or Testing
In this phase, QA will test the application and check all the requirement is developed as per specification in RUD or SRS. If QA will find any bugs then Developer need to resolve.
5. Deployment
In this phase, We need to deploy application on production machines.
6. Maintenance
In this phase, We need to give support to application on production machines. If any bugs found after deployment then developer needs to solve the bugs.

SDLC stands for Software Development Life Cycle. SDLC helps to develop application in organised way.
There are many SDLC models available.
1. Waterfall Model
2. Spiral Model
3. Iterative Model
4. Prototype Model
5. RAD Model
6. COCOMO Model
7. V-Model
8. Fish Model
I tried to find out the difference between Inteface and Abstract class. I have described it blow
1. Methods
In Abstract Class, User can implement method. In Interface, We can't implement any method. (Method signature is not allowed into Interface)
public abstract class TestAbstract
{
public string strProperty { get; set; }
public abstract void abstractMethod();
public string NormalMethod()
{
return "def";
}
}
public interface ITestInterface
{
string stringProperty { get; set; }
void abstractMethod();
}
In above code, NormalMethod is implemented into Abstract class but Interface is not allowed to implement method.
2. Access specifier
We can specify access specifier for property, method. But we cannot specify access specifier in Interface
3. Inheritance
Interface allows multiple inheritance but Abstract class is not allow multiple inheritance.
SOA characteristics are defined below:
- Service are discoverable and dynamically bound
Service provider use service registry to register service and Service consumer will use Service Registry to find out proper service and consume it. For an example, financial provider gives facility to validate credit card information and register their service with the system registry. They also provide more information like charges to validate credit card information. Service consumer will find all the services which helps to validate the credit card information and choose provider who gave service at lowest price.
- Services are self contained and modular
Most important aspect of SOA is concept of modularity. A service supports a set of interfaces. These interfaces should be cohesive, meaning that they should all relate to each other in the context of a module.
- Services stress interoperability
The ability of system is to be consumed by different platforms and languages to communicate with each other. Services dependencies are loose-coupled means loose-coupled services have a few well known dependencies.
- Service have a network-addressable interface
The role of the network is central to the concept of SOA. A service must have a network-addressable interface. A consumer on a network must be able to invoke a service across the network. The network allows services to be reused by any consumer at any time. The ability for an application to assemble a set of reusable services on different machines is possible only if the services support a network interface.
- Service have coarse-gained interfaces
The concept of granularity applies to services in two ways. First, it is applied to the scope of the domain the entire service implements. Second, it is applied to the scope of the domain that each method within the interface implements. The levels of granularity are relative to each other. For instance, if a service implements all the functions of a banking system, then we consider it coarsegrained. If it supports just credit-card validation, we consider it fine-grained. In addition, if a method for inquiring about a customer returns all customer information, including address, this method would be coarser-grained than a method that does not return the customer’s address.
- Services are location transparent
Location transparency is a key characteristic of service-oriented architecture. Consumers of a service do not know a service’s location until they locate it in the registry. The lookup and dynamic binding to a service at runtime allows the service implementation to move from location to location without the client’s knowledge. The ability to move services improves service availability and performance. By employing a load balancer that forwards requests to multiple service instances without the service client’s knowledge, we can achieve greater availability and performance.
- Services are composable
A service’s composability is related to its modular structure. Modular structure enables services to be assembled into applications the developer had no notion of when designing the service. Using preexisting, tested services greatly enhances a system’s quality and improves its return on investment because of the ease of reuse. A service may be composed in three ways: application composition, service federations, and service orchestration. An application is typically an assembly of services, components, and application logic that binds these functions together for a specific purpose. Service federations are collections of services managed together in a larger service domain. For example, a checking account service, savings account service, and customer service may be composed into a larger banking-account service. Service orchestration is the execution of a single transaction that impacts one or more services in an organization. It is sometimes called a business process. It consists of multiple steps, each of which is a service invocation. If any of the service invocations fails, the entire transaction should be rolled back to the state that existed before execution of the transaction.
- Service-oriented architecture supports self-healing.
With the size and complexity of modern distributed applications, a system’s ability to recover from error is becoming more important. A self-healing system is one that has the ability to recover from errors without human intervention during execution.
To remove data from database table, we can use Truncate or Delete command on database table.
There are many difference in Truncate and Delete command:
1. Clause:
You can specify where clause to remove some data in Delete command. like:
Delete from Table1 where ID > 20
You can't specify where cluase with Truncate command. Truncate command will remove all the data from table.
2. Transaction:
Delete command is a part of transaction. So you need to commit your transaction to make changes permanent.
Truncate command is not participate in transaction. So you don't required to do anything with transaction.
3. Trigger:
Delete command will fire delete trigger of the table. Truncate command will not fire any trigger.
4. Log:
SQL server logs information regarding delete operation. So everytime log file increased when you will execute delete command. SQL server do not log any information regarding Truncate operation. So Truncate operation is faster than Delete operation.
5. Identity Value:
Truncate reset identity value if table have any identity column. Delete operation not reset any identity value.
Sometime we face problem of duplicate records in SQL server database. In this scenario, we need to remove duplicate rows.
There are many ways available to remove duplicate rows from the database like
- Using temporary table – In this you have to transfer data into temporary table which have identity column so you can identify record uniquely and remove duplicate rows. But it gives more loads on SQL if you have lots of data in your table.
- Using adding Identity column into existing database
All above options gives very heavy load to SQL server. You can remove duplicate rows using following method:
You just have to create in-memory table which just create schema of your table and add new row number column. Using row number column, you can remove duplicate rows.
With [Temp_Table_Name] as
(
Select RN = row_number() over (PARTITION by col1, col2, col3 order by col1, col2, col3), * from [Table_Name]
)
delete from [Temp_Table_Name] where RN > 1
The above script add new column of row number in your table. This is just in-memory change. You can remove duplicate rows which actually remove from your table.
Here I used Row_Number function with “Order by” and “Partition by”.