Software Development Software development also known as application

  • Slides: 29
Download presentation
Software Development Software development (also known as application development, software design, designing software, software

Software Development Software development (also known as application development, software design, designing software, software application development, enterprise application development, or platform development) is the development of a software product. The term "software development" may be used to refer to the activity of computer programming, which is the process of writing and maintaining the source code, but in a broader sense of the term it includes all that is involved between the conception of the desired software through to the final manifestation of the software, ideally in a planned and structured process. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.

Strategies for Engineering Quality Software High-quality software system are easy to learn and use

Strategies for Engineering Quality Software High-quality software system are easy to learn and use because they perform quickly and efficiently they meet their users’ needs; and they operate safety and reliably so that system downtime is kept to a minimum. Such software has long been required to support the fields of air traffic control, nuclear power, automobile safety, health care, military and defense, and space exploration. Now that computers and software have become integral parts of almost every business, the demand for high-quality software is increasing.

 Software Defect A software defect is assny error that, if not removed, could

Software Defect A software defect is assny error that, if not removed, could cause a software system to fail to meet its users, needs. The impact of these defects can be trivial; for example, a computerized sensor in a refrigerator’s ice cube maker might fail to recognize that the tray is full and continue to make ice.

Software Quality Software quality is the degree to which a software product meets the

Software Quality Software quality is the degree to which a software product meets the needs of its users. Quality management focuses on defining, measuring, and refining the quality of the development process and the product development during its various stages. These product including statements of requirements, flow charts, and user documentation are known as deliverables. The objectives of quality management is to help developers deliver high-quality system that meet the needs of their users

Importance of Software quality A business information system is a set of interrelated components

Importance of Software quality A business information system is a set of interrelated components including hardware, software, database, networks, people, and procedures that collects and process data and disseminates the output. A common type of business system is one that captures and records business transactions. For example, a manufacturer’s order-processing system captures order information, processes it to update inventory and accounts receivable, and ensures that the order is filled and shipped on time to the customer

Software Product Liability Software product litigation is certainly not new. One lawsuit in the

Software Product Liability Software product litigation is certainly not new. One lawsuit in the early 1990 s involved a financial institution that became insolvent because defects in purchased software application caused errors in its integrated general ledger system, customers’ passbooks, and loan statements. Dissatisfied depositors responded by withdrawing more than $5 million. In another case from 1992, a Ford truck stalled because of a software defect in the truck’s fuel injector. In the ensuing accident, a young child was killed. A state supreme court later affirmed an award of $7. 5 million in punitive damages against the manufacturer.

Software Development Process A Software development process, also known as Software Development Life Cycle

Software Development Process A Software development process, also known as Software Development Life Cycle (SDLC), is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development cycle. There are several models for such processes, each describing approaches to a variety of task or activities that take place during the process. Some people consider a lifecycle model a more general term and a software development process a more specific term.

Software Development Process Development information system software is not a simple process; it requires

Software Development Process Development information system software is not a simple process; it requires completing many complex activities, with many dependencies among the various activities. System analysts, programmers, architects database specialists, project managers documentation specialists, trainers, and testers are all involved in large software projects. Each of these groups has a role to play, and has specific responsibilities and tasks. In addition, each group makes decisions that can affect the software’s quality and the ability of an organization or an individual to use if effectively.

Software Development Process Model: Waterfall The waterfall model is a popular version of the

Software Development Process Model: Waterfall The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to the systems development life cycle, the waterfall model describes a development method that is linear and sequential. Waterfall development has distinct goals for each phase of development. Imagine a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. It is the same with waterfall development. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back.

Software Development Process Model: Waterfall

Software Development Process Model: Waterfall

Software Development Process Model: Waterfall Advantages: Needless to mention, it is a linear model

Software Development Process Model: Waterfall Advantages: Needless to mention, it is a linear model and of course, linear models are the most simple to be implemented. The amount of resources required to implement this model is minimal. One great advantage of the waterfall model is that documentation is produced at every stage of the waterfall model development. This makes the understanding of the product designing procedure simpler. After every major stage of software coding, testing is done to check the correct running of the code.

Software Development Process Model: Waterfall Disadvantages: Ironically, the biggest disadvantage of the waterfall model

Software Development Process Model: Waterfall Disadvantages: Ironically, the biggest disadvantage of the waterfall model is one of its greatest advantage. You cannot go back, if the design phase has gone wrong, things can get very complicated in the implementation phase. Many times, it happens that the client is not very clear of what he exactly wants from the software. Any changes that he mentions in between may cause a lot of confusion. Small changes or errors that arise in the completed software may cause a lot of problem. The greatest disadvantage of the waterfall model is that until the final stage of the development cycle is complete, a working model of the software does not lie in the hands of the client.

Software Development Process Model: Spiral The spiral model is a software development process combining

Software Development Process Model: Spiral The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down, bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used in information technology(IT). This model of development combines the features of the prototyping and the waterfall model. The spiral model is intended for large, expensive and complicated projects.

Software Development Process Model: Spiral

Software Development Process Model: Spiral

Software Development Process Model: Spiral Advantages: • This model improves avoidance of risk •

Software Development Process Model: Spiral Advantages: • This model improves avoidance of risk • This model is very useful to choose a methodology for a software iteration • This model can associate other methodologies like Waterfall, Prototyping, and Incremental methodologies. Suppose a project having a low risk of not meeting the user requirement and on other side having high risk of missing budget would follow waterfall approach • In this model more functionality can be added in later versions.

Software Development Process Model: Spiral Disadvantages: • This model limiting reusability • This model

Software Development Process Model: Spiral Disadvantages: • This model limiting reusability • This model is quite complex • Spiral model is very customized for every project • To use this model an experienced and skilled team required • There is no proper control to move from one cycle to another cycle

 Dynamic Software Testing Software is developed in units called subroutines or programs. These

Dynamic Software Testing Software is developed in units called subroutines or programs. These unit in turn are combined to form large systems. One approach to QA is to test the code for a completed unit of software by actually entering test data and comparing the results to the expected results. This is called dynamic testing. There are two forms of dynamic testing.

Black-box testing involves viewing the software unit as a device that has expected input

Black-box testing involves viewing the software unit as a device that has expected input and output behaviors but whose internal workings are unknown (a black box). If the unit demonstrates the expected behaviors for all the input data in the test suite, it passes the test.

Whit-box testing White-box testing treats the software unit as a device that has expected

Whit-box testing White-box testing treats the software unit as a device that has expected input and output behaviors but whose internal workings, unlike the unit in black-box testing, are known. White –box testing involves testing all possible logic paths through the software unit with thorough knowledge of its logic. The test data must be carefully constructed so that each program statement executes at least once.

Other Types of Software Testing Static testing – Special software programs called static analyzers

Other Types of Software Testing Static testing – Special software programs called static analyzers are run against the new code. Rather than reviewing input and output , the static analyzers looks for suspicious patterns in programs that might indicate a defect.

Integration testing – After successful unit testing, the software units are combined into an

Integration testing – After successful unit testing, the software units are combined into an integrated subsystem that undergoes rigorous testing to ensure that the linkages among the various subsystems work successful. System testing – After successful integration testing, the various subsystems are combined to test the entire system as a complete entity. User acceptance testing – Independent testing performed by trained end users to ensure that the system operates as they exepect.

Capability Maturity Model Integration (CMMI) developed by the Software Engineering Institute at Carnegie Mellon

Capability Maturity Model Integration (CMMI) developed by the Software Engineering Institute at Carnegie Mellon is a process improvement approach that defines the essential elements of effectives processes. The model is general enough to be used to evaluate and improve almost any process, and a specific application of CMMI-Development (CMMI-DEV) is frequently used to assess and improve software development practices.

KEY ISSUES IN SOFTWARE DEVELOPMENT Although defects in any system can cause serious problems,

KEY ISSUES IN SOFTWARE DEVELOPMENT Although defects in any system can cause serious problems, the consequences of software defects in certain systems can be deadly. In these kinds of systems, the stakes involved in creating quality software raised to the highest possible level. The ethical decisions involving a trade-off-if one must be considered between quality and such factors as cost, ease of use, and time to market requires extremely serious examination.

Quality Management Standards The International Organization for Standardization (ISO), Founded in 1947, is a

Quality Management Standards The International Organization for Standardization (ISO), Founded in 1947, is a worldwide federation of national standards bodies from 161 countries. The ISO issued its 9000 series of business management standards in 1988. These standards require organizations to develop formal quality management systems that focus on identifying and meeting the needs, desires, and expectations of their customers.

 The ISO 900 standard serves as a guide to quality products, services, and

The ISO 900 standard serves as a guide to quality products, services, and management. Approximately 350, 000 organizations in more than 150 countries have ISO 9000 certification. Although companies can use the standard as a management guide for their own purposes in achieving effective control, the priority for many companies is having a qualified external agency certify that the have achieved ISO 9000 certified to win a contract from them.

To obtain this coveted certificate, an organization must submit to an examination by an

To obtain this coveted certificate, an organization must submit to an examination by an external assessor and fulfill the following requirements: Have written procedures for all processes. Follow those procedures. Prove to an auditor that it has fulfilled the first two requirements; this proof can require observation of actual work practices and interviews with customers, suppliers, and employees.

 Prove to an auditor that it has fulfilled the first two requirements; this

Prove to an auditor that it has fulfilled the first two requirements; this proof can require observation of actual work practices and interviews with customers, suppliers, and employees.

The various ISO 9000 series of standards address the following software-related activities: ISO 9001:

The various ISO 9000 series of standards address the following software-related activities: ISO 9001: Design, development, production, installation, servicing ISO 9002: Production, installation, servicing ISO 9003: Inspection and testing ISO 9000 -3: Development, supply, and maintenance of software ISO 9004: Quality management and quality systems elements

Failure mode and effects analysis(FMEA) Failure mode and effects analysis (FMEA) is an important

Failure mode and effects analysis(FMEA) Failure mode and effects analysis (FMEA) is an important technique used to develop ISO 9000 -compliant quality systems by both evaluating reliability and determining the effects of system and equipment failures. Failures are classified according to their impact on a project’s success.