Preparation for coding

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Waterfall Model H.M.Shahzad MS(CS) from COMSATS Institute of Information Technology, Lahore.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Chapter 3 Software Processes.
Upstream Prerequisites
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Engineering General architecture. Architectural components:  Program organisation overview Major building blocks in a system Definition of each.
Software Development Process and Management (or how to be officious and unpopular)
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Construction Planning and Prerequisite
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
1 - 1 Systems Analysis and Design, Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
Software Development Life Cycle (SDLC)
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
CS223: Software Engineering Lecture 4: Software Development Models.
Chapter-3 Measure Twice, Cut Once: Upstream Prerequisites.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Code Simplicity: Software Design In Open Source Projects Max Kanat-Alexander
What is a Functional Spec?  Defines what the functionality will be NOT how it will be implemented  Describes features of the software product product's.
Software Development Overview
Software Construction
Preparation for coding
Managing the Project Lifecycle
School of Business Administration
The Waterfall Methodology
Approaches to ---Testing Software
Requirements Analysis Scenes
The Software Development Cycle
Recall The Team Skills Analyzing the Problem
Software Processes (a)
Iterative Waterfall Model
Software Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
IT Systems Analysis & Design
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Quality Engineering
Requirements and the Software Lifecycle
VENDORS, CONSULTANTS AND USERS
Why Technology Startups Should Not Ignore Software Testing.
Strategic Planning Strategic Cancer Initiatives
Software life cycle models
Process Models Coming up: Prescriptive Models.
Software Testing and Maintenance Maintenance and Evolution Overview
Advice from Admissions Representatives
Inspection and Review The main objective of an Inspection or a Review is to detect defects. (Not for Giving Alternative Solutions) This activity and procedure.
Baisc Of Software Testing
Software Construction
Software Life Cycle Models.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
SNS College of Engineering Coimbatore
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Development Overview
Presentation transcript:

Preparation for coding SCMP 391.00 Special Topic: Software Development Spring 2018 James Skon

Why Prepare? Measure Twice, Cut Once: Without preparation, mistakes are bound to be made. Small mistakes early can make big problems later.

Risk Reduction The overarching goal of preparation is risk reduction… A good project planner clears major risks out of the way as early as possible so that the bulk of the project can proceed as smoothly as possible By far the most common project risks in software development are poor requirements and poor project planning, thus preparation tends to focus on improving requirements and project plans.

Why a lack of preparation? Lack skills: Project Planning Requirement analysis Architectural Design Impatience to start coding Pressure to produce something tangible. WISCA syndrome: “Why Isn't Sam Coding Anything? “

What history tells us Researchers … have found that purging an error by the beginning of construction allows rework to be done 10 to 100 times less expensively than when it's done in the last part of the process, during system test or after release

Finding Defects Average Cost of Fixing Defects Based on When They're Introduced and Detected Time Introduced Requirements Architecture Construction System Test Post- Release 1 3 5-10 10 10-100 15 25-100 10-25

Cost of Fixing Defects

Matching methodology with project type Different kinds of project call for different strategies Good practices for three common kinds of software.

Sequential Approach

Iterative approach Sometimes it is not possible to know complete prerequisites at the start. Iterative approaches uses a cycle: plan, specify, implement, test, plan … The idea is to learn as you goes, finding and fixing problems early rather then later. Rework is still required, but in done sooner. Table

Iterative approach

No true waterfall Activities will overlap to some degree

Activity overlap varies

Choosing Between Iterative and Sequential Approaches Type of project, available resources, risks, manpower, external requirements impact the choice.

Sequential indicators The requirements are fairly stable. The design is straightforward and fairly well understood. The development team is familiar with the applications area. The project contains little risk. Long-term predictability is important. The cost of changing requirements, design, and code downstream is likely to be high.

Iterative indicators The requirements are not well understood or you expect them to be unstable for other reasons. The design is complex, challenging, or both. The development team is unfamiliar with the applications area. The project contains a lot of risk. Long-term predictability is not important. The cost of changing requirements, design, and code downstream is likely to be low.

Problem-Definition The problem definition lays the foundation for the rest of the programming process

Problem-Definition A perfect, error free program that isn’t what we needed is useless. We need to make sure we are solving the right problem!

Requirements Prerequisite Requirements  what software system is supposed to do. The first step toward a useful solution. Provides the detail of what a solution should look like. Without them we will miss the mark.

Stable Requirements Ideally requirements wouldn’t change after defined. Studies at IBM and other companies have found that the average project experiences about a 25 percent change in requirements during development. Thus models should minimize the impact of change.

Changing Requirements – minimize impact Assess the quality of your requirements Make sure everyone knows the cost of requirements changes Set up a change-control procedure Use development approaches that accommodate changes Dump the project Keep your eye on the business case for the project

Checklist: Requirements Review your requirements.

Software architecture high-level part of software design the frame that holds the more detailed parts of the design Good architecture makes construction easy. Bad architecture makes construction almost impossible

Typical Architectural Components - Program Organization

Typical Architectural Components - Major Classes

Typical Architectural Components - Data Design

Typical Architectural Components - Business Rules Validation/Eligibility rule example IF The claim has not been submitted within 30 days of the incident THEN Do not settle the claim ELSE Send to manual resolution queue

Typical Architectural Components - User Interface Design

Typical Architectural Components Resource Management Security Performance Scalability Interoperability Internationalization/Localization Input/Output Fault Tolerance

Typical Architectural Components Architectural Feasibility Overengineering Buy-vs.-Build Decisions Reuse Decisions Change Strategy General Architectural Quality

Checklist: Architecture Code Complete 3.5