CSI 101 Elements of Computing Spring 2009 Lecture #2 Development Life Cycle of a Computer Application Monday January 26th, 2009.

Slides:



Advertisements
Similar presentations
P5, M1, D1.
Advertisements

Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Lesson 6 Software and Hardware Interaction
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Introduction To System Analysis and Design
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
System Design and Analysis
COMP205 Comparative Programming Languages Part 1: Introduction to programming languages Lecture 3: Managing and reducing complexity, program processing.
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
Chapter 9 Using Data Flow Diagrams
Program Development and Programming Languages
COBOL for the 21 st Century Stern, Stern, Ley Chapter 1 INTRODUCTION TO STRUCTURED PROGRAM DESIGN IN COBOL.
Chapter 1 Program Design
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
1414 CHAPTER PROGRAMMING AND LANGUAGES. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved Competencies Describe the six steps of programming.
Design, Implementation and Maintenance
System Implementation
Your Interactive Guide to the Digital World Discovering Computers 2012.
Python quick start guide
Introduction to Systems Analysis and Design Trisha Cummings.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
Dr. Ken Hoganson, © August 2014 Programming in R STAT8030 Programming in R COURSE NOTES 1: Hoganson Programming Languages.
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
Structured COBOL Programming, Stern & Stern, 9th edition
PHASE 4 SYSTEMS IMPLEMENTATION Application Development SYSTEMS ANALYSIS & DESIGN.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
CC111 Lec#5: Program Development 1 Program Development and Programming Languages Lecture 4 Reference :Understanding Computers Chapter 13.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
COMPUTER PROGRAMMING Source: Computing Concepts (the I-series) by Haag, Cummings, and Rhea, McGraw-Hill/Irwin, 2002.
Understand Application Lifecycle Management
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Twelfth Edition.
Program Development Life Cycle (PDLC)
Testing E001 Access to Computing: Programming. 2 Introduction This presentation is designed to show you the importance of testing, and how it is used.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
CSE 219 Computer Science III Program Design Principles.
1 Chapter 13 Understanding Computers, 11 th Edition 13 Program Development and Programming Languages TODAY AND TOMORROW 11 th Edition CHAPTER.
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
SE: CHAPTER 7 Writing The Program
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
Lecture 1 Introduction Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Intermediate 2 Computing Unit 2 - Software Development.
Systems Design.  Application Design  User Interface Design  Database Design.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Alexandria University Faculty of Science Computer Science Department Introduction to Programming C++
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
Introduction to System Analysis and Design MADE BY: SIR NASEEM AHMED KHAN DOW VOCATIONAL & TECHNICAL TRAINING CENTRE.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Development Environment
Chapter 1 The Systems Development Environment
Applied Software Implementation & Testing
Designing and Debugging Batch and Interactive COBOL Programs
Lecture 09:Software Testing
Introduction to Systems Analysis and Design
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

CSI 101 Elements of Computing Spring 2009 Lecture #2 Development Life Cycle of a Computer Application Monday January 26th, 2009

What is a Life Cycle? Process from idea to execution It's all the steps required to create a computer program from a general problem statement

Why a Life Cycle? Systematic approach Everybody can follow Repeatable success Checkpoints ● Checkpoints are steps along the way, prior to completion, where you can stop and check your progress ● Allows you to know if you are on schedule or behind ● Can check for major errors that would be time- consuming to fix later

Development Life Cycle Requirements Gathering Design High level Low level Create Data Dictionary Program Functions Interfaces Testing Documentation

Step 1 – Requirements Gathering Most important step Why? ● The better you understand the task, the better your focus and the better product you create ● Eliminates trial and error of constantly requiring user feedback Lists the functionality the user wants What data changes and how Diagrams how user wants to see it Interface – how user interacts with program

Step 2 - Design Many large companies have two levels High level design is for interfaces and libraries How outside elements are needed or provided by each component Identifies functional boundaries Very general Low level design is for key functionality Outline process performed by each component

Step 3 – Data Dictionary Create reusable body of data elements Provides structure and template to other component parts of a large application Can even be reused in other programs Can be included in object libraries Object libraries are repositories of reusable data structures Reinforces customer view of data while planning how machine will implement it

Evolution of Data Dictionary In procedural languages, it was optional Mostly used by computers with frequent reviews (like IBM) or database applications Not considered necessary, as functions were most important Object-Oriented Programming changed all that Now transactions and transformation of data focus We'll discuss Object-Oriented Programming later in this course

Importance of Data Dictionary Wasn't crucial until Object-Oriented Programming Object-Oriented Programming focuses on taking input data and creating output data Hides complex functionality inside enclosed “modules” Programs become series of functions that use these “modules” Most modern programs are written in Object-Oriented Programming languages Allows identification of crucial objects that might be used throughout program

Step 4 - Program Not a patchwork anymore Systematic approach Inside out Take care of internal functions Expand outwards Look for recursion and reuse opportunities Internal subroutine blocks Take advantage of DLLs

So... What's a DLL? Dynamic Link Library 2 stages to decomposing code to machine level Compilation : translating programming language into machine-understandable code Linking : putting together machine-language code pieces into a single executable program Dynamic link libraries contain precompiled pieces of code that can be linked with program

Advantages of DLLs Precompiled pieces contain templates or parameters, so the precompiled code can be adjusted This means code can be changed without having to recompile Can make conditional changes that are based on data defined or calculated when the program runs Hence name “dynamic” - changeable

Step 5 - Testing Here's where companies got crazy Thought the more you tested, the better the result “Work the bugs out” Can never find every problem Why not? Can never anticipate every possible move The fallacy of “idiot proofing”

Auto-Builds Code builds from automated computerized design packages Thought – instead of spending time removing errors, why not prevent inserting them? If requirements gathering was good, errors inserted by humans Worked great, but not widely used Programmers still like control Did require tweaking

Test levels Unit test – test individual component Function test – test individual user function as it processes System Test – test full package as it interacts with components Regression Test – ensure upgrades don't harm existing applications This is the step Microsoft forgets Useability Test – ease of use Reliability Test – stability Sometimes called Stress Test

Unit Test Usually performed by programmer Test each line of code Often done in a Debug environment of the Development environment package where the code is written Involves stepping through the code and checking important data values Test all condition results and loop paths We’ll discuss conditions and loops when we get into Visual Basic programming

Function Test Often done by Project Leader Tests an entire path based upon different initial data values Ensures function returns expected values without failing Often tests expectable “incorrect” data as well to ensure program won’t fail

System Test Usually handled by a separate team Create a test environment that simulates customer’s environment Might require multiple tests to simulate multiple environments Specific tests are performed, based upon environment and customer need Tests are created beforehand, while program is being coded

Regression Test Frequently done along with System Test Uses applications obtained from the customer Ensures new version will work with additional applications created under the old one

Useability Test Performed by customers Often call “Beta Testing” A small group of customers are shown Users Guide and allowed to try new program They determine if the program is easy to understand and use

Reliability Test Also called “Stress Testing” Often done by System Test team Designed to see how program responds to busy system Run lots of applications at same time as program Competing for processor time Rarely done anymore Processor power is greater, so not much of a concern anymore

Documentation Not truly a “step” Best to document as you go along What to document? Anything that someone else would need to know to modify the program Data structures and what they represent Complex formulas or functions Changes from earlier versions

Library Documentation Used for descriptions of DLL packages Describes function Describes expected input and form Describes form of output Describes what and how to customize Also used for Class Libraries in Object- Oriented Programming languages

Design Documentation Used to maintain accurate overview of project Original created after Requirements Used to distribute work among team Ensures completeness Update if design changes or additions occur “Living document”

Checkpoint Documentation Created as part of project schedule Shows functions, data, or components complete at specific time Allows for prioritization Helps see slowdowns before they cause major project delays

User Documentation Documents provided to user Users Guide – how to use tool Detailed, often with screen shots Step by step instructions Covers common functions Implementation Guide – how to customize Developers Guide – libraries and interfaces for expanding

WIKI Documentation Many documents are now links to Internet files Updateable by any customer Called “wiki”s or “living documents” Anyone with permission can provide an update Often checked by someone who “owns” the document