Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Industry – Historical View Dr. Jeyakesavan Veerasamy University of Texas at Dallas

Similar presentations


Presentation on theme: "Software Industry – Historical View Dr. Jeyakesavan Veerasamy University of Texas at Dallas"— Presentation transcript:

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


Download ppt "Software Industry – Historical View Dr. Jeyakesavan Veerasamy University of Texas at Dallas"

Similar presentations


Ads by Google