200 likes | 395 Views
MECOP Internship August 2008. Kevin Jones SOFTWARE DEVELOPMENT INTERN CALIBRE – YIELD SERVER. Background. HP Planar Systems Mentor Graphics – DFM Sridhar – Mentor Greg - Manager Calibre - YS. Work Conditions. Hours - 40 hours/week Wages – $21/hour Overtime – pre-approved. Projects.
E N D
MECOP InternshipAugust 2008 Kevin Jones SOFTWARE DEVELOPMENT INTERN CALIBRE – YIELD SERVER
Background • HP • Planar Systems • Mentor Graphics – DFM • Sridhar – Mentor • Greg - Manager • Calibre - YS KCJ, MECOP Internship, August 2008
Work Conditions • Hours - 40 hours/week • Wages – $21/hour • Overtime – pre-approved KCJ, MECOP Internship, August 2008
Projects KCJ, MECOP Internship, August 2008
Organizational Reporting Structure • Mentor – Sridhar • Assigned most tasks • DFM • Manager – Greg • Calibre • Related products/tasks • QA KCJ, MECOP Internship, August 2008
Projects & Tasks • Getting up to speed… • C++ • Basics of Application Specific Integrated Circuits • Calibre products • TCL, TK, and C APIs • Perl KCJ, MECOP Internship, August 2008
Projects & Tasks • Getting up to speed…(continued) • Environment • Linux • Mentor build environment • Regression test environment • Other tools: • Debugger • Rational Purify • Sun Performance Analyzer KCJ, MECOP Internship, August 2008
Projects & Tasks • Converted help output to TCL • Allowed for access from other products • Multi-command TCL script (left) • Redirects commands to multiple YS instances • Used for DFM DB lock testing KCJ, MECOP Internship, August 2008
Projects & Tasks • Command, Object, and Notification Registry • Common Goals: • Simplify common tasks • Centralize entry locations • Eliminate invalid/inconsistent entries KCJ, MECOP Internship, August 2008
Command, Object, Notification Registry KCJ, MECOP Internship, August 2008
Projects & Tasks • Command Registry • Single line of text will: • Register the command with the TCL interpreter • Integrate the command with the help system • Possibly add it to an API for supported commands • Command completion • Object Registry • Generates code needed to create a new TCL type • Notification Registry • Generates code needed to add a new notification and process the specified arguments • Refactored to remove unneeded levels of indirection KCJ, MECOP Internship, August 2008
Projects & Tasks • Added, exposed and/or updated various interfaces and commands • Updated various TCL types to use a change observer interface (allowing for proper object lifetime) • Updated some commands to support read-only databases • Added support for sending load-time progress to GUI clients. KCJ, MECOP Internship, August 2008
Projects & Tasks • Updated all commands in YS to use exceptions for error handling. • Implemented a Performance Monitoring infrastructure for: • Timing various tasks • Measuring memory usages changes. • Created large invalid-input test case, which resulted in fixing many (75+) potential crash scenarios. KCJ, MECOP Internship, August 2008
Projects & Tasks • Added new revision commands for extracting revision tree information. • Updated revision listing command • Now works with unloaded database (much faster) • Updated sort algorithm • Analyzed and documented YS /DFM DB timing • Based on a series of test cases & scenarios • Breakdown of time-consuming call hierarchy • Created a Tk GUI based help implementation KCJ, MECOP Internship, August 2008
What I learned… KCJ, MECOP Internship, August 2008
What I’ve learned • Basics of what the EDA industry is about • Implications of huge code base: • Lots of testing, retesting • Languages: C++, Perl, TCL/Tk, Shell Scripting • Gained more experience working with large code bases • Product development in Linux environment KCJ, MECOP Internship, August 2008
Helpful courses • Programming Projects in C++ (CS 262) • Data Structures (CS 261) • Operating Systems I/II (CS 311/CS 411) • Analysis of Algorithms (CS 325) KCJ, MECOP Internship, August 2008
Overall Impressions • Mutually beneficial • Learned what I wanted to learn and more! • Completed many tasks, created numerous documents, maintained code quality KCJ, MECOP Internship, August 2008
Internship Differences • Planar Systems • Small company with minimal facilities • Software team in a hardware company • Windows; C# development; single target platform • Mentor Graphics • Large company with on-site cafeteria, gym, recreational equipment, etc. • Software company with a hardware focus - steeper product/topic learning curve • Linux; C/C++,Tcl/Tk, Perl development; numerous target platforms KCJ, MECOP Internship, August 2008