Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Programming Structure Lesson 4 McManusCOP10001.

Similar presentations


Presentation on theme: "Introduction to Programming Structure Lesson 4 McManusCOP10001."— Presentation transcript:

1 Introduction to Programming Structure Lesson 4 McManusCOP10001

2 Overview Guidelines Modules & Functions Cohesion & Coupling Local & Global Variables Parameters Variable Names & Data Dictionaries Three Logic Structures McManusCOP10002

3 Guidelines on Program Structure 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 McManusCOP10003

4 Cohesion & Coupling Making Modules Better! McManusCOP10004

5 Cohesion & Coupling 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. McManusCOP10005

6 Cohesion 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. McManusCOP10006 Term was coined by Larry Constantine in mid-1960’s

7 Scale of Cohesion 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. McManusCOP10007 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

8 Coupling The degree of interaction between two modules. –Interaction is the interface, or lack thereof, between two modules. The interface is the parameter list. –Create it, use it, lose it McManusCOP10008 Best (Lowest Interaction) Worst (Highest Interaction) Normal Data Stamp Control Common Content

9 Effects? Which pieces affect Cohesion and which affect Coupling? McManusCOP10009 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 does this code do?

10 What is the code doing? What are the parameters? Variables? McManusCOP100010 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 Global & Parameters Local Variable

11 Each Goal 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 Create as close to where you’re going to use it as possible, use it, then lose it as soon as possible McManusCOP100011

12 Goal of Cohesion & Coupling? High Cohesion –Functional or Information Low Coupling –Data, Stamp, Control McManusCOP100012

13 Modules, Procedures & Functions The subparts to a Program McManusCOP100013

14 Modules “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 McManusCOP100014

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

16 Functions –A subprogram that acts like a mathematical function: Given a particular set of argument values, the function returns a unique result. Big Difference Between Procedures & Functions: –Use Return values that are associated with the name of the function McManusCOP100016

17 Function Examples 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; } McManusCOP100017 All three do the same thing, just with different syntax

18 What Do They Have In Common? 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 McManusCOP100018

19 An Example of Control McManusCOP100019

20 Types of Modules/Procedures 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 Process Data –Calculation –Print –Read and Validation Event –Used in OO and some event driven programming languages –More about these later McManusCOP100020

21 Control Modules 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 McManusCOP100021

22 Init Module 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 McManusCOP100022 Does this violate Cohesion or Coupling?

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

24 Wrap Up Module Used to close out processes –Examples Closing files Printing reports Returning updated data to database Procedure LastProcedure Close Employee file Close Payroll file End Procedure ‘LastProcedure McManusCOP100024 Does this violate Cohesion or Coupling?

25 Global or Local Variables Scope! McManusCOP100025

26 Scope 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. McManusCOP100026

27 Side Effects 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! McManusCOP100027

28 Global Scope Declared within the main program Can be referenced anywhere in the program –Is visible and accessible everywhere McManusCOP100028 X, Y, Z A C B X, Y & Z are Global to modules A, B & C

29 Local Scope 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 McManusCOP100029 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

30 Global or Local? 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 McManusCOP100030 Scully & Mulder are what type of variables? What type of variable is Temp?

31 Another Example McManusCOP100031 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}

32 Parameters How we avoid side effects! McManusCOP100032

33 Parameters 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 McManusCOP100033

34 Parameter Communication 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. McManusCOP100034

35 How Parameters are Used 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. McManusCOP100035 Programmers now determine how their parameters are used.

36 Parameters 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 McManusCOP100036

37 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 –If they don’t, your program will blow up! Can be a variable, constant or an expression Can be call-by-value or call-by-reference McManusCOP100037

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

39 Parameter Correspondence Rules 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 McManusCOP100039

40 Data Areas After a Call McManusCOP100040 8.0 10.0 8.0 10.0 ?? Formal Parameters Local Variables Sum Average Num1 Num2 Actual Parameters Var1 Var2 Main program data area Procedure data area

41 Valued & Variable Parameters 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. –You can use it AND you CAN change it! 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. –You can use it BUT you CAN’T change it! McManusCOP100041

42 Call-by-Reference 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 McManusCOP100042

43 Call-by-Value 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! McManusCOP100043

44 Parameter Relationships Call Statements Actual Parameters Valued Variable McManusCOP100044 Procedure Header Parameters Formal Parameters Valued Variable Parameter Interface using Global Variables

45 Another Look at Variables Names & the Data Dictionary McManusCOP100045

46 Variable Names-Reminder 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, Sales_Rate, PayRate, Temp McManusCOP100046

47 The Data Dictionary Defines all of the variables used within a program Lists: –Item Name –Variable Names –Domain (range of possible values) –Data type –Location defined & accessed –Test Data (or error checking) McManusCOP100047 Required!

48 DD Example Item Name (required) Variable Name (required) Data Type (required) ModulesDomain (Range) (required) 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 McManusCOP100048

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

50 McManusCOP100050 Next?


Download ppt "Introduction to Programming Structure Lesson 4 McManusCOP10001."

Similar presentations


Ads by Google