software industry – historical view
DESCRIPTION
Software Industry – Historical View. Dr. Jeyakesavan Veerasamy University of Texas at Dallas [email protected]. Agenda. Software: Then & Now SW Efficiency – does it matter? Latest buzz Trends in CS education Open Q&A. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/1.jpg)
Software Industry – Historical View
Dr. Jeyakesavan VeerasamyUniversity of Texas at Dallas
![Page 2: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/2.jpg)
Agenda
• Software: Then & Now • SW Efficiency – does it matter?• Latest buzz• Trends in CS education• Open Q&A
Note: Almost all the content is based on my observations & my experience only.
![Page 3: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/3.jpg)
Complexity of software projects: historical snippets
• Ad-hoc development model• Waterfall model – slow & unpredictable– heavy documentation effort– cost overruns & missed deadlines
![Page 4: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/4.jpg)
My experience with huge SW projects(Waterfall model)
• Period of instability• collisons during merge• product delays• Is it good enough to release?
![Page 5: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/5.jpg)
Agile process
![Page 6: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/6.jpg)
Agile methods
• Limited documentation• Better tracking of current status• Frequent releases• Continuous interaction with the customer• Several refinements: XP, SCRUM, …
![Page 7: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/7.jpg)
A typical industry project in 1990
C standard library Home-grown library
New code
![Page 8: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/8.jpg)
Same industry project NOW
C++/Java standard library
Home-grown library
Open source components
Commercial libraries for industry segmentIDE modules
New code
![Page 9: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/9.jpg)
Questions
• Any disadvantages of the latest approach?• Expert programmer: what does it mean?• Future projects: No code? Just integration?
Knowledge of Java/C++/… down the drain?
![Page 10: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/10.jpg)
Application Specific Programming
M1 M2 M3
Intrepreter
Mn
script script script……
![Page 11: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/11.jpg)
Data Exchange
A1
A3
A2
A4
![Page 12: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/12.jpg)
Data Exchange
• Binary or text data XML or JSON …
• Independent data checkers tools available.A1
A3
A2
A4
![Page 13: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/13.jpg)
Design decisons
• Purchase commercial modules or use open-source?
• .NET or Java?
![Page 14: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/14.jpg)
Running time of a program or transaction processing time
• ????
![Page 15: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/15.jpg)
Running time of a program or transaction processing time
• amount of input: n• basic algorithm / actual processing• memory access speed• CPU/processor speed• # of processors?• compiler/linker optimization?
![Page 16: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/16.jpg)
Running time of a program or transaction processing time
• amount of input: n min. linear increase• basic algorithm / actual processing depends
on algorithm!• memory access speed by a factor• CPU/processor speed by a factor• # of processors? yes, if multi-threading or
multiple processes are used.• compiler/linker optimization? ~20%
![Page 17: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/17.jpg)
Compare 3 algorithms
Algorithm O(log n) O(n) O(2n)When n goes up by 1
neglegible Goes up by 1 unit
Doubles!
When n doubles
Goes up by 1 unit
Doubles Goes up by 2n
![Page 18: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/18.jpg)
Software efficiency: Do we really care?
• Goal is to make software work & meet deadline for most industry projects.
• For example, an intranet application may take 5 seconds to process a transaction, while hand-coded optimized version may take 4 seconds. Is this ok?
• However there are exceptions. Let us consider a few such scenarios.
![Page 19: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/19.jpg)
Game Console
• Inefficient algorithm takes longer to run requires higher-end CPU to keep realism
• Higher end CPU higher price for the console product fails amid competition
![Page 20: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/20.jpg)
Web-server
• Consider 2 web-server algorithm implementations that take 1 second and 5 second respectively to process a transaction.
• Issues: – algorithm #2 tests web-users’ patience– 2nd web server capacity is low.
• We can add 4x servers to improve the web-server capacity, but what can we do with the user’s wait-time?
![Page 21: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/21.jpg)
Daily data crunching
• Any network collects tons of data to measure operational efficiency. Telecom network is no exception.
• Daily data crunching (post-processing) is used to generate daily reports for management.
• Issue: # of network nodes increased more data process Scripts started to take >1 day to run.
![Page 22: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/22.jpg)
Data crunching pseudocode
• initial setup• loop– read one tuple– open db connection– send request to db– get response from db– close db
• post-processing
![Page 23: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/23.jpg)
Data crunching pseudocode
• initial setup• loop– read one tuple– open db connection– send request to db– get response from db– close db
• post-processing
• Equation for running time = c1. n + d1
• Time complexity is O(n)
![Page 24: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/24.jpg)
Data crunching pseudocode
• initial setup• open db connection• loop– read one tuple– send request to db– get response from db
• close db• post-processing
![Page 25: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/25.jpg)
Data crunching pseudocode
• initial setup• open db connection• loop– read one tuple– send request to db– get response from db
• close db• post-processing
• Equation for running time = c2. n + d2
• Time complexity is still O(n), but the constants are different.
• c2 < c1
• d2> d1
![Page 26: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/26.jpg)
Reasons for original design?
• Why the initial script implementation was so inefficient?
• Designed for small network – “get it done” mentality – works for now!
• Not much thought process went into it.• It is an internal project.• Clearly it was not of “commercial” grade
project.
![Page 27: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/27.jpg)
A few more points …
• Standalone applications Enterprise bundles• Local SW installation intranet based• Build in-house Buy & customize• Heavy text based coding visual programming
(GUI builders & debuggers …)• Desktops Laptops Smartphones
![Page 28: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/28.jpg)
SW projects: Multi-dimensional problem
Companies want to complete Software Projects with• Smaller team• Limited resources• Higher quality• Reduced cost• On-time delivery
This is what each project manager tries to do
![Page 29: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/29.jpg)
Cloud computing• Possible for a small company to have just
employees, laptops & web connectivity to do business!
• Enables company data access from anywhere!• Even large companies move specific applications to
the cloud - supports multiple locations naturally!• Example for personal cloud usage: Google Docs• Example for commercial cloud usage: Electronic
medical records• Security concerns remain, but industry is gaining
confidence.
![Page 30: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/30.jpg)
Smart-phone development
• My kids know/play games in Android phone• For me, email, calendar and contacts are in
sync with company data• Question: can we do more with them?• Industry trend is to port several meaningful
business applications to smartphones.• Example for cross-platform development
![Page 31: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/31.jpg)
Game development
• Lot of interest in real-time action games• Most games done in C/C++ in Los Angeles area• Algorithm optimization at work!
![Page 32: Software Industry – Historical View](https://reader035.vdocuments.mx/reader035/viewer/2022062501/568168af550346895ddf6dad/html5/thumbnails/32.jpg)
Latest trends in CS education in USA
• Difficulty in attracting US students to CS• Introduction to Programming : going visual– Alice, Scratch, GUI games, …
• Java dominates in CS1 & CS2 courses• Industry projects in the final year• Online courses becoming popular, augmenting
education landscape• Lots of online multimedia lectures in the web• Game design programs & Smart-phone applications• Augmenting open-source applications