Understanding SDLC from SOA perspective
Tags: oracle, architecture, webdev, softwaredevelopment
Published: 2023-05-09 06:15:40

**What is SOA?**
Service-oriented architecture (SOA) is a way of designing software applications using reusable and interoperable components called services.

**SDLC- Software Development Life Cycle**

Traditionally, a life cycle model maps the various activities performed on a software product from its inception to retirement. It is required as when a team is developing a software product, there must be a clear understanding among team representative about when and what to do. A SDLC generally has the following steps.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jo5bgorphveilvzpsgri.png)

**SOA and its related SDLC**

Stage1: Planning and requirement analysis

The senior members of the team perform it with inputs from all the stakeholders and domain experts or SMEs in the industry. 

Since this is a middleware track, the senior members also discuss with the functions which are to be connected via the middleware example for a data polling between E-Business Suite to a Database like Postgres, both these representatives will also be consulted to find out how the information is going to flow, what all adapters/services will be required, how efficient will be the result, is there any other better method to achieve the desired output etc.

Stage2: Defining Requirements

Once the requirement analysis is done, the next stage is to represent and document the software requirements and get them accepted from the project stakeholders.

For SOA, it means figuring out the various SOAP/REST service links, DBs and tables, network, certificate installations and variables which will be used to develop the application.

Stage 3: Designing the Software

The next phase is to bring down all the knowledge of requirements, analysis, and then designing of the software project. This is one of the most important steps in SOA meaning it consists of the architectural representation in SOA. Designing generally starts with a flow diagram/chart which is made to check and get the workflow and logic management verified from stake holders. 

Stage4: Developing the application/project

In case it is an existing application in SOA, this step is not made from scratch instead scope of improvements is analyzed and accordingly. 

For SOA, this is an interesting part as the developers don't actually hardcode anything. Instead, they use preexisting processes and services and adapters to develop the new application. The code which is in XML format is autogenerated as the application gets created. To map variables, they use assign or transform activities in which mapping is to be done manually. Various XSD schemas, XSLT files are created during the development process which aid to the smooth functioning of the application.

Development tool- Oracle Jdeveloper 12c(current version)

Hardcoding is involved where some URLs or columns etc. need to be updated or changed to meet certain client requirements.

In case it is an existing application in SOA, this step is not done from scratch instead scope of improvements is analyzed and accordingly the enhancement or bug fixes are made.

Stage5: Testing

Following the development of the code, it is compared to the requirements to ensure that the solutions are satisfying the demands identified and acquired during the requirements stage.

For SOA, there are multiple non-production environments generally for testing processes. User Acceptance Tests and Unit Tests are performed in these to confirm the requirements and ensure its ready for production.

Testing tools-Oracle Fusion Middleware Enterprise Manager console or Postman/SOAPUI. 

Stage 6: Code check in and Deployment.

Similar to tradition, in SOA, once the application/web service is certified, and no bugs or errors are stated in non-prod setup, then the code check-in is done in the repository and followed by deployment to production environments.

Tools- Can vary from project to project. Generally, code check-ins done to Gerrit or GitHub and then deployment.

For code check-ins, basic knowledge of command line is required.

Stage 7: Maintenance

Once when the client starts using the developed systems, then the real issues come up and requirements to be solved from time to time.

**Conclusion**

SDLC thus plays a crucial role in SOA as well and helps project managers to track down progress of each project and mitigate issues is any without chaos and disturbance.