Fundamentals of Software Development 1Slide 1 Outline Designing a computational community for WordGamesDesigning a computational community for WordGames.

Slides:



Advertisements
Similar presentations
AP Computer Science A – Healdsburg High School 1 Unit 3 - Classes and Objects - Example.
Advertisements

Fundamentals of Software Development 1Slide 1 Recap: Constructors, the new operator and the this object Three ideas:Three ideas: –How to write a constructor.
PIIT Computer Science Summer Camp - Alice July 10, 2012 Brenda Parker Computer Science Department MTSU.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
ABNIAC The following slide presentation is to acquaint the student with ABNIAC. The version used for presentation is the Java version, which can be found.
Traditional Approach to Design
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Fundamentals of Software Development 1Slide 1 One class can describe many different instancesOne class can describe many different instances –Two NameDroppers,
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Conversion of the Computer Aided Instruction Tools to use Database Connectivity International Conference on Computer Science and its Applications 2004.
Fundamentals of Software Development 1Slide 1 Activity: Organizing a Computational Community With your partner and another pair:With your partner and another.
Chapter 2: IS Building Blocks Objectives
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Chapter 1 Program Design
Fundamentals of Software Development 1Slide 1 Summary of one kind of computation: Instruction Followers Step by step instructions that produce a desired.
Data: A collection of raw facts and figures. It may consist of numbers, characters, symbols or pictures. Information: Organized and processed form of.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Formal Specification.
Graphical User Interfaces A Quick Outlook. Interface Many methods to create and “interface” with the user 2 most common interface methods: – Console –
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
Team of engineers who build a system need:  An abstraction of the system  An unambiguous communication medium  A way to describe the subsystems ◦ Inputs.
Introduction to Computers and the Internet. What is a computer? An "intelligent" machine  You tell a person to do a job and the person follows your “instruction”
Introducing Java.
Object Oriented Software Development
Bina Nusantara 2 C H A P T E R INFORMATION SYSTEM BUILDING BLOCKS.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Fundamentals of Software Development 1Slide 1 Recap: Key ideas in WordGames Defining a classDefining a class Extending a class versus implementing an interfaceExtending.
UNIT - 1Topic - 1. An electronic device, operating under the control of instructions stored in its own memory unit, that can accept data (input), manipulate.
Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition Irwin/McGraw-Hill.
Two Approaches to System Development
Chapters 7, 8, & 9 Quiz 3 Review 1. 2 Algorithms Algorithm A set of unambiguous instructions for solving a problem or subproblem in a finite amount of.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
Fundamentals of Software Development 1Slide 1 Today’s summary Attitudes toward learning:Attitudes toward learning: –Working in groups –Learning by doing.
REVIEW On Friday we explored Client-Server Applications with Sockets. Servers must create a ServerSocket object on a specific Port #. They then can wait.
Chapter 9 Moving to Design
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
1-1 System Development Process System development process – a set of activities, methods, best practices, deliverables, and automated tools that stakeholders.
Assignment Paired Prototyping Some content based on GDC 2006, Gingold and Hecker Brent M. Dingle 2014 Game Design and Development Program Mathematics,
An application architecture specifies the technologies to be used to implement one or more (and possibly all) information systems in terms of DATA, PROCESS,
ITCS 6162 Project Action Rules Implementation
Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition Irwin/McGraw-Hill.
Use Cases Use Cases are employed to describe the functionality or behavior of a system. Each use case describes a different capability that the system.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Introduction to Computing Systems CT101 – Computing Systems.
CS221 Algorithm Basics. What is an algorithm? An algorithm is a list of instructions that transform input information into a desired output. Each instruction.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 2 Information System Building Blocks.
2-1 A Federation of Information Systems. 2-2 Information System Applications.
Computer Architecture 2 nd year (computer and Information Sc.)
Making a great Project 2 OCR 1994/2360. Implementation This is about how you make your system. It should have enough detail for a competent user to be.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
1 3 Computing System Fundamentals 3.2 Computer Architecture.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
Software Engineering Algorithms, Compilers, & Lifecycle.
Recap: Key ideas in WordGames
Animate objects and threads
Recap: The design of Word Games
The Components of Information Systems
Algorithms and Problem Solving
Topic: Programming Languages and their Evolution + Intro to Scratch
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
The Components of Information Systems
Introduction to Computer Programming
Unit I Flash Cards Start.
Algorithms and Problem Solving
Information System Building Blocks
 Is a machine that is able to take information (input), do some work on (process), and to make new information (output) COMPUTER.
Presentation transcript:

Fundamentals of Software Development 1Slide 1 Outline Designing a computational community for WordGamesDesigning a computational community for WordGames –What are Word Games? –Communities: Transformers and ConnectionsTransformers and Connections User and the SystemUser and the System –Building a Transformer High level designHigh level design Low level designLow level design –Rules and Methods –Classes and Instances –Fields and Constructors } Next session

Fundamentals of Software Development 1Slide 2 Word Games: Transformers Our system will have many transformers likeOur system will have many transformers like –Pig Latin Hello  ello-HayHello  ello-Hay How have you been?  ow-Hay ave-hay ou-yay een-bay?How have you been?  ow-Hay ave-hay ou-yay een-bay? –Ubby Dubby Hello => HubbellubboHello => Hubbellubbo How have you been? => Hubbow hubbave yubbou bubbeen?How have you been? => Hubbow hubbave yubbou bubbeen? –Capitalizers: “HELLO” –Name Droppers: (“Maria says Hello”, “Rumi says Hello”) –And more, e.g: Combiner: Listen and combine two inputs into oneCombiner: Listen and combine two inputs into one Repeaters: Produce two outputs from oneRepeaters: Produce two outputs from one Delayers: Don’t produce anything until they are signaledDelayers: Don’t produce anything until they are signaled Network-senders: Move words from one computer to anotherNetwork-senders: Move words from one computer to another These transformers will be interconnectable modules like Legos! Download and run the WordGames demo WordGames demo

Fundamentals of Software Development 1Slide 3 Designing a Community What are the key questions for designing a computational community?What are the key questions for designing a computational community? –Determine the desired system behavior –Identify the entities –Specify entity interaction –Specify entity operation How to start?How to start? –Top-down: high-level and add details –Bottom-up: low-level details combine to form system –Today: in the middle, with a community of interacting transformers and connections

Fundamentals of Software Development 1Slide 4 A Community of Transformers and Connections Each Transformer is an entityEach Transformer is an entity –Transformer interactions, version 1 Read a word/phrase (from a connection)Read a word/phrase (from a connection) Write a word/phrase (to a connection)Write a word/phrase (to a connection) Each Connection is an entityEach Connection is an entity –Like tin-can telephones So Transformers don’t need to know about each otherSo Transformers don’t need to know about each other –Connection interactions Accept a word/phrase written to itAccept a word/phrase written to it Supply that word/phrase when requested (read)Supply that word/phrase when requested (read)

Fundamentals of Software Development 1Slide 5 Other Entities in the Community The UserThe User –User interactions Create a Transformer (of a specified type)Create a Transformer (of a specified type) Connect two Transformers (in a particular order)Connect two Transformers (in a particular order) How can we accomplish creating and connecting transformers?How can we accomplish creating and connecting transformers? Answer: Through a user interfaceAnswer: Through a user interface Along with modifications to the Transformer interactionsAlong with modifications to the Transformer interactions –User interface interactions Create a Transformer (of a specified type)Create a Transformer (of a specified type) Create a Connection between two TransformersCreate a Connection between two Transformers

Fundamentals of Software Development 1Slide 6 Transformer interactions, version 2 How do Transformers interact with other entities?How do Transformers interact with other entities? –Each Transformer has Connections Accept input Connection(s)Accept input Connection(s) Accept output Connection(s)Accept output Connection(s) –Communication Read word(s) (from a Connection)Read word(s) (from a Connection) Write word(s) (to a Connection)Write word(s) (to a Connection)

Fundamentals of Software Development 1Slide 7 Recap We have answered:We have answered: –System Behavior Allows a user to play various word gamesAllows a user to play various word games –Members of the community One instance of User and User interfaceOne instance of User and User interface Many instances of Transformers & ConnectionsMany instances of Transformers & Connections –Entity Interaction Read/write through connectionsRead/write through connections What is the remaining question?What is the remaining question? –Answer: Entity operation How does each entity work? What goes inside each one?How does each entity work? What goes inside each one? –For example: How do Transformers work? Is a Transformer a community (if so, of what?) or an instruction-follower? (See next slide.)

Fundamentals of Software Development 1Slide 8 Building a Transformer Transformer implementation must be able to:Transformer implementation must be able to: –Accept input Connection(s) –Accept output Connection(s) –Have its own instruction-follower that acts independently to: Read input, transform, write output Different types of transformers may do the transformation differentlyDifferent types of transformers may do the transformation differently Each Transformer is itself a community!Each Transformer is itself a community! –ConnectionAcceptors (input/output) E.g., acceptInputConnection: “store the input away someplace so that you can use it later”E.g., acceptInputConnection: “store the input away someplace so that you can use it later” –Entities that perform startup tasks when the Transformer is constructed –Independent instruction-follower We’ll focus on thisWe’ll focus on this

Fundamentals of Software Development 1Slide 9 Transformer Example: Capitalizer Capitalizer:Capitalizer: 1.Read the input 2.Produce a capitalized version of it 3.Write this as output Each Capitalizer does the same thing but with a different output based on its inputEach Capitalizer does the same thing but with a different output based on its input Hello GOODBYE HELLO Capitalizer 1 goodbye Capitalizer 2

Fundamentals of Software Development 1Slide 10 Transformer Example: NameDropper NameDropper:NameDropper: 1.Read the input 2.Produce a phrase containing its own name, the word “says,” and the input 3.Write this as output Each NameDropper has its own name to dropEach NameDropper has its own name to drop –All Capitalizers have the same instructions and same data –All NameDroppers have the same instructions and the same structure, but each has its own data associated with it (i.e., the name that it drops) Hello Rumi says Hello Maria says Hello Rumi Maria

Fundamentals of Software Development 1Slide 11 Other Transformer Examples Repeater:Repeater: 1.Read the input 2.Write this to one OutputConnection 3.Write this to the other OutputConnection PigLatin:PigLatin: 1.Read the input 2.Produce a new phrase containing all but the first letter, then the first letter, then “ay” 3.Write this as output

Fundamentals of Software Development 1Slide 12 Recap We have answered (at least partially):We have answered (at least partially): –System behavior? Allows a user to play various word gamesAllows a user to play various word games –Members of the community? (one) User interface and User, (many) Transformers, (many) Connections(one) User interface and User, (many) Transformers, (many) Connections –How do they interact? User operates user interface, which creates Transformers and ConnectionsUser operates user interface, which creates Transformers and Connections Transformers communicate through ConnectionsTransformers communicate through Connections –What goes inside a transformers: ConnectionAcceptors,... plus an instruction-follower with rules, such as for Capitalizer: 1.Read input 2.Produce capitalized version of it 3.Write output Next session: how to implement such rules!Next session: how to implement such rules!