Software Development Summary


 Computers and software have become an integral part of our every days lives, therefore more and more users demand high quality software. They cannot afford crashes, lost work, low productivity, nor are they willing to tolerate security holes which can lead to viruses etc. Software manufactureres are struggling with economic, ethical and organizational issues associated with improving the quality of software. 

Software is used to control many industrial processes in an effort ti reduce costs, eliminate human error, improve wuality and shorten the time it takes to ake products. 

Business information systems are a set of interrelated components that include hardware, software, databases, networks, people, and procedures that collect data, process it, and disseminate the output. 

Decision support system (DSS) is used to improve decision making. It can help develop accurate forcasts of customer demand, recomment stocks and bonds for an investment portfolio, and schedule shift workers to miniize cost while meeting customer service goals. 

A software defect in both DSS and business information systems can be devasting for both the company and customers with lost revenues and lost customers.


 

Software Development Process

software development methology is a standard, proven work process that enables systems analysts, programmers, project managers, and others to develop high-quality software.

QA- software quality assurance refers to methods within the development cycle that gurantee reliable operation of the product.

Dynamic testing is the testing of software by entering test data and then coparing the actual results to expected results. Has 2 types of testing: 1. Black box testing is a unit of testing software that has expected input and output behaviors, with the innner workings unknown. 2. White box testing is a unit testing of software that has expected input and output behaviors and whose internal workings are known. It involves the testing of all possible logic paths through the software unit and is done with thorough knowledge of the software's logic.

The safe operation of many safety-critical systems (one whose failure may cause injury or death) relies on the flawless preformace of software. The process of building software for such systems requires highly trained professionals, formal and rigorous methods, and state-of-the-art tools.

ISO- The International Organization for Standardization is a worldwide federation of national standards bodies from some 100 countries. In 1988, they issued the ISO 9000 whish requires organizations to develop formal quality management systems that focus on identifying and meeting the needs, desires and expectations for their customers.


 


Discussion Question #3


Q: You are considering using N-version programming with two software development firms and hardware devices for the navigation systems of a guided missile.  Briefly describe what this means and outline several advantages and disadvantages of this approach.

 

A: N-version programming is a form of redundancy that involves the execution of a series of program instructions simultaneously by two different systems.  The systems use different algorithms to execute instructions that accomplish the same result.  The results from the two systems are then compared; if a difference is found, another algorithm is executed to determine which system yielded the correct result.  In some cases, instructions for the two systems are written by programmers from two different companies and run on different hardware devices.  The rationale for N-version programming is that both systems are highly unlikely to fail at the same time under the same conditions.  Thus, one of the two systems should yield a correct result.  IBM employs N-version programming to reduce disk sector failures in data storage devices.  Two pieces of code in the same application save a piece of data and then compare the data to ensure that no errors occured.