latest trends in global software industry

44
Latest trends in Global Software Industry Dr. Jeyakesavan Veerasamy [email protected] [email protected]

Upload: shiro

Post on 25-Feb-2016

108 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: Latest trends in  Global Software Industry

Latest trends in Global Software Industry

Dr. Jeyakesavan [email protected]@utdallas.edu

Page 2: Latest trends in  Global Software Industry

Agenda

• Introduce myself

• Software: Then & Now • SW development environment options• SW Efficiency – does it matter?• Latest buzz• Trends in CS education• Open Q&A

Page 3: Latest trends in  Global Software Industry

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

Page 4: Latest trends in  Global Software Industry

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

Page 5: Latest trends in  Global Software Industry

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

Page 6: Latest trends in  Global Software Industry

Dr. V. Jeyakesavan: Summary

• 18 years experience as Software Engineer• 12 years of teaching experience

Page 7: Latest trends in  Global Software Industry

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

Page 8: Latest trends in  Global Software Industry

Software: Then & Now

Note: Almost all the content is based on observations & experience only.

Page 9: Latest trends in  Global Software Industry

Complexity of software projects: historical snippets

• Ad-hoc development model• Waterfall model – slow & unpredictable– heavy documentation effort– cost overruns & missed deadlines

Page 10: Latest trends in  Global Software Industry

My experience with huge SW projects(Waterfall model)

• Period of instability• collisons during merge• product delays• Is it good enough to release?

Page 11: Latest trends in  Global Software Industry

Agile process

Page 12: Latest trends in  Global Software Industry

Agile methods

• Limited documentation• Better tracking of current status• Frequent releases• Continuous interaction with the customer• Several refinements: PP, SCRUM, …

Page 13: Latest trends in  Global Software Industry

A typical industry project in 1990

C standard library Home-grown library

New code

Page 14: Latest trends in  Global Software Industry

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?

Page 15: Latest trends in  Global Software Industry

Questions

• Expert programmer: what does it mean?• Future projects: No code? Just integration? • Knowledge of Java/C++/… down the drain?

Page 16: Latest trends in  Global Software Industry

Application Specific Programming

M1 M2 M3

Intrepreter

Mn

script script script……

Page 17: Latest trends in  Global Software Industry

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

Page 18: Latest trends in  Global Software Industry

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.

Page 19: Latest trends in  Global Software Industry

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?

Page 20: Latest trends in  Global Software Industry

Data Exchange

A1

A3

A2

A4

Page 21: Latest trends in  Global Software Industry

Data Exchange

• Binary or text data XML or JSON …

• Independent data checkers tools available.A1

A3

A2

A4

Page 22: Latest trends in  Global Software Industry

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

Page 23: Latest trends in  Global Software Industry

Design decisons

• Purchase modules or use open-source?• .NET or Java?

Page 24: Latest trends in  Global Software Industry

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• …

Page 25: Latest trends in  Global Software Industry

Compare these algorithms

Algorithm O(log n) O(n) O(n2) O(2n)

When n goes up by 1When n doubles

Page 26: Latest trends in  Global Software Industry

Time complexity – our goal

Page 27: Latest trends in  Global Software Industry

Running time improvements

If a program takes 1 week to complete, how will you approach to reduce running time?

Page 28: Latest trends in  Global Software Industry

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

Page 29: Latest trends in  Global Software Industry

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

Page 30: Latest trends in  Global Software Industry

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)

Page 31: Latest trends in  Global Software Industry

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 32: Latest trends in  Global Software Industry

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

Page 33: Latest trends in  Global Software Industry

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.

Page 34: Latest trends in  Global Software Industry

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?

Page 35: Latest trends in  Global Software Industry

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

Page 36: Latest trends in  Global Software Industry

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 37: Latest trends in  Global Software Industry

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 38: Latest trends in  Global Software Industry

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 39: Latest trends in  Global Software Industry

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 40: Latest trends in  Global Software Industry

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 41: Latest trends in  Global Software Industry

Dallas-Ft. Worth metroplex

Page 42: Latest trends in  Global Software Industry

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

Page 43: Latest trends in  Global Software Industry

Questions & Answers

Page 44: Latest trends in  Global Software Industry

Thanks for attending!

Dr. Jeyakesavan [email protected] [email protected]