Software and Hardware Selection and its criteria indore

Software Selection

Software selection is the most important part  for the professional user.Hence there are lot of criteria by which any user can select a good software accordance of their use.In this section i am explanning those term which is beneficial for you in the selection of project.
software selection image
Right Software Selection

Initially there are six phases by which any user can select an appropriate software for him.Phases are as follows:
  1. Planning and Budgeting for software:The initial step in the software selction process is your internal planning and budgeting.You need to setup your project team, get buy in for the project and put together a high level budget.
  2. Software requirements analysis:Next you need to put together your requirements documents.Make sure it is focused on your requirement.
  3. Software vendor research:Now it is time to evalute your vendor options.This phase focuses on how to start with a long list of vandors and efficiently evalute them to get to a short list of approximately three software solution.
  4. Software Demos:When you have your shortlist invite the vendors for demo.
  5. Software decision:When you narrow the list to one or two vendors its time to do your due dilligence and confirm your final decision.
  6. Software contract Negotiation:Most software contract is written by the software vendor.Make sure you negotiate the contract to protect your interests and save your money.
software selection image

above i explaned some phases which is necessary for software selection but there are also some criteria  which is beneficial for your your software selection criteria is as follows:
  • Reliabilty:It is the probability that the software will execute in a specific period of time without any failure.It is important to the professional user.
  • Functionality:It is the definition of the facilities , Performance and other factors that the user requires in the finished product.
  • Capacity:Capacity refers to the capability of the software package to handle the users requirements for size of files, Number of data elements and reports.All limitation should be checked.
  • Flexibility:It is a measure of effort required to modify an operational program.One feature of flexibility is adaptability.
  • Usability:This criteria refers to the effort required to operate, prepare the input and interpret the output of a program.
  • Security:It is a measure of the likelihood that a system's user can accidently or intentionally access or destroy unathorized data.
  • Performance:It is a measure of the capacity of the software package to do what it is expected to do.
  • Service ability:This criteria focuses on documentation and vendor support.
  • Ownership:Who owns the software and consider weather he has the right to access the software or he can sell or modify the software.
  • Minimal costs:Cost is a mojar consideration in deciding between inhouse and vendor software.
                                "Software selection is a critical aspect for system development."

Hardware Selection


Hardware selection requires an analysis on the following criteria:
  • System availablity
  • Compatibility
  • Cost
  • Performence
  • Uptime
  • Support and
  • Usability ets.

Software maintenance,its type,issues,major activity and techniques


Software maintenance

Software maintenance is defined as the totality of activites required to provide cost effective support to software.It is an integral part of a software life cycle.Its activites are performed during the predelivery stage as well as during post delivery stage.
Predelivery activities includes planning for post delivery operations,maintainability and logistics determination for transition activities.
Postdelivery activities include software modification,training and operating or interfacing to a help disk.There are various breakdown of topics for the software maintenance.
software maintainence image

Category (Types) of software maintenance

There are three types of software maintenance have been defined:
  • Corrective Maintenance
  • Adaptive Maintenance  and
  • Perfactive Maintenance
but IEEE 14764 includes a fourth category
  • Preventative Maintenance
Explanation:
  1. Corrective Maintenance:Reactive modification(or repairs) of a software product performed after delivery to correct discovered problems.Include in this category is emergency maintenance,which is an unschedulded modification performed to temporarily keep a software product operational pending corrective maintenance.
  2. Adaptive Maintenance:Modification of a software product performed after delivery to keep a software product usable in a changed and changing environment.for example- The operating system might be upgraded and some changes to the software may be necessary.
  3. Perfactive Maintenance:Modification of a software product after delivery to provide enhancements for users,improvement of a program documentation, and recording to improve software performence, maintainability, or other software attributes.
  4. Preventive Maintenance:Modification of a software product after delivery to detect and correct latent faults in the software product before they become operational faults.
software maintainance category image

Issues involved in software maintenance:

A number of key issues must be dealt with ensure the effective maintenance of software.Software maintenance provides unique technical and management challenges for software engineers.
for ex-
Trying to find a fault containing a large number of code that another software engineer developed.
Issues involved in software maintenance is given below:
software maintainance issue image

  1. Technical issue:There are various technical issues such as
  • Limited understanding:Limited understanding refers to how quickly a software engineer can understand where to make a change or correction in software that he/she did not develop.
  • Impact analysis:Impact analysis describes how to conduct, costeffectively, a complete analysis of the impact of a chane in existing software.
   2.Management issues:Management issues are as follows:
  • Staffing:Staffing refers how to attract and keep software maintenance staff.
  • Process:The software life cycle process is a set of activites,methods,practices and transformation that people use to develop and maintain software and its associated products.
  • Outsourcing:Outsourcing and offshoring software maintaince has become a major industry.Organizations are outsourcing entire portfolios of softwre including software maintenance.
  3.Cost estimation:
        for planning purposes, cost estimation is an important aspect of  planning for software
        maintenance.Maintenance cost estimates are by many technical and non technical factors.
 4.Measurement:
       There are several software measures that can be derived from the attributes of the software, the
 maintenance process, and personal  ,including size,complexity,quality,understandibility,maintainability and effort.
Complexity measures of software can also be obtained using available commercial tools.These measure constitute a good starting point for the maintainers measurement program.

Major activities involved in software maintenance

There are various major activities involved in software maintenance,such as:
  1. Unique activities:There are various processes , activities and practices that are unique to software maintenance.
  • Program understanding
  • Transision
  • Acceptance/Rejection
  • Impact analysis
   2.Supporting activities:Maintenance may also perform support activities such as:
  • Documentation
  • Software configuration management
  • verification and validation
  • Problem resolution
  • Software quality assurance
   3.Planning activities:An important for software maintenance is planning and maintainers must
          address the issues associated with a number of planning perspectives.
  • Business planning
  • Maintenance planning
  • Reliease planning
  • Individual software change request planning

Techniques for software maintenance

This topics introduces some of the generally accepted techniques used in software maintenance,some techniques are as follows:
  1. Program comprehension:Code browsers are key tools for program comprehension and are used to organize and present source code.Clear and consise documentation can also aid in program comprehension.
  2. Reengineering:Refactoring is reengineering techniques that aims at reorganizing a program without changing its behavior.It seeks to improve a program structure and its maintainabilty.Refactoring techniques can be used during minor changes.
  3. Reverse Engineering:Reverse engineering is the process of analysing software to identify the softwrae components and their inter-relationships  and to create represantaions of the software in another form or at higher levels of abstraction.
  4. Migration:During software life, it may have to modified to run in different environments.In order to migrate it to a new environments, the maintainers needs to determine the actions needed to accomplish the migration.
  5. Retirement:Once software has reched the end of its useful life,it must be retired.An analysis should be performed to assist in making the retirement decision.This analysis should be included in the retirement plan,which covers retirement requirements,impact,replacement,schedule and effort.


Verification and validation in testing

Verification and Validation in Testing