What is Software Engineering?

SoftwareEngineering
AShortOverview
Hans-PetterHalvorsen,M.Sc.
Thebeginning...
IBM
1911
TheTransistor
1947
Moore’s Law
1965
Internet
HP
1939
ThefirstComputer
????
TheTuring machine(Alan
Turing, 1936)?
Intel
ThefistcommercialMicroprocessor
(intel4004)
1971
1968
Apple I,1977
Thebeginning
Byggesett,måttesettesammen
komponentene selv
IBMPCwithDOS,1981
Macintosh, 1984
Apple II,1977
Attachascreen
andyouareup
andrunning
Everything is
integrated
– eventhescreen
FirstComputer withGraphicalUserInterfacewithMouse
MacOS1.0
Thebeginning
1984:Macintosh
1985:Windows1.0
LabVIEW1.0(for Macintoshonly!)
Smartphones
Today
Ultrabooks
Internet
Apps
Web
Smartwatches
SmartTVs
Tablets
Muligheter!
Kjennerdudisse??
Muligheter!
“Jegglemmer ikkejobbintervjuet, der
jegskrevkode påtavlenforandemito
dageristrekk.Svettenrant.”
“Desistesyvåreneharjeg
værtmedpådetsommå
væreetavtidenesstørste
industrieventyr.”
Hvordanserentypiskarbeidsdag utfordeg?– “Detkommer anpåfasenietprosjekt.Tidlig i
utviklings- ellerkonseptfasen erdetmyemøter.Vijobber iScrum-prosess meddagligemøter.
Seneremotleveringstid erdetmyeutvikling ogkoding.”
http://www.digi.no/919886/atle-42-staar-bak-amazon-skyen
Vibruker 5minutterpåålese
denne artikkelenhverfoross.
Dumåtamulighetenenårdebyrseg– mendetkreveshardarbeid!!
DetåværeSystemutviklererikkeen9-4jobb!
Muligheter!
UtvikletavenHiT/TFstudent
BestWindows8App
WeatherSystem
Downloadforfree
fromWindowsStore
(8.5/10)
TelemarkUniversityCollegeWeatherSystem
http://home.hit.no/~hansha/?page=weather
http://bestwindows8apps.net/telemark-university-college-weather-system
http://apps.microsoft.com/windows/en-us/app/telemark-university-college/45635f21-4fd0-4452-ad3c-c7a0caa8c402
SoftwareDeveloper/SoftwareEngineer
TypicalJobAd
End-User
Documentation
UserGuides
Installation
Guides
System
Documentation
SDP
SoftwareDevelopment
Plan
ProjectPlanning
GanttChart
STD
SoftwareTestDocumentation
TestPlan
TestDocumentation
SRS
Code
SystemDocumentation
SoftwareRequirements
Specifications
GanttChart
SDD
SoftwareDesignDocuments
withERDiagram,UMLDiagrams,CADDrawings
Alpha
Requirements/Design
Plansmade​andapproved
Beta
Building structurefinished,
Insideworkon track
RC
Foundation finished, building structurestarted
A“proof”thatyoucando it,PoC(Proof ofConcept)
Furniture, Flowersand
smalladjustments missing
RTM
ReadyforSaleorMovein
13
.....................Iterations/Sprints..................
TheSoftwareisbeeing testedinternallyfrom beginning totheend(everyday)
Alpha
Beta
Beta1
Beta2
Beta3
...
RC
RC1
RTM
RC2
...
ProjectFinished
ProjectStart
ReallifeSoftwareDevelopment
SoftwareDevelopment
SprintReviews
&Planning
DailyScrum
Meetings
2-4weeks
Beta,RCTesting
1-12months
24hours
Days
Weeks
WorkingSoftwareatalltimes.
Testingeveryday
InternalIterations/Sprints
Months/Years
PublicBeta,RCReleases
WhyDoReviews,QualityControlandTesting?
WewilldoReviews,QualityControlandTestingat
different levelsthrough thewholesofwarelifecycle
Costperdefects
SDLC(SoftwareDevelopmentLifeCycle)
Planning, Requirements, Design, Implementation,
Testing, Deployment, Maintenance,etc.
Software
Development
User
Whoaregoing touse
thesoftware?
Application
Desktop, Web,Mobile?
OperatingSystem
Windows, OSX,Linux,
Android, iOS,etc.
Hardware
PC,Mac,Smartphone,
Tablet,SmartTV,etc.
WindowsServer2016
SoftwareDevelopment
Windows10
Clients
Wi-Fi
Server
Ethernet
LAN
Router
Internet
TypicalNetwork&
Infrastructure
OPCServer
Web
Server
Database
Server
IIS
SQLServer
SoftwareTeam
Stakeholders
ProjectManager
UXDesigner
SoftwareTester
SoftwareEngineer
Programmer/Developer
SoftwareArchitect
Youshould tryalltheserolesduring thesemester
ASystemEngineerisageneralpersonthatcould beaProgrammer,Architect,Designer,Testerindifferentphasesintheproject,orhe
couldbeatesterinoneproject andaprogrammerinanotherproject – allinoneperson. Thatisusuallythecaseinsmallcompanies,while
19
inlargercompaniestheseroles(designer,tester,programmer)couldbeafull-timejob.
Scrum
AFrameworkfor
SoftwareDevelopment
Working
Softwareat
alltimes!
Iterativeapproach
ScrumatMicrosoft:
http://www.youtube.com/watch?v=YR84qH6d7QE&feature=youtu.be
ScrumMembers:
Scrum
AFrameworkforSoftwareDevelopment
WorkingSoftwareatalltimes!
ProductOwner
Designers
Developers
SprintBacklog
Architects
ProductBacklog
Stakeholders
ScrumProcess:
Testers
ScrumMaster
Development Team
3-9persons
DailyScrumMeetings
Max15min.
Sprint Review
SoftwareRequirements&Design
Requirements(WHAT):
• WHAT thesystemshoulddo
• DescribewhatthesystemshoulddowithWordsandFigures,etc.
• SRS – SoftwareRequirementsSpecification
SoftwareDesign(HOW):
• HOW itshoulddoit
• Examples:GUIDesign,UML,ERdiagram,CAD,etc.
• SDD – SoftwareDesignDocument
Manydont separateSRSandSDDdocuments, butinclude everything inaRequirements
document.Inpractice,requirements anddesign areinseparable.
TypicalSoftwareDocumentation
1.Planning
2.Requierements
/Design
Time
ProjectManagement(GanttChart,etc.)
Start
(Thestakeholders,the
softwareteam;architects,
UXdesigners, developers)
2.Testing
(QApeople)
3.End-user
Documentation
(Thepeoplethat
shallactuallyuse
Finish thesoftware)
Software
Development Plan
High-Level
Requirementsand
DesignDocuments
Detailed
Requirementsand
DesignDocuments
TestPlans
TestDocumentation
System
Documentation
InstallationGuides
UserManuals
(SDP)
WHAT
HOW
(SRS)
(SDD)
ERDiagram(Database)
UMLDiagrams(Code)
CADDrawings,etc.
HowtoTest/ (STP)
WhattoTest (STD)
Proofthatyou havetestedandthatthe
softwareworksasexpected
TechnicalStuff
(SuperUser/ITdep.)
Howtoinstallit
Howtouseit
(EndUser)
YourToolbox
Learnedin
previous courses
FocusinthisCourse
• PC
• ProgrammingandProgrammingLanguages(e.g.,
C#)
• IDE(IntegratedDevelopmentEnvironment)(e.g.,
VisualStudio)
• SoftwareFrameworks(e.g.,.NET)
• SCC Tool(SourceCodeControl)(e.g.,Team
FoundationServer,TFS)
• ALM Tool(ApplicationLifecycleManagement)
(e.g.,TeamFoundationServer,TFS)
• KnowledgeaboutbasicSoftwareEngineering
(Requirements,Planning,Testing,andDevelopmentProcesseslike Agile,
Scrum,etc.)
Youcannotdoagoodjobasasoftwaredeveloperwithoutsomepropertools!
TeamFoundationServer(TFS)isanApplicationLifecycleManagement(ALM)system
TheSoftware
Planning
Deployment
Development
Maintenance
Lifecycle(SDLC)
Testing
SDLCManagement
Project
Management
Team
BugTracking
MSProject Foundation
VisualStudio
MSExcel Server
Implementation
Requirements
Analysis
Collaborationplatform
Scrum
SourceCodeControl
Agile
(SCC)
Design
VisualStudioOnline
TeamFoundationServer(TFS)
Server
Clients
LabVIEW
MSSCCIProvider
Others
Eclipse
Web Access
TFS
MS Excel
Services
MS Project
Repository
SQLServer Git
(TFVC)
TeamFoundation Server(TFS)isanApplication
LifecycleManagement (ALM)system
Visual
Studio
TeamExplorer
File
Explorer
PowerTools
VisualStudioOnline
(formerTeamFoundationService)
• TFSisaSourceCodeControl(SCC),BugTracking,
ProjectManagement,andTeamCollaboration
platform
• IntegratedwithVisualStudio
• TFSintheCloud(Thismeansyoudontneedto
hosttheserveryourself)
www.visualstudio.com
• Freeforupto5users
27
eBooksfromSafariBooksOnline
http://proquest.safaribooksonline.com/?uicode=telemark
http://proquest.safaribooksonline.com/book/software-engineering-and-development/9781449691998?bookview=overview
SoftwareEngineer
WhatisagoodSoftwareEngineer/Howtobecomea
goodSoftwareEngineer?
DiscussioninClass
See“PrinciplesofSoftwareEngineering”
http://proquest.safaribooksonline.com/book/software-engineering-and-developme nt/9781449691998/ chapte r-3-enginee ring-of-software/49?uicode= telemark
fromthebook “Essentialsof SoftwareEngineering”
Hans-PetterHalvorsen,M.Sc.
UniversityCollegeofSoutheastNorway
www.usn.no
E-mail:hans.p.halvorsen@hit.no
Blog:http://home.hit.no/~hansha/