Unit 1 - Introduction to Software Engineering.ppt

6,824 views 26 slides Aug 09, 2023
Slide 1
Slide 1 of 26
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

About This Presentation

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


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

Software Engineering
“Asystematicapproachtotheanalysis,design,implementationand
maintenanceofsoftware.”
(TheFreeOn-LineDictionaryofComputing)
“Thesystematicapplicationoftoolsandtechniquesinthe
developmentofcomputer-basedapplications.”
(SueCongerinTheNewSoftwareEngineering)
“SoftwareEngineeringisaboutdesigninganddevelopinghigh-quality
software.”
(ShariLawrencePfleegerinSoftwareEngineering--TheProduction
ofQualitySoftware)
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?
Objectives:
-Identifynewproblemsandsolutionsin
softwareproduction
-Studynewsystematicmethods,principles,
approachesforsystemanalysis,design,
implementation,testingandmaintenance.
-Providenewwaystocontrol,manage,and
monitorsoftwareprocess
-Buildnewsoftwaretoolsandenvironmentto
supportsoftwareengineering
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

Umbrella Activities
Software Project Tracking & Control
Risk Management
Formal Technical Reviews
Software Configuration Management
Reusability Management
Prepared by Dr.T.Thendral
06.07.2023