latest trends in global software industry
DESCRIPTION
Latest trends in Global Software Industry. Dr. Jeyakesavan Veerasamy [email protected] [email protected]. Agenda. Introduce myself Software: Then & Now SW development environment options SW Efficiency – does it matter? Latest buzz Trends in CS education Open Q&A. - PowerPoint PPT PresentationTRANSCRIPT
Latest trends in Global Software Industry
Dr. Jeyakesavan [email protected]@utdallas.edu
Agenda
• Introduce myself
• Software: Then & Now • SW development environment options• SW Efficiency – does it matter?• Latest buzz• Trends in CS education• Open Q&A
Dr. V. Jeyakesavan: Academia, Industry & Personal
• Dad was a school teacher• B.E. (ECE) in CEG Guindy, Anna University –
1986-90• UNIX System Software Engineer, HCL Limited,
Chennai, 1990-91• MS Computer Science, University of Texas at
Dallas (UTD), 1991-94
Dr. V. Jeyakesavan: Academia, Industry & Personal …
• Telecom Software Engineer, Northern Telecom, Dallas, 1994-97
• Ph.D. Computer Science (part-time), University of Texas at Dallas (UTD), 1994-99
• Technical Lead, Samsung Telecom, 1997-2010• Got married in 1998• Adjunct Faculty, UTD CS department, 1999-2002• Online Adjunct Faculty in several online
universities from 2000
Dr. V. Jeyakesavan: Academia, Industry & Personal …
• Adjunct Faculty, Southern Methodist University, 2010
• Sr. Lecturer (full-time), UTD Computer Science, 2010-present
• 2 daughters: Nila (8) and Chinmayee (4)• Passionate about teaching – happy to share
ideas to improve teaching quality in colleges
Dr. V. Jeyakesavan: Summary
• 18 years experience as Software Engineer• 12 years of teaching experience
Fun way to learn programming & OOP
• Alice, a visual programming language• Download from www.alice.org• Whole world can be characterized by OOP• How many meaningful objects in this room?• What is a class?• Alice program demo• Great stepping stone to serious programming• Share it with your friends & family
Software: Then & Now
Note: Almost all the content is based on observations & experience only.
Complexity of software projects: historical snippets
• Ad-hoc development model• Waterfall model – slow & unpredictable– heavy documentation effort– cost overruns & missed deadlines
My experience with huge SW projects(Waterfall model)
• Period of instability• collisons during merge• product delays• Is it good enough to release?
Agile process
Agile methods
• Limited documentation• Better tracking of current status• Frequent releases• Continuous interaction with the customer• Several refinements: PP, SCRUM, …
A typical industry project in 1990
C standard library Home-grown library
New code
Same industry project NOW
C++/Java standard library
Home-grown library
Open source components
Commercial libraries for industry segmentIDE modules
New code
Follow-up Q: Any disadvantages?
Questions
• Expert programmer: what does it mean?• Future projects: No code? Just integration? • Knowledge of Java/C++/… down the drain?
Application Specific Programming
M1 M2 M3
Intrepreter
Mn
script script script……
Example: Casio FX100 calculator in PC
Language Source Code Executable Size
Assembly language
~40,000 ~10 Kbytes
C/C++ ~4000 ~50 Kbytes
Visual Basic < 1000 ~250 Kbytes
Cloud Computing
• SW bundles inefficient for small companies• Too much IT equipment & staff overhead• Cloud resource provider provides the SW over
the web and stores data too – SaaS model• Each client needs only web browser and
internet access.
Analogy: making food
• Make Sambar from scratch• Make Sambar using powder• Make Maggie Noodles• Microwave frozen sambar / Tetrapack• Inefficient for singles – make food in one place
& get it delivered?
Data Exchange
A1
A3
A2
A4
Data Exchange
• Binary or text data XML or JSON …
• Independent data checkers tools available.A1
A3
A2
A4
Software Outsourcing• Goal: reduce cost• Projects need to fit certain criteria– Bit formal & clear requirements– Interfaces well defined/understood– should be of reasonable size
• Not a good idea for small/poorly defined/time-critical/security-sensitive projects
• Opinion: may stay at current level or go down• Industry not conducive for more outsourcing• With increased cost, Indian SW companies under
pressure
Design decisons
• Purchase modules or use open-source?• .NET or Java?
Running time of a program?
• size of input (n)• CPU speed• memory size & speed• actual processing, time complexity of
algorithm• compiler optimization, dev execution
environment• …
Compare these algorithms
Algorithm O(log n) O(n) O(n2) O(2n)
When n goes up by 1When n doubles
Time complexity – our goal
Running time improvements
If a program takes 1 week to complete, how will you approach to reduce running time?
Software efficiency: Do we really care?• Goal is to make software work & meet
deadline for most industry projects. Let us consider a few examples:
• Game console: Algorithm takes longer to run requires higher-end CPU to keep realism higher price product fails amid competition
Software Efficiency: Web server
• Consider 2 algorithms A1 and A2 that take 5 seconds & 20 seconds per transaction.
• web-user experience?• web server capacity?
A1 A2
User1 User2InternetInternet
Daily data crunching: What if it takes >1 day?
• 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)
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
Wireless node capacity
• BHCA capacity: 10 lakhs calls per hour• Each call requires (1 hour * 70%/(10 lakhs)) • = 2.5 milliseconds.• If that 2.5 msec becomes 3.0 msec due to
additional processing, new capacity will be• 10 * 2.5 = x * 3.0 x = 8.3 lakhs BHCA• 17% capacity reduction
Data download & processing
open web browserloop
click & download next fileprocess file
done!
• Let us say both steps take 5 minutes each & we have 10 files to process.
• What is the total processing time?
• How can we optimize?• Hint: download uses I/O
and processing uses CPU.
Data download & processing
open web browserloop
click & download next fileprocess file
until all files are processed
• Let us say both steps take 5 minutes each & we have 10 files to process.
• What is the total processing time?
• > 10 * 10 = 100 minutes• How can we optimize?• Hint: download uses I/O and
processing uses CPU.• Real-world example?• Making chappathis?
Data download & processing
open web browserclick & download next file
loopclick & start to download
next fileprocess previous file
until all files are processed
• Download & processing in parallel.
• What is the total processing time now?
• > 5 * 10 = 50 minutes• More complex algorithm
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
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
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
Game development
• Lot of interest in real-time action games• Most games done in C/C++ in Los Angeles area• Algorithm optimization at work!
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
Dallas-Ft. Worth metroplex
Advertisement:University of Texas at Dallas
• Erik Jonsson School of Engineering and Computer Science
• Computer Science: ~500 MS students and ~150 PhD students
• Surrounded by 100s of companies in Dallas-Fort Worth metroplex
• Students can get internships right after 2 semesters and continue studies in parallel
• Flyers available – see me after the lecture
Questions & Answers
Thanks for attending!
Dr. Jeyakesavan [email protected] [email protected]