Software Engineering unit 1 Notes AKTU ppt

1,078 views 37 slides Dec 18, 2024
Slide 1
Slide 1 of 37
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37

About This Presentation

Software Engineering unit 1 Notes AKTU ppt


Slide Content

Unit 1
Software Engineering
Prepared By
Abhishek Kesharwani
Assistant Professor ,United College of Engineering and Research
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Index
•Introduction to Software Engineering
•Software Components
•Software Characteristics
•Software Crisis
•Software Engineering Processes
•Similarity and Differences from Conventional Engineering
Processes
•Software Quality Attributes.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Introduction to Software Engineering
•Thetermsoftwareengineeringistheproductoftwo
words,software,andengineering.
•Thesoftwareisacollectionofintegratedprograms.
•Softwaresubsistsofcarefully-organizedinstructions
andcodewrittenbydevelopersonanyofvarious
particularcomputerlanguages.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

•Computer programs and related documentation such as
requirements, design models and user manuals.
•Engineeringistheapplicationofscientificandpracticalknowledge
toinvent,design,build,maintain,andimproveframeworks,
processes,etc.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

SoftwareEngineeringisanengineeringbranchrelatedtothe
evolutionofsoftwareproductusingwell-definedscientific
principles,techniques,andprocedures.
Theresultofsoftwareengineeringisaneffectiveandreliable
softwareproduct.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Why is Software Engineering required?
Software Engineering is required due to the following reasons:
•To manage Large software
•For more Scalability
•Cost Management
•To manage the dynamic nature of software
•For better quality Management
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Need of Software Engineering
Thenecessityofsoftwareengineeringappearsbecauseofahigher
rateofprogressinuserrequirementsandtheenvironmenton
whichtheprogramisworking.
•HugeProgramming:Itissimplertomanufactureawallthantoa
houseorbuilding,similarly,asthemeasureofprogramming
becomeextensiveengineeringhastosteptogiveitascientific
process.
•Adaptability:Ifthesoftwareprocedurewerenotbasedon
scientificandengineeringideas,itwouldbesimplertore-create
newsoftwarethantoscaleanexistingone.
•Cost:Asthehardwareindustryhasdemonstrateditsskillsand
hugemanufacturinghasletdownthecostofcomputerand
electronichardware.Butthecostofprogrammingremainshighif
theproperprocessisnotadapted.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

•DynamicNature:Thecontinuallygrowingandadaptingnatureof
programminghugelydependsupontheenvironmentinwhichthe
clientworks.Ifthequalityofthesoftwareiscontinuallychanging,
newupgradesneedtobedoneintheexistingone.
•QualityManagement:Betterprocedureofsoftwaredevelopment
providesabetterandqualitysoftwareproduct.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Characteristics of a good software engineer
The features that good software engineers should possess are as
follows:
•Exposure to systematic methods, i.e., familiarity with software
engineering principles.
•Good technical knowledge of the project range (Domain knowledge).
•Good programming abilities.
•Good communication skills. These skills comprise of oral, written, and
interpersonal skills.
•High motivation.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Importance of Software Engineering
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

The importance of Software engineering is as follows
Reducescomplexity:
Bigsoftwareisalwayscomplicatedandchallengingtoprogress.
Softwareengineeringhasagreatsolutiontoreducethecomplication
ofanyproject.Softwareengineeringdividesbigproblemsintovarious
smallissues.Andthenstartsolvingeachsmallissueonebyone.All
thesesmallproblemsaresolvedindependentlytoeachother.
Tominimizesoftwarecost:
Softwareneedsalotofhardworkandsoftwareengineersarehighly
paidexperts.Alotofmanpowerisrequiredtodevelopsoftwarewitha
largenumberofcodes.Butinsoftwareengineering,programmers
projecteverythinganddecreaseallthosethingsthatarenotneeded.In
turn,thecostforsoftwareproductionsbecomeslessascomparedto
anysoftwarethatdoesnotusesoftwareengineeringmethod
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

To decrease time:
Anything that is not made according to the project always wastes time.
And if you are making great software, then you may need to run many
codes to get the definitive running code. This is a very time-consuming
procedure, and if it is not well handled, then this can take a lot of time.
So if you are making your software according to the software
engineering method, then it will decrease a lot of time.
Handlingbigprojects:
Bigprojectsarenotdoneinacoupleofdays,andtheyneedlotsof
patience,planning,andmanagement.Andtoinvestsixandseven
monthsofanycompany,itrequiresheapsofplanning,direction,
testing,andmaintenance.Noonecansaythathehasgivenfour
monthsofacompanytothetask,andtheprojectisstillinitsfirst
stage.Becausethecompanyhasprovidedmanyresourcestotheplan
anditshouldbecompleted.Sotohandleabigprojectwithoutany
problem,thecompanyhastogoforasoftwareengineeringmethod.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Reliablesoftware:
Softwareshouldbesecure,meansifyouhavedeliveredthesoftware,
thenitshouldworkforatleastitsgiventimeorsubscription.Andifany
bugscomeinthesoftware,thecompanyisresponsibleforsolvingall
thesebugs.Becauseinsoftwareengineering,testingandmaintenance
aregiven,sothereisnoworryofitsreliability.
Effectiveness:
Effectivenesscomesifanythinghasmadeaccordingtothestandards.
Softwarestandardsarethebigtargetofcompaniestomakeitmore
effective.SoSoftwarebecomesmoreeffectiveintheactwiththehelp
ofsoftwareengineering.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Software Crisis
•SoftwareCrisisisatermusedincomputerscienceforthe
difficultyofwritingusefulandefficientcomputerprograms
intherequiredtime.softwarecrisiswasduetousingsame
workforce,samemethods,sametoolseventhoughrapidly
increasinginsoftwaredemand,complexityofsoftwareand
softwarechallenges.
•Withincreaseinthecomplexityofsoftware,manysoftware
problemsarisebecauseexistingmethodswereinsufficient.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

•Ifwewillusesameworkforce,samemethodsandsametools
afterfastincreasinginsoftwaredemand,software
complexityandsoftwarechallenges,thentherearisesome
problemslikesoftwarebudgetproblem,softwareefficiency
problem,softwarequalityproblem,softwaremanagingand
deliveringproblemetc.Thisconditioniscalledsoftware
crisis.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Causes of Software Crisis:
•The cost of owning and maintaining software was as expensive as
developing the software
•At that time Projects was running over-time
•At that time Software was very inefficient
•The quality of software was low quality
•Software often did not meet requirements
•The average software project overshoots its schedule by half
•At that time Software was never delivered
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Solution of Software Crisis
Thereisnosinglesolutiontothecrisis.onepossiblesolutionof
softwarecrisisisSoftwareEngineeringbecausesoftware
engineeringisasystematic,disciplinedandquantifiable
approach.Forpreventingsoftwarecrisis,therearesome
guidelines:
•Reduction in software over-budget
•The quality of software must be high
•Less time needed for software project
•Experience working team member on software project
•Software must be delivered
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Questions Asked in Different Software Companies
1.What are the characteristics of the software? [TCS
Interview]
2.What are the various categories of software? [Wipro
Interview]
3.What are the challenges in software? [Wipro Interview]
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Software Engineering Processes
•Thetermsoftwarespecifiestothesetofcomputer
programs,proceduresandassociateddocuments
(Flowcharts,manuals,etc.)thatdescribetheprogramand
howtheyaretobeused.
•Asoftwareprocessisthesetofactivitiesandassociated
outcomethatproduceasoftwareproduct.Software
engineersmostlycarryouttheseactivities.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

These are four key process activities, which are
common to all software processes. These activities are:
1.Software specifications:The functionality of the software and
constraints on its operation must be defined.
2.Software development:The software to meet the requirement
must be produced.
3.Software validation:The software must be validated to ensure that
it does what the customer wants.
4.Software evolution:The software must evolve to meet changing
client needs.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

The Software Process Model
•Asoftwareprocessmodelisaspecifieddefinitionofa
softwareprocess,whichispresentedfromaparticular
perspective.
•Models,bytheirnature,areasimplification,soasoftware
processmodelisanabstractionoftheactualprocess,which
isbeingdescribed.
•Processmodelsmaycontainactivities,whicharepartofthe
softwareprocess,softwareproduct,andtherolesofpeople
involvedinsoftwareengineering.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Some examples of the types of software process
models that may be produced are:
1.Aworkflowmodel:Thisshowstheseriesofactivitiesinthe
processalongwiththeirinputs,outputsanddependencies.The
activitiesinthismodelperformhumanactions.
2.Adatafloworactivitymodel:Thisrepresentstheprocessasa
setofactivities,eachofwhichcarriesoutsomedata
transformations.Itshowshowtheinputtotheprocess,suchasa
specificationisconvertedtoanoutputsuchasadesign.The
activitiesheremaybeatalowerlevelthanactivitiesinaworkflow
model.Theymayperformtransformationscarriedoutbypeople
orbycomputers.
3.Arole/actionmodel:Thismeanstherolesofthepeople
involvedinthesoftwareprocessandtheactivitiesforwhichthey
areresponsible. Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Thereareseveralvariousgeneralmodelsor
paradigmsofsoftwaredevelopment:
•Thewaterfallapproach:Thistakestheaboveactivitiesand
producesthemasseparateprocessphasessuchas
requirements specification,software design,
implementation,testing,andsoon.Aftereachstageis
defined,itis"signedoff"anddevelopmentgoesontothe
followingstage.
•Evolutionarydevelopment:Thismethodinterleavesthe
activitiesofspecification,development,andvalidation.An
initialsystemisrapidlydevelopedfromaveryabstract
specification.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

•Formaltransformation:Thismethodisbasedonproducinga
formalmathematicalsystemspecificationandtransforming
thisspecification,usingmathematicalmethodstoaprogram.
Thesetransformationsare'correctnesspreserving.'This
meansthatyoucanbesurethatthedevelopedprograms
meetitsspecification.
•Systemassemblyfromreusablecomponents:Thismethod
assumesthepartsofthesystemalreadyexist.Thesystem
developmentprocesstargetonintegratingthesepartsrather
thandevelopingthemfromscratch.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Difference between Software Engineering process
and Conventional Engineering Process
S.No.Software Engineering ProcessConventional Engineering Process
1.
Software Engineering Process is a
process which majorly involves
computer science, information
technology and discrete mathematics.
Conventional Engineering Process is a process
which majorly involves science, mathematics and
empirical knowledge.
2.
It is mainly related with computers,
programming and writing codes for
building applications.
It is about building cars, machines, hardware,
buildings etc.
3.
In Software Engineering Process
construction and development cost is
low.
In Conventional Engineering Process construction
and development cost is high.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

S.No.Software Engineering ProcessConventional Engineering Process
4.
It can involve the application of
new and untested elements in
software projects.
It usually applies only known and tested
principles to meet product requirements.
5.
In Software Engineering
Process, most development
effort goes into building new
designs and features.
In Conventional Engineering Process,
most development efforts are required to
change old designs.
6. It majorly emphasize on quality.It majorly emphasize on mass production.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Software Quality Attributes
SoftwareQualityAttributesarefeaturesthatfacilitatethe
measurementofperformanceofasoftwareproductbySoftware
Testingprofessionals,andincludeattributessuchasavailability,
interoperability,correctness,reliability,learnability,robustness,
maintainability,readability,extensibility,testability,efficiency,and
portability.
HighscoresinSoftwareQualityAttributesenablesoftwarearchitectsto
guaranteethatasoftwareapplicationwillperformasthespecifications
providedbytheclient.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

1. Availability
Thisattributeisindicativeastowhetheranapplicationwillexecutethe
tasksitisassignedtoperform.
Availabilityalsoincludescertainconceptsthatrelatetosoftware
security,performance,integrity,reliability,dependability,and
confidentiality.Inaddition,top-notchavailabilityindicatesthata
software-drivensystemwillrepairanyoperatingfaultssothatservice
outageperiodswouldnotexceedaspecifictimevalue.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

2. Interoperability
•Software-drivensystemscouldberequiredtocommunicateandactin
tandemtosolvecertaintasks.Interoperabilitydescribestheabilityof
twosystemstoengageintheexchangeofinformationviacertain
interfaces.
•Therefore,SoftwareQualityAssuranceengineersmustexaminethe
interoperabilityattributeintermsofbothsyntacticandsemantic
interoperability.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

3. Performance
•This attribute pertains to the ability of a software-driven system to
conform to timing requirements. From a testing point of view, it
implies that Software Testing engineers must check whether the
system responds to various events within defined time limits. These
events may occur in the form of clock events, process interruptions,
messages, and requests from different users, and others.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

4. Testability
•Softwaretestabilityindicateshowwellasoftware-drivensystem
allowsSoftwareTestingprofessionalstoconducttestsinlinewith
predefinedcriteria.
•ThisattributealsoassessestheeasewithwhichSoftwareQuality
Assuranceengineerscandeveloptestcriteriaforasaidsystemandits
variouscomponents.
•Engineerscanassessthetestabilityofasystembyusingvarious
techniquessuchasencapsulation,interfaces,patterns,lowcoupling,
andmore.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

5. Security
•Thisattributemeasurestheabilityofasystemtoarrestandblock
maliciousorunauthorizedactionsthatcouldpotentiallydestroythe
system.
•Theattributeassumesimportancebecausesecuritydenotesthe
abilityofthesystemtoprotectdataanddefendinformationfrom
unauthorizedaccess.
•Securityalsoincludesauthorizationandauthenticationtechniques,
protectionagainstnetworkattacks,dataencryption,andsuchother
risks.ItisimperativeforSoftwareTestingCompaniesand
professionalstoregularlyconductupdatedsecuritycheckson
systems.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

6. Usability
•Everysoftware-drivensystemisdesignedforeaseofuseto
accomplishcertaintasks.
•Theattributeofusabilitydenotestheeasewithwhichusersareable
toexecutetasksonthesystem;italsoindicatesthekindofuser
supportprovidedbythesystem.
•Themostwell-knownprincipleforthispropertyisKISS(KeepIt
SimpleStupid).Inaddition,SoftwareQualityAssuranceengineers
musttestsoftwaretocheckwhetheritsupportsdifferentaccessibility
typesofcontrolforpeoplewithdisabilities.
•Usabilityhasacriticalandlongstandingbearingonthecommercial
fortunesofasoftwareapplicationorpackage.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

7. Functionality
•Thisattributedeterminestheconformityofasoftware-drivensystem
withactualrequirementsandspecifications.
•MostSoftwareTestingprofessionalsviewthisattributeascrucialand
aforemostrequirementofamodernapplication,andwould
thereforeadvocatetheperformanceofteststhatassessthedesired
functionalityofasystemintheinitialstagesofSoftwareTesting
initiatives.
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research

Questions Asked in Different Software Companies
1.Define Software process. [TCS Interview]
Abhishek Kesharwani ,Assistant Professor United College of
Engineering and Research