Download - IS437: Fall 2004 Instructor: Dr. Boris Jukic
![Page 1: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/1.jpg)
IS437: Fall 2004
Instructor: Dr. Boris Jukic
Introduction
![Page 2: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/2.jpg)
Main Objectives of This Course Exposure to a Visual Programming Language, its main
components, features and development practices. (textbook, labs, assignments)
Exposure to an Object Oriented Programming Language and Main OO concepts. (textbook, labs, assignments)
Development of Standard Business Application in a Multi-Tier (Client Sever) Architecture. Database Layer Connectivity with User Interface and Business
Logic Layer (additional material, labs, assignments)
Understanding Business Application Development and Design Practices in a practical context. (additional material, labs, assignments)
![Page 3: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/3.jpg)
Business Application Development and Design
Two Main Approaches Traditional Approach: Based on Abstract
Design and Documentation (Waterfall Model)
RAD Approach: Based on Series of Prototyping Sessions (RAD: Rapid Application Development)
Those approaches are not mutually exclusive
![Page 4: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/4.jpg)
Traditional Information System Development
Six traditional phases
![Page 5: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/5.jpg)
Traditional Information System Development Standard Sequential Waterfall Method
for Application Development 1. Requirements Gathering and Elicitation (what does a client need?)
|2. Analysis Phase (Specification Document, what is system supposed to
do, what are its tasks)|
3. Design (specifying, through models, algorithms, data structures and other representations how is system/application supposed to
accomplish the required tasks)|
4. Implementation (Translating the design into the actual application coded in the language of choice)
![Page 6: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/6.jpg)
Iteration vs. Incrementation
(a) Iteration versus (b) incrementation
![Page 7: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/7.jpg)
Iteration and Incrementation (contd)
Iteration and incrementation are used in conjunction with one another
There is no single “requirements phase” or “design phase”
Instead, there are multiple instances of each phase
![Page 8: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/8.jpg)
Iteration and Incrementation in Traditional Approach
![Page 9: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/9.jpg)
Iterative and Incremental Life-Cycle Model in Traditional Approach
Sample life cycle of an information system
![Page 10: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/10.jpg)
Traditional Approach: Phases and Workflows
Sequential phases do not exist in the real world
Instead, the five core workflows (activities) are performed over the entire life cycle Requirements workflow Analysis workflow Design workflow Implementation workflow Test workflow
![Page 11: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/11.jpg)
Workflows All five core workflows are performed over the
entire life cycle However, at most times one workflow
predominates Examples:
At the beginning of the life cycle The requirements workflow predominates
At the end of the life cycle The implementation and test workflows predominate
Planning and documentation activities are performed throughout the life cycle
![Page 12: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/12.jpg)
Iteration and Incremenation in Phases and Workflows
Iteration is performed during each incrementation
![Page 13: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/13.jpg)
Non-Traditional Approach : Rapid Application Development (RAD)
Characteristics of RAD processes The processes of specification, design and
implementation are concurrent. There is no detailed specification and design documentation is minimised.
The system is developed in a series of increments. End users evaluate each increment and make proposals for later increments.
System user interfaces are usually developed using an interactive development system.
![Page 14: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/14.jpg)
Agile methods Dissatisfaction with the overheads involved in
traditional design methods led to the creation of agile methods. These methods: Focus on the code rather than the design; Are based on an iterative approach to software
development; Are intended to deliver working software quickly and
evolve this quickly to meet changing requirements. Agile methods are probably best suited to
small/medium-sized business systems or PC products.
![Page 15: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/15.jpg)
Extreme programming Perhaps the best-known and most widely
used agile method. Extreme Programming (XP) takes an
‘extreme’ approach to iterative development. New versions may be built several times per day; Increments are delivered to customers every 2
weeks; All tests must be run for every build and the build
is only accepted if tests run successfully.
![Page 16: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/16.jpg)
The XP release cycle
Break downstories to tasks
Select userstories for this
releasePlan release
Releasesoftware
Evaluatesystem
Develop/integrate/test software
![Page 17: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/17.jpg)
XP and agile principles Incremental development is supported through
small, frequent system releases. Customer involvement means full-time customer
engagement with the team. Pair programming fosters collective ownership and
a process that avoids long working hours. Change supported through regular system releases. Maintaining simplicity through constant refactoring of
code.
![Page 18: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/18.jpg)
Requirements scenarios
In XP, user requirements are expressed as scenarios or user stories.
These are written on cards and the development team break them down into implementation tasks. These tasks are the basis of schedule and cost estimates.
The customer chooses the stories for inclusion in the next release based on their priorities and the schedule estimates.
![Page 19: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/19.jpg)
Example: Story card for document downloading
Downloading and printing an article
First, you select the article that you want from a displayed list. Youthen have to tell the system how you will pay for it - this can eitherbe through a subscription, through a company account or by creditcard.
After this, you get a copyright form from the system to fill in and,when you have submitted this, the article you want is downloadedonto your computer.
You then choose a printer and a copy of the article is printed. Youtell the system if printing has been successful.
If the article is a print-only article, you canÕt keep the PDF versionso it is automatically deleted from your computer.
![Page 20: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/20.jpg)
Task cards for document downloading
Task 1: Implement principal workflow
Task 2: Implement article catalog and selection
Task 3: Implement payment collection
Payment may be made in 3 different ways. The userselects which way they wish to pay. If the userhas a library subscription, then they can input thesubscriber key which should be checked by thesystem. Alternatively, they can input an organisationalaccount number. If this is valid, a debit of the costof the article is posted to this account. Finally, theymay input a 16 digit credit card number and expirydate. This should be checked for validity and, ifvalid a debit is posted to that credit card account.
![Page 21: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/21.jpg)
Pair programming
In XP, programmers work in pairs, sitting together to develop code.
This helps develop common ownership of code and spreads knowledge across the team.
It serves as an informal review process as each line of code is looked at by more than 1 person.
It encourages refactoring as the whole team can benefit from this.
Measurements suggest that development productivity with pair programming is similar to that of two people working independently.
![Page 22: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/22.jpg)
Visual programming Scripting languages such as Visual Basic
support visual programming where the prototype is developed by creating a user interface from standard items and associating components with these items
A large library of components exists to support this type of development
These may be tailored to suit the specific application requirements
![Page 23: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/23.jpg)
Visual programming with reuse
File Edit Views Layout Options Help
GeneralIndex
Menu componentDate component
Range checkingscript
Tree displaycomponent
Draw canvascomponent
User promptcomponent +
script
12th January 2000
3.876
![Page 24: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/24.jpg)
Prototyping
Prototype (in Business Application Development) is an experimental system is developed as a basis for formulating the requirements may be used. This system is thrown away when the system specification has been agreed.
![Page 25: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/25.jpg)
Software prototyping A prototype is an initial version of a system
used to demonstrate concepts and try out design options.
A prototype can be used in: The requirements engineering process to help
with requirements elicitation and validation; In design processes to explore options and
develop a UI design;
![Page 26: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/26.jpg)
Benefits of prototyping
Improved system usability. A closer match to users’ real needs. Improved design quality. Improved maintainability. Reduced development effort.
![Page 27: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/27.jpg)
Throw-away prototypes
Prototypes should be discarded after development as they are not a good basis for a production system: It may be impossible to tune the system to
meet non-functional requirements; Prototypes are normally undocumented; The prototype structure is usually degraded
through rapid change; The prototype probably will not meet normal
organisational quality standards.
![Page 28: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/28.jpg)
Key points An iterative approach to software development
leads to faster delivery of software. Agile methods are iterative development
methods that aim to reduce development overhead and so produce software faster.
Extreme programming includes practices such as systematic testing, continuous improvement and customer involvement.
A throw-away prototype is used to explore requirements and design options.
![Page 29: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/29.jpg)
History of BASIC
• Beginner’s All-purpose Symbolic Instruction Code• Dartmouth College, 1964• primarily intended as instructional tool before more complex languages (FORTRAN) can be tackled by students • easy to use, needed only 4K memory to run:
05 a = 5010 b = 10015 c = a + b20 print c25 end
• popular language in business schools • in late 1980s, visual components were added
![Page 30: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/30.jpg)
Evolution of Programming
Machine Code, Assembly Languages High Level Languages: Structured (flowcharts,
pseudo code) and Procedural FORTRAN, Pascal, Cobol
Object Based and Object Oriented Programming (OOP) C++, Java, VB.Net Building block approach: software reuse Definition of programming skill is fundamentally changed
![Page 31: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/31.jpg)
Structure of Visual Basic
VISUAL
BASICProgram code
Graphical User Interface
![Page 32: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/32.jpg)
History of Visual BASIC
VB 1: May 1991 VB 2: November 1992 VB 3: June 1993 VB 4: October 1996 VB 5: April 1997 VB 6: October 1998 VB. Net: 2002
![Page 33: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/33.jpg)
The .Net Framework
The goal is to access information anywhere and anytime with any device using the common infrastructure of the Internet.
http://www.microsoft.com/net/basics/framework.asp
![Page 34: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/34.jpg)
MS .Net Architecture
Source code: Visual Basic, C++, COBOL, etc.
Microsoft Intermediate Language (MSIL)
Platform-specific code
compiler
Development tool
![Page 35: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/35.jpg)
VB .Net vs. VB 6
Enhanced development environment for desk top applications
Enhanced development environment for Web-based applications (ASP.Net, XML)
Enhanced database management (ADO.Net) Fully object-oriented
![Page 36: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/36.jpg)
The Object Model in VB: examples
Objects: forms , controls, textboxes Properties: text, name, size, location Methods: Form.close, messagebox.show Events: clicking of a button, closing a
window, changing the state of a radio button Class (button) vs. Instance of a class (OK
button)
![Page 37: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/37.jpg)
Characteristics of VB
proprietary dynamic (ever improving) complex (features laden) powerful (productivity enhancing) the most popular programming
language (3.2 million programmers)
![Page 38: IS437: Fall 2004 Instructor: Dr. Boris Jukic](https://reader035.vdocument.in/reader035/viewer/2022062323/568160e2550346895dd01104/html5/thumbnails/38.jpg)
Popular Business Oriented programming languages
COBOL Visual Basic
Mainframes Desktop
Transaction processing
Individual users
Web-based applications