S1: Meeting 10
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)
S2: Year 2000 Issue in Software Industry
  • Misinterpretation of dates in computerized systems
    • Two digit convention for year (DD/MM/YY)
      • Ex. MSG case study (valid_year)
    • Cause misinterpretation in year 2000
    • Can affect vital systems, e.g. power, government, banks, ...
    • Substantial efforts to avoid the problem is underway
      • at virtually every institution, including U of M
    • Q? Is your organization working on it?
    • Q? What stage are they at?
    • Awareness, Assessment, Renovation, Validation, Deployment
  • References:
    MITRE (http://www.mitre.org/research/y2k)
    Peter de Jager (http://www.year2000.com)
    IBM (http://www.s390.ibm.com/stories/tran2000.html)
    Federal Govt. (http://www.itpolicy.gsa.gov/mks/yr2000)
    See more links at instructor announcements
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)
S3: A Case Study: Insurance Industry
  • Problems
    • Computing customer age in year 2000
      • Customer born in 1926 = > (00 -26) = -26
    • Annuity Eligibilty (age > 60):
      • Make every one ineligible
    • Sorting records:
      • "00" shows up oldest record instead of newest
    • Discard old data (migrate to archive)
      • May discard newest data
    • Areas of Impact
    • Service: Custoers will be affected.
    • Product Value: potential loss of customers
  • Risks
    • Premium payment computation, under/over billing
    • Premature expiry dates on policies
    • Determining age based risks
    • System recovery, COTS packages
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)
S4: What are the Problems?
  • Year as a Two digit number
    • Arithmetic, e.g. negative age
    • Comparison, Sorting
    • Input, Output to Databases and Files
  • Leap recognition algorithms
    • divisible(Y, 4) {unless divisible(Y, 100) {unless divisible(Y, 400)}}
    • Year 2000 is a leap year, Year 2100 is not!
  • Magic Number
    • YY = "99" or "00" = > never delete this or demo
  • System date data type overflow
    • Ex. 2034-09-30 for Unix time function
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)
S5: How vast are the Problems? Compliance Questions
  • Are there any date fields used by the product?
  • How many digits are the year fields?
  • Does it accept dates directly from the user?
  • How does the user specify the year?
  • How does product compute leap year?
  • Are dates stored internally as a specific "date" data type?
    • Is it done using a base year with an offset number of seconds/days?
    • What size is the data type storing the offset?
  • What is the valid date range?
  • Are two-digit years allowed?
    • If so, how are they usd in comparison, calculations, etc?
  • Are any special values for date fields used? (e.g. 9/9/99, 1/1/11)
  • Does product use dates in verifying license validity?
  • Details of solution approach. ...
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)
S6: How vast are the Problems?
  • System Software
    • O.S.: Expiry of trial software/ Passwords/ Data cache
    • DBMS: Date storage, Date/Time Arithmetic
    • Mathematical software: random number generators
    • Compilers: Time-stamped object codes (e.g. makefiles)
  • Embedded Systems
    • Medical: Pacemaker, Heart defribulators
    • Instrumentation: Power generation, Water, Factory
    • Monitoring: Heating, A/C, Security, Air/Water quality
    • Communication: Telephone exchanges, Satellites,
    • Finance: ATMs, Credit cards, smart Id cards
    • Other: TV, VCR, Microwave, Fax, ...
  • Personal Computer
    • Real Time Clock
    • Basic Input/Output System (BIOS)
    • Operating System or Application Software
  • Paranoid
    • Power: Best selling chrismas 1999 gift = batteries ?
    • Bank Account: Save you Dec 1999 statements!
    • Will any airplanes fly that night?
    • University: Graduate before 2000 ? Get your transcripts?
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)
S7: What are the solutions?
  • Leap year, magic number and date counter overflow problems
    • Fix as they are found
  • Approaches to Two digit year problem
    • Expand year field to 4 digits
    • Encode century information in a six digit space
    • Use a 100 year logic window
    • Data bridge with a logic window
    • Reverse system clock with 28 year bridge
    • Replace or retire the system
    • Do nothing to software
  • Comparison:
    • Expansion: +general solution for future, but costly
    • Encoding: + preserves data length, but costly
    • Logic: + less changes but limits to 100 year window
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)
S8: Testing for Y2K Compliance
  • Back up your system
  • Capability to set year 2000 in system clock
  • Test for Year 2000 rollover
  • Test for time update by operating systems
  • Ex. Design Black Box Testcases for a Valid Date
    • Consider following Equivalence Classes/ Boundaries
    • Leap year based: (i) not divisible by 4, (ii) divisible by 4,
      • (iii) divisible by 100, (iv) divisible by 400
    • Magic Numbers: MM/DD/YY madeup of '9's or '0's
    • Transition into year 2000, (into 2001, and into 1999)
    • 2-digit Year Representation: Ambiguity (19YY vs. 20YY),
    • 8 character format (e.g. 12/18/99, 11/30/99, 1/2/98):
      • first 9 character date, first 10 character date
    • Ex. Repeat previous question for
    • Jewish Calendar
    • Islamic Calendar
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)
S9: Component Models
  • UVC Video Tape: The Component Object Model - Kindel
    • About 45 minutes.
  • Discussion Questions
    • 1. What are the goals of component technolgy?
      • How will it impact Software life-cycle?
    • 2. Compare and contrast
      • Components vs. Modules
      • Components vs. Objects
      • Implementation Inheritance vs. Interface Inheritance
    • Binary or blackbox reuse vs. Derived Classes
    • 3. Which of the following support component technology?
      • Microsoft OLE, Microsoft COM, Java Beans, CORBA
    • 4. What kind of inheritance is discouraged by the speaker? Why?
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)
S10: Component Models - References
  • Books
    • 1. C. Szyperski, Addison Wesley, 1997 (ISBN 0-201-17888-5)
      • Component Software: Beyond Object-Oriented Programming.
    • 2. Understanding ActiveX and OLE - A Guide for ...
    • The Essential Distributed Objects Survival Guide,
      • Orfali 1996
    • Websites
    • IBM SOM - http://www.software.ibm.com
    • Iona - http://www.iona.com
    • JavaBeans - http://java.sun.com/beans
    • ActiveX - http://www.microsoft.com/activex/
    • CORBA - htpp://www.omg.org/
Copyright: S. Shekhar, C. S. Dept., University of Minnesota, Minneapolis, MN 55455. ,,.(home)