Asmat Zehra
www.SehelSoft
Software reliability is an important facet of software quality. It is defined as "the probability of failure-free operation of a computer program in a specified environment for a specified time"
To improve software reliability can be applied at different stages of a program's development, in the case of real software. These stages principally include: requirements, design, programming, testing, and runtime evaluation. The study of theoretical software reliability is predominantly concerned with the concept of correctness, a mathematical field of computer science which is an outgrowth of language and automata theory.Requirements
A program cannot be expected to work as desired if the developers of the program do not, in fact, know the program's desired behaviour in advance, or if they cannot at least determine its desired behaviour in parallel with development, in sufficient detail. What level of detail is considered sufficient is hotly debated. The idea of perfect detail is attractive, but may be impractical, if not actually impossible, in practice. This is because the desired behaviour tends to change as the possible range of the behaviour is determined through actual attempts, or more accurately, failed attempts, to achieve it.
Whether a program's desired behaviour can be successfully specified in advance is a moot point if the behaviour cannot be specified at all, and this is the focus of attempts to formalize the process of creating requirements for new software projects. In situ with the formalization effort is an attempt to help inform non-specialists, particularly non-programmers, who commission software projects without sufficient knowledge of what computer software is in fact capable. Communicating this knowledge is made more difficult by the fact that, as hinted above, even programmers cannot always know in advance what is actually possible for software in advance of trying.
While requirements are meant to specify what a program should do, design is meant, at least at a high level, to specify how the program should do it. The usefulness of design is also questioned by some, but those who look to formalize the process of ensuring reliability often offer good software design processes as the most significant means to accomplish it. Software design usually involves the use of more abstract and general means of specifying the parts of the software and what they do. As such, it can be seen as a way to break a large program down into many smaller programs, such that those smaller pieces together do the work of the whole program.
The purposes of high-level design are as follows. It separates what are considered to be problems of architecture, or overall program concept and structure, from problems of actual coding, which solve problems of actual data processing. It applies additional constraints to the development process by narrowing the scope of the smaller software components, and thereby — it is hoped — removing variables which could increase the likelihood of programming errors. It provides a program template, including the specification of interfaces, which can be shared by different teams of developers working on disparate parts, such that they can know in advance how each of their contributions will interface with those of the other teams. Finally, and perhaps most controversially, it specifies the program independently of the implementation language or languages, thereby removing language-specific biases and limitations which would otherwise creep into the design, perhaps unwittingly on the part of programmer-designers.
The history of computer programming language development can often be best understood in the light of attempts to master the complexity of computer programs, which otherwise becomes more difficult to understand in proportion (perhaps exponentially) to the size of the programs. (Another way of looking at the evolution of programming languages is simply as a way of getting the computer to do more and more of the work, but this may be a different way of saying the same thing.) Lack of understanding of a program's overall structure and functionality is a sure way to fail to detect errors in the program, and thus the use of better languages should, conversely, reduce the number of errors by enabling a better understanding.
Improvements in languages tend to provide incrementally what software design has attempted to do in one fell swoop: consider the software at ever greater levels of abstraction. Such inventions as statement, sub-routine, file, class, template, library, component and more have allowed the arrangement of a program's parts to be specified using abstractions such as layers, hierarchies and modules, which provide structure at different granularities, so that from any point of view the program's code can be imagined to be orderly and comprehensible.
In addition, improvements in languages have enabled more exact control over the shape and use of data elements, culminating in the abstract data type. These data types can be specified to a very fine degree, including how and when they are accessed, and even the state of the data before and after it is accessed..
Software testing, when done correctly, can increase overall software quality of conformance by testing that the product conforms to its requirements. Testing includes, but is not limited to:
- Unit Testing
- Functional Testing
- Performance Testing
- Failover Testing
- Usability Testing
A number of agile methodologies use testing early in the development cycle to ensure quality in their products. For example, the test-driven development practice, where tests are written before the code they will test, is used in Extreme Programming to ensure quality.
Runtime reliability determinations are similar to tests, but go beyond simple confirmation of behaviour to the evaluation of qualities such as performance and interoperability with other code or particular hardware configurations.....
For more details and consultancy about software development ,please visit our site www.sehelsoft.com
- Related Videos
- Related Articles
- Ask / Related Q&A
- A Professional Programmer Comes Only From a Software Development Company
- Software Development Company
- Software Development Companies in Australia: Dominating the Business Arena
- Offshore Software Development Company
- Software Development Company India and Their Services
- Software Development Company - Offshoring
- Software Development Company
- What Software Development Company in India Deals With




php software development company
By: usha sharma | 08/07/2009Professional Web Development Company phpmaestro provides custom website development web application development ecommerce website design and development services. Custom web application development services and professional website development at affordable rates from phpmaestro Company. www.phpmaestro.com is a php Application Development Shopping Cart for e-commerce stores. Our shopping cart software gives our client full control over your online shop its products design development prices sh
Hire ASP .Net Developers Hire Dedicated ASP.Net Developers Offshore ASP.Net Programmers
By: Arshad | 08/07/2009Since the concept of outsourcing changed the economy of many countries it has been very clear that paying Indian development service providers is very much economical than funding an in-house private team. Analysis says that more than 50% of the cost can be saved by inking contracts with Indian IT service providers.
Windbg Minidump Tutorial:Setting up & Reading Minidump Files
By: Jeannie Lee | 07/07/2009Windgb Minidump tutorial to set up and read minidump files (.dmp). Setting Symbol File Path. Output of Windbg command. windbg.exe -z [file path to minidump file.dmp] -c !analyze -v.
Javascript Validate Name Field
By: Jeannie Lee | 07/07/2009Simple Javascript tutorial on validating a name field. Checks to see if there is a value in the name field with Javascript after the user submits a form.
Logo Design- The image creator!
By: Jhonny Sharma | 07/07/2009Brand image is something that many consumers look for while buying a product. Brand image and brand positioning have become important concepts in the corporate world. When image building strategies are talked about, what tops the list is a creative logo design.
Design principles in logo
By: Jhonny Sharma | 07/07/2009An element of balance is a mandatory aspect of design. A design is considered to be a great design when it incorporates all design aspects in the required proportion. The design principles are vital for any kind of design.
Organization specific software
By: Manish Shrivastava | 07/07/2009Different businesses have different technological needs depending upon the type of work they are engaged in. Some businesses might require minimum use of software technology where there might be others whose very business might depend upon the optimum use of technology.
Hire .Net Developers: Hire ASP.Net Programmers
By: Arshad | 07/07/2009Since the concept of outsourcing changed the economy of many countries it has been very clear that paying Indian development service providers is very much economical than funding an in-house private team. Analysis says that more than 50% of the cost can be saved by inking contracts with Indian IT service providers.
Motorcycling in Spain
By: pntglobal | 15/06/2009 | Sports & FitnessIf you have ever been interested in finding the Spanish dream or discovering the Spanish identity, then motorcycling is a direct and enriching way of learning about Spain. Because motor tours can offer an intimate, original and privileged way to discover cities. It is an amazing and diverse country.
GUIDE TO INDUSTRIAL FASTENER
By: pntglobal | 15/06/2009 | HardwareIf you have ever been interested in finding the Spanish dream or discovering the Spanish identity, then motorcycling is a direct and enriching way of learning about Spain. Because motor tours can offer an intimate, original and privileged way to discover cities. It is an amazing and diverse country.
GUIDE TO INDUSTRIAL FASTENER
By: pntglobal | 15/06/2009 | HardwareIndustrial fasteners are some small items that can connect machine parts together and keep machinery and equipment working properly. By utilizing the latest technology, along with innovative design, and precision workmanship, industrial fasteners have been developing rapidly.
GP MOTO in Spain
By: pntglobal | 15/06/2009 | Art & EntertainmentBoasting 60 years of history, Moto GP is the oldest of all motorsports World Championships. From the early 1900s motorcycle Grand’s Prix were held in various countries. Spain is the only country in the world to have more than one Grand PriX Motorcycle Race. There are three which are held in Jerez, Montmelo and Cheste.You can experience the excitement of the Motorcycle Grand Prix live, enjoying the greatest spectacle on two wheels.
Father’s Day in Pakistan
By: pntglobal | 15/06/2009 | Art & EntertainmentIn this world, there is a man who plays most important role in a future building of a child. He is the person remaining outside the home, bearing the fatigue just for the better future of his child. He is the one who teaches his child how to face the cruel world with braveness. That man is the special person in our life we call “dad”. Since there is Mother’s Day, there should be a day honoring fathers.
Moto GP tours Spain
By: pntglobal | 04/06/2009 | RentalsMoto GP is the world’s premier motorcycling championship, with a season of 18 Grand’s Prix in 14 countries bringing together the world’s top motorcycle manufacturers such as Honda,Yamaha,Suzuki,plus an elite crop of riders from every corner of the global .
Welcome to Pakistan
By: pntglobal | 18/05/2009 | TravelSupersitePakistan.com is an effort towards that goal, to introduce Pakistan globally, highlighting the beauty of Pakistan.
Welcome to Pakistan
By: pntglobal | 18/05/2009 | TravelSupersitePakistan.com is an effort towards that goal, to introduce Pakistan globally, highlighting the beauty of Pakistan.