1. Systems and Software Development

Slides:



Advertisements
Similar presentations
Introduction to C Programming
Advertisements

STRING AN EXAMPLE OF REFERENCE DATA TYPE. 2 Primitive Data Types  The eight Java primitive data types are:  byte  short  int  long  float  double.
Procedural programming in Java
Introduction to Computing Concepts Note Set 7. Overview Variables Data Types Basic Arithmetic Expressions ▫ Arithmetic.
Chapter 3: Modularization
Chapter 2: Modularization
Chapter 7 User-Defined Methods. Chapter Objectives  Understand how methods are used in Java programming  Learn about standard (predefined) methods and.
Chapter 1. The Phases of Software Development. Data Structure 2 Chapter outline  Objectives  Use Javadoc to write a method’s complete specification.
Programming Logic and Design Fourth Edition, Introductory
Algorithms Today we will look at: what we mean by efficiency in programs why efficiency matters what causes programs to be inefficient? will one algorithm.
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Microprocessors Introduction to ia64 Architecture Jan 31st, 2002 General Principles.
Introduction to a Programming Environment
Representation and Conversion of Numeric Types 4 We have seen multiple data types that C provides for numbers: int and double 4 What differences are there.
Problem with Software Requirements are complex The client does not know the functional requirements in advance Requirements may be changing Technology.
IB Computer Science: 1.6 Software Design Created by Kevin Scott.
Introduction to High-Level Language Programming
Review C++ exception handling mechanism Try-throw-catch block How does it work What is exception specification? What if a exception is not caught?
Simple Program Design Third Edition A Step-by-Step Approach
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
The Program Development Cycle
Programming Lifecycle
Chapter 12 Recursion, Complexity, and Searching and Sorting
1 © 2002, Cisco Systems, Inc. All rights reserved. Arrays Chapter 7.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
SE: CHAPTER 7 Writing The Program
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
I Power Higher Computing Software Development The Software Development Process.
Top-Down Design and Modular Development. The process of developing methods for objects is mostly a process of developing algorithms; each method is an.
Introduction to Software Development. Systems Life Cycle Analysis  Collect and examine data  Analyze current system and data flow Design  Plan your.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
Procedural programming in Java Methods, parameters and return values.
1 2. Program Construction in Java. 2.9 Sorting 3 The need Soritng into categories is relatively easy (if, else if, switch); here we consider sorting.
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.
Starting Out with C++ Early Objects ~~ 7 th Edition by Tony Gaddis, Judy Walters, Godfrey Muganda Modified for CMPS 1044 Midwestern State University 6-1.
CSCI 1226 FALL 2015 MIDTERM #1 REVIEWS.  Types of computers:  Personal computers  Embedded systems  Servers  Hardware:  I/O devices: mice, keyboards,
The Hashemite University Computer Engineering Department
FILE ORGANIZATION.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CPS120: Introduction to Computer Science Sorting.
CIS 338: VB Variables Dr. Ralph D. Westfall April, 2011.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Design and Development Development Methodoligies Computing Science.
windows
Alice terms Chapter 2. camelCase CamelCase is the practice of writing compound names without spaces, but capitalizing the first letter of each name that.
1 5. Abstract Data Structures & Algorithms 5.6 Algorithm Evaluation.
Chapter 7: Designing solutions to problems OCR Computing for A Level © Hodder Education 2009.
Dept of Computer Science University of Maryland College Park
Error Analysis Logic Errors.
Agenda Warmup Lesson 4.5 (Program Design & Analysis)
Advanced Computer Systems
Programming Logic and Design Seventh Edition
The Data Types and Data Structures
Chapter 7 Part 1 Edited by JJ Shepherd
William Stallings Computer Organization and Architecture
Systems Analysis and Design
Software Development Life Cycle
Chapter Topics 2.1 Designing a Program 2.2 Output, Input, and Variables 2.3 Variable Assignment and Calculations 2.4 Variable Declarations and Data Types.
Maintaining software solutions
Some Basics for Problem Analysis and Solutions
User Defined Functions
Processor Organization and Architecture
Data Types & File Size Calculations
Agenda Warmup Lesson 4.5 (Program Design & Analysis)
Focus of the Course Object-Oriented Software Development
CS2013 Lecture 7 John Hurley Cal State LA.
Chapter 6 Modular Programming chap6.
Presentation transcript:

1. Systems and Software Development 1.1 The Systems Life Cycle

1.1.6 Design: Approaches

Top-down or bottom-up? Modular decomposition is a top-down approach: consider the whole problem and break it into parts. Bottom-up approaches are not common: take many small modules and build them into a larger product (see what evolves...).

Advantages of modularity Debugging the program is easier – errors can usually be isolated to a particular module. Time saving – each module is worked on by a team, who can move to another module if they finish early or that team is struggling.

Advantages of modularity Easier to understand – managers can get an overview without having to know the details. More flexible – modules may be dropped if not working or old ones picked “off the shelf”. Specialisation – programmers become experts on certain modules.

How modular? Eventually modules could equate to classes or even methods. Eventually designers write pseudocode (informal provisional code) for each module.

Prototyping A prototype is a simplified version of a proposed solution for presentation to the end- user during the analysis or design phase. Not fully functional but allows for user feedback. Not necessarily using the same software e.g. could be a presentation.

Advantages of prototyping Helps end-user be more specific about what they actually need. Different versions of the prototype allow the designer and end-user to express a preference. Allows problems to be caught and changed earlier (i.e. cheaper and safer).

Solution efficiency Designs are chosen and prototypes tested not just for whether they work but also for efficiency: speed, reliability, memory use, processor use.

Efficiency: memory If records have fixed-length fields, it is possible to calculate how much space the data file needs. In Java, bytes use 1 byte (!), chars use 2, ints use 4, doubles use 8.

Efficiency: memory If the whole file is loaded into IAS, how much memory will be required? Can the whole project be stored on a memory stick? How long would it take to download? What are the ideal length for String variables (too short - truncates values, too long - overflows memory)?

Efficiency: processor Is this less important with today’s processors? Sorting is very processor-intensive. Look for efficient algorithm designs e.g. quicksort (HL) over bubble sort, if using bubble sort, use a flag to indicate no more passes are needed when the data are sorted.