Software is a set of instructions to acquire inputs and to manipulate them to produce the desired output in terms of functions and performance as determined by the user of the software
Size: 536.85 KB
Language: en
Added: Aug 09, 2023
Slides: 26 pages
Slide Content
Introduction to
Software
Engineering
Prepared by Dr.T.Thendral
06.07.2023
Course Objectives:
The main objectives of this course are to:
1.To enhance the basics of Software
engineering methods and practices
2.To earn the techniques for developing
software systems
3.To understand the object orient
4.To understand software testing approaches
Prepared by Dr.T.Thendral
06.07.2023
On the successful completion of
the course,student will be able to:
Understandthebasicconceptsofsoftware
engineering
Applythesoftwareengineeringmodelsindeveloping
softwareapplication
Implementtheobjectorienteddesigninvarious
projects
Knowledgeonhowtodoasoftwareprojectwithin-
depthanalysis
ToinculcateknowledgeonSoftwareengineering
conceptsinturngivesaroadmaptodesignanew
softwareproject
Prepared by Dr.T.Thendral
06.07.2023
What is Software?
Softwareisasetofinstructionstoacquireinputsandto
manipulatethemtoproducethedesiredoutputintermsof
functionsandperformanceasdeterminedbytheuserof
thesoftware
Alsoincludeasetofdocuments,suchasthesoftware
manual,meantforuserstounderstandthesoftwaresystem
Prepared by Dr.T.Thendral
06.07.2023
Description of the Software
Asoftwareisdescribedbyitscapabilities.Thecapabilitiesrelateto
thefunctionsitexecutes,thefeaturesitprovidesandthefacilitiesit
offers.
EXAMPLE
SoftwarewrittenforSales-orderprocessingwouldhave
differentfunctionstoprocessdifferenttypesofsalesorderfrom
differentmarketsegments.
Thefeaturesforexample,wouldbetohandlemulti-currency
computing,updatingproduct,salesandTaxstatus.
Thefacilitiescouldbeprintingofsalesorders,emailtocustomers
andreportstothestoredepartmenttodispatchthegoods.
Prepared by Dr.T.Thendral
06.07.2023
Classes of Software
Softwareisclassifiedintotwoclasses:
GenericSoftware:
isdesignedforbroadcustomermarketwhoserequirementsarevery
common,fairlystableandwellunderstoodbythesoftwareengineer
CustomizedSoftware:
isdevelopedforacustomerwheredomain,environmentand
requirementsarebeinguniquetothatcustomerandcannotbesatisfied
bygenericproducts
Prepared by Dr.T.Thendral
06.07.2023
What is Good Software?
Softwarehasnumberofattributeswhichdecidewhetheritisagood
orbad.
Thedefinitionofagoodsoftwarechangeswiththepersonwho
evaluatesit.
Thesoftwareisrequiredbythecustomer,usedbytheendusersofan
organizationanddevelopedbysoftwareengineer
Eachonewillevaluatethedifferentattributesdifferentlyinorderto
decidewhetherthesoftwareisgood
Prepared by Dr.T.Thendral
06.07.2023
What are the attributes of good
software?
Thesoftwareshoulddelivertherequiredfunctionalityandperformanceto
theuserandshouldbemaintainable,dependableandusable.
•Maintainability
–Softwaremustevolvetomeetchangingneeds
Dependability
–Softwaremustbetrustworthy
Efficiency
–Softwareshouldnotmakewastefuluseofsystemresources
Usability
–Softwaremustbeusablebytheusersforwhichitwasdesigned
Prepared by Dr.T.Thendral
06.07.2023
Software -Characteristics
Software has a dual role. It is a product, but also a vehicle for delivering a
product.
Software is a logical rather than a physical system element.
Software has characteristics that differ considerably from those of hardware.
Software is developed or engineered, it is not manufactured in the
classical sense
Software doesn’t “wear out”
Most software is custom-built, rather than being assembled from
existing components.
Prepared by Dr.T.Thendral
06.07.2023
Changing nature of
software(Types)
SystemSoftware-Acollectionofprogramswrittentoserviceother
programsatsystemlevel.
Forexample,compiler,operatingsystems.
Real-timeSoftware-Programsthatmonitor/analyze/controlreal
worldeventsastheyoccur.
BusinessSoftware-Programsthataccess,analyzeandprocess
businessinformation.
EngineeringandScientificSoftware-Softwareusing“number
crunching”algorithmsfordifferentscienceandapplications.System
simulation,computer-aideddesign.
Prepared by Dr.T.Thendral
06.07.2023
Changing nature of
software(Types)
EmbeddedSoftware-:
Embeddedsoftwareresidesinread-onlymemoryandisusedto
controlproductsandsystemsfortheconsumerandindustrialmarkets.
Ithasverylimitedandesotericfunctionsandcontrolcapability.
ArtificialIntelligence(AI)Software:
ProgramsmakeuseofAItechniquesandmethodstosolvecomplex
problems.Activeareasareexpertsystems,patternrecognition,games
InternetSoftware:
Programsthatsupportinternetaccessesandapplications.Forexample,
searchengine,browser,e-commercesoftware,authoringtools.
Prepared by Dr.T.Thendral
06.07.2023
What is Software Engineering?
Engineering:TheApplicationofSciencetotheSolutionofPractical
Problems
SoftwareEngineering:TheApplicationofCStoBuildingPracticalSoftware
Systems
Programming
–IndividualWritesCompleteProgram
–OnePerson,OneComputer
–Well-DefinedProblem
–Programming-in-the-Small
SoftwareEngineering
–IndividualsWriteProgramComponents
–TeamAssemblesCompleteProgram
–Programming-in-the-Large
Prepared by Dr.T.Thendral
06.07.2023
What is the difference between software engineering and
computer science?
Computer ScienceSoftware Engineering
is concerned with
Computersciencetheoriesarecurrentlyinsufficienttoactasacomplete
underpinningforsoftwareengineering,butitisafoundationforpracticalaspects
ofsoftwareengineering
theory
fundamentals
the practicalities of developing
delivering useful software
Prepared by Dr.T.Thendral
06.07.2023
What is Software Engineering?
Althoughhundredsofauthorshavedevelopedpersonaldefinitionsofsoftware
engineering,adefinitionproposedbyFritzBauerprovidesabasis:
“[Softwareengineeringis]theestablishmentanduseofsound
engineeringprinciplesinordertoobtaineconomicallysoftwarethatis
reliableandworksefficientlyonrealmachines.”
TheIEEE[IEE93]hasdevelopedamorecomprehensivedefinitionwhenit
states:
“SoftwareEngineering:(1)Theapplicationofasystematic,disciplined,quantifiableapproach
tothedevelopment,operationandmaintenanceofsoftware;thatis,theapplicationof
engineeringtosoftware.(2)Thestudyofapproachesasin(1).”Prepared by Dr.T.Thendral
06.07.2023
Software engineering is a layered
technology -Pressman’s view:
Software Engineering Layers
Prepared by Dr.T.Thendral
06.07.2023
What is Software Engineering?
Software methods:
Software engineering methods provide the technical “how to’s” for
building software.
Methods --> how to encompass a broad array of tasks:
-requirements analysis, design, coding, testing, and maintenance
Software engineering methods rely on a set of basic principles.
Prepared by Dr.T.Thendral
06.07.2023
Software methods
Prepared by Dr.T.Thendral
06.07.2023
What is Software Engineering?
Software Process:
Softwareengineeringprocessisthegluethatholds:
-technologytogether
-enablesrationalandtimelydevelopmentofcomputersoftware
Softwareengineeringprocessisaframeworkofasetofkeyprocess
areas
Itformsabasisfor:
-projectmanagement,budgetandschedulecontrol
-applicationsoftechnicalmethods
-productqualitycontrol
Prepared by Dr.T.Thendral
06.07.2023
Software Process
Prepared by Dr.T.Thendral
06.07.2023
What is Software Engineering?
Software Tools:
-programs provide automated or semi-automated support for the
process and methods
-programs support engineers to perform their tasks in a systematic
and/or automatic manner
Prepared by Dr.T.Thendral
06.07.2023
Why Software Engineering?
Major Goals:
-To increase software productivityand quality
-To effectively control software scheduleand planning
-To reduce the cost of software development
-To meet the customers’ needs and requirements
-To enhance the conduction of software engineering
process
-To improve the current software engineering practice
-To support the engineers’ activities in a systematic and
efficient manner
Prepared by Dr.T.Thendral
06.07.2023
A Process Framework
Prepared by Dr.T.Thendral
06.07.2023
Process Framework Activities
Communication
Planning
Modeling
Construction
Deployment
Prepared by Dr.T.Thendral
06.07.2023