Pages

کچھ میرے بارے میں

بلاگر حلقہ احباب

آمدو رفت

بلاگ کا کھوجی

Video Of Day

Time

Software engineering without programming

Software engineering is the field of engineering that deals with the study, design, procedure and

development of software. It is the development of procedures and applications to be run on computers.

It takes into account that on which kind of machine the software will work, under which conditions the

software will work satisfactorily and what elements are required to build up efficientsoftware. It deals

with each and every aspect of developing software. It is the most growing field in today’s era as

software engineering produces such intelligent software whose market value increases rapidly and thus

it is more economic friendly.

Software programming requires some high level language to develop a program. They are so designed

to fulfill some objective or to carry out some function.

Since programming is done to be understood by computer and machine only understands machine code

so in order to do programming, it must be written in machine code. This machine code is in the form of

binary strings that is the string of zeroes and ones. Generally, two kinds of languages are used for

programming i-e high level language and low level language.

High level language:

High level languages are more user friendly as they are easily understandable by humans. Such

languages are provided with the description of solutions. It is fairly simple to create programs using high

level language. Some popular high level languages include c language, pascal, fortran and basic.

Low level language:

Low level languages are difficult to work with and they are difficult to understand too but it has the

advantage of efficiency and precision. The outcome is predetermined and known when working with

low level language.The popular low level languages include machine and assembly language.

Both high level and low level language have their own specific characteristics. We prefer high level

language when we require user friendliness and we prefer low level language when we require high

precision.

Software engineering and programming are two different disciplines .A software engineer is sometimes

regarded as programmer too but this is not the reality. A programmer writes codes to make a program

run on the computer while a software engineer creates or produces the designs which later on

programmer implements.A programmer usually creates the entire code while a software engineer only

composes the software component that when combined with other software components written by

other software engineers will produce a system.A programmer can work alone, it is a personal activity

but software developing is a team work, one person alone cannot work on it.

Programming is one of the stages of software development. One cannot develop software without

programming. An intelligent and efficient software development requires an effective programming or

coding done in some machine language. We can consider programming as a software development

toolthat helps in developing the software.There are programming software too that perform this task

such as assemblers,debuggers,compilers and interpreters.They help in maintaining,debugging,creating

and developing the software.

Software Engineering Vs. Programming

Software engineering is the field of engineering that deals with the study, principles and procedures

regarding development of software. The aim is to build effective software to run on computers

efficiently. It takes into account that what type of software will run efficiently on which type of

computer. It deals with each and every aspect of developing effective software.

Writing computer programs or programming is the procedure of taking data, perform calculation using

some algorithm and encoding it into documentation, in the form a code, with the goal that it can be

executed by a PC. In order that program executed by computer, it must be written in some language

understandable by pc. Computers understand machine language which is usually a string of binary

number s that is zeroes and ones. There are many different machine languages but the basic two types

are high level language and low level language.

High-level language is more users friendly; it contains such phrases and words understandable by

humans. Most common high level languages include C LANGUAGE, BASIC, FORTAN and PASCAL. High

level language is preferred when the aim is to create user friendliness.

Low level language is a bit difficult to comprehend but it has the benefit of precision. The codes written

in low level language are very intelligent and free from error and are precise too. Low level language is

preferred when the aim is to obtain accuracy and precision.

Programming and software engineering are two different disciplines. The terms Programmer and

Software Engineer are often used interchangeably but they are not the same persons in. A programmer

knows how to code and might have the specialized skillsrequired to produce an intelligent code. A

software engineer follows a series of steps and has a defined work flow procedure. He moves step by

step following different techniques and procedures. He interacts with other software engineers and his

team members and then eventually produces a software, as a result of long and detailed work. A

programmer tends to work alone. A software engineer works in a team. Effective software is a result of

great team activity.

A Programmer composes a complete program whereas a software engineer composes a software part

that will be incorporated with that of produced by other software engineers. Programming or coding is

just the one stage of software development whereas software development comprises of a number

stages.

A software engineer has attained an educational degree and has deep knowledge about the

development of software.He knows all the workflow steps of buildingeffective software.His approach is

based on the logics, algorithms and calculations. A programmer writes intelligent codes that are used by

software engineer in one of the steps of building profound software. A programmer can work alone, it is

a personal activity but software engineering requires a team effort. It has different workflow steps that

require input from other team members performing different tasks. The output of one step serves as

the input for the next step. These engineers obtain feedback from their customers, system and team

members in or der to perform further improvement to meet the customer’s need.

Extreme programming in software engineering

Extreme programming is basically a software engineering approach, but in the most efficient way. It is the leading methodology among all agile or practice based methodologies. It has achieved vast
prominence in recent times owing to its excellent characteristics to provide customer satisfaction.

It differs from standard methodologies in a way that extreme programming is provided with the flexibility feature that is it can work up for different customers with different needs in different conditions rather than producing a standard predictable behavior. Extreme programming has attained a wide spread because it delivers the software as per your need, thus it delivers customer satisfaction.


Extreme programming works on the basis of team work. It considers that manager, supervisor, customer or developer; everyone plays its significant role as a team member which later produces a productive environment.

Origin of XP

The software development and production in 1990’s was affected by two factors.The first one is internal influence or factor and the other one is external influence.

The Internal influence includes the replacement of objective programming with that of procedural
programming and the external influence factor include the rapid changes in market.There was requirement of software with adaptability as the market conditions were changing at a fast rate.


Owing to above mentioned influences, extreme programming came into being. The first extreme programming project was done in March 6, 1996 and since then it has obtained great popularity owing to its significant features.

Objectives of XP:

Extreme programming comes with the following objective:

  • To provide customers with the modern style of development
  • To provide software with the adaptability.
  • To fulfill customer’s changing requirement.
  • To minimize the cost of change.


Extreme programming has five workflow steps namely communication, simplicity, feedback, respect and courage.Extreme programmers stay in constant contact with other programmers and customers.

They obtain feedback from their customer once they provide them the extreme programming software.They made changes in system as per customer specifications and needs.They are always available to make improvements in the system for arising requirements.There are two types of feedback that are required.


The first one is feedback from the system, in which programmer directly obtains feedback from the system via testing the program. The second type is feedback from the customer, in which programmer will work on the improvements as per feedback of customer.

As already mentioned, extreme programming is a team work and not the personal activity so, even a
small success depends on the contribution of each and every team member.Contrary to its name,the
rules of extreme programming are fairly simple.

These rules include planning the work flow,managing the tasks, designing a system,coding the program and testing the code. These rules show that each of them is dependent on other or previous output acts as input to the new step.Customers appreciate the team work and feel delighted to work as partners as extreme programming evokes two way communications between the customers and the developers or programmers.

Testing in software engineering

Programming or software testing is the procedure of assessment software to identify contrasts between

given data and expected output. Software testing is a procedure that is done during the development

process. Its main objective is to identify software failures and errors and provides measures to correct

them. It involves the testing of code in different environment and conditions. We can consider software


testing as the process of verification and validation of the software.

The software testing fulfills the following objectives


  • This testing fulfills the demands of the business that provided design for its developmen
  • It provides the results that were expected or predetermined
  • It provides software with the flexibility to be implemented in any time of the development


process.

Types of software testing:

                             The following are the types of software testing

Black box testing: 

In this type of testing the tests are carried out according to requirements and functionality.

White box testing: 

This test is carried out on the basis of algorithm of code. It requires both software and code to be properly defined. This test is often regarded as glass box testing.

Unit testing:

In this type of testing, the individual component of software is tested. This test will require an in depth knowledge about the logic design of a code and hence it is carried out by a skilled programmer or developer.



Integration testing: 

In this type of testing, the individual modules are tested which includes code modules, code applications, server applications etc.

Functional testing: 

This testing is required to ensure the correct functionality of software. It is sub category of black box testing.

System Testing:
This test is done to make it sure that software performs satisfactorily under different conditions and environment. It is also the sub category of black box testing.

Performance testing: 

This test is carried out to see the speed of software and its effectiveness to produce the expected outputs.

Acceptance testing: 

This test is usually performed by the customer to check if the software is working as his demands and requirements.

Regression testing: 

This type of testing is done after the modification of software to make sure that now no errors exist and every module or individual component is working as per demand.



Load testing: 

This type of testing is done to see how the software behaves under load conditions. This
test provides information about degrading point of software by testing the software under heavy loads
conditions.

Usability testing:

This test is done to check the level of user friendliness of application it is ensure that a user may
understand the application easily and can work up with it.

Security testing: 

This type of testing is carried out to ensure that it cannot be hacked by any other outside access. It ensures that the database is safe from external access.

Comparison testing: 

This type of testing is carried out to see the new version se better than the previous one. It compares and analyzes the strength and weaknesses of both versions.
 

Contact Form

Name

Email *

Message *

aus dieser quelle