Title: MD240 Software for Designing and Developing New Software
1MD240Software for Designing and Developing New
Software
2Agenda
- Evolution of Programming
- History of the Programming Process
- Software Application Frameworks
- Object Oriented Programming
- Visual Programming
- Internet Programming
3Evolution of Programming
TREND Evolution from painful command-line
compilers, to simple integrated development
environments (IDEs), to multiple-desktop
integrated IDEs
TREND Evolution from costly programming tools to
freely available open source development tools.
4Evolution of Programming Languages
- Evolution of Programming Languages
- Machine language 0-1 long difficult
programming - Assembly language assemble repetitive
instructions, shorter code - Procedural language include commands, shorter
code - Non-procedural languages application
generators commands specify results - Intelligent languages natural language
processing
5Building Computer ProgramsVarious Ways of
Running Programs
- Interactive
- user types in one command at a time and the
compiler executes it - Batch
- collection of commands in a file (.bat), executed
sequentially - Interpreted
- scripted program contained in a text file,
compiled and executed on-the-fly, but not stored
on the computer as an executable file - Java (Object Code)
- generically compiled code that runs in a Java
Virtual Machine (JVM) - .NET Intermediate Language
- generic C program compiled down to machine code
at run-time - Compiled
- compiler translates program into object code,
links object code into a program made up of
machine-level code, and stores this as an
executable file
6History of the Programming Process
TREND Evolution from direct manipulation of
machine via machine language, to procedural
languages, to object-oriented languages
TREND Evolution from command-line programming
tools to integrated suites of windows-based tools
7The Olden Days
8Examples of Early Programming
- Machine Language
- 01001010
- 00011100
- Assembly Code (explicit instructions sent to
registers and interrupts) - mov DX, 0
- mov AH, 0
- mov AL, 0fh
- int 17h
- int 20h
- Procedural Code (ex C)
- include ltstdio.hgt
- main()
-
- printf(Hello, World!\n)
9Building Computer Programs
- System development programs
- translate user computer programs written in
source code into object or machine code - compiler creates object code
- linker links object code together to create
executable machine code - debugger identifies program syntax errors
- interpreter compiles and executes program code
without creating an executable file
10Examples of Early ProgrammingText Editor and
Command-Line Compiler
Text Editor
Compiler Linker
11Examples of Early ProgrammingInterpreter
12Later Programming
- Integrated Development Environments (IDE)
- Introduced during mid- to late-1980s, when
windowing systems (such as MS Windows 3.0) became
available - Integrated the editing/programming, compiling,
linking, debugging into one application - Improved programmer productivity
13Integrated Development EnvironmentPython IDE
Interpreter or Compiler Debugger
Text Editor
14Modern Programming Environments
15Computer-Aided Software Engineering (CASE)
- A tool for programmers, systems analysts,
business analysts, and systems developers to help
automate software development - A combination of software tools and structured
software development methods - CASE tools help to improve software quality
16Advantages of CASE Tools
- Improves productivity
- Results in better interaction among users and
information systems professionals - Makes easier to create prototypes
- Makers easier to make system design changes as
circumstances change
17Categories of CASE Tools
- Upper CASE (U-CASE)
- focus primarily on the design aspects of systems
development - Lower CASE (L-CASE)
- helps with programming and related activities
- Integrated CASE (I-CASE)
- incorporates both U-CASE and L-CASE functionality
and provide support for many tasks throughout the
SDLC
18CASE ToolsVisual Basic IDE
Blank Application
Controls (objects)
Object Attributes to Edit
19CASE ToolsNetBeans IDE (for Java)
20Software Application Frameworks
TREND Software is evolving from stand-alone
applications built from the ground up, into
modern applications build upon frameworks of
existing objects (program code)
21Software ApplicationsHistory
- Historically, applications were built from the
ground up - The operating system did not provide resources
that could be re-used - Computer code was difficult to re-use
22Software ApplicationsFrameworks
- Today, many companies and open source projects
have developed frameworks of software objects
upon which software applications are built - Microsoft .NET Framework
- Eclipse Framework (eclipse.org/IBM)
- NetBeans (J2EE) Framework (netbeans.org/SUN
Microsystems) - Gnome Framework
- KDE Framework
Programs Run On Windows Only Java (Any OS) Java
(Any OS) Linux/BSD Linux/BSD
23Software Application FrameworksThree Levels of
Software
J2EE/XML JMS, MQSeries, etc.
.NET/XML, J2EE/XML JMS, MQSeries, etc.
Message Passing Between Platforms
3
Synchonizing Applications
Groove
DCOM, CORBA, Java RMI, JINI
CORBA, Java RMI, JINI
Distributed Object Model
2
Application Level
MS Office, WordPerfect Office, Lotus SmartSuite
OpenOffice
Individual Applications
DOS command line, Windows 1, 2, 3, 3.1, Many
others
Desktop Environment
MS Windows 95
GNOME, KDE (Unix/Linux) Aqua (Mac)
Object Model for GUI Properties
COM/COM OLE
X-Windows, GNOME, KDE OpenDoc
1
Operating System
Unix, Linux, MacOS X
DOS
MS Windows 95
24Object Oriented Programming
TREND CASE tools are used to build applications
from objects.
25New Programming ConceptsObject Orientation
- Object-Oriented Programming Languages
- Object
- models things in the real world
- Class
- a template or general framework that defines the
methods and attributes to be included in a
particular type of object - Message passing
- allows objects to interact with each other
- Encapsulation
- inaccessibility of data in an object
- Inheritance
- define a class of objects as a special case of a
more general class - Polymorphism
- send the same message to several different
receivers (objects)
26New Programming ConceptsObject Orientation
- The Spread of Object Orientation
- OOA object oriented analysis
- OOD object oriented design
- OOP object oriented programming
- MFC Microsoft Foundation Classes (objects for MS
Windows) - DOM document object model
- COM/COM component object model (for
applications) - DCOM distributed component object model
(networked applications) - CORBA common object request broker architecture
- JINI Suns Java object architecture
- IIOP Internet inter-ORB protocol
27Visual Programming
TREND CASE tools utilize visual programming.
Visual techniques are growing due to their ease
of understanding, and higher programmer
productivity.
28New Programming LanguagesVisual Programming
- Visual Programming Languages
- program within a graphical environment called an
integrated development environment (IDE) - allows developers to create applications by
manipulating graphical images directly - drag and drop objects or controls onto a
blank form - many third-party suppliers of objectpackages
- edit object attributes
- generate interpreted or compiled applications
29New Programming LanguagesVisual Programming
- Examples of Visual Programming Environments
- DELPHI
- CA Visual
- Power Objects
- VisualStudio.NET
- Visual Basic
- Visual C
- Visual J
- Visual FoxPro
- Visual InterDev
- ActiveState Visual Perl (works with MSs .NET
architecture) - ActiveState Visual Python (works with MSs .NET
architecture)
30Internet Programming
TREND Internet programming has gone through the
same types of stages as application programming.
Advanced CASE tools are now available for
developing Internet-based applications.
31Internet-Oriented LanguagesMarkup Languages
- Hypertext Markup Language (HTML)
- standard language the Web uses for creating and
recognizing hypermedia hypermedia - hypertext an approach to data management in
which data area stored in a network of nodes
connected by links (called hyperlinks) - uniform resource locators (URLs) represent
hypermedia links and links to network service
within HTML
32Internet-Oriented LanguagesMarkup Languages
- Extensions to HTML
- CSS - cascading style sheets
- DHTML - dynamic HTML
- XHTML - next generation HTML
- SMIL (smile) - graphical layout
- WML - WAP markup language
33Internet-Oriented LanguagesMarkup Languages
- Virtual Reality Modeling Language (VRML)
- a file format for describing three-dimensional
interactive worlds and objects - represent static and animated objects
- have hyperlinks to other media such as sound,
video, and image
34Internet-Oriented LanguagesMarkup Languages
- eXtensible Markup Language (XML)
- document delivery across the Net, usually a B2B
transaction - organizations agree on an XML structure to
exchange data - document type definition (DTD) specifies XML
structure
35Internet-Oriented Languages Scripting Languages
- WWW Scripting Languages
- Not compiled (JSPs and ASPXs are exceptions)
- Interpreted and executed when called by a Web
Server, sometimes run in a virtual machine - Used to build dynamic web sites
- Link web page front end to database back end
- you store SQL code within template file of
scripts/HTML - when page requested, transactions performed with
database or other applications on server - result of transaction translated into HTML, which
server sends to your WWW browser
36Internet-Oriented LanguagesScripting Languages
- WWW Scripting Language Examples
- Perl (.pl)
- Python
- Tcl/Tk
- JavaScript
- VBScript
- Active Server Pages (.asp, .aspx)
- Cold Fusion (.cfm)
- PHP (Personal Hypertext Processor)
- probably most common world-wide
- open source works with UNIX/Linux and open
source databases - Java Server Pages (.jsp)
- AOLserver Data Pages (.adp freeware, used to
build Netscape.com and AOL.com)