S1: Meeting 10
- Administrative Issues
- Final Exam. : Syllabus, Format
- Last call for grade verification
- Today's Topics for Discussion
- Year 2000 Issue in Software Industry
- What are the Problems?
- How vast are the Problems?
- What are the soluitions?
- MSG Case Study
- Component Models
- Video Tape
- Discussion Questions
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)
- 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
- 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
- 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,
- 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)