Download Understanding Software Paradigms: Choosing the Right Technique for Complex Systems - Prof. and more Study notes Computer Science in PDF only on Docsity! Abdelghani Bellaachia, Advanced Software Paradigms Page: 1 Introduction Why software paradigms? • Be able to choose the right software technique right from the beginning. • Ability to design complex systems. • The attention is now toward software paradigms since programming languages are becoming more mature. Software Development Characteristics: • Software is "soft"; • Complexity • Human intensive Software Crisis • Buisnessweek 1999: “ Glitches cost billions of dollars and jeopardize human lives. How can we kill the bugs?” Abdelghani Bellaachia, Advanced Software Paradigms Page: 2 • Palm Inc.: The Palm OS 3.5, introduced in February 2000, has a memory leak problem. A new release Palm OS 3.5.2 is released. • June 10 of 1999 the software industry would love to forget: Auction site eBay suffered a 22- hour system crash--the longest, but not last, in a series of crippling software-related outages. • Millions of dollars in shares were lost today when a software problem caused the trading computers at the New York Stock Exchange to crash. Traders are criticizing the Exchange's decision to install a new trading application, Microsoft Transactions 98. What is a paradigm? • The word paradigm (from the Greek word which means example) is commonly used to refer to a category of entities sharing a common characteristic. • A paradigm is a way of thinking about problems and their solutions, and an approach to using computers to implement those solutions. • Robert Floyd Abdelghani Bellaachia, Advanced Software Paradigms Page: 5 Software Life Cycle Software paradigms: • The formation of a paradigm is a sign of maturity for a given science. Software Paradigms: Classification • According to Brian Warboys: o The Algorithmic Paradigm (AP) o The Analysis-Synthesis-Evaluation Paradigm (ASE) (e.g., Waterfall Model) o The Formal Design Paradigm (FD) o The Artificial Intelligence Paradigm (AI) o The Theory of Evolutionary Design Paradigm (TED) • Component-based Architecture: o Design patterns o Frameworks Abdelghani Bellaachia, Advanced Software Paradigms Page: 6 Why so many programming languages? • Programming Languages paradigms: • A common definition of a programming paradigm: is that of a ``model or approach in solving a problem'', or the system architecture encompassing definition of ``way of thinking about computer systems''. Fortran Algol-60 Cobol Lisp Simula PL/1 Pascal Algol-68 Prolog ML C Smalltalk Ada Java C++ Abdelghani Bellaachia, Advanced Software Paradigms Page: 7 • Imperative languages, • Concurrent languages, • Logic languages, • Functional languages, • Object-oriented languages.