Scope of software engineering

naveed_zafar 17,060 views 35 slides Apr 12, 2014
Slide 1
Slide 1 of 35
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

About This Presentation

No description available for this slideshow.


Slide Content

Scope of Software Engineering

Muhammad Naveed Zafar
Educational Background
BS in Computer Science
(Bahria University)
MS in Software Project
Management
(FAST University)*
Professional Experience
Project Manager
(NevTech)
Faculty Member
(Aptech MSG)
Project Coordinator
AMI
Software Engineer
GoSafe Systems

Agenda
What,WhyandAspectsofSoftwareEngineering?
HorrorSoftwareFailureStories
SoftwareEngineerLineofActions
SoftwareEngineeringStakeholders
EngineeringApproach
RolesandMembersofDevelopmentTeam
ProblemSolvingParadigms
SDLCModels
BestPracticestobeAdopt
ScrumMethodologies

What is software?
•Computerprogramsandassociateddocumentation
•Softwareproductsmaybedevelopedforaparticular
customerormaybedevelopedforageneralmarket
•Softwareproductsmaybe
–Generic/COTS-developedtobesoldtoarangeof
differentcustomers
–Custom-developedforacustomeraccordingtotheir
specification

What is Engineering?
•Engineeringis…
–Theapplicationofscientificprinciplesandmethodstothe
constructionofusefulstructures.
Examples:
–Mechanicalengineering
–Computerengineering
–Civilengineering
–Chemicalengineering
–Electricalengineering
–Nuclearengineering
–Aeronauticalengineering

What Actually “Software Engineering”?
•Adisciplinewhoseaimintheproductionofsoftwarethat
–meetstheclient‟sneeds
–fault-free
–deliveredontime
–deliveredwithinbudget
–easytomodify

Why the need for Software Engineering?
SoftwareCrisis:Unacceptablelowqualityofsoftware,
exceedsdeadlineandbudget.Canceled, 23%
Successful,
28%
*Completed with
Faults, 49%
*Completed late, over budget, and/or with features missing

Why Software Engineering ?
•Theproblemiscomplexity
•Manysources,butsizeisakey:
–Mozillacontains3Millionlinesofcode
–UNIXcontains4millionlinesofcode
–Windows2000contains10
8
linesofcode
•Secondisrolesdefine
•Thirdisuncertaintyof“inputs”andtheirtiming
•Fourthisthecontinuingchanging“environment”anddemands.
Software engineering is about managing all the sources of complexity to
produce effective software.

Software Engineering Aspects
•Historical Aspects:
– ,aNATOgroupcoinedtheterm“SoftwareEngineering”
– NATOSoftwareEngineeringConferenceconcurredthat
“Softwareproductionshouldbeanengineering-likeactivity”
–Usingphilosophiesandparadigmsofestablishedengineering
disciplinestosolveSoftwareCrisisthatthequalityofsoftwarewas
generallyunacceptablylowandthatdeadlinesandcostlimitswere
notbeingmet”

•Economic Aspects
–SoftwareEngineeringv.s.ComputerScience
•Thecomputerscientistinvestigatesseveralwaystoproduce
software,somegoodandsomebad
•But the software engineeris interested in only those techniques
that make sound economicsense.
For example:A coding technique that can execute very efficiently
but with higher maintenance cost may not be a good choice, since
maintenance occupies a lot of resources of the whole life cycle.
Software Engineering Aspects…

•Maintenance Aspects
–SoftwareLifeCycle/SoftwareProcess
•RequirementsPhase
•Specification(Analysis)Phase
•PlanningPhase
•DesignPhase
•ImplementationPhase
•IntegrationPhase
•MaintenancePhasehighestcostamongallthesephases)
•Retirement
Software Engineering Aspects…

Requirement 2%
Specification 4%
Planning 1%
Design 6%
Module Coding 5%
Module Testing 7%
Integration 8%
Maintenance
67% Maintenance Aspects
Maintenance
Approximate relative costs
ofthe phases of the software
life cycle.
Maintenanceissoimportantthatamajoraspectofsoftware
engineeringconsistsoftechniques,tools,andpracticesthatleadtoa
reductioninmaintenancecost

Horror Software Failure Stories
•Patientsdiedasaconsequenceofsevereoverdosesof
radiation.
•USTreasuryDepartmentmailedincorrectlyprintedSocial
SecurityChecks.
•Interestmiscalculatedonstudentloansresultinginhigher
monthlypayments.
•MarsClimateOrbiterspacecraftcrashesintothesurfaceof
Marsbecauseofmeasurementconversionerror.
Consequences of software failures range from inconvenienceto death!

Software Engineer Line of Actions
SoftwareEngineersshould
–adoptasystematicandorganisedapproachtoallaspects
ofsoftwaredevelopment.
–useappropriatetoolsandtechniquesdependingon
•theproblemtobesolved,
•thedevelopmentconstraintsand
•theresourcesavailable
–Understandandcommunicateprocessesforimproved
softwaredevelopmentwithintheirorganization
–Beeffectiveteammembersand/orleaders.
–Canbeverytechnicalormoremanagerialdependingon
organizationalneed.

Where Does the Software Engineer Fit In?
•Computer Science: focusing on computer
hardware,compilers,operatingsystems,andprogramming
languages
•SoftwareEngineering:adisciplinethatusescomputerand
softwaretechnologiesasaproblem-solvingtools

Where Does the SW Engineer Fit in?...
Relationship between Computer Science and Software Engineering

Qualities of Good Software?
•Goodsoftwareengineeringmustalwaysincludeastrategy
forproducingqualitysoftware
•Threewaysofconsideringquality
–Thequalityoftheproduct
–Thequalityoftheprocess
–Thequalityoftheproductinthecontextofthebusiness
environment

Who Does Software Engineering?
•Customer:thecompany,organization,orpersonwhopays
forthesoftwaresystem
•Developer:thecompany,organization,orpersonwhois
buildingthesoftwaresystem
•User:thepersonorpeoplewhowillactuallyusethesystem

Who Does Software Engineering? (continued)
Participants (stakeholders) in a software development project

Engineering Approach
Building a System
•Requirementanalysisanddefinition
•Systemdesign
•Programdesign
•Writingtheprograms
•Unittesting
•Integrationtesting
•Systemtesting
•Systemdelivery
•Maintenance

Members of the Development Team
•RequirementAnalysts:workwiththecustomerstoidentifyanddocumentthe
requirements
•Designers:generateasystem-leveldescriptionofwhatthesystemus
supposedtodo
•Programmers:writelinesofcodetoimplementthedesign
•Testers:catchfaults
•Trainers:showusershowtousethesystem
•MaintenanceTeam:fixfaultsthatshowuplater
•Librarians:prepareandstoredocumentssuchassoftwarerequirements
•ConfigurationManagementTeam:maintaincorrespondenceamongvarious
artefacts.

Members of the Development Team
(continued)
Typical roles played by the members of a development team

Secrets of Successful Projects

Problem Solving Paradigms
Severaltechniqueshavebeensuggestedtohelpsolvethesoftware
crisis
–~ - :StructuredParadigm
•StructuredSystemsAnalysis,Composite/StructuredDesign,Structured
Programming,StructuredTesting
•Leadtomajorimprovementsforsoftwareindustry
•Butonlygoodforsmallprograms(say,,-,linesofcodes)
•Notsogoodinsoftwaremaintenanceaspects,(forinstance,becauseofthe
separationofaction-orientedanddata-orientedinstructuredparadigm)
–Object-OrientedParadigm
•Anobjectisaunifiedsoftwarecomponentthatincorporatesbothdataand
actionsthatoperateofthosedata-->MorePromising!

Why use Object Oriented Paradigm?
•ClassicalStructuredParadigm
–Focusonfunctionsofsystem
•Object-OrientedParadigm
–Focusonobjects
–Implementationdetailsarelocaltotheobject
•Regressionfault(faultproducedbyseemingunrelatedchange)is
greatlyreduced.
–Encapsulation:well-designedindependentunits
–PotentialReuseofobjectsreducestimeandcost

The Software Process
•Astructuredsetofactivitiesrequiredtodevelopasoftwaresystem
–Specification;
–Design;
–Validation;
–Evolution.
•Asoftwareprocessmodelisanabstractrepresentationofaprocess.
•Itpresentsadescriptionofaprocessfromsomeparticularperspective.

Waterfall ModelSystem
Engineering
Analysis
Design
Code
Testing
Maintenance

Waterfall Model Characteristics
•Theclassiclifecycle-oldestandmostwidelyusedparadigm
•Activities„flow‟fromonephasetoanother
•Iftherearecorrections,returntoapreviousphaseand„flow‟from
thereagain
•Majoradvantages:Goodforplanningandwelldefined/repeatedprojects

Problems of Waterfall Model
•Realprojectsoftenfollowthesequence
•Allrequirementsmaynotbestatedexplicitlybycustomer
•Customeronlyseestheresultsaftersometime
•Developersareoftendelayedatcertainphases

Rapid Application Development (RAD)
Business
Modeling
Data
Modeling
Process
Modeling
Application
Generation
Testing &
Turnover
Team #1
Business
Modeling
Data
Modeling
Process
Modeling
Application
Generation
Testing &
Turnover
Team #2
Time period

RAD Characteristics
•“High-speed”versionofwaterfallmodel
•Primarilyforinformationsystemsapplications
•Requirementswell-understood,fullyfunctionalsystemproducedin
shorttime
•Theapplicationmodularized-majorfunctionscanbecompletedin3
months
•Separateteamscompletethefunctions,thenintegratedasawhole
•Requireshumanresourceandcommitment

Scrum Agile Methodologies

Importance of Continual Planning,
Testing, Documentation
•Aftercustomerhassignedoffonthespecifications,continuetomonitor
andadjustplan.
•Softwaremustbefault-freeaspossibleatalltimes.
•Atalltimes,documentationmustbecomplete,correctandup-to-date.
–personneloverturn
–incompleteimplementation
–inaccuratetesting
–impossibletomaintain

Conclusion
•TipstoSolveaproblem
–AnalyseProblems
–Synthesizeasolution
•Understandthatrequirementsmaychange
•Mustviewqualityfromseveraldifferentperspectives
•Usefundamentalsoftwareengineeringconcepts
•Keepsystemboundaryinmind

Thank you
Tags