Developing Software MGMT 661 - Summer 2012 Night #8.

Slides:



Advertisements
Similar presentations
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Advertisements

Software Process Models
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Software Engineering 1. Software development – the grand view 2. Requirements engineering.
Chapter 2 - Problem Solving
Software Life Cycles ECE 417/617: Elements of Software Engineering
Chapter 2- Visual Basic Schneider
CS CS 5150 Software Engineering Lecture 5 by Stephen Purpura Matching Process to Risk.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Quality is about testing early and testing often Joe Apuzzo, Ngozi Nwana, Sweety Varghese Student/Faculty Research Day CSIS Pace University May 6th, 2005.
Systems Analysis and Design in a Changing World, 6th Edition
Problem with Software Requirements are complex The client does not know the functional requirements in advance Requirements may be changing Technology.
NJIT Inception is not the Requirements Phase Chapter 4 Applying UML and Patterns Craig Larman.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Before we start construction, let’s lay the groundwork.
CSCI 101 Introduction to Software Development and Design.
Applying Portfolio Management Principles to Information Technology Projects.
Extreme Programming Adam Cogan Database Architect ssw.com.au.
CPTE 209 Software Engineering Summary and Review.
1 CMPT 275 Software Engineering Software life cycle.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Software Project Failure Software Project Failure Night Two, Part One CSCI 521 Software Project Management.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Acquiring Information Systems and Applications
Certification and Accreditation CS Phase-1: Definition Atif Sultanuddin Raja Chawat Raja Chawat.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
University of Virginia Software Development Processes (CS340 John Knight 2005) 1 Software Development Processes.
CSCI 521 Night 3. 1.What does this talk have to do with Software Project Management? 2.What was your favorite example he used to illustrate a point, and.
Acquiring Information Systems and Applications
Requirements Gathering How do we find out what we are supposed to be building?
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
CS 111 – Nov. 22 Chapter 7 Software engineering Systems analysis Commitment –Please read Section 7.4 (only pp ), Sections –Homework #2.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
CSCI 521 Final Exam Review. Why Establish a Standard Process? It is nearly impossible to have a high quality product without a high quality process. Standard.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 3, Lecture 1.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Domain Processes Know your customer.. Last Class - "Life Cycles" the process we will use to create the software product This Class - "Domain Processes"
Stand Up Comedy Project/Product Management
Software Development Life Cycle (SDLC)
The Hashemite University Computer Engineering Department
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Requirements Gathering
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
Life Cycles. Waterfall Advantages? Disadvantages? Well suited for what type of projects? Requirements Specification Design Coding Unit Testing Installation.
Chapter 1 Software Development Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2008.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Final Review Systems Analysis and Design in a Changing World, 4th Edition 1 Final Review u Chapters 1-6, 8-10, 13, 14, 15 u Multiple choice, short answer,
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Information Systems Development
Software Development.
What are the common reasons software development projects fail?
CSE 403 Software Engineering
Information Systems Development
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
SOFTWARE DEVELOPMENT LIFE CYCLE
Presentation transcript:

Developing Software MGMT Summer 2012 Night #8

Outline  Types of Software  Critical Success Factors  Phases of Development  Writing Software

Context for Tonight  29% of IT project finish on-time, within budget, and meeting all requirements  30% to 40% projects are significantly late  very many projects don't fulfill all requirements textbook section 14.1  WHY?

Types of Software  System Software  example: operating system  Middleware  example: network interface software  Embedded Software  example: your car's engine  Application Software  ex: Microsoft Word, a CRM, cellphone apps, etc.

 new software product  component integration  re-engineered product  heroic maintenance Project Types

 Stable Requirements  Accurate Estimations  Attention to Risks  Teamwork and Unified Vision Critical Success Factors for Software Projects Source: lots of reading by Dannelly

Selecting Critical Success Factors textbook Figure 14-3

Goal Statement  Purpose = Managing Expectations  Desirable Properties:  States both why and what  Measurable  Short  Doable  Communicated

Life Cycle Models  Waterfall  Incremental

Waterfall Model  older style  still used on VERY large projects  works well only when requirements are known at the beginning

Spiral Model  well suited to ill- defined problems and new domains  major drawback is little requirements stability

Project Initiation  How to decide "go" v "no go"?  standard issues such as ROI, match to corporate strategy, etc  chance of success  Buy It or Build It?  frequently cheaper to buy than to build  use a scoring model to decide which to buy see Table 14-2 in textbook

Analysis Problems  Determining what is critical  Avoiding mission creep  Conflicting views  Ease of omitting obvious info  Identifying the experts and getting authority to talk to people  Incomplete understanding of the problem on the part of the user/customer  Being complete, without being constraining  Sticking with “what” and not “how”

How Programming Works Development Environment Algorithm Source Code Program Analyze the Problem and Design a Solution Programming Software translates the Source Code into Machine Code (1s and 0s)

Example Program Prompt the user Get First number Print total / count Get Next number Is it -1 add one to count add number to total Yes No Information to Track: 1.number that was input 2.count of numbers 3.total of all numbers The Problem: Read a list of numbers then print the average. The list ends with -1.

main () { integer: value, count, sum; print "Enter your numbers"; input value; while (value <> -1) sum = sum + value; count = count + 1; input value; end while; print "Average = ", sum/count; } Example: The Source Code Prompt User Get 1 st number Loop to add up the sum and count the number of inputs Print the average Ask the OS for memory

Testing, testing, …  Finding errors  User Interface Evaluation  Recovery Testing  Security Testing  Stress Testing  Performance Testing  Beta Testing

How much testing  What level of Quality should we shoot for? Quality $ Cost of Software Quality Assurance Cost of Failure Cost of Production and Operation Optimal Quality Level

Summary  Software development is part Art and part Engineering  A software project that tries to please everyone is doomed to please no one  Accurate Analysis and Managing Expectations are as important as technical ability  Buying an off-the-shelf software product is almost always cheaper than building your own custom software  Software has bugs because bugless software is too expensive