8th NCTT Annual Curriculum Workshop Springfield, Massachusetts, July 11-14, 2005 Challenging Projects and Virtual Labs in Web-enhanced IT Classes Vladimir Riabov Associate Professor Department of Mathematics & Computer Science Rivier College, USA E-mail: vriabov@rivier.edu Agenda: • • • • • Web-enhanced IT Classes at Rivier College; Lecture Notes and Web Resources; Class Assignments; Virtual OPNET Labs; Examples of Students’ Projects and Research: – – – • Project Papers (SANs, WiFi, Gigabit Ethernet, etc.) Digital Video Cluster Simulation with OMNeT++ Code Complexity Analysis for two projects in Networking Conclusion July 2005 Web-enhanced IT Classes 2 Web-enhanced IT Classes at Rivier College • Undergraduate and Graduate Programs in CS & CIS http://www.rivier.edu/departments/mathcs/home/cs/CSIndex.htm • Certificates in Networking and Information Technologies • IT-related Courses: – – – – – – – – CS553: Introduction to Networking Technology CS572: Computer Security CS573: Advanced Wide Area Networks CS575: Advanced Local Area Networks CS597: Multimedia and Web Development CS612: Information Technology CS632: Client/Server Computing CS685: Network Management, and others • Web-enhanced Classes across CS/CIS Curricula July 2005 Web-enhanced IT Classes 3 Lecture Notes and Web Resources • Instructor’s Web site (Teaching, Research & Publications): http://www.rivier.edu/faculty/vriabov/ • Web sites for IT Courses – – – – – – Syllabi Lecture Notes Assignments Schedules Resources Examples of Students’ Project Papers • Web Resources July 2005 Web-enhanced IT Classes 4 Class Assignments • • • • • • • Warm-up Exercises Homework Assignments Virtual Labs Midterm Exams Project Papers Research Reports Final Exams July 2005 Web-enhanced IT Classes 5 Warm-up Exercises (examples) • What is the last digit of the number 25975927 [mod(10)]? • Using MSExcel™ spreadsheet, find the last digit of the number 253 [mod(10)]? • How to use your findings in these two cases for encrypting e-messages? July 2005 Web-enhanced IT Classes 6 Last digit of the number 25975927 [mod(10)]? • It’s enough to consider the last digit of a simpler number 75927; • Do your experiments (see Table)! • “LAST” can be 7, 9, 3, or 1 only; therefore, it is a cycle of four cases; • The power, 5927 can be represented as 5927 = 4*1481+3; • Therefore, “LAST” of 75927 is the same as the “LAST” of 73, which is “3”. • Answer: “3”. July 2005 Web-enhanced IT Classes N 7^N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 7 49 343 2401 16807 117649 823543 5764801 40353607 282475249 1977326743 13841287201 96889010407 678223072849 4747561509943 33232930569601 7 Last digit of the number 253 [mod(10)]? • “LAST” digit can be 2, 4, 8, or 6 only; therefore, it is a cycle of four cases; • The power, 53 can be represented as 53 = 4*13+1; • The “LAST” of 253 is the same as the “LAST” of 21, which is “2”. • Therefore, following this algorithm, the last digit of the number 253 must be 2; • Try MS Excel™Spreadsheet (see Table)! • Why the last digit of the number 253 is 0 there? • HINT: Consider the number of “valuable” digits in large natural numbers calculated with MS Excel™! July 2005 Web-enhanced IT Classes N 2^N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 4294967296 8589934592 17179869184 34359738368 68719476736 137438953472 274877906944 549755813888 1099511627776 2199023255552 4398046511104 8796093022208 17592186044416 35184372088832 70368744177664 140737488355328 281474976710656 562949953421312 1125899906842620 2251799813685250 4503599627370500 9007199254740990 7^N 7 49 343 2401 16807 117649 823543 5764801 40353607 282475249 1977326743 13841287201 96889010407 678223072849 4747561509943 33232930569601 232630513987207 1628413597910450 11398895185373100 79792266297612000 558545864083284000 3909821048582990000 27368747340080900000 191581231380566000000 1341068619663960000000 9387480337647750000000 65712362363534300000000 459986536544740000000000 3219905755813180000000000 22539340290692300000000000 8 Homework Assignments (example 1) • Using Manchester Encoding Format, encode a bit-stream that represents two first letters of your last name previously written in the ASCII (7-bit) Coding Standard. Using MS Word, plot a diagram that illustrates your Manchester code. July 2005 Web-enhanced IT Classes 9 Homework Assignments (example 2) • Plot a diagram that illustrates a virtual private connection from your home computer to the Rivier College Network. Briefly describe issues that should be resolved for establishing this connection. July 2005 Web-enhanced IT Classes 10 Homework Assignments (example 3) A LAN has a data rate of r=4 Mbps and a propagation delay between two stations at opposite ends of d=20 μs. For what range of PDU sizes (S, measured in bits) does the stop-and-wait flow control give an efficiency of at least 50%, E > 0.5? (neglect the transmission time for the ACK signal). The efficiency, E is defined as a ratio of the PDU transmission time (time for inserting the PDU onto the medium) to the total time the medium is occupied for this one PDU. Stop-and-wait flow control Crystal Yu’s solution: S=? T=S/r is PDU-transmission time; E=T/(T+d+d); E > 0.5; T>0.5*(T+2*d); T>2d; S>2*d*r; S>2*20*10-6*4*106; Answer: S>160 bits July 2005 Web-enhanced IT Classes 11 Visiting the IT Services Department July 2005 Web-enhanced IT Classes 12 Visiting the IT Services Department July 2005 Web-enhanced IT Classes 13 Virtual Labs • OPNET IT Guru Academic Edition™ : http://enterprise37.opnet.com/4dcgi/COMMUNITY_HOME http://www.opnet.com/services/university/home.html • OPNET Virtual Lab Manuals: – http://www.opnet.com/services/university/lab_manuals.html • William Stallings, Business Data Communications, Fifth Edition • William Stallings, Data and Computer Communications, Seventh Edition • Raymond R. Panko, Business Data Networks and Telecommunications, Fourth Edition • Larry L. Peterson and Bruce S. Davie, Computer Networks – A Systems Approach,Third Edition. July 2005 Web-enhanced IT Classes 14 Virtual Labs • Four-Six OPNET™ Virtual Labs per Course: http://www1.us.elsevierhealth.com:8300/MKP/Aboelela/manual/index.html L00: Introduction - Basics of OPNET IT Guru Academic Edition™ L01: Ethernet - A Direct Link Network with Media Access Control L02: Token Ring - A Shared-Media Network with Media Access Control L03: Switched LANs - A Set of Local Area Networks Interconnected by Switches L04: Network Design - Planning a Network with Different Users, Hosts, and Services L05: ATM - A Connection-Oriented, Cell-Switching Technology L06: RIP: Routing Information Protocol - A Routing Protocol Based on the Distance-Vector Algorithm L07: OSPF: Open Shortest Path First - A Routing Protocol Based on the Link-State Algorithm L08: TCP: Transmission Control Protocol - A Reliable, Connection-Oriented, ByteStream Service L09: Queuing Disciplines - Order of Packet Transmission and Dropping L10: RSVP: Resource Reservation Protocol - Providing QoS by Reserving Resources in the Network L11: Firewalls and VPN - Network Security and Virtual Private Networks L12: Applications - Network Application Performance Analysis July 2005 Web-enhanced IT Classes 15 Virtual Lab Basics July 2005 Web-enhanced IT Classes 16 Lab Project Editor Window July 2005 Web-enhanced IT Classes 17 Lab: Network Expansion Plan In this lesson, you plan for the expansion of a small company’s intranet. Currently, the company has a star topology network on the first floor of its office building and plans to add an additional star topology network on another floor. You will build and test this “whatif” scenario to ensure that the load added by the second network will not cause the network to fail. July 2005 Web-enhanced IT Classes 18 Creating a New Scenario Use the Startup Wizard to set up a new scenario: 1 If IT Guru is not already running, start it. 5 Enter the values shown in the following table in the dialog boxes of the Startup Wizard: 2 Select File > New.... 3 Select Project from the pull-down menu and click OK. 4 Name the project and scenario, as follows: 4.1 Name the project <initials>_Sm_Int Include your initials in the project name to distinguish it from other versions of this project. 4.2 Name the scenario first_floor. 4.3 Click OK. The Startup Wizard opens. July 2005 Web-enhanced IT Classes 19 Creating the Network July 2005 Web-enhanced IT Classes 20 Creating the Network (Step 2) Building a Server, Application & Profile July 2005 Web-enhanced IT Classes 21 Expanding the Network & Comparing Results (Step 3) Comparing Results July 2005 Web-enhanced IT Classes 22 Students’ Project Papers: “Storage Area Networks (SANs)” Fibre Channel Technology for Storage Area Networks by David Norman (fibre.pdf file is available) July 2005 V. Riabov, "Storage Area Networks," The Internet Encyclopedia, Wiley & Sons, Dec. 2003, pp. 1-11. Web-enhanced IT Classes 23 Students’ Project Papers on Selected Networking Protocols Gigabit Ethrnet, QoS, and Multimedia Applications by Jeff Corbit (gigabit-ethernet.pdf file is available) July 2005 V. Riabov, “Simple Mail Transfer Protocol," The Handbook of Information Security, Wiley & Sons, Dec. 2005, pp. 1-22. Web-enhanced IT Classes 24 Students’ Project Papers: “WiFi Technologies” Secure Wi-Fi Technologies for Enterprise LAN Network by Tom Borick (wifi.pdf file is available) July 2005 V. Riabov, “Going Wireless," Rivier Today Magazine, March 2005. Web-enhanced IT Classes 25 Digital Video Cluster Simulation with OMNeT++ Digital Video Cluster Simulation by Martin Milkovits (cluster.pdf file is available) Varga, Andras. 2004, OMNeT++ Version 3.0 User Manual [online]. Available via <http://www.omnetpp.org/>. July 2005 Web-enhanced IT Classes 26 Digital Video Cluster Simulation (continue) From: Digital Video Cluster Simulation by Martin Milkovits July 2005 Web-enhanced IT Classes 27 Digital Video Cluster Simulation (results) From: Digital Video Cluster Simulation by Martin Milkovits July 2005 Web-enhanced IT Classes 28 Research Project: “Networking Software Studies with the Structured Testing Methodology” Presented by V. Riabov at the International Conference on Computer Science & Information Systems, Athens, Greece, 16-18 June 2005 (software.pdf file is available on Web) July 2005 Web-enhanced IT Classes 29 McCabe’s Structured Testing Methodology Approach and Tools for Networking Software Development • McCabe’s Structured Testing Methodology is: a unique methodology for software testing proposed by McCabe in 1976; approved as the NIST Standard (1996) in the structured testing; a leading tool in computer, military, and aerospace industries (HP, GTE, AT&T, Alcatel, GIG, Boeing, NASA, etc.) since 1977; provides Code Coverage Capacity. • Author’s Experience with McCabe IQ Tools since 1998 leaded three projects in networking industry that required Code Analysis, Code Coverage, and Test Coverage; completed BCN Code Analysis with McCabe Tools; completed BSN Code Analysis with McCabe Tools; studied BSN-OSPF Code Coverage & Test Coverage; included these topics into Software Engineering and Networking classes since 1999. July 2005 Web-enhanced IT Classes 30 McCabe’s Structured Testing Methodology Basics • The key requirement of structured testing is that all decision outcomes must be exercised independently during testing. • The number of tests required for a software module is equal to the cyclomatic complexity of that module. • The software complexity is measured by metrics: cyclomatic complexity, v essential complexity, ev module design complexity, iv system design, S0, and system integration complexity, S1, Halstead metrics, and 52 metrics more. • The testing methodology allows to identify unreliable-andunmaintainable code, predict number of code errors and maintenance efforts, develop strategies for unit/module testing, integration testing, and test/code coverage. July 2005 Web-enhanced IT Classes 31 Basics: Analyzing a Module • For each module (a function or subroutine with a single entry point and a single exit point), an annotated source listing and flowgraph is generated. • Flowgraph is an architectural diagram of a software module’s logic. Statement Number 1 2 3 4 5 6 7 8 9 Code main() { printf(“example”); if (y > 10) b(); else c(); printf(“end”); } Battlemap main Flowgraph 1-3 main 4 b c printf 5 condition 7 end of condition 8-9 July 2005 node:statement or block of sequential statements Web-enhanced IT Classes edge: flow of control between nodes 32 Flowgraph Notation (in C) if (i) ; if (i) ; else ; do ; while (i); July 2005 while (i) ; Web-enhanced IT Classes if (i && j) ; if (i || j) ; switch(i) { case 0: break; ... } 33 Flowgraph and Its Annotated Source Listing Origin information Module: marketing Annotated Source Listing Metric information 0 Program : corp4 09/23/99 File : ..\code\corp4.i Language: instc_npp Module Module Start Num of Letter Name v(G) ev(G) iv(G) Line Lines ------ ----------------------------------------------------------- ----- -----B marketing 2 1 2 16 10 16 17 18 19 20 21 22 23 24 25 B0 B1* B2 B3 B4* B5 B9 B6* B7 B8 } marketing() { int purchase; 1* 2 3 4* 6* 5 7 Decision construct purchase = query("Is this a purchase"); if ( purchase == 1 ) development(); else support(); 8 9 Node correspondence July 2005 Web-enhanced IT Classes 34 Would you buy a used car from this software? • Problem: There are size and complexity boundaries beyond which software becomes hopeless – Too error-prone to use – Too complex to fix – Too large to redevelop • Solution: Control complexity during development and maintenance – Stay away from the boundaries. July 2005 Web-enhanced IT Classes 35 Important Complexity Measures • Cyclomatic complexity: v = e - n + 2 (e=edges; n=nodes) – Amount of decision logic • Essential complexity: ev – Amount of poorly-structured logic • Module design complexity: iv – Amount of logic involved with subroutine calls • System design complexity: S0 = iv – Amount of independent unit (module) tests for a system • System integration complexity: S1 = S0 - N + 1 – Amount of integration tests for a system of N modules. July 2005 Web-enhanced IT Classes 36 Cyclomatic Complexity • Cyclomatic complexity, v - A measure of the decision logic of a software module. – Applies to decision logic embedded within written code. – Is derived from predicates in decision logic. – Is calculated for each module in the Battlemap. – Grows from 1 to high, finite number based on the amount of decision logic. – Is correlated to software quality and testing quantity; units with higher v, v>10, are less reliable and require high levels of testing. July 2005 Web-enhanced IT Classes 37 Cyclomatic Complexity 1 1 edges and node method e = 24, n = 15 v = e – n + 2 = 24 -15 +2 v = 11 2 R1 3 =1 5 2 =2 3 4 R2 6 7 4 =1 R3 5 R4 9 8 10 6 R5 11 7 =1 predicate (logical) method v=+1 v = 11 12 R11 8 13 14 region (topology) method regions = 11 18 10 =1 R6 15 11 =1 R8 16 R7 19 21 Beware of crossing lines 17 9 =2 20 12 R9 22 13 R10 23 23 July 2005 Web-enhanced IT Classes 14 =1 24 38 15 Essential Complexity - Unstructured Logic Branching out of a loop July 2005 Branching in to a loop Branching into a Branching out of a decision decision Web-enhanced IT Classes 39 Essential Complexity, ev • Flowgraph and reduced flowgraph after structured constructs have been removed, revealing decisions that are unstructured. v=5 July 2005 Reduced flowgraph v=3 Therefore ev of the original flowgraph = 3 Web-enhanced IT Classes Superimposed essential flowgraph 40 Essential Complexity, ev • Essential complexity helps detect unstructured code. v = 10 ev = 1 Good designs v = 11 ev = 10 Can quickly deteriorate! July 2005 Web-enhanced IT Classes 41 Module Design Complexity, iv • Example: main() { if (a == b) progd(); if (m == n) proge(); switch(expression) { case value_1: statement1; break; case value_2: statement2; break; case value_3: statement3; } } main iv = 3 progd main Reduced Flowgraph v=5 v=3 progd() progd() proge() proge() do not impact calls July 2005 proge Web-enhanced IT Classes Therefore, iv of the original flowgraph = 3 42 Module Metrics Report v, number of unit test paths for a module Page 1 iv, number of integration tests for a module 10/01/99 Module Metrics Report July Program: less Module Name Mod # v(G) ev(G) iv(G) File Name ------------- ----- ------ ----- ----- -----------------CH:fch_get 118 12 5 6 ..\code\CH.I CH:buffered 117 3 3 1 ..\code\CH.I ch_seek 105 4 4 2 ..\code\CH.I ch_tell 108 1 1 1 ..\code\CH.I ch_forw_get 106 4 1 2 ..\code\CH.I ch_back_get 110 6 5 5 ..\code\CH.I forw_line 101 11 7 9 ..\code\INPUT.I back_line 86 12 11 12 ..\code\INPUT.I prewind 107 1 1 1 ..\code\LINE.I pappend 109 36 26 3 ..\code\LINE.I control_char 119 2 1 1 ..\code\OUTPUT.I carat_char 120 2 1 1 ..\code\OUTPUT.I flush 130 1 1 1 ..\code\OUTPUT.I putc 122 2 1 2 ..\code\OUTPUT.I puts 100 2 1 2 ..\code\OUTPUT.I error 83 5 1 2 ..\code\OUTPUT.I position 114 3 1 1 ..\code\POSITION.I add_forw_pos 99 2 1 1 ..\code\POSITION.I pos_clear 98 2 1 1 ..\code\POSITION.I PRIM:eof_bell 104 2 1 2 ..\code\PRIM.I PRIM:forw 95 15 8 12 ..\code\PRIM.I PRIM:prepaint 94 1 1 1 ..\code\PRIM.I repaint 93 1 1 1 ..\code\PRIM.I home 97 1 1 1 ..\code\SCREEN.I lower_left 127 1 1 1 ..\code\SCREEN.I bell 116 2 1 2 ..\code\SCREEN.I vbell 121 2 1 2 ..\code\SCREEN.I clear 96 1 1 1 ..\code\SCREEN.I clear_eol 128 1 1 1 ..\code\SCREEN.I so_enter 89 1 1 1 ..\code\SCREEN.I so_exit 90 1 1 1 ..\code\SCREEN.I getc 91 2 1 2 ..\code\TTYIN.I ------------- ----- ------ ----- ----- -----------------2005 IT Classes Total: 142 93Web-enhanced 82 Average: 4.44 2.91 2.56 Rows in Report: 32 Total number of test paths for all modules Average number of test paths for each module 43 Low Complexity Software • Reliable – Simple logic • Low cyclomatic complexity – Not error-prone – Easy to test • Maintainable – Good structure • Low essential complexity – Easy to understand – Easy to modify July 2005 Web-enhanced IT Classes 44 Moderately Complex Software • Unreliable – Complicated logic • High cyclomatic complexity – Error-prone – Hard to test • Maintainable – Can be understood – Can be modified – Can be improved July 2005 Web-enhanced IT Classes 45 Highly Complex Software • Unreliable – Error prone – Very hard to test • Unmaintainable – Poor structure • High essential complexity – Hard to understand – Hard to modify – Hard to improve July 2005 Web-enhanced IT Classes 46 McCabe QA McCabe QA measures software quality with industry-standard metrics – Manage technical risk factors as software is developed and changed – Improve software quality using detailed reports and visualization – Shorten the time between releases – Develop contingency plans to address unavoidable risks July 2005 Web-enhanced IT Classes 47 Processing with McCabe Tools Traditional Procedures Project Code BUILD Level CM Compile & Link Preprocess src files Run & Test inst.exe ClearCase inst-src New McCabe’s Procedures Trace File Inst-lib.c src TEST Level *.E IMPORT Instrumented src inst-src; inst-lib.c Battlemap PARSE ANALYSIS Level Flowgraphs Reports Text July 2005 Output Test Plan Graphics Web-enhanced IT Classes Coverage Analysis Coverage Report 48 Project B: Backbone™ Concentration Node July 2005 Web-enhanced IT Classes 49 Project B: Backbone Concentration Node • This system has been designed to support carrier networks. It provides both services of conventional Layer 2 switches and the routing and control services of Layer 3 devices. • Nine protocol-based subtrees of the code (3400 modules written in the C programming language for BGP, DVMRP, Frame Relay, ISIS, IP, MOSPF, OSPF2, PIM, and PPP protocols) have been analyzed. July 2005 Web-enhanced IT Classes 50 Project-B Protocol-Based Code Analysis • Unreliable modules: 38% of the code modules have the Cyclomatic Complexity more than 10 (including 592 functions with v > 20); • Only two code parts (FR, ISIS) are reliable; • BGP and PIM have the worst characteristics (49% of the code modules have v > 10); • 1147 modules (34%) are unreliable and unmaintainable with v > 10 and ev > 4; • BGP, DVMRP, and MOSPF are the most unreliable and unmaintainable (42% modules); • The Project-B was cancelled. July 2005 Web-enhanced IT Classes 51 Project-B Code Protocol-Based Analysis (continue) • 1066 functions (31%) have the Module Design Complexity more than 5. The System Integration Complexity is 16026, which is a top estimation of the number of integration tests; • Only FR, ISIS, IP, and PPP modules require 4 integration tests per module. BGP, MOSPF, and PIM have the worst characteristics (42% of the code modules require more than 7 integration tests per module); • B-2.0.0.0int18 Release potentially contains 2920 errors estimated by the Halstead approach. FR, ISIS, and IP have relatively low (significantly less than average level of 0.86 error per module) Berror metrics. For BGP, DVMRP, MOSPF, and PIM, the error level is the highest one (more than one error per module). July 2005 Web-enhanced IT Classes 52 Comparing Project-B Core Code Releases • • • • • • • • • • NEW B-1.3 Release (262 modules) vs. OLD B-1.2 Release (271 modules); 16 modules were deleted (7 with v >10); 7 new modules were added (all with v < 10, ev = 1); Sixty percent of changes have been made in the code modules with the parameters of the Cyclomatic Complexity metric more than 20. 63 modules are still unreliable and unmainaitable; 39 out of 70 (56%) modules with v >10 were targeted for changing and remained unreliable; 7 out of 12 (58%) modules have increased v > 10; Significant reduction achieved in System Design (S0) and System Integration Metrics (S1): S1 from 1126 to 1033; S0 from 1396 to 1294. New Release potentially contains 187 errors (vs. 206 errors) estimated by the Halstead approach. Nevertheless, the Project-B was cancelled. July 2005 Web-enhanced IT Classes 53 Project C: Broadband Service Node • Broadband Service Node (BSN) allows service providers to aggregate tens of thousands of subscribers onto one platform and apply customized IP services to these subscribers; • Different networking services [IPVPNs, Firewalls, Network Address Translations (NAT), IP Quality-ofService (QoS), Web steering, and others] are provided. July 2005 Web-enhanced IT Classes 54 Project-C Code Subtrees-Based Analysis • THREE branches of the Project-C code (Release 2.5int21) have been analyzed, namely RMC, CT3, and PSP subtrees (23,136 modules); • 26% of the code modules have the Cyclomatic Complexity more than 10 (including 2,634 functions with v > 20); - unreliable modules! • All three code parts are approximately at the same level of complexity (average per module: v = 9.9; ev = 3.89; iv = 5.53). • 1.167 Million lines of code have been studied (50 lines average per module); • 3,852 modules (17%) are unreliable and unmaintainable with v > 10 and ev > 4; • Estimated number of possible ERRORS is 11,460; • 128,013 unit tests and 104,880 module integration tests should be developed to cover all modules of the Project-C code. July 2005 Web-enhanced IT Classes 55 Project-C Protocol-Based Code Analysis • • • • • • • • • • NINE protocol-based areas of the code (2,141 modules) have been analyzed, namely BGP, FR, IGMP, IP, ISIS, OSPF, PPP, RIP, and SNMP. 130,000 lines of code have been studied. 28% of the code modules have the Cyclomatic Complexity more than 10 (including 272 functions with v > 20); - unreliable modules! FR & SNMP parts are well designed & programmed with few possible errors. 39% of the BGP and PPP code areas are unreliable (v > 10). 416 modules (19.4%) are unreliable & unmaintainable (v >10 & ev >4). 27.4% of the BGP and IP code areas are unreliable & unmaintainable. Estimated number of possible ERRORS is 1,272; 12,693 unit tests and 10,561 module integration tests should be developed to cover NINE protocol-based areas of the Project-C code. The decision has been made in re-designing the Project-C software and developing a new system prototype. July 2005 Web-enhanced IT Classes 56 Correlation between the Number of Error Submits, the Number of Unreliable Functions (v > 10), and the Number of Possible Errors for Six Protocols BGP 400 300 RIP FR 200 Submits 100 Unreliable Functions 0 Possible Errors OSPF IP ISIS July 2005 Web-enhanced IT Classes 57 Correlation between the Number of Customer Reports, the Number of Unreliable Functions (v > 10), and the Number of Possible Errors for Five Protocols BGP 400 300 200 RIP Customer Reports FR 100 Unreliable Functions 0 Possible Errors OSPF July 2005 ISIS Web-enhanced IT Classes 58 The Structured Testing Methodology has done for us: • Identified complex code areas (high v). • Identified unreliable & unmaintainable code (v >10 & ev >4). • Predicted number of code errors and maintenance efforts [Halstead B, E-, and T-metrics]. • Estimated manpower to develop, test, and maintain the code. • Developed strategies for unit/module testing, integration testing. • Provided Test & Code Coverage [paths vs. lines]. • Identified “dead” code areas. • Improved Software Design and Coding Standards. • Improved Reengineering Efforts in many other projects. • Validated Automated Test Effectiveness. July 2005 Web-enhanced IT Classes 59 Conclusions • Web-enhanced classes in Networking Technologies and other related areas provide students with better instructional support than “traditional” classes; • Warm-up in-class exercises, homework assignments, lecture notes, field trips to IT Services, and virtual labs help students being familiar with modern stateof-the-arts networking technologies; • Students’ challenge projects and research become vital components of their active studies at colleges that help students finding jobs and being promoted in the networking companies; • Instructional openness and support become powerful resource for students in classroom and in their future professional life. July 2005 Web-enhanced IT Classes 60