Archive for August, 2008

Performance related Metrics in software

Thursday, August 28th, 2008

Here are some of the most important Performance related Metrics in Software.

1)  response time for a transaction (average, maximum)
2)  throughput, for example, transactions per second
3)  capacity, for example, the number of customers or transactions the system can accommodate
4) degradation modes (what is the acceptable mode of operation when the system has been degraded in some manner)
5) resource utilization, such as memory, disk, communications, etc.

What is Kaizen?

Thursday, August 28th, 2008

Kaizen is often translated in the west as ongoing, continuous improvement.  In contrast to the usual emphasis on revolutionary, innovative change on an occasional basis, Kaizen looks for uninterrupted, ongoing incremental change. In other words, there is always room for improvement and continuously trying to become better.

Originally a Buddhist term, Kaizen comes from the words, “Renew the heart and make it good.” Therefore, adaptation of the Kaizen concept also requires changes in “the heart of the business”, corporate culture and structure, since Kaizen enables companies to translate the corporate vision in every aspect of a company’s operational practice.

In practice, Kaizen can be implemented in corporations by improving every aspect of a business process in a step by step approach, while gradually developing employee skills through training education and increased involvement. The principle in Kaizen implementation are:

1) human resources are the most important company asset,
2) processes must evolve by gradual improvement rather than radical changes,
3) improvement must be based on statistical/quantitative evaluation of process performance.

What is Balanced Scorecard?

Thursday, August 28th, 2008

The balanced scorecard is a new management concept which helps managers at all levels monitor results in their key areas.

Kaplan and Norton have recommended broadening the scope of the measures to include following four areas:

1) financial performance
2) customer knowledge
3) internal business processes
4) learning and growth

This allows the monitoring of present performance, but also tries to capture information about how well the organization is positioned to perform well in the future.

Some of the Benefits of using the balanced scorecard:

1) Focusing the whole organization on the few key things needed to create breakthrough performance.
2) Helping to integrate various corporate programs, such as quality, re-engineering, and customer service initiatives.
3) Breaking down strategic measures to local levels so that unit managers, operators, and employees can see what’s required at their level to roll into excellent performance overall.

Difference Between Image formats

Friday, August 22nd, 2008

The JPEG Format

The JPEG format support for 16.7 million colors, is primarily intended for photographic images. The internal compression algorithm of the JPEG format, unlike the GIF format, actually throws out information. Once you lower the quality of an image, and save it, the extra data cannot be regained so be sure to save the original.

The GIF Format

The GIF format is one of the most popular formats on the Internet. Not only is the format excellent at compressing areas of images with large areas of the same color, but it is also the only option for putting animation online. The GIF89a format also supports transparency, and interlacing.

GIF files support a maximum of 256 colors, which makes them practical for almost all graphics except photographs. It is important to note that GIF already uses the LZW compression scheme internally to make images as small as possible without losing any data.

The PNG format

The third, and newest, file format that’s widely supported by the Web is PNG (pronounced Ping). PNG was developed to surpass the limitations of GIFs, and as a means by which developers can avoid having to worry about the patent licenses associated with other formats. PNG was designed to offer the main features of the GIF format, including streaming and progressive file formats. It also provides greater depth of color, catering to images up to 24 bit in color. It is important to note that it doesn’t support animation.

What are the Quality Characteristics of a Software Requirement Specifications(SRS)?

Friday, August 22nd, 2008

 Complete:  SRS defines precisely all the go-live situations that will be encountered and the system’s capability to successfully address them.

 Consistent: SRS capability functions and performance levels are compatible, and the required quality features (security, reliability, etc.) do not negate those capability functions. For example, the only electric hedge trimmer that is safe is one that is stored in a box and not connected to any electrical cords or outlets.

 Accurate:  SRS precisely defines the system’s capability in a real-world environment, as well as how it interfaces and interacts with it. This aspect of requirements is a significant problem area for many SRSs.

 Modifiable:  The logical, hierarchical structure of the SRS should facilitate any necessary modifications (grouping related issues together and separating them from unrelated issues makes the SRS easier to modify).

 Ranked: Individual requirements of an SRS are hierarchically arranged according to stability, security, perceived ease/difficulty of implementation, or other parameter that helps in the design of that and subsequent documents.

 Testable:  An SRS must be stated in such a manner that unambiguous assessment criteria (pass/fail or some quantitative measure) can be derived from the SRS itself.

 Traceable:  Each requirement in an SRS must be uniquely identified to a source (use case, government requirement, industry standard, etc.)

 Unambiguous:  SRS must contain requirements statements that can be interpreted in one way only. This is another area that creates significant problems for SRS development because of the use of natural language.

 Valid:  A valid SRS is one in which all parties and project participants can understand, analyze, accept, or approve it. This is one of the main reasons SRSs are written using natural language.

 Verifiable:  A verifiable SRS is consistent from one level of abstraction to another. Most attributes of a specification are subjective and a conclusive assessment of quality requires a technical review by domain experts. Using indicators of strength and weakness provide some evidence that preferred attributes are or are not present.

What is Subversion(SVN)?

Friday, August 22nd, 2008

SVN is a free open-source  version control system. That is, SVN manages files and directories over time. Files are stored in a central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older versions of your files and examine the history of how and when your data changed, and who changed it.

Security Mechanism in .Net

Thursday, August 14th, 2008

.NET has its own security mechanism with two general features: Code Access Security (CAS), and validation and verification. Code Access Security is based on evidence that is associated with a specific assembly. Typically the evidence is the source of the assembly. Code Access Security uses evidence to determine the permissions granted to the code. Other code can demand that calling code is granted a specified permission. The demand causes the CLR to perform a call stack walk: every assembly of each method in the call stack is checked for the required permission; if any assembly is not granted the permission a security exception is thrown.

When an assembly is loaded the CLR performs various tests. Two such tests are validation and verification. During validation the CLR checks that the assembly contains valid metadata and CIL, and whether the internal tables are correct. Verification is not so exact. The verification mechanism checks to see if the code does anything that is ‘unsafe’. The algorithm used is quite conservative; hence occasionally code that is ’safe’ does not pass. Unsafe code will only be executed if the assembly has the ’skip verification’ permission, which generally means code that is installed on the local machine.

.NET Framework uses appdomains as a mechanism for isolating code running in a process. Appdomains can be created and code loaded into or unloaded from them independent of other appdomains. This helps increase the fault tolerance of the application, as faults or crashes in one appdomain do not affect rest of the application. Appdomains can also be configured independently with different security privileges. This can help increase the security of the application by isolating potentially unsafe code. The developer, however, has to split the application into subdomains; it is not done by the CLR.

Binary Runtime Environment for Wireless(BREW)

Thursday, August 14th, 2008

BREW is an application development platform created by Qualcomm for mobile phones. It was originally developed for CDMA handsets, but has since been ported to other air interfaces including GSM/GPRS. BREW is a software platform that can download and run small programs for playing games, sending messages, sharing photos, etc. The main advantage of BREW platforms is that the application developers can easily port their applications between all Qualcomm devices. BREW runs between the application and the wireless device’s chip operating system so as to enable a programmer to develop applications without needing to code for system interface or understand wireless applications

Advantages and Disadvantages of XML

Thursday, August 14th, 2008

Advantages of XML

1)  It supports Unicode, allowing almost any information in any written human language to be communicated.
2)  It can represent common computer science data structures: records, lists and trees.
3)  Its self-documenting format describes structure and field names as well as specific values.
4)  The strict syntax and parsing requirements make the necessary parsing algorithms extremely simple, efficient, and consistent.
5)  XML is heavily used as a format for document storage and processing, both online and offline.
6)  It is based on international standards.
7)  It can be updated incrementally.
8)  It allows validation using schema languages such as XSD and Schematron, which makes effective unit-testing, firewalls, acceptance testing, contractual specification and software construction easier.
9)  The hierarchical structure is suitable for most (but not all) types of documents.
10)  It is platform-independent, thus relatively immune to changes in technology.
11)  Forward and backward compatibility are relatively easy to maintain despite changes in DTD or Schema.

Disadvantages of XML

1)  XML syntax is redundant or large relative to binary representations of similar data especially with tabular data.
2)  The redundancy may affect application efficiency through higher storage, transmission and processing costs
3)  XML syntax is verbose, especially for human readers, relative to other alternative ‘text-based’ data transmission formats.
4)  The hierarchical model for representation is limited in comparison to an object oriented graph
5)  Expressing overlapping (non-hierarchical) node relationships requires extra effort.
6)  XML namespaces are problematic to use and namespace support can be difficult to correctly implement in an XML parser.
7)  XML is commonly depicted as “self-documenting” but this depiction ignores critical ambiguities.
8)  The distinction between content and attributes in XML seems unnatural to some and makes designing XML data structures harder.
9)  Transformations, even identity transforms, result in changes to format (whitespace, attribute ordering, attribute quoting, whitespace around attributes, newlines). These problems can make diff-ing the XML source very difficult.
10)  Encourages non-relational data structures (data non-normalized)
11)XML is very concrete and highly non-canonical. It introduces a very strong coupling between the actual representation chosen and the processing program (unlike relational storage and SQL)

How does data mining work?

Friday, August 8th, 2008

While large-scale information technology has been evolving separate transaction and analytical systems, data mining provides the link between the two. Data mining software analyzes relationships and patterns in stored transaction data based on open-ended user queries. Several types of analytical software are available: statistical, machine learning, and neural networks. Generally, any of four types of relationships are sought:

1) Classes: Stored data is used to locate data in predetermined groups. For example, a restaurant chain could mine customer purchase data to determine when customers visit and what they typically order. This information could be used to increase traffic by having daily specials.

2) Clusters: Data items are grouped according to logical relationships or consumer preferences. For example, data can be mined to identify market segments or consumer relationships.

3) Associations: Data can be mined to identify associations. The beer-shaving cream example is an example of associative mining.

4) Sequential patterns: Data is mined to anticipate behavior patterns and trends. For example, an outdoor equipment retailer could predict the likelihood of a backpack being purchased based on a consumer’s purchase of sleeping bags and hiking shoes.