Supply Chain Enterprise Resources Planning and ...

concepcionsockΛογισμικό & κατασκευή λογ/κού

15 Αυγ 2012 (πριν από 5 χρόνια και 7 μέρες)

242 εμφανίσεις

MD240

Software for Designing and
Developing New Software

Agenda


Evolution of Programming


History of the Programming Process


Software Application Frameworks


Object Oriented Programming


Visual Programming


Internet Programming

Evolution 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.

Evolution 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

Generations

1
st

2
nd

3
rd

4
th

5
th

Progress

Building Computer Programs

Various 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

History 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

The Olden Days

Examples 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 <stdio.h>

main()

{


printf(“Hello, World!
\
n”);

}

Building 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

Examples of Early Programming

Text Editor and Command
-
Line Compiler

Compiler
& Linker

Text
Editor

Examples of Early Programming

Interpreter

Later 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

Integrated Development Environment

Python IDE

Text
Editor

Interpreter or Compiler + Debugger

Modern Programming
Environments

Computer
-
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

Advantages 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

Categories 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

CASE Tools

Visual Basic IDE

Blank
Application

Controls
(“objects”)

Object
Attributes
to Edit

CASE Tools

NetBeans IDE (for Java)

Software 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)

Software Applications

History


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

Software Applications

Frameworks


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

Software Application Frameworks

Three Levels of Software

Operating

System

DOS

MS Windows 95+

Unix, Linux,

MacOS X

Object Model

for GUI

Properties

COM/COM+

OLE

X
-
Windows, GNOME, KDE

OpenDoc


Application

Level

Individual Applications

Desktop

Environment

DOS command line,

Windows 1, 2, 3, 3.1,

Many others

MS Windows 95+

GNOME, KDE (Unix/Linux)

Aqua (Mac)

OpenOffice

MS Office, WordPerfect

Office, Lotus SmartSuite

DCOM, CORBA,

Java RMI, JINI

CORBA,

Java RMI, JINI

Groove

J2EE/XML


JMS, MQSeries, etc.

.NET/XML, J2EE/XML

JMS, MQSeries, etc.

Distributed

Object Model

Synchonizing

Applications

Message Passing

Between Platforms

1

2

3

Object Oriented Programming

TREND:

CASE tools are used to build applications from
objects.


New Programming Concepts

Object 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)

New Programming Concepts

Object 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:
Sun’s Java object architecture


IIOP:
Internet inter
-
ORB protocol

Visual Programming

TREND:

CASE tools utilize visual programming. Visual
techniques are growing due to their ease of
understanding, and higher programmer
productivity.

New Programming “Languages”

Visual 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 “object”packages


edit “object” attributes


generate interpreted or compiled applications

New Programming “Languages”

Visual 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 MS’s .NET architecture)


ActiveState Visual Python
(works with MS’s .NET architecture)

Internet 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.

Internet
-
Oriented Languages

Markup 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

Internet
-
Oriented Languages

Markup Languages


Extensions to HTML


CSS
-

cascading style sheets


DHTML
-

dynamic HTML


XHTML
-

next generation HTML


SMIL (“smile”)
-

graphical layout


WML
-

WAP markup language

Internet
-
Oriented Languages

Markup 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


Internet
-
Oriented Languages

Markup 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


Internet
-
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

Internet
-
Oriented Languages

Scripting 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)