Latest update Android YouTube

Agile | Introduction to SDLC | IndianTechnoEra

Admin


Agile: 1.1 Introduction to SDLC | IndianTechnoEra 


A software life cycle model (also termed process model) is a pictorial and diagrammatic representation of the software life cycle. A life cycle model represents all the methods required to make a software product transit through its life cycle stages. It also captures the structure in which these methods are to be undertaken.

Stage 1:  Feasibility Study in Software Engineering is a study to evaluate feasibility of proposed project or system. A feasibility study is carried out based on many purposes to analyze whether a software product will be right in terms of development, implantation, contribution of project to the organization etc.

Types of Feasibility Study : The feasibility study mainly concentrates on below five mentioned areas:

1.Technical Feasibility – In Technical Feasibility current resources both hardware software along with required technology are analyzed/assessed to develop project. This technical feasibility study gives report whether there exists correct required resources and technologies which will be used for project development.

2. Operational Feasibility – In Operational Feasibility degree of providing service to requirements is analyzed along with how much easy the product will be to operate and maintain after deployment.

3.. Economic Feasibility –  In Economic Feasibility study cost and benefit of the project is analyzed. Means under this feasibility study a detail analysis is carried out what will be cost of the project for development which includes all required cost for final development like hardware and software resource required, design and development cost and operational cost and so on.

4. Legal Feasibility – In Legal Feasibility study project is analyzed in legality point of view. This includes analyzing barriers of legal implementation of project, data protection acts or social media laws, project certificate, license, copyright etc.

5. Schedule Feasibility – In Schedule Feasibility Study mainly timelines/deadlines is analyzed for proposed project which includes how many times teams will take to complete final project which has a great impact on the organization as purpose of project may fail if it can’t be completed on time.

Stage 2: Requirement Analysis : Requirement analysis is the most important and fundamental stage in SDLC. It is performed by the senior members of the team with inputs from the customer, the sales department, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational and technical areas. Software requirement means requirement that is needed by software to increase quality of software product. These requirements are generally a type of expectation of user from software product that is important and need to be fulfilled by software. Analysis means to examine something in an organized and specific manner to know complete details about it.

1. Problem Recognition : 

The main aim of requirement analysis is to fully understand main objective of requirement that includes why it is needed, does it add value to product, will it be beneficial, does it increase quality of the project, does it will have any other effect.

2. Evaluation and Synthesis : 

Evaluation means judgement about something whether it is worth or not and synthesis means to create or form something. Here are some tasks are given that is important in the evaluation and synthesis of software requirement : 

  • To define all functions of software that necessary.
  • To define all data objects that are present externally and are easily observable.
  • To evaluate that flow of data is worth or not.
  • To fully understand overall behavior of system that means overall working of system. 
  • To identify and discover constraints that are designed.
  • To define and establish character of system interface to fully understand how system interacts with two or more components or with one another.

3. Specification: 

The software requirement specification (SRS) which means to specify the requirement whether it is functional or non-functional should be developed. The organization of an SRS is as follows:

1. Purpose

  • Definitions
  • Background
  • System overview
  • References

2. Overall description

(i)  Product perspective

  • System Interfaces
  • User interfaces
  • Hardware interfaces
  • Software interfaces
  • Communication Interfaces
  • Memory constraints

(ii)  Design constraints

  • Operations
  • Site adaptation requirements

(iii) Product functions

(iv) User characteristics

(v) Constraints, assumptions and dependencies


3. Specific requirements

(i) External interface requirements

(ii)Performance requirements

(iii)Logical database requirement

(iv)Software system attributes

  • Reliability
  • Availability
  • Security
  • Maintainability
  • Portability

(v) Functional requirements

  • Functional partitioning
  • Functional description
  • Control description

(vi) Environment characteristics

  • Hardware
  • Peripherals
  • Users

(vii) Other

4. Review: 

After developing the SRS, it must be reviewed to check whether it can be improved or not and must be refined to make it better and increase the quality.

Stage 3: Software Design Process

The design phase of software development deals with transforming the customer requirements as described in the SRS documents into a form implementable using a programming language. The software design process can be divided into the following three levels of phases design:

1. Interface Design
2. Architectural Design
3. Detailed Design

Interface Design: 

Interface design is the specification of the interaction between a system and its environment. this phase proceeds at a high level of abstraction with respect to the inner workings of the system i.e, during interface design, the internals of the systems are completely ignored and the system is treated as a black box. Attention is focused on the dialogue between the target system and the users, devices, and other systems with which it interacts.

Interface design should include the following details:
A precise description of events in the environment, or messages from agents to which the system must respond.

  • A precise description of the events or messages that the system must produce.
  • Specification of the data, and the formats of the data coming into and going out of the system.
  • Specification of the ordering and timing relationships between incoming events or messages, and outgoing events or outputs.

Architectural Design: 

Architectural design is the specification of the major components of a system, their responsibilities, properties, interfaces, and the relationships and interactions between them. In architectural design, the overall structure of the system is chosen, but the internal details of major components are ignored.

Issues in architectural design include:

  1. Gross decomposition of the systems into major components.
  2.  Allocation of functional responsibilities to components.
  3. Component Interfaces
  4. Component scaling and performance properties, resource consumption properties, reliability properties, and so forth.
  5. Communication and interaction between components.

Detailed Design: 

Design is the specification of the internal elements of all major system components, their properties, relationships, processing, and often their algorithms and the data structures.
The detailed design may include:

  • Decomposition of major system components into program units.
  • Allocation of functional responsibilities to units.
  • User interfaces
  • Unit states and state changes
  • Data and control interaction between units
  • Data packaging and implementation, including issues of scope and visibility of program elements
  • Algorithms and data structures

Stage 4: Development or Coding: 

Coding is the process of transforming the design of a system into a computer language format. This coding phase of software development is concerned with software translating design specifications into the source code. It is necessary to write source code & internal documentation so that conformance of the code to its specification can be easily verified. Coding is done by the coder or programmers who are more independent people than the designer. The goal is not to reduce the effort and cost of the coding phase, but to cut to the cost of a later stage. The cost of testing and maintenance can be significantly reduced with efficient coding.

Goals of Coding

  • To translate the design of system into a computer language format: The coding is the process of transforming the design of a system into a computer language format, which can be executed by a computer and that perform tasks as specified by the design of operation during the design phase.
  • To reduce the cost of later phases: The cost of testing and maintenance can be significantly reduced with efficient coding.
  • Making the program more readable: Program should be easy to read and understand. It increases code understanding having readability and understandability as a clear objective of the coding activity can itself help in producing more maintainable software.

Stage 5: Software Testing : 

Software Testing is a method to check whether the actual software product matches expected requirements and to ensure that software product is Defect free. It involves execution of software/system components using manual or automated tools to evaluate one or more properties of interest. The purpose of software testing is to identify errors, gaps or missing requirements in contrast to actual requirements.

What are the benefits of Software Testing?

Cost-Effective: 

It is one of the important advantages of software testing. Testing any IT project on time helps you to save your money for the long term. In case if the bugs caught in the earlier stage of software testing, it costs less to fix.

Security: 

It is the most vulnerable and sensitive benefit of software testing. People are looking for trusted products. It helps in removing risks and problems earlier.

Product quality: 

It is an essential requirement of any software product. Testing ensures a quality product is delivered to customers.

Customer Satisfaction: 

The main aim of any product is to give satisfaction to their customers. UI/UX Testing ensures the best user experience.


Stage 6: Software Maintenance : 

Software Maintenance is the process of modifying a software product after it has been delivered to the customer. The main purpose of software maintenance is to modify and update software applications after delivery to correct faults and to improve performance. 

Need for Maintenance –  Software Maintenance must be performed in order to:

  • Correct faults.
  • Improve the design.
  • Implement enhancements.
  • Interface with other systems.
  • Accommodate programs so that different hardware, software, system features, and telecommunications facilities can be used.
  • Migrate legacy software.
  • Retire software.

 

Post a Comment

Feel free to ask your query...
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.