“Planning” or “why use objects?” ACO101: Introduction to Computer Science.

Slides:



Advertisements
Similar presentations
September 2008Mike Woodard Rational Unified Process Key Concepts Mike Woodard.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
The LC-3 – Chapter 6 COMP 2620 Dr. James Money COMP
Ch 3: Unified Process CSCI 4320: Software Engineering.
Chapter 2: Approaches to System Development
Object-Oriented Software Development CS 3331 Fall 2009.
Unit 2. Software Lifecycle
Chapter 2 Approaches to System Development
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
Object-Oriented Analysis and Design
SYSC System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
No Silver Bullet Essence and Accidents of Software Engineering By Frederick P. Brooks Frederick P. Brooks Presentation by Yan Qi
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Unified Modeling (Part I) Overview of UML & Modeling
1 SWE Introduction to Software Engineering Lecture 5.
Chapter 16 Programming and Languages: Telling the Computer What to Do.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
BPC.1 Basic Programming Concepts
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Chapter 2: Approaches to System Development
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Chapter 1: The Object-Oriented Systems Development Environment Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich,
Introduction to Programming. What is a Program  Set of Instructions that tells the computer what to Do.  Driving force behind the computer  Without.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
ACO 101 Instantiating Graphic Objects. Review: 4 Phases to the Development Lifecycle Inception (Analysis & Design) – Business Requirements Business Analyst.
Chapter 7 Applying UML and Patterns Craig Larman
CIS 210 Systems Analysis and Development Week 1 Part I The Systems Development Environment,
copyright 2008 Judith A Copeland - UML - Unified Modeling Language By Judi Copeland.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
2 Systems Analysis and Design in a Changing World, Fifth Edition.
1 Introduction to UML. 2 What is UML? UML is an acronym for Unified Modeling Language. Unified –Combines the best from existing object- oriented software.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
System Development 1 u Systems development life cycle (SDLC) l Provides overall framework for managing system development process u Two main approaches.
The Rational Unified Process 1 EECS810: Software Engineering.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
2 Systems Analysis and Design in a Changing World, Fourth Edition.
The Systems Development Environment Systems Analysis and Design II.
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
2 Systems Analysis and Design in a Changing World, Fourth Edition.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
TK2023 Object-Oriented Software Engineering
Algorithms and Problem Solving
The Basics of OOP Design
Business System Development
UML: Unified modeling language
Introduction to Software Engineering
Rational Worldwide Software Symposium
Why Object-oriented Programming?
Rational Worldwide Software Symposium
Flowcharting & Algorithms
Algorithms and Problem Solving
Systems development life cycle (SDLC)
Rational Worldwide Software Symposium
Presentation transcript:

“Planning” or “why use objects?” ACO101: Introduction to Computer Science

The Realities of Software 1.Software is complex 2.Programmers have to make it look easy 3.Useful, real- world software has to: 1.Handle Change 2.Handle Complexity

About the future of software development... "There is no single development, in either technology or in management technique, that by itself promises even one order of magnitude improvement in productivity, in reliability, in simplicity.“ "No Silver Bullet" by Frederick Brooks. Computer, 1987

Quality software is difficult "Programming is fun, but developing quality software is hard. In between the nice ideas, the requirements or the ‘vision’, and a working software product, there is much more than programming.” Applied UML and Patterns, Forward by Philipe Kruchten (IBM Rational)]

Miller’s Law  At any one time, a person can concentrate on at most 7  2 chunks (units of information)  To handle larger amounts of information, use stepwise refinement  Concentrate on the aspects that are currently the most important  Postpone aspects that are currently less critical  Every aspect is eventually handled, but in order of current importance  This is an incremental process that is implemented in iterations.

The Programming Developmental Process The programming developmental process is initialized by a project. – The project has a lifecycle. The lifecycle organizes the tasks into phases and iterations – there are 4 phases – Inception phase (hey I want to do something) – Elaboration phase (this is what I want to build to do the thing I want to do) – Construction phase (build it) – Transition phase (put it out there so that someone can use it)

4 Phases – Development Lifecycle Inception (Analysis & Design) – Business Requirements Business Analyst Game designers – Technical Specifications Programmers Elaboration (Design) – Functional specification document – Project Manager Construction (Implementation) – Programmers – Animators/Modelers Transition (Testing and Deployment) – Programmers – Testers – Project Manager

What is programming? Programming is the art of making a computer do what you want it to do – Computers are stupid; they do exactly what you tell them to do and the operations are extremely primitive. A computer program is simply a set of instructions to tell a computer how to perform a particular task. – It's like a recipe: a set of instructions to tell a cook how to make a particular dish. It describes the ingredients (the data) and the sequence of steps (the process) needed to convert the ingredients into the cake or whatever.

Q: How do I make a recipe for the computer? A: Break it down – abstract the problem. (This is the Inception AKA Analysis and Design phase)

Ways to break it down (abstract the problem domain) Procedurally = algorithms – Things happen when subprograms are called and statements are executed Object-oriented = classes and objects – Things happen when objects are operated on Logic = goals – Things happen based on what need to happen next to attain a goal Rule based = if then rules – Things happen when events cause new rules to fire Constraint = invariant relationships – Things happening is dependent on what you can’t do.

Object Oriented Abstraction classes and objects Things happen when objects are operated on