33
Software Industry – Historical View Dr. Jeyakesavan Veerasamy University of Texas at Dallas [email protected]

Software Industry – Historical View

  • Upload
    alta

  • View
    44

  • Download
    3

Embed Size (px)

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 Presentation

Citation preview

Page 1: Software Industry – Historical View

Software Industry – Historical View

Dr. Jeyakesavan VeerasamyUniversity of Texas at Dallas

[email protected]

Page 2: Software Industry – Historical View

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

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

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

Agile process

Page 6: Software Industry – Historical View

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

A typical industry project in 1990

C standard library Home-grown library

New code

Page 8: Software Industry – Historical View

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

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

Application Specific Programming

M1 M2 M3

Intrepreter

Mn

script script script……

Page 11: Software Industry – Historical View

Data Exchange

A1

A3

A2

A4

Page 12: Software Industry – Historical View

Data Exchange

• Binary or text data XML or JSON …

• Independent data checkers tools available.A1

A3

A2

A4

Page 13: Software Industry – Historical View

Design decisons

• Purchase commercial modules or use open-source?

• .NET or Java?

Page 14: Software Industry – Historical View

Running time of a program or transaction processing time

• ????

Page 15: Software Industry – Historical View

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 33: Software Industry – Historical View

Questions & Answers

Dr. Jeyakesavan [email protected] [email protected]