The Software Products, Characteristics and Applications of Software

The Software Products, Characteristics and Applications of Software

Software Products:-


{tocify} $title= {Table of Contents}

We all know of a variety of software such as Microsoft’s Windows Operating System and Office suite, and Oracle Corporation’s 8i database management software. These software are available off-the-shelf for purchase and are used by a diverse range of customers. These are called generic software products since many users essentially use the same software. These can be purchased off-the –shelf by the customers. When a software development company wishes to develop a generic product, it first determines the features or functionalities that would be useful to a large cross section of users. Based on these, the development team draws up the product specification on its own. Of course, it may base its design discretion on feedbacks collected from a large number of users. Typically, each software product is targeted to some market slightly different market segments based on variations of essentially the same software. For example, Microsoft targets desktops  and laptops through its Windows 8 operating system, while it targets high-end mobile handsets through its Windows mobile operating system.

In contrast to the generic products, domain specific software products are sold to specific categories of customers and are said to said to have a vertical market. Domain specific software products target specific segments of customers (called verticals) such as banking, telecommunication, finance and accounts and medical. Example of domain specific software products are BANCS from TCS and FINACLE from Infosys in the banking domain and AspenPlus from Aspen corporation in the chemical process simulation.

Programs versus Products

Many toy software are being developed by individuals such as students for their classroom assignments and hobbyists for their personal use. These are usually small in size and support limited functionalities. Further, the author of a program is usually the sole user of the software and himself maintains the code. These toy software therefore usually lack good user- interface and proper documentation. Besides these may have poor maintainability, efficiency, and the reliability. Since these toy software do not have any supporting documents such as users’ manual, maintenance manual, design document, test documents etc., we call these toy software as programs.

In contrast, professional software usually have multiple users and, therefore, have good user- interface, proper users’ manuals, and good documentation support. Since, a software product has a large number of users, it is systematically designed, carefully implemented, and thoroughly tested. In addition, professionally written software usually consists not only of the program code but also of all associated documents such as requirements specification document, design document, test document, user’s manuals, etc. A further difference is that professional software are often too large and complex to be developed by any single individual. It is usually developed by a group of developers working in a team. A professional software is developed by a group of software developers working together in a team. It is therefore necessary for them to use some systematic development methodology. Otherwise, they would find it very difficult to interface and understand each other’s work, and produce a coherent set of documents.

The Characteristics of Software

The following are the important characteristics of software:




  1.  The development of software cannot be compared with the manufacture of other physical goods. It is developed or engineered. There is a fundamental difference between software development and hardware manufacture. The approach is different in both the cases. Quality is important in both the cases but the relationship between number of people employed and work accomplished is entirely different.
  2.   There is no wear and tear associated with software because it is not susceptible to the environmental effects. In case of hardware, most of the manufacturing defects are visible as it is put in use. However, in case of software, some defects remain undetected even after repeated use. If the same type of data is used each time, the defect in the software may not be visible but on changing the data pattern some undiscovered defects may crop up i.e., the output generated may be undesirable. Understood defects will cause high failure rates early in the life of a program. When a hardware components wear out, then it is replaced with spare parts. In case of software, there are no spare parts. A defect in the output indicates the wrong design of the programs. Hence to rectify the defect, the design should be altered.
  3.   In case of hardware components, there is a well set of standard parts and components, which make it easy for the engineer to concentrate only on innovative elements or components of design. With software, the components can be designed and implemented in a number of different programs. For instance, the scientific subroutine libraries can be used in a number of different engineering and scientific applications. In addition, data structures can be used in a number of different applications. For instance, the graphical user interface are developed using reusable components that facilitate the creation of graphical windows, pull- down menus and a wide variety of interaction mechanism.

Some other Characteristics of good software are:

A software product can be judged by what it offers and how well it can be used. This software must satisfy on the following grounds:

  • Operational
  • Transitional
  • Maintenance

Well-engineered and crafted software is expected to have the following characteristics:

Operational

This tells us how well software works in operations. It can be measured on:

  • Budget
  • Usability
  • Efficiency
  • Correctness
  • Functionality
  • Dependability
  • Security
  • Safety

Transitional

This aspect is important when the software is moved from one platform to another:

  • Portability
  • Interoperability
  • Reusability
  • Adaptability

Maintenance

This aspect briefs about how well software has the capabilities to maintain itself in the ever-changing environment:

  • Modularity
  • Maintainability
  • Flexibility
  • Scalability

In short, Software engineering is a branch of computer science, which uses well-defined engineering concepts required to produce efficient, durable, scalable, in-budget and on-time software products.

Software services

Software Services

Software services covers a large amount of software projects such as customization, outsourcing, maintenance, testing, and consultancy. At present, there is a rapid growth in the number of software services projects that are being undertaken world-wide and software services are poised to become the dominant type of software projects. One of the reasons behind this situation is the steep growth in the available code base. Over the past few decades, a large number of programs have already been developed. Available programs can therefore be modified  to quickly fulfil the specific requirements of any customer. At present, there is hardly any software project in which the program code is written from scratch, and software is being mostly developed by customizing some existing software. For example, to develop software to automate the payroll generation activities of an educational institute, the vender may customize existing software that might has been developed earlier for a different client or educational institute. Due to heavy reuse of code, it has now become possible to develop even large software systems in rather short periods of time. Therefore, typical project durations are at present only a couple of months and multi-year projects have become very rare.

Development of outsourced software is a type of software service. Outsourced software projects may arise for many reasons. Sometimes, it can make good commercial sense for a company developing a large project to outsource some parts of its development work to other companies. The reasons behind such a decision may be many. For example, a company might consider the outsourcing option, if it feels that it does not have sufficient expertise to develop some specific parts of the software; or it may determine that some parts can be developed cost-effectively by another company. Since an outsourced project is a small part of large project, outsourced projects are usually small in size and need ti be completed within a few months or a few weeks of time.

The types of development projects that are being undertaken by a company can have an impact on its profitability. For example, a company that has developed a generic software product usually gets an uninterrupted stream of revenue spread over several years. However, development of a generic software product entails substantial upfront investment. Further, any return on this investment is subject to the risk of customer acceptance. On the other hand, outsourced projects are usually less risky, but fetch only one time revenue to the developing company.

The Application of Software


Today computer software present continuing challenges for software engineers. Software finds its applications in number of areas. There is almost no field of human endeavor where software has not been used. Software is available for every activity right from publishing a document (word processing) to artificial intelligence activity. Majority of software is written for business applications, banking and financial sectors and scientific and Indus trial research and development. Besides, software is also written for entertainment (music, cartoons, etc.) and telecommunications. The following are some of the various applications of software in different areas: 

 i. Real-time software:

It is the software that monitors, analyzes and controls the real – world events as they occur in the real time. The elements found in such a software include a component that gathers and formats data fron an external environment, an analysis component that transforms data into information in a form as desired by the application, a control/output component that reacts to the external environment and a component that monitors and coordinates all other components so that the response can be immediate with a time lag of one milli-second to one second. For instance, real- time software is used in railway and airline reservation system and also in the field of banking. 

 ii. System Software:

A collection of programs written to service other programs. Some system software (e.g., compilers, editors, and file management utilities) processes complex, but determinate, information structures. Other systems applications (e.g., operating system components, drivers, networking software, telecommunications processors) process largely indeterminate data.

  iii.  Application Software:

Stand-alone programs that solve a specific business need. Applications in this area process business or technical data in a way that facilitates business operations or management/technical decision making.

   iv. Business Software:

Most of the software that is being developed in today’s world is meant for business information processing. Discrete systems for instance, payroll, accounts receivable/ payable inventory systems have been developed which are helpful to management and which access one or more large database for information. This information is processed to generate reports or value-added information and is made available in the format as desired by the management. Business decisions can be taken with the help of the information generated in this regard. In addition, interactive computing (example, point-of-sale) can be accomplished with the help of business application software.

      v.  Engineering and Scientific Software:

This Software is based on algorithms which are oriented towards numerical computations. The software in these applications rests on mainframe and super computers which can perform trillions of calculations in seconds. A broad array of “number-crunching” programs that range from astronomy to volcanology, from automotive stress analysis to orbital dynamics, and from computer- aided design to molecular biology, from genetic analysis to meteorology. The other various area of application range include: weather forecasting, biotechnology, automated manufacturing etc, in addition, computer – aided design, system simulation and other interactive applications have also taken a center stage in this field.

   vi.  Embedded Software:

Embedded software resides within a product or system and is used to implement and control features and functions for the end user and for the system itself.  Its finds in read only memory and it perform limited and esoteric functions (e.g., key pad control for microwave oven) or provide significant function and control capability (e.g., digital functions in an automobile such as fuel control, dashboard displays, and braking systems). Embedded software finds its application to control products and systems for consumer and industrial markets. Embedded software can be used for keypad control of microwave oven, automatic digital control of brakes.

 vii.Personal Computer Software:

Some of the personal computer software includes word processing, spreadsheets, computer graphics, multimedia, data base management and personal and business financial applications.  Most of this software is used for individual purpose by a single user at a given time.

viii.Product-line Software:

It’s designed to provide a specific capability for use by many different customers. Product- line software can focus on a limited and esoteric marketplace (e.g., inventory control products) or address mass consumer.

  ix. Web based software:

Browser of Internet can access Web pages that incorporate executable instructions (for example, CGI, HTML, Perl or Java) and data (for example, hypertext and a variety of visual and audio formats). Thus, Internet and World Wide Web (WWW) can become a source of unlimited software that can be accesses and downloaded by the users with a modem

    x.Mobile Application Software:

This network- centric software category spans a wide array of applications and encompasses software that resides on mobile devices.

 xi.Artificial Intelligence (AI) Software:

In the field of AI, machines and programs are being developed whose behavior might be considered intelligent from the viewpoint of human beings. AI programs are non-algorithmic. AI programs often employ heuristics of rules of thumb for finding solutions to problems. AI software makes use of non-numerical algorithms which do not go by the straight forwarded analysis. AI makes use of nonnumerical algorithms to solve complex problems that are not amenable to computation or straight forward analysis. Application within this area includes robotics, pattern recognition (image and voice), artificial neural networks, theorem proving, and game playing, and expert systems also.

Expert system is a computer application that can perform tasks, normally carried out by human beings. They are knowledge-based computer programs that demonstrate the expertise of human mind in the limited area of knowledge and experience in finding solutions to problems.

Note: What is computer to me is the most remarkable tool that we have ever come up with. It’s the equivalence of bicycle for our minds.

Summary:

Millions of software engineers worldwide are hard at work on software project in one or more of these software engineering categories. In some cases, new systems are being built, but in many others, existing applications are being corrected, adapted, and enhanced. It is not uncommon for a young software engineer to work on a program that is older than she is. In this article we know about

  •          What is software
  •          Software product
  •          Program vs. Product
  •           The Characteristics of software
  •          The Application of software

 

 

 



 




Post a Comment (0)
Previous Post Next Post