Archives

July 9th, 2011 | Tags: C++, software | Category: CodeProject, Software

A practical guide to C++ serialization

CodeProject In a nutshell, serialization consists of writing data and objects on a support (a file, a buffer, a socket), so that they can be reconstructed later in the memory of the same or another computing host. The reconstruction process is also known as deserialization. Serializing a primitive type like a bool, int, or float, [...] [...]

Continue reading A practical guide to C++ serialization

May 30th, 2011 | Tags: C++, quality, software | Category: CodeProject, Software

How to make software deterministic

CodeProject A program is deterministic, or repeatable, if it produces the very same output when given the same input no matter how many times it is run. Refining this definition, we should consider whether a program produces the same result on any platform (32 and 64 bits machines, running Windows, Mac OS, Linux, Solaris, etc). [...] [...]

Continue reading How to make software deterministic

April 9th, 2011 | Tags: C++, quality, software | Category: CodeProject, Software

What is software quality?

CodeProject The quality of software is assessed by a number of variables. These variables can be divided into external and internal quality criteria. External quality is what a user experiences when running the software in its operational mode. Internal quality refers to aspects that are code-dependent, and that are not visible to the end-user. External [...] [...]

Continue reading What is software quality?

July 7th, 2010 | Tags: C++, quality, software | Category: CodeProject, Software

How to write abstract iterators in C++

CodeProject When developing in C++, an impeccable API is a must have: it has to be as simple as possible, abstract, generic, and extensible. One important generic concept that STL made C++ developers familiar with is the concept of iterator. An iterator is used to visit the elements of a container without exposing how the [...] [...]

Continue reading How to write abstract iterators in C++

November 6th, 2009 | Tags: ASIC, EDA, FPGA, software, verification | Category: Business, EDA

What EDA needs to change for 2020 success?

ICCAD’09 was a fairly good vintage. It started Monday morning with an excellent keynote from Hamid Pirahesh about cloud computing. The same day in the afternoon, a more EDA-focused discussion was initiated by Jim Hogan and Paul McLellan (slides can be found here), asking the question “What EDA needs to change for 2020 success?” Paul [...] [...]

Continue reading What EDA needs to change for 2020 success?

October 30th, 2009 | Tags: Altera, FPGA, India, outsourcing, software, Xilinx | Category: FPGA

How can Xilinx improve its bottom line

Last week I wrote a post discussing Xilinx and Altera Q3’09 results, and I mentioned Xilinx’ operation margin consistently trailing Altera’s by 3-4%. I had a few emails regarding that gap, and why that gap would be closed eventually. Let me address this topic with this post. Comparing the yearly fiscal exercises directly would be [...] [...]

Continue reading How can Xilinx improve its bottom line

October 13th, 2009 | Tags: EDA, quality, software, verification | Category: CodeProject, Software

Test-driven design, a methodology for low-defect software

CodeProject I wrote earlier about the good practices in designing APIs, which is so important when developing complex software. However one usually does not have the chance to start a product from scratch. This means that more often than ever, a software manager picks up an existing tool with an existing team. Making the tool [...] [...]

Continue reading Test-driven design, a methodology for low-defect software

October 8th, 2009 | Tags: quality, software | Category: CodeProject, Software

API design 101

CodeProjectI built up products from scratch several time in my professional life. Usually it starts with a very small engineering team –sometimes I was the very first member of the team. This is a great opportunity to lay strong foundations for the subsequent software development, because one is in charge of the whole process. But [...] [...]

Continue reading API design 101

September 20th, 2009 | Tags: China, India, outsourcing, software | Category: Business, Software

Software outsourcing, a necessary evil

CodeProjectHere are the definitions of two words that have a bad press, especially in these harsh economic times: Outsourcing (included in dictionaries in 1979): the procuring of services or products, such as the parts used in manufacturing a motor vehicle, from an outside supplier or manufacturer in order to cut costs. Offshoring: relocation by a [...] [...]

Continue reading Software outsourcing, a necessary evil