Download presentation
Presentation is loading. Please wait.
Published byPeregrine Thomas Modified over 9 years ago
1
Software Industry – Historical View Dr. Jeyakesavan Veerasamy University of Texas at Dallas jeyv@utdallas.edu
2
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.
3
Complexity of software projects: historical snippets Ad-hoc development model Waterfall model – slow & unpredictable – heavy documentation effort – cost overruns & missed deadlines
4
My experience with huge SW projects (Waterfall model) Period of instability collisons during merge product delays Is it good enough to release?
5
Agile process
6
Agile methods Limited documentation Better tracking of current status Frequent releases Continuous interaction with the customer Several refinements: XP, SCRUM, …
7
A typical industry project in 1990 C standard library Home-grown library New code
8
Same industry project NOW C++/Java standard library Home-grown library Open source components Commercial libraries for industry segment IDE modules New code
9
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?
10
Application Specific Programming M1M2M3 Intrepreter Mn script … …
11
Data Exchange A1 A3 A2 A4
12
Data Exchange Binary or text data XML or JSON … Independent data checkers tools available. A1 A3 A2 A4
13
Design decisons Purchase commercial modules or use open- source?.NET or Java?
14
Running time of a program or transaction processing time ????
15
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?
16
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%
17
Compare 3 algorithms AlgorithmO(log n)O(n)O(2 n ) When n goes up by 1 neglegibleGoes up by 1 unit Doubles! When n doubles Goes up by 1 unit DoublesGoes up by 2 n
18
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.
19
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
20
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 – 2 nd 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?
21
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.
22
Data crunching pseudocode initial setup loop – read one tuple – open db connection – send request to db – get response from db – close db post-processing
23
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 = c 1. n + d 1 Time complexity is O(n)
24
Data crunching pseudocode initial setup open db connection loop – read one tuple – send request to db – get response from db close db post-processing
25
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 = c 2. n + d 2 Time complexity is still O(n), but the constants are different. c 2 < c 1 d 2 > d 1
26
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.
27
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
28
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
29
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.
30
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
31
Game development Lot of interest in real-time action games Most games done in C/C++ in Los Angeles area Algorithm optimization at work!
32
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
33
Questions & Answers Dr. Jeyakesavan Veerasamy jeyak7@gmail.com jeyv@utdallas.edu
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.