Models of Computation 1 Activity Diagrams

Slides:



Advertisements
Similar presentations
PROBLEM SOLVING TECHNIQUES
Advertisements

CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM.
Software Design Deriving a solution which satisfies software requirements.
Introduction To System Analysis and Design
ECIV 301 Programming & Graphics Numerical Methods for Engineers Lecture 4 Programming and Software EXCEL and MathCAD.
1 Chapter 2 Problem Solving Techniques INTRODUCTION 2.2 PROBLEM SOLVING 2.3 USING COMPUTERS IN PROBLEM SOLVING : THE SOFTWARE DEVELOPMENT METHOD.
Introduction to Algorithm – part one Jennifer Elmer Form 3 Computing.
CS 5150 Software Engineering Lecture 15 Program Design 2.
Progressive Disclosure Diagramming Techniques Haytham Siala Tel:
The Logical Structure of Algorithms. Algorithms Steps necessary to complete a task or solve a problem. Example: Recipe for baking a cake –Will contain.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 21. Review ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Functional Modeling – Use case Diagram Description.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
ALGORITHM CHAPTER 8. Chapter Outlines and Objectives  Define an algorithm and relate it to problem solving.  Define three construct and describe their.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Software to Go with the Flow. Software Engineering Step #1 Analyze the problem. Step #1 Analyze the problem. Step #2 Design the architecture of a solution.
Course Instructor: Kashif Ihsan 1. Chapter # 3 2.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 UML Activity Diagrams.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
Fundamentals of Software Engineering. Instructor: Dr. Kal Bugrara Office: Snell Engineering, Rm 267 Office Hours: Sat: 12:00-2:00 pm Phone
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
Introduction to Problem Solving Programming is a problem solving activity. When you write a program, you are actually writing an instruction for the computer.
 Problem Analysis  Coding  Debugging  Testing.
 Sequence Diagrams Introduction.  Sequence Diagrams  Review Schedule Sheridan.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 UML Activity Diagrams.
Elaboration: Iteration 3. Elaboration: Iteration 3 Basics Inception and iteration-1 explored many basic OOA/D modeling basics. Iteration-2 narrowly emphasized.
Algorithms and Programming
Introduction to UML.
Business Process and Functional Modeling
Activity Diagrams.
Models of Computation 1 Activity Diagrams
Topic: Introduction to Computing Science and Programming + Algorithm
Business System Development
GC101 Introduction to computers and programs
Topic: Introduction to Computing Science and Programming + Algorithm
Object-Oriented Analysis and Design
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Unified Modeling Language
GC211Data Structure Lecture2 Sara Alhajjam.
Programming Flowcharts
Pseudocode Upsorn Praphamontripong CS 1110 Introduction to Programming
Application of Pseudo Code
Introduction To Flowcharting
CH#3 Software Designing (Object Oriented Design)
Activity Diagrams.
Algorithm and Ambiguity
Dynamic Modeling: Defining Classes
Problem Solving (design of programs) CS140: Introduction to Computing 1 8/26/13.
Models of Computation 1 Activity Diagrams
Requirements – Scenarios and Use Cases
Introduction To System Analysis and Design PART 2
IMPORTANT NOTICE TO STUDENTS:
Software Design Lecture : 15.
Algorithm and Ambiguity
Review CSE116 2/21/2019 B.Ramamurthy.
CS 8532: Advanced Software Engineering
John D. McGregor Module 6 Session 1 More Design
Creating Computer Programs
Introduction to Programming
COMPUTATIONAL THINKING COMPUTATIONAL THINKING IN PROGRAMMING
Software Design Methodologies and Testing
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Basic Concepts of Algorithm
Remarks on Software Design
Creating Computer Programs
Presentation transcript:

Models of Computation 1 Activity Diagrams Software to Go with the Flow

Software Engineering Step #1 Analyze the problem. Step #2 Design the architecture of a solution. Step #3 Implement the design as a computer program. In CS101 you spend almost no time with steps 1 & 2, but good SEs devote more time to this than to coding.

Software Engineering Step #1 Analyze the problem. Step #2 Implement the design as a computer program. Step #2 Design the architecture of a solution. The work of software design is much like the work of an architect.

What are the ingredients of a computer program? 1) data Software design must also focus on these. 2) algorithm (instructions) Algorithms to manipulate those data. Note that earlier lectures discussed how information is encoded as computer data and a look at some algorithms. We talked about two types of algorithms: divide & conquer algorithms and greedy algorithms. This lecture and the next focus on tools for algorithmic design; the lecture after that is about organizing data.

Algorithmic Thinking examples of algorithms DEFN (revisited) An algorithm is a group of instructions (often expressed informally) for performing some task. examples of algorithms • recipe for baking cookies • a set of travel directions • directions for operating your cell phone • procedures for registering for next semester’s classes • instructions for completing an income tax form Algorithms are everywhere in our world. We all need to READ them ...and our world would be a better place if more people could WRITE them (properly). • a computer program

Diagrams Software Design Software Diagrams Activity Diagrams “Picture that!” “One picture is worth a thousand words.” Software Design Software Diagrams Activity Diagrams State Diagrams Talk about architects using blueprints of many kinds - blueprints of superstructure, blueprints of floor plans, blueprints of electrical systems, blueprints of plumbing, blueprints of heatig/ventilation In this lecture we focus on ACTIVITY DIAGRAMS - next week it is state diagrams

Activity Diagrams the purpose the notation • a notation for depicting algorithms • captures the flow of an algorithm • activity diagrams are a kind of flow diagram / flowchart • part of the Unified Modeling Language (UML) the notation an action to be performed Flow can be thought of as the steps of an algorithm along with the order in which those steps are performed. a flow that determines the order of actions a point at which flows merge or split (a choice)

Activity Diagram Elements Simple Activity diagrams consist of: Initial node. Final node. Action nodes. Flows (sequences) given by arcs. Eat dinner Snack on anchovies Study for CT100 Eat dinner

Details The initial node indicates where to start The activity described by the diagram ends with the final node. An activity can have more than one final node. Action nodes operate on data and pass data to other actions. The sequence of actions is defined by the arcs of the diagram.

Conditional Actions Waste time on Facebook Study Some actions are conditional. How would you say that you need to study if you have an exam tomorrow otherwise you would waste time on Facebook? What are the actions What is the condition? A diamond indicates points at which a flows split (a condition) or merge [exam tomorrow] [no exam tomorrow] Study Waste time on Facebook

Simple Activity Diagram Instructions for setting wristwatch time Talk about sequence

Making Choices in Algorithms the pattern from some previous part of the diagram ••• Choice #1 Choice #N Talk about the kind of choices made in algorithms (a chess-playing algorithm, an algorithm to handle menu-driven input, anti-lock brake software. Choice #2

Login Algorithm Notice how the choices are labeled ... with PROPOSITIONS. Note: I’m using blue for user and green for system -- not standard UML, but useful.

Repetition in Algorithms the patterns The circular flow is where the name “LOOP” comes from.

Fudge Algorithm Q: What’s missing? A: The EAT action.

Login Algorithm 2 The point here is to demonstrate there are different algorithms. This one is probably more true to the way login panels actually work. Note how actions (from the last algorithm) are used as conditions here.

Flight Reservation Algorithm

Email Client Algorithm