Saturday, 25 February 2017

Software Engineering

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.
Other models are:
Bigbang Model:
Diagram:
Spiral Model:
Diagram:






1 comment:

  1. Hello Sarmad,
    The Article on Software Engineering along with total Description about Software Development Life Cycle thanks for Sharing the information about it. Software Testing Company

    ReplyDelete