Software Engineering
[Link]
Assiatant Professor
Department of computer
Science
BBD University
Software Engineering
Defination:- The term software Engineering is composed of two words
Software and Engineering.
Software:- Software is more than just a programmed code.
A program is an executable code which serves some computational
purpose .Software is considered to be a collection of some program inputs,
associated libraries and [Link] when make for specific
requirements is called software product.
Engineering:-On the other hand is all about developing products using well
define scientific principle and methods .
“So we can define Software Engineering as an engineering branch associated
with the development of the product using well define scientific
principle ,method and procedure.”
According to IEEE(Institute of Electrical and Electronic Engineers):- “Software
Engineering is the application of a systematic disciplined qualitable approach
to the development operation and maintance of software development .”
Principles of Software Engineering
Without using SE principles is to difficult to devlop a large [Link] industry it
is usually needed large programs to facilitates multiple function . A problem with
developing such large commercial program is that the complexity and difficulity
levels of the programs .SE helps tp reduce programming complexity .
Generally by using two methods :-
Abstarction
Decomposition
Abstraction:- The principle of abstraction implies that a problem can be
simplified by omenting erelvantant .In other word ,the main purpose is to
considered only those aspect of the problem that are relvant and surprised other
aspect that are not needed.
Decomposition:- In this method a complex problem is divided into several
smallest program and then the smalled problems are solved one by one.
So is the other method to reduce the complexity.
Need of Software Engineering
Large software
Scalebility
Cost
Dynamic nature/ Static nature
Quality management
Characterstics of Good software
A software product should satishfy all the following grounds:-
i. Operational:- Buget ,usebility, Efficiency, Correctness,
Functionality, Dependibility, Security, Safety .
ii. Transitional:- Portbility, Enter operatibility, Reusebility,
Adaptibility.
iii. Maintenance:- Modularity, Maintainbility, Flexibility,Scalebility.
Goal of Software Enginerering
The primary goals of software engineering are:-
• To improve the quality of the software products.
• To increase the productivity .
• To give job satisfaction to the software engineers.
Software Devlopment life cycle(SDLC)
• A life cycle model prescribes the different activities that need to be carried out
to develop a software product and sequencing of these activities.
• Also referred to as Systems Development Life cycle.
• Every software product starts with a request for the product by the customer :-
Production conception.
• The software life cycle can be considered as the business process for software
development and therefore is often referred to as a Software process. (SLCM).
• Process models More detailed and precise life cycle activities
Different stages in life cycle model:-
After Product conception. The stages are: (Life cycle phase)
Feasibility study stage
Requirements analysis and specification.
Design
Coding
Testing and
Maintenance.
• A SDLC is a series of identifiable stages that a software product undergoes
during its lifetime.
• A SDLC is a descriptive and diagrammatic representation of the software life
cycle.
• A life cycle model maps the different activities performed on a software
product from its beginning to retirement into a set of life cycle phases.
Software Testing
Testing is the set of activity that can be plant in advance and conducted
systematically .
Testing strategy should have the following characterstics:-
i. Uses a formal technical review.(FTR)
ii. Begins and component level and entire system.
iii. Different technique at different points .
iv. Conducted by Developer and test group.
v. Should include debugging.
Different technique of Testing
Software testing is one of Verification and Validation.
Verification:- Verification refers to the set of activities that
ensures the software correctly implements a specific fuction.
Example – Are we building the product right.
Validation:- Validation is a set of activities that ensures that the
software build its precable to the customer requirements.
Example – Are we building the right product.
Types of Testing
Difference between White box and Black box
Black Box Testing
The test engineers performance the Black box testing.
What the software supposed to do but not aware of how does it.
We will verify the functionality of the application based as the requirnment
specification.
There is no need to understanding the programming language.
There is no need to know about the internal design of the code.
Test design technique –All pair testing ,equivalent part testing ,boundary
value ,analysis, cost effect graph.
Can be applied virtually to every level of software testing unit, Integration
and system requirement.
White Box Testing
Devloper can perform white box testing.
What a software is used to do .Also aware of how does it.
We should have the understanding the programming language.
We will looked into the source code and test the logic of the code.
The developer should not design the code .
Test design technique –control flow ,branch testing, Data flow testing , path
testing , decision caoverage .
Can be applied mainly at unit testing level but not in integration ,system also.
Thank You
J