Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Systems Analysis and Design II
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Chapter 5: Common Support Problems
Acquiring Information Systems and Applications
System Design and Analysis
Fundamentals of Information Systems, Second Edition
Software Life Cycle Model
Acquiring Information Systems and Applications
Acquiring Information Systems and Applications
Data Structures and Programming.  John Edgar2.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
George Armanious 1.1 Systems Life Cycle The cycle involves design and implementation of systems. Includes: Software requirements Hardware requirements.
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.
12 Building and Maintaining Information Systems.
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
Managing the development and purchase of information systems (Part 1)
By Anthony W. Hill & Course Technology1 Common End User Problems.
Introduction to Information Technology Turban, Rainer and Potter John Wiley & Sons, Inc. Copyright 2005.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
End HomeWelcome! The Software Development Process.
Program Development Life Cycle (PDLC)
Chapter 1 Assuming the Role of the Systems Analyst Systems Analysis and Design Kendall & Kendall Sixth Edition.
 Once the system has been installed it will be monitored to check whether it is working correctly. Sometimes problems with a system will not be found.
CHAPTER 13 Acquiring Information Systems and Applications.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
Systems Life Cycle A2 Module Heathcote Ch.38.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
Topics Covered Phase 1: Preliminary investigation Phase 1: Preliminary investigation Phase 2: Feasibility Study Phase 2: Feasibility Study Phase 3: System.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
The Systems Life Cycle AS Computing F451 AS Computing F451.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Module 1 – Lesson 6 Ms. Tracy. Bell Ringer What is the typical useful life for a personal computer?
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Software Engineering Lecture # 1.
KUFA UNIVERSITY Department of Computer Science. Fundamentals of Software Engineering Presented By Neamah Hassan Presented By Neamah Hassan.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
第 11 組 MIS 報告. Phases of any information system ~ recognition of a business problem or opportunity ~ recognition of a business problem or opportunity.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
The information systems lifecycle Far more boring than you ever dreamed possible!
Software Design and Development Development Methodoligies Computing Science.
MANAGEMENT INFORMATION SYSTEM
Information Systems Development
Fundamentals of Information Systems, Sixth Edition
Different Types of Testing
The Software Development Cycle
Chapter 8 – Software Testing
Systems Analysis and Design
Life Cycle Models PPT By :Dr. R. Mall.
Life Cycle Models PPT By :Dr. R. Mall.
The life cycle.
Information Systems Development
Managing the development of information systems (Part 1)
Introduction to Systems Analysis and Design
1.2 System Design Basics.
Software Verification, Validation, and Acceptance Testing
Behind the scenes: software programming
Computer Science The 6 Programming Steps.
Software Development Chapter 1.
The Software Development Cycle
Presentation transcript:

Chapter 5 How are software packages developed?

What are the main steps in software project development? Writing Specifications - Analysis Phase Developing Algorithms - Design Phase Coding Algorithms - Development Phase Testing and Running Programs Maintaining Programs - Implementation and Maintenance Phase

Writing Specifications – Analysis Phase A problem specification is the careful statement of what problem is to be solved.

Specifications must indicate exactly: What issues are to be addressed. How potential solutions will be evaluated

Developing Algorithms – Design Phase Problem must be completely and accurately specified first. Design – careful statement of algorithm and any related material Algorithm – careful statement of appropriate techniques: – Must produce results in a timely manner by using resources that are appropriate and available

Development Phase Coding or programming Algorithms into a form the compute can interpret. Testing and running programs – investigation for bugs (errors) – Specification may have been incomplete or inaccurate. – Algorithm may contain flaws. – Coding process may be incorrect.

Development Phase (cont) Debugging – – Finding the cause of an error – Correcting the error

Implementing and Maintaining Programs After correcting all errors the programs are implemented or placed into operation/production.

Implementation and Maintaining Programs (cont) Maintenance is due to: – Clarification or expansion of problem statement. – User experience results in suggested improvements – Errors not found in testing are corrected. – New or changed circumstances: hardware, software, environment, or user.

Implementation and Maintaining Programs (cont) If drastic changes are needed, a new program may be required and the entire process will start over.

How do developers decide what capabilities to put in their software. A program must meet a user’s real needs. The identification of user’s needs and expectations can be far from straightforward.

How are users needs determined? Interview – Explicitly ask potential users what they need. Questionnaire – When there are many disbursed users, or a general target audience. This is called market analysis. Observation – see what people do at work to determine their needs

How are users needs determined (continued)? Source documents – examine existing sourece data forms and reports. Prototype – if the users don’t know or can’t express their needs, show them some mock- ups to spark their input.

Meeting Changing Needs During Program Development Classical Programming - Depends on previous phase being successfully completed before next phase can start - Phases can take a long time so requirements can change

Meeting Changing Needs During Program Development Extreme Programming (aka Agile Programming) – Is much more rapid because it develops software in small increments and releases new versions of software frequently so users can evaluate it and make recommendations for improvements

Meeting Changing Needs During Program Development Software developers must meet or exceed users requirements or expectations which certainly change.

If development is user-driven, why are there features I don’t use or even want? A few potential causes are: – Needs and interests of people differ. Developers add features to make their product superior, but not all users may appreciate or even use those features.

Why are software packages and operating systems changed or updated so often? Good results: – Competitive advantage in the marketplace. – Computer technology is changing rapidly and software needs to keep pace with change.

Why are software packages and operating systems changed or updated so often? Bad results: – Lack of product stability. – Requires time & expense for purchase installation, and training.

But why should software change at all? During both development and use: – Users’ needs change – Users’ expectations change. – Correction of errors – Computer technology changes. – Market competition changes.

Why does most software contain errors (bugs)? Developer was hurried to meet the due date so compromises were made Users don’t expect a new version to be perfect Testing may not find all errors

What kinds of coding mistakes pass through testing? Syntax or Typographical errors Same assumption or problem understanding by programmer and tester. Tester does not understand all possible circumstances. Each module may work perfectly but not interact correctly with other modules.

What is a programmer? Narrow Context – only translates algorithm into computer code. Broader (and more common) context – engaged in both algorithm development and coding. Another context – does all the steps: specifications, designs, algorithms, coding and testing.

When should I upgrade my software? Not all upgrades may be accurate. Consider upgrading when the upgrade: – Fixes errors – Adds capabilities that you may want or would use – Enhances performance – Does one or more of the above.