Writing “large” software.. How do you eat an Elephant? – One bite at a time.

Slides:



Advertisements
Similar presentations
Submitted by Danny Hearit, Alma College.
Advertisements

Structured ASIC Xcellence Framescript A case study demonstrating the power of Framescript to automate the generation of a Data Book or Catalogue.
SAM 2007 v4 The Student Experience Including SAM Projects, SAM Exams and SAM Training.
Chapter 3: Modularization
Chapter 2: Modularization
For i=1 to 5 pctDisplay.Print “Hello elephant” pctDisplay.Print “Goodbye” Next i
CS001 Introduction to Programming Day 3 Sujana Jyothi
Computer Science and Software Engineering© 2014 Project Lead The Way, Inc. How To Program.
Perl Practical Extraction and Report Language Senior Projects II Jeff Wilson.
20-Jun-15 XP Again. Test-Driven Development Advantages of writing tests first: Clarifies what the methods are supposed to do Methods are testable Methods.
Customizing Word Microsoft Office Word 2007 Illustrated Complete.
Introduction to a Programming Environment
Introduction to Sensors
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
Embedded Programming and Robotics Lesson 2 C Programming Refresher C Programming1.
PYTHON: LESSON 1 Catherine and Annie. WHAT IS PYTHON ANYWAY?  Python is a programming language.  But what’s a programming language?  It’s a language.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Introducing Java.
ESD. S40 Peer Assessment Prof. Dov Dori Dr. Niva Wengrowicz.
An Introduction to Qualitative Data Analysis (QDA) with Atlas.ti Ronald J. Shope Office of Qualitative & Mixed Methods Research Presentation to SSP March.
Nachos Phase 1 Code -Hints and Comments
Introduction to the Arduino
Digit Sums of the factors of a number An Investigation.
Introduction to Arrays. definitions and things to consider… This presentation is designed to give a simple demonstration of array and object visualizations.
BTEC Unit 06 – Lesson 08 Principals of Software Design Mr C Johnston ICT Teacher
Documentation and Comments. What’s a comment? A comment is a simple form of documentation. Documentation is text that you the programmer write to explain.
School of Computer Science & Information Technology G6DICP - Lecture 9 Software Development Techniques.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
Python Programming Using Variables and input. Objectives We’re learning to build functions and to use inputs and outputs. Outcomes Build a function Use.
Designing Complex Software Systems: Introduction CS 6961 – Lecture 0 Nathan Dykman.
How Responsible and Respectful are you in the Computer Lab Created for the Students At Donaldson By Mrs. Jones.
10.11 Data Manipulation 2 Queries. You will need… Specimen 2007 Paper 2 Task C (a PDF) q 43 Read this question carefully before you start The database.
BMTRY 789 Lecture 11: Debugging Readings – Chapter 10 (3 rd Ed) from “The Little SAS Book” Lab Problems – None Homework Due – None Final Project Presentations.
Intro to Programming Web Design ½ Shade Adetoro. Programming Slangs IDE - Integrated Development Environment – the software in which you develop an application.
How Can I Manage My Time Better?. How Do You Spend Your Day??? school work, job, sports, clubs, hanging out with friends, watching tv, eating, sleeping,
Copyright © Curt Hill The IF Revisited If part 4 Style and Testing.
Revised: Aug 1, ECE Embedded System Design Lesson 8 Structured Programming 12/16/2015.
Lesson 6 – Libraries & APIs Libraries & APIs. Objective: We will explore how to take advantage of the huge number of pre-made classes provided with Java.
More on Loop Optimization Data Flow Analysis CS 480.
PROGRAMMING IN PYTHON LETS LEARN SOME CODE TOGETHER!
 Implementing a class ◦ Implementing an interface ◦ Using documented stubs before coding ◦ Writing JUnit tests before coding ◦ Using fields CSSE 220 Object-Oriented.
Cs431-cotter1 Processes and Threads Tanenbaum 2.1, 2.2 Crowley Chapters 3, 5 Stallings Chapter 3, 4 Silberschaz & Galvin 3, 4.
 Tragedy Of The Commons Point Assignment Grade: This assignment is worth 40 points. Each Student is responsible for their own written report. Purpose:
Outline Announcements: –HW I key online this afternoon –HW II due Friday –Sign up to discuss projects Debugging Testging for correctness.
1 UMBC CMSC 104, Section Fall 2002 Functions, Part 1 of 3 Topics Top-down Design The Function Concept Using Predefined Functions Programmer-Defined.
Goals. What is a Goal? It is something that you set when you want something. Example: I want a puppy or I want to learn to play football,
National Diploma Unit 4 Introduction to Software Development Data Structures – Loops and selection.
Programming for Interactivity Professor Bill Tomlinson Tuesday & Wednesday 6:00-7:50pm Fall 2005.
Juggling Your Priorities. Use your ABCs: Make a list of what has to be done today (A), what needs to be done this week (B), and what needs to be done.
1 Lecture 7 Introduction to Shell Scripts COP 3353 Introduction to UNIX.
Managing Time  How much time do you have?  How are you going to use it?  What are your goals?  What are your priorities?  Do you have a schedule?
Agenda Warmup Lesson 4.5 (Program Design & Analysis)
Introduction to programming
BSA 376 Possible Is Everything/tutorialrank.com
BSA 376 Education for Service/tutorialrank.com
Maintaining Documents and Macros
Lesson Objectives Aims You should be able to:
Chapter 3 – A Guided Tour Through Arena
Functions In Matlab.
Introduction to TouchDevelop
Agenda Warmup Lesson 4.5 (Program Design & Analysis)
Python 19 Mr. Husch.
Hints on Chapter 5.
PYTHON LESSON 5 Mr. Kalmes.
Computational Thinking
Study Tips and Strategies
Python 19 Mr. Husch.
Time Management Strategies and Tools
It’s Tax Time Again A Whole Brain® Perspective.
Presentation transcript:

Writing “large” software.

How do you eat an Elephant? – One bite at a time

Where to start. When looking at a large programming assignment – Where to start? – First read the whole assignment.

Where to Start (2) List all the program requirements What are the tasks of the project? Tasks may be the requirements or there may be several tasks needed to complete each requirement – Break down the requirements into very small manageable pieces/tasks.

Where to Start (3) Now think about the framework of project. – Think about the tasks/pieces What classes do you need? What fields (variables) and methods will you need? – Write them down (on paper or in an IDE) the classes and methods for the class. (If UML helps, use it) – DO NOT write any code for the methods, just a description of what it does. Bonus, you have comments. Some pieces/tasks are going to just be sections of code – comment your project with each task in the spot you think it belongs. » Again, bonus, more comments in your program.

Writing code. Now you have an outline of the program. – Your program should even compile at this point. And run, but it will do NOTHING! – Because you only have a outline/ skeleton structure. – Stubs are your friend – You have a list of all the tasks – Figure out an ordering for the tasks. I need task X working, before task Y, etc…

Writing code (2) Work on the first task – And only the first task, while ignoring the rest of tasks. – Get it working. – Test it, well! – Once it works, take a moment or two and relax. Congratulate yourself. You have a working program with the first task done. Now you can start the next task – Repeat the process above with new task.

Advantages You should always have a working program. – Not all the requirements of course. Saves time. – The project can get done in a lot less time. – You won’t forget some requirement of the project. You are more efficient in way you write code. – You are working on task, not the whole project.

In Class Example

Q A &