Software is set of programs developed for specific purpose. Software has wide range of applications like embedded systems, MS Office, ATM, operating systems, email services, internet banking, social media sites, e-commerce sites, antivirus, software in spacecrafts, safety critical systems, etc. The use of software has penetrated deeper into human lives. People from different professions, age groups require software. Software is applicable to every industry or a domain that you could name like banking & financial services, CRM, telecom, aviation, tourism and so on. IT is a huge industry contributing greatly to the economy of the countries by creating job opportunities, globalizing the business activities. The application of software has proved to be more efficient and reliable than manual activities in business applications.
Software industry has rapidly evolved after second world war, standardizing the processes in IT industry. A step by step approach to develop the software is called SDLC -Software Development Life Cycle. The SDLC steps are scope identification, planning, analysis, design, development, testing, deployment and UAT.
Scope identification: The high-level requirements are gathered from the client by the Business Analyst and/or Project Manager. The client is an entity that gets the software developed from the IT company. Example: Bank of America gets the mobile banking software developed for its customers. Here, Bank of America is client and customers of Bank of America are called as end users. The requirements are often documented in Business requirements document.
Plan: In the planning phase, IT Project Manager plans the schedule and budget of the project. All the plans are documented in Project Plan document.
Analysis:It’s about the detailing the requirements gathered from client. Each requirementis provided with more specifications. The mock up diagrams, use cases, context diagrams, activity diagrams are more commonly used to explain the client requirements. This task is done by Business Analyst. The documents containing requirements and its specifications are to be signed off from the client. The technical team uses these documents to understand the requirements of client, visualize them and develop the software as per the client expectations.
Design: The blueprint or programming logic of software is designed by a Technical Architects team. In the programming logic, the programs, steps in the program, interfaces between the programs, data flow, control flow are designed. The database structure is designed by the database team.
Development: The developers or programmers refer to the design of the software for programming or coding. The database development develops the database for the software. There are several programming languages like Java, C#, PHP, etc. that can be used to develop the software.
SoftwareTesting: The software is tested at different levels of the software development to identify the defects and verify the requirements of the client by developers, QA team and also vendors.
Deployment: The thoroughly tested software is released to the client. The developers with assistance of system administrators get the software installed in the production environment. The installation manual has the steps for installation and configuration of the system for installation.
User Acceptance testing: The end users test the software to make sure the software meets their requirements. The software testers and business analysts assist the users for testing. The user manual can be referred by users to understand the functioning of software.
There are various technologies and tools used throughout the software projects: development platforms like .Net, database management systems, big data solutions like Hadoop, BizTalk, testing frameworks etc.
Check your understanding:
- List the steps of SDLC
- What is different between client and end users?
- Give the examples of the software applications other than mentioned in the above material.
This article is written by Priya, Sr. Faculty at H2K Infosys.