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

Slides:



Advertisements
Similar presentations
Analysis of Algorithms: time & space Dr. Jeyakesavan Veerasamy The University of Texas at Dallas, USA.
Advertisements

Evolution of Telecom Software Perspectives from a Software Engineer Dr. Jey Veerasamy.
CHANGING THE WAY IT WORKS Cloud Computing 4/6/2015 Presented by S.Ganesh ( )
The Premier Software Usage Analysis and Reporting Toolset CELUG Presentation – May 12, 2010 LT-Live : License Tracker’s License Server Monitor.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Final year projects, Higher studies, Jobs & Software Trends in USA Dr. Jeyakesavan Veerasamy
Aiding intelligent next-gen systems with mobile applications Dr. Jeyakesavan Veerasamy University of Texas at Dallas Note: Almost all.
Online Education is the future? Dr. Jeyakesavan Veerasamy The University of Texas at Dallas, USA.
Future of Online Education in USA
Software Development – Thoughts & observations Dr. Jeyakesavan Veerasamy
Latest trends in Global Software Industry Dr. Jeyakesavan Veerasamy
Virtual learning for Management education Dr. Jeyakesavan Veerasamy
Python for S60 SmartPhones PostPC Workshop Fall 2006 Amnon Dekel.
© 2009 GroundWork Open Source, Inc. PROPRIETARY INFORMATION: Information contained herein is not for use or disclosure outside of GroundWork Open Source,
Life as Software Engineer Dr. Jeyakesavan Veerasamy University of Texas at Dallas
Client/Server Architectures
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
VoiceXML Builder Arturo Ramirez ACS 494 Master’s Graduate Project May 04, 2001.
Business Computing 550 Lesson 4. Fundamentals of Information Systems, Fifth Edition Chapter 4 Telecommunications, the Internet, Intranets, and Extranets.
Latest trends in Global Software Industry Dr. Jeyakesavan Veerasamy
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
DNN Performance & Scalability Planning, Evaluating & Improving : Part 2.
CS 3305 Course Overview. Introduction r Instructor: Dr Hanan Lutfiyya r Office: MC 355 r hanan at csd dot uwo ca r Office Hours: m Drop-by m Appointment.
Final Year Projects Dr. Jeyakesavan Veerasamy Director of CS Senior Design Program University of Texas at Dallas, USA
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
Information Technology Ms. Rocío Acevedo August 2006.
Introduction OF Enterprise Application Development.
August 01, 2008 Performance Modeling John Meisenbacher, MasterCard Worldwide.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Role of IT in management Dr. Jeyakesavan Veerasamy
Genuitec’s S ecure D elivery C enter 2012 Overview of delivering MyEclipse, Eclipse and IBM Rational technologies inside the firewall… Genuitec's Secure.
Cloud Computing Characteristics A service provided by large internet-based specialised data centres that offers storage, processing and computer resources.
Common Servers in a Workplace Environment Brandon Reynolds Computer Electronic Networking Dept. of Technology, Eastern Kentucky University.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
Game Programming in Java Dr. Jeyakesavan Veerasamy CS faculty, The University of Texas at Dallas Website:
CT 1503 Network Operating Systems Instructor: Dr. Najla Al-Nabhan 2014.
What is Sure Stats? Sure Stats is an add-on for SAP that provides Organizations with detailed Statistical Information about how their SAP system is being.
The Agent Based Crypto Protocol The ABC-Protocol by Jordan Hind MSE Presentation 3.
VENDORS, CONSULTANTS AND USERS. WHY CAN’T COMPANIES DEVELOP THEIR OWN ERP PACKAGES? To develop an ERP package is a complex & time consuming activity which.
 What are CASE Tools ?  Rational ROSE  Microsoft Project  Rational ROSE VS MS Project  Virtual Communication  The appropriate choice for ALL Projects.
T Iteration demo T Iteration Demo Team Balboa I1 - Iteration
MIS 105 LECTURE 1 INTRODUCTION TO COMPUTER HARDWARE CHAPTER REFERENCE- CHP. 1.
Model View Controller MVC Web Software Architecture.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
Final Year Projects Dr. Jeyakesavan Veerasamy Director of CS Senior Design Program University of Texas at Dallas, USA
Passionate Programming & IT trends Dr. Jeyakeavan Veerasamy The University of Texas at Dallas, USA Web:
WHAT IS E-COMMERCE? E-COMMERCE is a online service that helps the seller/buyer complete their transaction through a secure server. Throughout the past.
Lecture 1: Network Operating Systems (NOS) An Introduction.
The Online World ONLINE DOCUMENTS. Online documents Online documents (such as text documents, spreadsheets, presentations, graphics and forms) are any.
E-Commerce & M-Commerce. Introduction Electronic commerce, commonly known as e- commerce, It is a type of industry where buying and selling of product.
Electronic Commerce Semester 1 Term 1 Lecture 7. Introduction to the Web The Internet supports a variety of important tools, such as file transfer, electronic.
Introduction to Performance Testing Performance testing is the process of determining the speed or effectiveness of a computer, network, software program.
WIDESCREEN PRESENTATION Tips and tools for creating and presenting wide format slides.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses. ©Copyright Network Development Group Module 01 Introduction.
If you have a transaction processing system, John Meisenbacher
PowerBuilder is an integrated development environment (IDE) used to create applications. PowerBuilder 12.5 has good integration with the Microsoft.
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
Advanced Higher Computing Science
MASS Java Documentation, Verification, and Testing
Netscape Application Server
Web Application.
Subject Name: MANGEMENT INFORMATION SYSTEM Subject Code:10IS72
Chapter 5 Output: ERP Reports, Data Warehouses and Intranets
OPERATING SYSTEMS.
Get Your Sage ACT! Contacts & Calendar in the Cloud
Presentation transcript:

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

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.

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: XP, 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 segment IDE modules New code

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?

Application Specific Programming M1M2M3 Intrepreter Mn script … …

Data Exchange A1 A3 A2 A4

Data Exchange Binary or text data  XML or JSON … Independent data checkers tools available. A1 A3 A2 A4

Design decisons Purchase commercial modules or use open- source?.NET or Java?

Running time of a program or transaction processing time ????

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?

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%

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

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.

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

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?

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.

Data crunching pseudocode initial setup loop – read one tuple – open db connection – send request to db – get response from db – close db post-processing

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)

Data crunching pseudocode initial setup open db connection loop – read one tuple – send request to db – get response from db close db post-processing

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

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.

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 

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.

Smart-phone development My kids know/play games in Android phone For me, , 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

Questions & Answers Dr. Jeyakesavan Veerasamy