380 likes | 569 Views
IS437: Fall 2004 Instructor: Dr. Boris Jukic. Introduction. Main Objectives of This Course. Exposure to a Visual Programming Language, its main components, features and development practices. (textbook, labs, assignments)
E N D
IS437: Fall 2004Instructor: Dr. Boris Jukic Introduction
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)
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
Traditional Information System Development • Six traditional phases
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)
Iteration vs. Incrementation • (a) Iteration versus (b) incrementation
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
Iterative and Incremental Life-Cycle Model in Traditional Approach • Sample life cycle of an information system
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
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
Iteration and Incremenation in Phases and Workflows • Iteration is performed during each incrementation
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.
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.
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.
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.
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.
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.
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
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.
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;
Benefits of prototyping • Improved system usability. • A closer match to users’ real needs. • Improved design quality. • Improved maintainability. • Reduced development effort.
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.
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.
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 = 50 • 10 b = 100 • 15 c = a + b • 20 print c • 25 end • popular language in business schools • in late 1980s, visual components were added
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
Structure of Visual Basic Graphical User Interface VISUAL Program code BASIC
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
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
MS .Net Architecture Source code: Visual Basic, C++, COBOL, etc. Microsoft Intermediate Language (MSIL) Platform-specific code compiler Development tool
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
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)
Characteristics of VB • proprietary • dynamic (ever improving) • complex (features laden) • powerful (productivity enhancing) • the most popular programming language (3.2 million programmers)
Popular Business Oriented programming languages Web-based applications Mainframes Desktop COBOL Visual Basic Transaction processing Individual users