Lesson 4 McManus COP1006 1.  Pointers  Modules & Functions  Cohesion & Coupling  Local & Global Variables  Parameters  Variable Names & Data Dictionaries.

Slides:



Advertisements
Similar presentations
Introduction to C Programming
Advertisements

Quality of a Class Abstraction: Coupling & Cohesion Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Programming Languages and Paradigms
Subprogram Control - Data sharing Mechanisms to exchange data Arguments - data objects sent to a subprogram to be processed. Obtained through  parameters.
Chapter 7: User-Defined Functions II
Chapter 7 User-Defined Methods. Chapter Objectives  Understand how methods are used in Java programming  Learn about standard (predefined) methods and.
Module: Definition ● A logical collection of related program entities ● Not necessarily a physical concept, e.g., file, function, class, package ● Often.
Chapter 6. 2 Objectives You should be able to describe: Function and Parameter Declarations Returning a Single Value Pass by Reference Variable Scope.
CS 201 Functions Debzani Deb.
Chapter 5 - Arrays CSC 200 Matt Kayala 2/27/06. Learning Objectives  Introduction to Arrays  Declaring and referencing arrays  For-loops and arrays.
Introduction to Programming Structure Lesson 4 McManusCOP10001.
CS241 PASCAL I - Control Structures1 PASCAL I - Control Structures Philip Fees CS241.
Chapter 4 Procedural Abstraction and Functions That Return a Value.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Modular Programming Chapter Value and Reference Parameters t Function declaration: void computesumave(float num1, float num2, float& sum, float&
INTRODUCTION TO PROGRAMMING STRUCTURE Chapter 4 1.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
1 VBA – podstawowe reguły języka Opracowanie Janusz Górczyński wg Microsoft Help.
Operator Precedence First the contents of all parentheses are evaluated beginning with the innermost set of parenthesis. Second all multiplications, divisions,
CSCI 3327 Visual Basic Chapter 6: Methods: A Deeper Look UTPA – Fall 2011.
Introduction to Programming Structure Lesson 4 McManusCOP10061.
Flow of Control. 2 Control Structures Control structure: An instruction that determines the order in which other instructions in a program are executed.
A First Book of C++: From Here To There, Third Edition2 Objectives You should be able to describe: Function and Parameter Declarations Returning a Single.
Modular Programming Chapter Value and Reference Parameters computeSumAve (x, y, sum, mean) ACTUALFORMAL xnum1(input) ynum2(input) sumsum(output)
Copyright © 2012 Pearson Education, Inc. Chapter 6: Functions.
Chapter 06 (Part I) Functions and an Introduction to Recursion.
Chapter 6: User-Defined Functions
Project 1 Due Date: September 25 th Quiz 4 is due September 28 th Quiz 5 is due October2th 1.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
An Object-Oriented Approach to Programming Logic and Design Fourth Edition Chapter 5 Arrays.
Cohesion and Coupling CS 4311
Programming Logic and Design Using Methods. 2 Objectives Review how to use a simple method with local variables and constants Create a method that requires.
CONTENTS Processing structures and commands Control structures – Sequence Sequence – Selection Selection – Iteration Iteration Naming conventions – File.
First Steps in Modularization. Simple Program Design, Fourth Edition Chapter 8 2 Objectives In this chapter you will be able to: Introduce modularization.
C Functions Three major differences between C and Java functions: –Functions are stand-alone entities, not part of objects they can be defined in a file.
First Steps in Modularization. Simple Program Design, Fourth Edition Chapter 8 2 Objectives In this chapter you will be able to: Introduce modularization.
Problem Solving with Decisions
Slide 1 Chapter 5 Arrays. Slide 2 Learning Objectives  Introduction to Arrays  Declaring and referencing arrays  For-loops and arrays  Arrays in memory.
CS241 PASCAL I - Control Structures1 PASCAL Control Structures Modified Slides of Philip Fees.
User Defined Methods Methods are used to divide complicated programs into manageable pieces. There are predefined methods (methods that are already provided.
Chapter Functions 6. Modular Programming 6.1 Modular Programming Modular programming: breaking a program up into smaller, manageable functions or modules.
1 MORE ON MODULAR DESIGN: MODULE COMMUNICATIONS. 2 WHEN A FUNCTION IS INVOKED, MEMORY IS ALLOCATED LOCALLY FOR THE FORMAL PARAMETERS AND THE VALUE OF.
Program Organization Sequential Execution: One line done after the other Conditional Execution: If a test is true, one section is done, otherwise another.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 6: Functions.
FUNCTIONS. Midterm questions (1-10) review 1. Every line in a C program should end with a semicolon. 2. In C language lowercase letters are significant.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Programming Logic and Design Fifth Edition, Comprehensive Chapter 7 Using Methods.
Problem Solving and Program Design in C Chap. 6 Pointers and Modular Programming Chow-Sing Lin.
FUNCTIONS (C) KHAERONI, M.SI. OBJECTIVE After this topic, students will be able to understand basic concept of user defined function in C++ to declare.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Sub Procedures and Functions Visual Basic. Sub Procedures Slide 2 of 26 Topic & Structure of the lesson Introduction to Modular Design Concepts Write.
Computer Programming 12 Lesson 4 - Computer Programming Structure By Dan Lunney.
BIL 104E Introduction to Scientific and Engineering Computing Lecture 4.
Functions + Overloading + Scope
Programming Logic and Design Seventh Edition
Coupling and Cohesion Rajni Bhalla.
Object-Oriented Programming: Classes and Objects
Coupling and Cohesion 1.
C-language Lecture By B.S.S.Tejesh, S.Neeraja Asst.Prof.
Object-Oriented Programming: Classes and Objects
User-Defined Functions
Cohesion and Coupling Chapter 5, Pfleeger 01/01/10.
6 Chapter Functions.
Programming Logic and Design Fourth Edition, Comprehensive
Software Design Lecture : 9.
CSCI 3327 Visual Basic Chapter 6: Methods: A Deeper Look
Methods.
Flow of Control.
Based on slides created by Bjarne Stroustrup & Tony Gaddis
Standard Version of Starting Out with C++, 4th Edition
Presentation transcript:

Lesson 4 McManus COP1006 1

 Pointers  Modules & Functions  Cohesion & Coupling  Local & Global Variables  Parameters  Variable Names & Data Dictionaries  Three Logic Structures McManusCOP10062

 Use Modules ◦ Each part should have a particular function  Use the three logic structures ◦ Sequential, Decision & Iteration  Don’t reinvent the wheel ◦ Avoid rewriting identical processes  Use techniques to improve readability McManusCOP10063

Making Modules Better! McManus COP1006 4

 Each module should ◦ Be functionally independent ◦ Perform one problem-related task  Calculating IRS Withholding is one problem-related task, but may have multiple operations within the module ◦ When connected, use the smallest interface possible. McManusCOP10065

 The degree of interaction within a module. ◦ Each module should perform one functionally- related task…not necessarily one assignment statement. ◦ Concentration is on what goes on within the module. McManusCOP10066 Term was coined by Larry Constantine in mid-1960’s

 Stevens, Myers, Constantine, and Yourdon developed the Scale of Cohesion as a measure of the “black boxiness” of a module, and as a result, the maintainability of a module. McManusCOP10067 Type Measure Black Box Functional BestBlack Box Informational ** Best Sequential Communicational ProceduralGray Box Temporal Logical Coincidental WorstTransparent or White Box **Originally not part of Scale

 The degree of interaction between two modules. ◦ Interaction is the interface, or lack thereof, between two modules.  The interface is the parameter list. McManusCOP10068 Best (Lowest Interaction) Worst (Highest Interaction) Normal Data Stamp Control Common Content

 Which pieces affect Cohesion and which affect Coupling? McManusCOP10069 Private Sub Minimum(min As Long, y As Long, z As Long) If y < min Then min = y End If If z < min Then min = z End If lblSmallest.Caption = "Smallest value is " & min End Sub

 What are the parameters? McManusCOP Private Sub Minimum(Scully As Long, Mulder As Long) Dim Temp As Long If Scully < Mulder Then temp = Scully Scully = Mulder Mulder = temp End If End Sub

 Cohesion’s Goal ◦ To create a procedure that performs one functionally-related task.  Coupling’s Goal ◦ To protect global data and local data from being used within a procedure without declaring it on the procedure’s header McManusCOP100611

 High Cohesion ◦ Functional or Information  Low Coupling ◦ Data, Stamp, Control McManusCOP100612

The subparts to a Program McManus COP

 “A module is a lexically contiguous sequence of program statements, bounded by boundary elements, having an aggregate identifier.” Yourdon & Constantine (1979) ◦ A part of a larger system ◦ Written and tested separately ◦ Combined with other modules to form a complete system ◦ Used in top-down programming ◦ Procedures & Functions McManusCOP100614

 A smaller part of the main program.  2 Advantages ◦ Eliminates the need to program the same thing more than once. ◦ Larger programs are easier to read when broken into procedures (and functions). McManusCOP100615

 Functions ◦ A subprogram that acts like a mathematical function:  given a particular set of argument values, the function returns a unique result.  Use Return values that are associated with the name of the function McManusCOP100616

 Pascal FUNCTION doublenum(b : Integer) : Integer; BEGIN doublenum := 2 * b END;  Visual Basic Private Function Doublenum(b As Integer) As Integer Doublenum = 2 * b End Function  C++ Int doublenum ( int b) { return 2 * b; } McManusCOP100617

 Each module ◦ is an entity by itself ◦ has a single purpose ◦ should be easily read, modified and maintained ◦ Length is governed by function and number of instructions contained within ◦ Controls the order of processing McManusCOP100618

McManusCOP100619

 Control ◦ Demonstrates overall flow of data  Initialization & Wrap-Up ◦ Processes instructions to be performed once (either at beginning or at the end of the program) ◦ Used typically in batch processing McManusCOP  Process Data ◦ Calculation ◦ Print ◦ Read and Validation  Event ◦ Used in OO and some event driven programming languages ◦ More about these later

 Most often called “Main”  All other modules, procedures and functions are subordinate to the control module Sub Main Call ProcedureA(X, Y) Call ProcedureB(A, B) End Main McManusCOP100621

 Used in some languages to initialize variables or processes ◦ Examples  Opening files  Initializing variables  Printing report headings Procedure Begin Dim X, Y, Z As Integers Open Payroll file End Procedure ‘Begin McManusCOP100622

 Calculation ◦ Performs  Arithmetic operations  Accumulations  Sorting or Searching Private Sub Double (X, Y) Dim Temp as Integer Temp = X * Y End Sub McManusCOP  Read and Data Validation ◦ Reads and validates input data  Usually separate modules Private Sub Verify(X) If X 10 Then lblMessage.Text = “Data Error” End If End Sub

 Used to close out processes ◦ Examples  Closing files  Printing reports  Returning updated data to databases Procedure End Close Employee file Close Payroll file End Procedure ‘End McManusCOP100624

Scope! McManus COP

 The area of a program where an identifier (variable) is visible  When an identifier has multiple declarations in different modules, the most local declaration is used each time that identifier is referenced. (overloading)  Global or “non-local” variables subject to side effects. McManusCOP100626

 Caused when the value of a global variable is changed within a procedure or function ◦ Any effect of one module on another module that is not a part of the explicitly defined interface between them  Also caused when a variable name is used in globally and locally (causes overloading)  A nasty effect that should be avoided! McManusCOP100627

 Declared within the main program  Can be referenced anywhere in the program ◦ Is visible and accessible everywhere McManusCOP X, Y, Z A C B X, Y & Z are Global to modules A, B & C

 Declared within a module ◦ Has no effect outside the procedure or function in which it is declared  Can be referenced only within a procedure or a function McManusCOP X, Y, Z A m C p B n Within A, Variable m is defined, but can also see X, Y, & Z Within B, Variable n is defined, but can also see X, Y, & Z Within C, Variable p is defined, but can also see X, Y, & Z

Private Sub Minimum(Scully As Long, Mulder As Long) Dim Temp As Long If Scully < Mulder Then temp = Scully Scully = Mulder Mulder = temp End If End Sub McManusCOP Scully & Mulder are what type of variables? What type of variable is Temp?

McManusCOP Scope of X, Y, Z, Procedure1 Scope of M, N, Me, X, You program ShowScope; var X, Y, Z : Real; procedure Procedure1 (var M, N, Me : Real); var X, You : Real; begin{Procedure1} end;{Procedure 1} begin {ShowScope} Procedure1(X, Y, Z) end.{ShowScope}

How we avoid side effects! McManus COP

 Are the variables that are passed into and out of modules  Use global parameters ◦ (to the procedure or function)  Pass values through the use of variables  Actual and Formal parameters  Call-by-reference & Call-by-value McManusCOP100633

 A measure of the quantity of data passing through a module’s interface.  Is also a measure of the module’s coupling.  The goal is to strive for a minimal amount of information being passed. McManusCOP100634

 Input Parameter ◦ Information passed into a procedure, but not returned or passed out of the procedure.  Output Parameter ◦ Information returned to the calling program from a procedure.  Input/Output Parameter ◦ Information passed into a procedure, perhaps modified, and a new value returned. McManusCOP100635

 Provide the communication links between the main program and its modules.  Make procedures and functions more versatile. ◦ Different data can be manipulated each time the module is called.  Come in two types: ◦ Actual ◦ Formal McManusCOP100636

 Actual Parameters ◦ Are substituted for the formal parameter at the time the procedure is called. ◦ Parameters used in the call statement  Statements that transfer control to a procedure. ◦ Data types must be assignment compatible with its corresponding formal parameter ◦ Can be a variable, constant or an expression ◦ Can be call-by-value or call-by-reference McManusCOP100637

 Formal Parameters ◦ Parameters declared in the procedure header ◦ Is a list of “place marker” names used in the procedure’s declaration. ◦ Can include the data type of the valued parameters. ◦ Must be a variable ◦ Can be call-by-value or call-by-reference McManusCOP100638

 Determined by position in respective parameter lists  Lists must be the same size, although the names may differ  Data Types of corresponding actual and formal parameters must be identical McManusCOP100639

McManusCOP ?? Formal Parameters Local Variables Sum Average Num1 Num2 Actual Parameters Var1 Var2 Main program data area Procedure data area

 By Reference (Call-by-Reference) ◦ Passing a variable to a procedure is called passing an argument by reference, because a variable can be modified by a procedure and returned to the calling module.  By Value (Call-by-Value) ◦ Passing a literal value (such as a string in quotation marks) to a procedure is called passing an argument by value, because a value cannot be modified by a procedure. McManusCOP100641

 The default for parameter passing  Gives access to the contents of the storage area where values are stored  Giving the called procedure the ability to directly access the caller’s data  Allowing changes in the data McManusCOP100642

 Protects the data being passed  Accomplished by creating a copy of the value ◦ without affecting the original value of the variable  Thus… ◦ Called procedure is unable to change the values stored in the variable’s storage area  Helps avoid Side Effects! McManusCOP100643

Call Parameters Actual Parameters  Valued  Variable McManusCOP Procedure Header Parameters Formal Parameters Valued Variable Parameter Interface using Global Variables

Names & the Data Dictionary McManus COP

 Use mnemonic terms ◦ Use a variable name that relates the name of the variable to its usage  Contributes to self-documenting code ◦ Which reduces the amount of commenting required ◦ Z = X * Y What is it doing (besides multiplication?) ◦ SalesTax = SalesTaxRate * Cost (this you know)  Examples ◦ SalesTax, SalesRate, PayRate, Temp McManusCOP100646

 Defines all of the variables used within a program  Lists: ◦ Names ◦ Data type ◦ Location defined & accessed ◦ Test Data (or error checking) ◦ Domain (range of possible values) McManusCOP100647

ItemName (no spaces) Data Type ModulesDomain (Range) Scope Hours worked HoursNumeric- real GetHours CalcGrossPay 0  n  168 Global Gross Pay Numeric- real CalcGrossPay CalcDeductions CalcNetPay PrintPayChecks 0  n  1 million Global Net Pay Numeric- real CalcNetPay PrintPayChecks 0  n  1 million Local Global McManusCOP100648

 Sequential ◦ One statement follows another  Selection  Selection (Decision) ◦ Allows choices based on the data ◦ IfThenElse, Nested If’s, Case, Switch  Iteration  Iteration (Looping or Repetition) ◦ Allows statements to be repeated a specified number of times ◦ While, Do, For, Do Until, Repeat McManusCOP100649

McManusCOP Next?