Featured Posts

Software Development

Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. Especially the first phase in the software development process may involve many departments, including marketing, engineering, research and development and general management.

The term software development may also refer to computer programming, the process of writing and maintaining the source code.

There are several different approaches to software development, much like the various views of political parties toward governing a country. Some take a more structured, engineering-based approach to developing business solutions, whereas others may take a more incremental approach, where software evolves as it is developed piece-by-piece.

READ THE FULL ARTICLE >>

Software Testing

Software testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context in which it is intended to operate. Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs.

Software Testing can also be stated as the process of validating and verifying that a software program/application/product:

  1. meets the business and technical requirements that guided its design and development;
  2. works as expected; and
  3. can be implemented with the same characteristics.

Software Testing, depending on the testing method employed, can be implemented at any time in the development process. However, most of the test effort occurs after the requirements have been defined and the coding process has been completed. As such, the methodology of the test is governed by the Software Development methodology adopted.

READ THE FULL ARTICLE >>

Ajax Programming

Ajax (shorthand for asynchronous JavaScript + XML) is a group of interrelated web development techniques used on the client-side to create interactive web applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page.

The use of Ajax techniques has led to an increase in interactive or dynamic interfaces on web pages. Data is usually retrieved using the XMLHttpRequest object. Despite the name, the use of JavaScript and XML is not actually required, nor do the requests need to be asynchronous.

READ THE FULL ARTICLE >>

Information Technology Consulting

Information technology consulting (IT consulting, Computer consultancy, Computing consultancy, technology consulting or business and technology services) is a field that focuses on advising businesses on how best to use information technology to meet their business objectives. In addition to providing advice, IT consultancies often implement, deploy, and administer IT systems on businesses’ behalf.

The IT consulting industry can be viewed as a three-tier system:

  • Professional services firms which maintain large professional workforces and command high bill rates.
  • Staffing firms, which place technologists with businesses on a temporary basis, typically in response to employee absences, temporary skill shortages and technical projects.
  • Independent consultants, who function as employees of staffing firms (for US tax purposes, employed on “W-2″), or as independent contractors in their own right (for US tax purposes, on “1099″).

READ THE FULL ARTICLE >>

Reasons for Outsourcing

Organizations that outsource are seeking to realize benefits or address the following issues:

  • Cost savings. The lowering of the overall cost of the service to the business. This will involve reducing the scope, defining quality levels, re-pricing, re-negotiation, cost re-structuring. Access to lower cost economies through offshoring called “labor arbitrage” generated by the wage gap between industrialized and developing nations.
  • Focus on Core Business. Resources (for example investment, people, infrastructure) are focused on developing the core business. For example often organizations outsource their IT support to specialised IT services companies.
  • Cost restructuring. Operating leverage is a measure that compares fixed costs to variable costs. Outsourcing changes the balance of this ratio by offering a move from fixed to variable cost and also by making variable costs more predictable.
  • Improve quality. Achieve a step change in quality through contracting out the service with a new service level agreement.
  • Knowledge. Access to intellectual property and wider experience and knowledge.
    Contract. Services will be provided to a legally binding contract with financial penalties and legal redress. This is not the case with internal services.
  • Operational expertise. Access to operational best practice that would be too difficult or time consuming to develop in-house.
  • Access to talent. Access to a larger talent pool and a sustainable source of skills, in particular in science and engineering.
  • Capacity management. An improved method of capacity management of services and technology where the risk in providing the excess capacity is borne by the supplier.
  • Catalyst for change. An organization can use an outsourcing agreement as a catalyst for major step change that can not be achieved alone. The outsourcer becomes a Change agent in the process.
  • Enhance capacity for innovation. Companies increasingly use external knowledge service providers to supplement limited in-house capacity for product innovation.
  • Reduce time to market. The acceleration of the development or production of a product through the additional capability brought by the supplier.
  • Commodification. The trend of standardizing business processes, IT Services, and application services which enable to buy at the right price, allows businesses access to services which were only available to large corporations.
  • Risk management. An approach to risk management for some types of risks is to partner with an outsourcer who is better able to provide the mitigation.
  • Venture Capital. Some countries match government funds venture capital with private venture capital for startups that start businesses in their country.
  • Tax Benefit. Countries offer tax incentives to move manufacturing operations to counter high corporate taxes within another country.

This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article “Outsourcing”.

Testing Methods

Software testing methods are traditionally divided into black box testing and white box testing. These two approaches are used to describe the point of view that a test engineer takes when designing test cases.

Black box testing

Black box testing treats the software as a “black box”—without any knowledge of internal implementation. Black box testing methods include: equivalence partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based testing, traceability matrix, exploratory testing and specification-based testing.

READ THE FULL ARTICLE >>

Database Design

Database design is the process of producing a detailed data model of a database. This logical data model contains all the needed logical and physical design choices and physical storage parameters needed to generate a design in a Data Definition Language, which can then be used to create a database. A fully attributed data model contains detailed attributes for each entity.

The term database design can be used to describe many different parts of the design of an overall database system. Principally, and most correctly, it can be thought of as the logical design of the base data structures used to store the data. In the relational model these are the tables and views. In an object database the entities and relationships map directly to object classes and named relationships. However, the term database design could also be used to apply to the overall process of designing, not just the base data structures, but also the forms and queries used as part of the overall database application within the database management system (DBMS).

READ THE FULL ARTICLE >>

Java Software Platform

Java refers to a number of computer software products and specifications from Sun Microsystems that together provide a system for developing application software and deploying it in a cross-platform environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones on the low end, to enterprise servers and supercomputers on the high end. Java is nearly ubiquitous in mobile phones, Web servers and enterprise applications, and while less common on desktop computers, Java applets are often used to provide improved and secure functionalities while browsing the World Wide Web.

Writing in the Java programming language is the primary way to produce code that will be deployed as Java bytecode, though there are bytecode compilers available for other languages such as JavaScript, Python, Ruby and Scala, and a native Java scripting language called Groovy. Java syntax borrows heavily from C and C++ but it eliminates certain low-level constructs such as pointers and has a very simple memory model where every object is allocated on the heap and all variables of object types are references. Memory management is handled through integrated automatic garbage collection performed by the Java Virtual Machine (JVM).

READ THE FULL ARTICLE >>

.NET Framework

The Microsoft .NET Framework is a software framework that can be installed on computers running Microsoft Windows operating systems. It includes a large library of coded solutions to common programming problems and a virtual machine that manages the execution of programs written specifically for the framework. The .NET Framework is a Microsoft offering and is intended to be used by most new applications created for the Windows platform.

The framework’s Base Class Library provides a large range of features including user interface, data and data access, database connectivity, cryptography, web application development, numeric algorithms, and network communications. The class library is used by programmers, who combine it with their own code to produce applications.

READ THE FULL ARTICLE >>

Software Testing Topics

Testing can never completely identify all the defects within software. Instead, it furnishes a criticism or comparison that compares the state and behavior of the product against oracles—principles or mechanisms by which someone might recognize a problem. These oracles may include (but are not limited to) specifications, contracts, comparable products, past versions of the same product, inferences about intended or expected purpose, user or customer expectations, relevant standards, applicable laws, or other criteria.

Every software product has a target audience. For example, the audience for video game software is completely different from banking software. Therefore, when an organization develops or otherwise invests in a software product, it can assess whether the software product will be acceptable to its end users, its target audience, its purchasers, and other stakeholders. Software testing is the process of attempting to make this assessment.

A study conducted by NIST in 2002 reports that software bugs cost the U.S. economy $59.5 billion annually. More than a third of this cost could be avoided if better software testing was performed.

READ THE FULL ARTICLE >>