Software Engineering
Software is considered to be collection of executable
programming code, associated libraries and documentation. Software, when made
for specific requirement is called software product.
Engineering, on the other hand, is all about developing
software product, using well defined, scientific principles and methods.
Software engineering is an
engineering branch associated with development of software products using well
defined principles, methods and procedures. The outcome of these developments
are the well defined software product.
Software evolution
The process of
develop the software using the well defined principles and methods are referred
to software evolution. This includes the initial requirements to develop
software, its maintenance and updates till the desired software is built.
IN SHORT:
· >Evolution starts from gathering requirements.
· >After which developer collect the initial
requirements and make software for user
· > Show the software to the user to get feedback at
early stage
· > User suggests the changing
· >Developer develop that initial software
according to user requirement.
Even the desired software is developed and goes to the
user’s hand. But because of growing technology it’s not good to develop the
software from scratch. So it’s needed to develop software in such way that it
can be update of upgrade thorough out the time by adding the additional code of
programming in the existing code of programming.
Today software are defined in three categories:
1.
S-Type Software:
Static type software whose specification and results defined strictly
before developing them. There results are always same and doesn’t change. E.g
Calculator for mathematical computation.
2.
P-Type Software: Practical type software is the
collection of procedures. In this type of software specification can be
describe but the solutions are not defined they change. E.g Games.
3.
E-Type Software: this is the software that works
with the requirement of the real world requirements. They changes according to
situations. E.g Artificial Intelligence and in real world it’s like trading
software.
Characteristics
of good software:
A well and good software
must be Contain following properties:
·
Operational
·
Transitional
·
Maintenance
SDLC (System Development Life Cycle)
System Development Life Cycle is a well defined, structure
and sequence of stages to develop a software.
SDLC provides a series of steps to built a software
efficiently. The different steps of developing a software using SDLC technique
is given below:
·
Communication
·
Requirement gathering
·
Feasibility study
·
Analysis
·
Software design
·
Coding
·
Testing
·
Integration
·
Implementation
·
Maintenance
Communication:
This is the first step where
user communicate the service provider or software engineer to request his software
which he want to develop. He negotiate with service provider and tell the basic
idea of his project.
Requirement gathering:
In this steps software
development team gathered the require information about the software which they
are going to make in order to be successful they:
·
Studying about the software that is going to be
developed
·
Conducting interviews of users and developers.
·
Referring the database
·
Collecting answers from the questioners
Feasibility Study:
In this step
developer have the rough plan about the software but now it analysis the
software. This step is about the study of software:
· >>financially
· >> practically
· >>technology used in
· >>time
· >>cost
System analysis
at this step developer make a roadmap of their plan and try to bring
up the best software model that is suitable to the project. System analysis
includes:
·
Limitation of software
·
Learning system related problems
·
Changes to be done in existing software
·
Identifying the impact of software to the
organization and personnel
Software design
This step is about merge all
the study of software, its requirement and other information on the desk and
design the software product.
Coding
Often called programming
phase. The implementation of the software require suitable programming code and
then developing error-free executable programming code to work efficiently/
Testing
Testing is the most
important phase of developing a software in which software is testing by
developer to know that the software is error-free. Software testing includes:
· >>Module testing
· >>Program testing
· >>Product testing
· >>In-house testing
· >>Testing the product at user end’s
Early discovery of errors and their solution is the key to
reliable software.
Integration
Software need s to
integrated with libraries, databases and other program(s).
Implementation
After testing the next stage
is to implement the software or give it to the user. This also means the
installation of software in real machine. Software is tested by portability,
adaptability and reliability.
Maintenance
This step involves the
maintenance of the software. If there are errors in the software pointed by the
user the developer must have to maintain the software by removing error. It
also includes the updating an upgrading according to user’s requirements. User
requirements may change according to additional
changes or technology.
Software development Strategy/Model
Software development
Strategy technique helps the
developer to use a strategy to develop software. There are many software
development strategy or Model some of are:
1. >> Waterfall Model
2. >>Iteration Model
3. >> Spiral Model
4. >> V-shape Model
Waterfall model
Waterfall model is the
strategy of developing a software step by step water fall model is like:
>>Requirement gathering
>>System analysis
>>Coding
>>Testing
>>Implementation
>>Maintenance
This model works like SDLC steps given at the start.
Pros:
· >Simple and step by step
· > Easy way to develop software
· > Easy to understand
Cons:
· >can’t complete next step unless previous is not
completed
· >time consuming
the major drawback of waterfall model is we move to the next
by must be complete the first stage and there was no chance to go back of
something found wrong in the later stages.
V-shape Model
V-Shape Model
provides facility of testing the software at each stage unlike Waterfall model.
V-shape Model consists on different steps. Steps are defined
in the diagram.
Diagram
At every stage, test plans and test
cases are created to verify and validate the
product according to the requirement of that
stage. For example, in requirement gathering stage the test team prepares all the test cases in
correspondence to the requirements.
Later, when the product is developed and is ready for testing, test
cases of this stage verify the software
against its validity towards requirements at
this stage.
This makes both verification and
validation go in parallel. This model is also known
as verification and validation model.
as verification and validation model.
Other models are:
Bigbang Model:
Diagram:
Spiral Model:
Diagram:
Hello Sarmad,
ReplyDeleteThe Article on Software Engineering along with total Description about Software Development Life Cycle thanks for Sharing the information about it. Software Testing Company