220 likes | 505 Views
Software Quality Assurance Model. Suggested model. The McCall’s model a classic model of software quality factors, consists of 11 factors, subsequent models, consisting of 12 to 15 factors, were suggested by Deutsch and Willis and by Evans and Marciniak .
E N D
Suggested model • The McCall’s model a classic model of software quality factors, consists of 11 factors, subsequent models, consisting of 12 to 15 factors, were suggested by Deutsch and Willis and by Evans and Marciniak.
Criteria for the evaluation of Software Quality McCall's software quality factors model Software quality factors Product operation factors Product revision factors Product transition factors
Product transition software quality factors • According to McCall, three quality factors are included in the product transition category, a category that pertains to the adaptation of software to other environments and its interaction with other software systems. • is the adaptability to new environments, distributed processing together with rapidly changing hardware.
Portability • The ability of the software to adapt in other environments consisting of different hardware, different operating systems, and so forth. • These requirements make it possible to continue using the same basic software in diverse situations or to use it simultaneously in diverse hardware and operating systems situations.
example • Java programming language and runtime environment has made it possible to have programs that run on any operating system that supports the Java standard • Java applets in the form of precompiled bytecode can be sent from a server program in one operating system to a client program (your Web browser) in another operating system without change.
Applet example • import java.applet.*; • import java.awt.*; • public class Main extends Applet{ • public void paint(Graphics g){ • g.drawString("Welcome in Java • Applet.",40,20); } } • <HTML> • <HEAD> • </HEAD> • <BODY> • <div > • <APPLET CODE="Main.class" WIDTH="800" HEIGHT="500"> • </APPLET> • </div> • </BODY> • </HTML>
Reusability • Ease of re-using software in a different context. • Modules originally designed for one project in a new software project currently being developed. • Given module can be used in future projects of the currently developed software. • Reusability is the extent to which code can be used in different applications with minimal change. As code is reused in a new application, that new application partially inherits the attributes of that code
Reusability • Example • A software development unit has been required to develop a software system for the operation and control of a hotel swimming pool that serves hotel guests and members of a pool club. • After analyzing the information processing requirements of the hotel’s spa, decided to add the reusability requirement that some of the software modules for the pool should be designed and programmed in a way that will allow its reuse in the spa’s future software system, which is planned to be developed next year.
The Reusability Principle states: • Ideally, components should be easy to reuse.
Examples of foundation components are classes such as Date, List, Person, and Number. These can be reused in almost any application and have very low burden. • Examples of architecture-specific components include event notification mechanisms, user interfaces components • Examples of domain-specific components include classes like Customer, Account, and Transaction. • Examples of application-specific components suchmessage handlers
Even notification • The following example sends a notification of any ALTER TABLE statement run on the server instance to the Service Broker instance in the current database. • CREATE EVENT NOTIFICATION log_ddl1 ON SERVER FOR ALTER_TABLE TO SERVICE '//Adventure-Works.com/ArchiveService' , 'current database';
Interface • publicinterfaceDrawable { /** Clear and useful comment. */ • publicvoiddrawYourself(Color baseColor, doublescaleFactor, int top, int left, DrawingAreasketchPad); /** Clear and useful comment. */ • publicintgetWidth(); / • publicintgetHeight(); ... } // interface Drawable • Another class • publicclassDrawableCircleextends Circle implementsDrawable { .... } // class DrawableCircle
Message handler Private void textBox_Validating(objectsender, CancelEvenArg e) { If (Convert.Toint32(textbox2.Text) < 35) { MessageBox.Show (“The age enter is not valid >35”)}}
Interoperability • Interoperability: endeavor required to connect a system to another system. • Focus on creating interfaces with other software systems or with other equipment firmware. • Specify the output structure accepted as standard in a specific industry or applications area. • With the increasing use of distributed systems, interoperability is a major issue to system developers. The number of standards and architectures have been developed to address some of these issues, with varying degrees of success. For example:
Architecture standards, such as the Distributed Computing Environment's (DCE) , the Object Management Group's (OMG) Common Object Request Broker Architecture (CORBA), and Microsoft's Component Object Model (COM), address the issue of calling methods across language, process, and machine boundaries.
using System;namespace ManagedServer{public class CManagedServer{public CManagedServer(){}public string SayHello(string r_strName) {string str ;str = "Hello " + r_strName ;return str ; }}}}
The following is the code that creates the object and calls its SayHello Method.Private Sub mdAcces()ManagedComponent_Click()Dim objServer As New ManagedServer.CManagedServerMsgBox(objServer.SayHello("15 Seconds reader"))objServer = NothingThe above code is very simple and COM Interoperability wrappers have abstracted all the complexities of accessing .NET components.
Interoperability • Another Example • The firmware of a medical laboratory’s equipment is required to process its results (output) according to a standard data structure that can then serve as input for a number of standard laboratory information systems.
Availability • Availability can also be expressed as a mean time between failure (MTBF) and mean time to repair (MTTR) • Availability = MTBF/(MTBF + MTTR) • For example: • The network should not fail more than once every 4,000 hours (166 days) and it should be fixed within one hour • Availability =4,000/(4000+1) = 99.98% • Down Time = (%SLA Up Time- % Availability) * 60 (Minutes)
AvailabilityDowntime in Minutes Minute/Per Hour Minute/Per Day Minute/Per Year Minute/Per Week 99.999% .0006 .01 .10 5 99.98% .012 .29 2 105 99.95% .03 .72 5 263 99.90% .06 1.44 10 526 99.70% .18 4.32 30 1577
References • D. GALIN: “SOFTWARE QUALITY ASSURANCE: FROM THEORY TO IMPLEMENTATION ”, PEARSON EDUCATION, 2004. • K. NAIK AND P. TRIPATHY: “SOFTWARE TESTING AND QUALITY ASSURANCE”, WILEY, 2008. • “SOFTWARE QUALITY ASSURANCE ENGINEERING AT NASA”, ROSENBERG AND GALLO, IEEE AEROSPACE ..., 2002