IS437: Fall 2004 Instructor: Dr. Boris Jukic Introduction.

Slides:



Advertisements
Similar presentations
1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Rapid Software Development IS301.
Advertisements

Prescriptive Process models
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Rapid software development
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
Alternate Software Development Methodologies
Agile Development.
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Chapter 17: Rapid software development November 3, 2008.
Software Engineering 6/e, Chapter 8
Object Oriented System Development with VB .NET
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Introduction 01_intro.ppt
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
CSI315 Web Technology and Applications
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Chapter 2 The process Process, Methods, and Tools
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
CA228 Software Specification1 Software Process A structured set of activities required to develop a software system Specification Design Validation Evolution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Discovering Computers 2009 Chapter 13 Programming Languages and Program Development.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Chapter 2 Software Processes (2/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Software Prototyping Rapid software development to validate requirements.
Traditional Process Models A quick overview. 2 Waterfall Model (Diagram) Communication Project initiation Requirements gathering Planning Estimating Scheduling.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Lecture 3 – Agile Approach
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 System prototyping l Prototyping is the rapid development of a system l In the past, the developed system.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Agile Software Development 1. Topics covered Agile methods Plan-driven and agile development Extreme programming 2.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Rapid Software Development
CS223: Software Engineering
CompSci 280 S Introduction to Software Development
Rapid Software Development
Prototyping in the software process
Software Prototyping.
WXGE6103 Software Engineering Process and Practice
CHAPTER 8: RAPID SOFTWARE DEVELOPMENT
Rapid software development
Software Engineering Unit- 6 Engineered for Tomorrow CSE, MVJCE.
Chapter 2 – Software Processes
Software Development Basic principles.
Chapter 3 – Agile Software Development
Extreme Programming.
Rapid software development
Presentation transcript:

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

Iteration and Incrementation in Traditional Approach

Iterative and Incremental Life-Cycle Model in Traditional Approach l 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.

The XP release cycle

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.

Example: Story card for document downloading

Task cards for document downloading

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

Visual programming with reuse

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 = b = 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 VISUAL BASIC Program code Graphical User Interface

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.

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 COBOLVisual Basic MainframesDesktop Transaction processing Individual users Web-based applications