Trends in Software Development & Systems Integration
By R.K. Pillai February 2, 2008
Overview
• Brief History of Computing Technology prior to 1960 • Events and Progress in 60’s, 70’s, 80’s &90’s • Evolution of Software Development • Progress in the New Millennium • Introduction to Emerging Technologies
Brief History of Computing Before 1960
• • • • • • • • Boolean Algebra - George Bool Charles Babbage and his Machine Holerith - Punch Cards Von Newman - Computer Architecture Turing Machine & Magnetic Recording Analog Computers using Vacuum Tubes First Digital Computer for Business Use Programming Languages – Assembler, FORTRAN & COBOL
Events & Progress in 60’s
• • • •
• •
• •
Scientific Computers IBM 1620 & 7044 Business Computer IBM 1401 Integration of Business & Scientific IBM 360 Series Development of Advanced Operating Systems & File Management Systems Multi-programming & Time Sharing OS Initial Database Concepts such as Hierarchical, Networking and Relational Batch Processing Operations Mathematical Modeling & Simulation
70’s
• • • •
• • • •
Dominance of Mainframe Computers IBM VM 370 Virtual Machines Large Scale Software Development Introduction of Transaction Processing Systems – IBM CICS & IMS IBM Software De-bundling Introduction of Structured Programming SDLC Methodology Software Quality Initiatives
70’s
• • • • Intel 4004 - First Micro-processor Introduction of Unix based Mini-computers Birth of Microsoft & Oracle Corporations Development of Micro-Computer Operating Systems
80’s
• Dominance of Relational Database Model • Growth of Large Database Oriented Transaction Processing and Batch Processing Systems – COBOL/DB2/CICS • Use of Third generation Languages – RPG • Software Development Process – Creative Art or Engineering a Product • Increased Systems Failure Due to Software Bugs
80’s…
• Development of Personal Computers Based on Intel 8086, 80286, 80386 • Growth of PC OS – DOS, MSDOS & Windows • Introduction of Office Automation Products – Word Processing, Spreadsheet & PC Database • Acceptance of Mainframe, Mini & Micro-computers in stand alone mode in business • First use Graphical User Interface (GUI) • Establishment of TCP/IP and HTTP Protocols • Global Use of World Wide Web among Universities and Research Institutions
80’s…
• James Martin Published - Software Engineering Methods, Three Volumes • Model Based Application Development • Logical Data Model & Physical Database • Entity Relationship Diagram (ERD) • Normalization to Third Normal Form • Process Model to capture Business Rules • Computer Aided Software Engineering Tools (CASE) • Graphical User Interface Design tools • Automated Code Generation, Compilation & Implementation of On-line and Batch Programs
90’s
• Continued use of CASE Tools for Large Software Engineering Projects • Introduction of Object Oriented Analysis, Design & Development – C / C++, ODBC, OLE, JDBC • Evolution of Microsoft Platforms for Business Operations • Innovative Releases of Windows 95 & 98 OS • Emergence of LAN & WAN Networking • Popularity of JAVA and related technologies for Software Engineering • Growth of Data Interface Technologies - COM, DCOM, CORBA & SOAP • Prolific Growth of Internet Users & .com web sites • Introduction of XML Technologies
90’s….
• Realization of Y2K Problems • Massive Y2K Systems Corrective Effort • Introduction of Enterprise Resource Planning (ERP) Solutions led by SAP, Oracle, Siebel, PeopleSoft and others • Development and wide spread implementation of Supply Chain Management Systems (Manugistics, I2) • Start of the Open Source Revolution – Linux
New Millennium
• • • • • • • • • • Uneventful Passage of Y2K Storm DOT COM Bubble Burst Wide Spread Adoption of ERP Systems Replacing Legacy Applications Acceptance of Microsoft Solutions for Small and Medium Size Applications JAVA Based Solutions for Scalable & Response Time Critical Applications Introduction of .NET & J2EE Development Framework for Application Development Increased Level of Distributed Database Applications Integration of Legacy Application Web Interface Increased use of Internet Security Related Products Emerging Technologies & Social Networking
Software Engineering Evolution
• Prior to 60’s
– Machine Language & Assembly Language
• In 60’s
– Use of High Level Languages
• COBOL, FORTRAN, ALGOL
– Mostly Batch Processing, Sequential File & Very Little Direct Access
• In 70’s
– Prolific growth of On-line Transaction Processing using
• COBOL/CICS/IMS
– Need for Structured Programming – Issues with Software Quality – Evolution of Software Development Life Cycle Methods
Software Engineering Evolution
• In 80’s
– Concept of developing Software as Engineered Product – Rapid Application Development using IE Methodology, CASE Tools and Relational Databases – Failed later due to its enormous Learning Curve and Rigid Data Model
•
In 90’s
– – – – – Object Oriented Approach in software development Emergence of strong development platforms Microsoft & Others Growth of C++ & JAVA Technologies Popularity of ERP alternatives - SAP etc Growth of Internet Technologies
• •
New Technology emerges every ten-twelve years Emerging Technologies – Service Oriented Architecture (SOA) & Virtualization
Emerging Technologies
• Service Oriented Architecture (SOA) • SOA in simple terms is an approach or Methodology for Integrating XML, Web Services and Related Technologies in an Efficient and Standardized way to harness Information Technology services for successful Enterprise Business Operations.
Emerging Technologies contd.
• SOA is:
– – – – – A Technical Architecture A Business Modeling Concept A Piece of Infrastructure An Integration Service A New way of viewing Units of Automation with in the Enterprise
SOA will lead to Standardized Infrastructure supplemented with Strategically Positioned XML and Web Services Technologies
Emerging Technologies contd.
• Virtualization
– It provides a way for infrastructure, applications, operating systems, presentation layers, virtual machines to be separated from each others but also work together.
Q&A