Computational Paradigms and Process Frameworks. State-Oriented Models Examples: –Automata (DFAs, NFAs, PDAs) –Turing Machines A finite state machine is.

Slides:



Advertisements
Similar presentations
Object-Oriented Software Engineering Visual OO Analysis and Design
Advertisements

Software Development Languages and Environments. Programming languages High level languages are problem orientated contain many English words are easier.
Chapter 3: Modularization
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Software Design Process A Process is a set of related and (sequenced) tasks that transforms a set of input to a set of output. Inputs Outputs Design Process.
Systems Analysis and Design 9th Edition
ITEC113 Algorithms and Programming Techniques
Chapter 9 Describing Process Specifications and Structured Decisions
Chapter 9 Describing Process Specifications and Structured Decisions Systems Analysis and Design Kendall & Kendall Sixth Edition © 2005 Pearson Prentice.
Chapter 9 Describing Process Specifications and Structured Decisions
Chapter 7 Using Data Flow Diagrams
Kendall & KendallCopyright © 2014 Pearson Education, Inc. Publishing as Prentice Hall 9 Kendall & Kendall Systems Analysis and Design, 9e Process Specifications.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Understanding the Mainline Logical Flow Through a Program (continued)
Chapter 4.
Process Modeling and Data Flow Diagrams
Software Design Processes and Management
Traditional Approach to Requirements Data Flow Diagram (DFD)
Software Integration and Documenting
Software Engineering 8. System Models.
SYSTEM ANALYSIS AND DESIGN
Data-flow Diagrams Chapter 17. Elements of data-flow diagrams  There are four basic elements of data flow diagrams: Data Transforms: where data is filtered,
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Software Requirements Specification (SRS) Complete description of external behavior of software system Complete description of external behavior.
IS 320 Notes for Chapter 8. ClassX Problems: Low-Tech Fix Use last year's videos on ClassX  Select "Semesters" tab  Select IS 320  Select the week/lecture.
Functional Modeling Joseph Valacich, Joey George and Jeff Hoffer, Essentials of System Analysis and Design, 4 th edition, Prentice Hall, 2009.
Chapter 9 Describing Process Specifications and Structured Decisions
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
Chapter 7 Using Data Flow Diagrams
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Requirements Definition and Specification. Outline Definition and specification Natural language Semi-formal techniques –Program description languages.
Functional Modeling Question How do you know if you have enough information to compute the necessary output values? How do you know if you have.
Chapter 10 Information Systems Analysis and Design
SOFTWARE DESIGN.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
System models l Abstract descriptions of systems whose requirements are being analysed.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
Flowcharts and Algorithms. Review of Terms  A computer is a machine that can represent and manipulate data –Ultimately the data and the instructions.
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Chapter 4 enterprise modeling
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Functional Modeling Joseph Valacich, Joey George and Jeff Hoffer, Essentials of System Analysis and Design, 4 th edition, Prentice Hall, 2009.
Systems Analysis and Design in a Changing World, Fourth Edition
Systems Analysis and Design 8th Edition
Systems Design.  Application Design  User Interface Design  Database Design.
CSC480 Software Engineering Lecture 7 September 16, 2002.
Copyright © 2011 Pearson Education Process Specifications and Structured Decisions Systems Analysis and Design, 8e Kendall & Kendall Global Edition 9.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
OCR A Level F453: High level languages Programming techniques a. identify a variety of programming paradigms (low-level, object- oriented,
Information Systems Development
Tools Of Structured Analysis
Chapter 5 System modeling
Fundamentals of Information Systems, Sixth Edition
Problem Solving How do we attack a large problem?
Part 3 Design What does design mean in different fields?
Abstract descriptions of systems whose requirements are being analysed
CSC480 Software Engineering
Computer Programming.
CS310 Software Engineering Dr.Doaa Sami
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Chapter 11 Describing Process Specifications and Structured Decisions
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Presentation transcript:

Computational Paradigms and Process Frameworks

State-Oriented Models Examples: –Automata (DFAs, NFAs, PDAs) –Turing Machines A finite state machine is a hypothetical machine that can be in only one of a given number of states at a specific time. In response to a stimulus, the machine performs an action (possibly generating output) and changes state. State diagrams capture the behavior of the machine.

Toggle Switch State Diagram OnOff button pushed / turn power off button pushed / turn power on

Microwave Oven State Diagram Idle Set time Cooking Disabled timer button / beep door opened door closed time out / cooking light off start button / cooking light on door opened / cooking light off Open door opened door closed

State Machines Actions are processes that occur “quickly” and are not interruptible. A single state in a state diagram may be decomposed into several states in a less abstract view.

Function-Oriented Models The specification of the external behavior of a system is primarily a description of how the system outputs relate to the system inputs. The classic example for function-oriented techniques is the mathematical function. F XY

Function-Oriented Models (2) All actions are atomic, effectively instantaneous There are no observable intermediate states No action, once started, is affected by any external state F XY P XY Function F maps a value X to a value Y. F(X) = Y. Process P consumes input X and produces output Y

Function-Oriented Models (3) Sequential processes may be modeled as composition of functions: P1 XY P2P3 F3(F2(F1(X))) = Y

Data Flow Diagrams Double Square arrow Rounded Rectangle Open-ended Rectangle Source or destination of data Flow of data Process which transforms a flow of data Store of data

Payroll System DFD Employee Calculate Gross Pay Employee Records Employee Timecards Calculate Withholding Format Paycheck Generate Report Account Manager Employee Data Number of Dependents Gross Pay Hours Worked Paycheck Info Paycheck Accounting Data Report Time In/ Time Out

What Are We Modeling? State machine and data flow diagrams can be used to help specify the design of a software system. In this case they are showing state transitions or data flows within the system to be built. The same notations could be used during analysis to document state transitions or data flows in the real world (the problem domain). For example, employee timecards might be a database with timecard data, or it might be a stack of physical cards. Calculate Gross Pay might be a function of the system, or it might be a process performed by hand.

What Are We Modeling? (2) These same notations could even be used to specify requirements of the system: Employee Compute Payroll Account Manager Employee Data Paycheck Report Here we are showing only data flows into and out of the system. We are not specifying what happens within the system.

Process Frameworks Define the basic elements of a process model and how they relate to each other. Define how process models are decomposed into greater detail.

IDEF0/SADT Process Model Input –Arrow entering the left side of the box are inputs. Inputs are transformed or consumed by the function to produce outputs. Control/Constraint –Arrows entering the box on the top are controls. Controls specify the conditions required for the function to produce correct outputs. Output –Arrows leaving the box on the right are outputs. Outputs are the data or objects produced by the function. Resource/Mechanism –Identify some of the means that support the execution of the function.

IDEF0 Example (1a) Paint Car Car Painted Car Vendor (Car painter) Spouse Budget Time

IDEF0 Example (1b) Select Vendor Select Color Arrange Financing Paint Car Painting Requirements Color Options Car Budget Time Spouse Price Vendor Money Color Painted Car Phone book Advertisements Recommendations Owner Bank

IDEF0 Example (2a) Build the System Requirements Code Staff Schedule Budget Standards Documentation Tools

IDEF0 Example (2b) Requirements Review Users User Analysis Requirements Definition Requirements Elicitation Evaluation Results Survey Results User Specialist Customer Liaison Customer Problem Statement Requirements Scope Interview Results Requirements Server Characteristics Review Guidelines Review Team Requirements Specification

Humphrey’s Process Architecture EntryExitTask Feedback Output Input OutIn Unit cells are defined to accomplish specific tasks Each cell has required –Entry conditions: to met before task initiation –Exit conditions: results produced –Task definition: standards, procedures, responsibilities. –Feedback: in from other cells, out to other cells –Measurements: task, output, and feedback measures

Humphrey’s Architecture (2) DesignCodeTest Software Requirements Implementation Issues Design Issues Requirements Issues

Humphrey’s Architecture (3) Cell EntryApproved requirements, changes, and development plan Inspected and approved design and changes Inspected and approved code and changes ExitInspected and approved design and changes Inspected and approved code and changes Inspected, tested, and approved software Feedback In Design issuesImplementation issues Feedback Out Requirements issuesRequirements and design issues Requirements, design, and implementation issues TaskDesignImplementation, inspection, and unit test Testing, integration, function, system, and acceptance MeasuresChanges, errors, design, document pages Changes, errors, design, document pages, test suite

Programming Paradigms

Imperative Paradigm –Program is a sequence of instructions (commands) that change the state of a program Declarative Paradigm –Program is a set of declarations that provide the system with information

Programming Languages Programming Language Paradigms ImperativeDeclarative Procedural Object- oriented Parallel Processing LogicFunctionalDatabase

Functional Languages In functional programming languages, a program is expressed as a set of (mathematical) functions. The main program is the function that is evaluated when the program is executed. Functions may be defined by composition of other existing functions: quadruple(x) = double (double (x) ) double (x) = add (x, x)

Functional Programming Advantages –Precise definition of the problem –Relatively simple correctness proofs –Direct and formal mapping of specification to code –High degree of modularity and abstraction Disadvantages –Slow execution –Difficult for compilers to optimize code without losing formal correctness –Side effects (such as i/o) are not modeled

Logic Languages A logic program consists only of rules and facts. The program is executed by asking a query: Fact: append ([], Y, Y) Rule:append (AB, C, AD) if append (B, C, D) Queries: append (ab, X, abcd) ?  X = cd append (X, dc, abcd) ?  No.

Logic Programming Advantages –Programmer does not specify how the problem is to be solved –The focus is on understanding the problem Disadvantages –Execution speed is slow