software productivity and reliability tools and techniques

56
2/5/07 Copyright © 2007 S.C. Kothari All rights reserved 1 Software Software Productivity and Reliability Productivity and Reliability Tools and Techniques Tools and Techniques Microsoft Presentation, February 5, 2007 Microsoft Presentation, February 5, 2007 S. C. Kothari S. C. Kothari Iowa State University & EnSoft Corp. Iowa State University & EnSoft Corp. Phone: 515 Phone: 515 - - 294 294 - - 7212 7212 Email: Email: [email protected] [email protected]

Upload: others

Post on 03-Feb-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Productivity and Reliability Tools and Techniques

2/5/07Copyright © 2007 S.C. Kothari All

rights reserved 1

Software Software Productivity and ReliabilityProductivity and Reliability

Tools and TechniquesTools and Techniques

Microsoft Presentation, February 5, 2007Microsoft Presentation, February 5, 2007S. C. KothariS. C. Kothari

Iowa State University & EnSoft Corp.Iowa State University & EnSoft Corp.Phone: 515Phone: 515--294294--7212 7212

Email: Email: [email protected]@iastate.edu

Page 2: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 22

Page 3: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 33

Page 4: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 44

Bygone Era

…New Reality

Page 5: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 55

The IBM 360 finally reached the Palouse wheat fields of Eastern Washington. It cost the university two million dollars in 1966. I began using it and the world opened up. Right away, I solved a differential equation numerically and found myself staring at a Butterfly Effect. It’d be decades before that term entered our vocabulary. These new machines led us into a brave new world.

– from Engines of Our Ingenuity by John H. Lienhard

Page 6: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 66

IBM 360IBM 360

Page 7: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 77

Operating System/360 Operating System/360 The notThe not--unexpected passing away of OS/360 in its unexpected passing away of OS/360 in its 21st release 21st release –– August 2, 1972.August 2, 1972.Obituary:Obituary:

The offspring first saw the light of day in December 1965 The offspring first saw the light of day in December 1965 and the birth announcement recorded a weight of 64K. It and the birth announcement recorded a weight of 64K. It rapidly became apparent that OS, in spite of its unusual rapidly became apparent that OS, in spite of its unusual size, was more than normally subject to childhood diseases. size, was more than normally subject to childhood diseases. For a long period, this weak and sickly baby hovered close For a long period, this weak and sickly baby hovered close to death despite almost continuous transformations and to death despite almost continuous transformations and major transplants of several vital organs. Many experts are major transplants of several vital organs. Many experts are of the opinion that the huge weight of OS at birth of the opinion that the huge weight of OS at birth contributed greatly to its early ill health. OS is survived by contributed greatly to its early ill health. OS is survived by two lineal descendants, OS/VS1 and OS/VS2. It will be two lineal descendants, OS/VS1 and OS/VS2. It will be mourned by its many friends and particularly by the over mourned by its many friends and particularly by the over 10,000 system programmers throughout the world who owe 10,000 system programmers throughout the world who owe their jobs to its existence. their jobs to its existence.

Page 8: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 88

Bygone EraBygone Era

Expensive computers.Expensive computers.Limited CPU power and small Limited CPU power and small memory.memory.Computer’s time more valuable than programmer’s time.

Page 9: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 99

New RealityNew Reality

Human Complexity – programmer’s time and effort – now far more important and expensive than the computer.Human Complexity is the bottleneck to achieving significant improvements in software productivity and quality.

Page 10: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1010

Software evolves …

Page 11: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1111

History of Microsoft WindowsHistory of Microsoft WindowsNovember 10, 1983, Microsoft announced Microsoft Windows®, an extension of the MS-DOS®operating system.

This marked the beginning of the graphical user interface (GUI) era at Microsoft.

Vista

Page 12: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1212

Boundaries of our technologies?

Page 13: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1313

TestingTesting

Testing Testing -- laborious and unreliable to guard laborious and unreliable to guard against defects due to against defects due to unspecified unspecified behaviorsbehaviors. . A bruteA brute--force coverage of all paths is not force coverage of all paths is not possible possible –– the number of execution paths the number of execution paths is typically an astronomically large is typically an astronomically large number. number. A test run implies traversing of one A test run implies traversing of one execution path at a timeexecution path at a time–– defective paths defective paths may not be covered during the test runs.may not be covered during the test runs.

Page 14: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1414

Software MetricsSoftware Metrics

The quantification problem is wide open.The quantification problem is wide open.History tells us that it may be many years History tells us that it may be many years before we solve the problem. before we solve the problem. There were 35 different temperature There were 35 different temperature scales before the scales before the CelsiusCelsius. . Starting with the earliest paper in 1968, Starting with the earliest paper in 1968, we have more than 1000 software metrics we have more than 1000 software metrics –– it will be a long time before we have it will be a long time before we have metrics that we can agree on. metrics that we can agree on.

Page 15: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1515

DocumentationDocumentation

One guarantee we will always have One guarantee we will always have ––documentation of any useful documentation of any useful software will never be complete.software will never be complete.One guarantee we will never have One guarantee we will never have ––the documentation will always be the documentation will always be consistent with the software.consistent with the software.

Page 16: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1616

Program Writing Technologies Program Writing Technologies

Examples: Programming languages, Examples: Programming languages, components and libraries, design patterns ..components and libraries, design patterns ..For writing new software: Program writing For writing new software: Program writing technologies have advanced a lot, but their technologies have advanced a lot, but their focus is primarily on implementation rather focus is primarily on implementation rather than design and prototyping; they tend to than design and prototyping; they tend to obfuscate the domain knowledge. obfuscate the domain knowledge. For evolving existing software: still a long For evolving existing software: still a long way to go way to go ……

Page 17: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1717

Software production

… a lot more besides writing it

Page 18: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1818

Software Software –– besides writing itbesides writing itMaintenance and evolution of software typically accounts for 65 to 70 percent of the total effort.Inspection and certification – critical for safety and mission critical applications.Reliability of software – the need to understand and address many complex issues.Preservation, propagation, and application of domain knowledge – critical for improving productivity and quality of software.

Page 19: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 1919

Software Evolution: A Classroom Software Evolution: A Classroom ExperienceExperience

In an operating system course project, a student spends:• 40 hours in identifying and understanding the

relevant parts of code.• 2 hours in making the actual code changes to

incorporate the specified functionality.• 10 hours in testing and debugging the code.

The required code changes are small and the bugs are usually due to incomplete or incorrect understanding.

Page 20: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2020

Inspection and CertificationInspection and Certification

Coding standards: Coding standards: •• The MISRA C for automotive industryThe MISRA C for automotive industry•• Ellemtel C++ for telecommunication Ellemtel C++ for telecommunication

industryindustry

DODO--178B 178B –– the standard for safetythe standard for safety--critical avionics critical avionics software.software.

Page 21: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2121

Software ReliabilitySoftware Reliability

A hard problem because of the A hard problem because of the intrinsic domain complexity, the costintrinsic domain complexity, the cost--performance tradeoffs, an ever performance tradeoffs, an ever broadening scope of applications, and broadening scope of applications, and the everthe ever--changing implementation changing implementation technologies.technologies.Critically important due to safety, Critically important due to safety, security, and financial risks associated security, and financial risks associated with software failures. with software failures.

Page 22: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2222

Domain Knowledge Domain Knowledge -- The KeyThe KeyImagine how difficult it would be to understand OS code without knowing the underlying OS design principles.Productivity and quality depends on:•• Preservation of knowledgePreservation of knowledge –– withstanding the withstanding the

long software lifecycles and high turnover of personnel.

•• PPropagation of knowledgeropagation of knowledge –– training new training new recruitsrecruits.

•• Application of knowledge Application of knowledge –– bridging the gap bridging the gap between the domain knowledge and the code.between the domain knowledge and the code.

Page 23: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2323

Program Reading

.. It deserves attention

Page 24: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2424

Program Reading Program Reading –– A Critical NeedA Critical Need

Program Reading Program Reading –– analyzing, analyzing, reasoning, and auditing software reasoning, and auditing software ––overlooked by our educational overlooked by our educational system. system. We only have rudimentary program We only have rudimentary program reading technologies reading technologies –– tools such as tools such as the open source the open source Cscope. Cscope.

Page 25: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2525

Program Reading Program Reading –– It is not just for It is not just for the developersthe developers

Beyond developers, program reading Beyond developers, program reading can benefit managers.can benefit managers.Get a survey of the software artifacts Get a survey of the software artifacts and their interrelationships and their interrelationships –– make make informed decisions.informed decisions.Get an audit report Get an audit report –– check check compliance with quality requirements.compliance with quality requirements.

Page 26: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2626

Program Reading

… It is not easy

Page 27: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2727

Program reading is not easyProgram reading is not easy

Program reading is often difficult and Program reading is often difficult and challenging.challenging.NonNon--localized relationships between localized relationships between software artifacts.software artifacts.Complexity of semantic analysis.Complexity of semantic analysis.Lack of domain knowledge or the Lack of domain knowledge or the difficulty of applying it.difficulty of applying it.

Page 28: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2828

CrossCross--cutting Relationships and cutting Relationships and Complex SemanticsComplex Semantics

As an example, we will present a As an example, we will present a series of semantically more complex series of semantically more complex matching pairmatching pair (MP) (MP) defects.defects.Basic pattern: to be correct, a Basic pattern: to be correct, a program must haveprogram must have matching pairsmatching pairsof artifacts (e.g. parentheses) or of artifacts (e.g. parentheses) or events (e.g. locking and unlocking). events (e.g. locking and unlocking).

Page 29: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 2929

First Model of MP DefectsFirst Model of MP Defects

Must have matching pairs of Must have matching pairs of syntactic patterns syntactic patterns –– for for example, parentheses.example, parentheses.Must analyze Must analyze syntax syntax to find to find

defects.defects.

Page 30: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3030

Second Model of MP DefectsSecond Model of MP Defects

Must have matching pairs Must have matching pairs f f and and f f --11 along each along each execution execution pathpath..Must analyze the Must analyze the control flowcontrol flowto find defects.to find defects.

Page 31: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3131

E1

S2

E3

E2

f

f -1

Defective path

Not a defective path

Matching Pairs

Page 32: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3232

Third Model of MP DefectsThird Model of MP Defects

Must have the same Must have the same ididassociated with associated with ff andand f f --11.The The idid gets passed through gets passed through tokens. tokens. Must analyze the Must analyze the control and control and data flow data flow to find defects.to find defects.

Page 33: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3333

Fourth Model of MP DefectsFourth Model of MP Defects

f f and and f f --11 may occur on may occur on disconnected paths due to disconnected paths due to concurrency and interrupt concurrency and interrupt processing. processing. Must analyze the Must analyze the control flowcontrol flow, , data flowdata flow and and disconnected disconnected execution pathsexecution paths..

Page 34: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3434

Shared pool of tokens

D1

T2

f -1

disconnected execution path

E1

S2

E3

E2

f

f -1

Matching Pairs

Watch a scenario that makes the second path also a non-defective path.

Watch a second path –appears to be defective.

Watch one non-defective path.

Matching Pairs

Page 35: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3535

ObservationsObservations

Compilers cannot catch the defects Compilers cannot catch the defects beyond the first model, because they beyond the first model, because they are limited by the kind of static are limited by the kind of static program analysis they can perform. program analysis they can perform. The static program analysis required The static program analysis required for an accurate solution for the for an accurate solution for the second and third model is known to second and third model is known to be intractable (Ricebe intractable (Rice--MyhillMyhill--Shapiro Shapiro theorem, 1953theorem, 1953))..

Page 36: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3636

Program Reading Technologies

… Wave of the future

Page 37: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3737

Program Reading TechnologiesProgram Reading Technologies

Goal: Provide tools to assist with Goal: Provide tools to assist with the reading of complex the reading of complex programs.programs.Tools will address specific needs: Tools will address specific needs: program understanding, smart program understanding, smart testing, defect analysis, impact testing, defect analysis, impact analysis, inspection, auditing analysis, inspection, auditing ……

Page 38: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3838

“Assigning more programmers to a project running behind schedule will make it even later.”

Page 39: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 3939

Page 40: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4040

Fred Brooks Fred Brooks –– A Legend in A Legend in Computing Computing

Architect of the IBM 360 OS.Architect of the IBM 360 OS.Author of the classic Author of the classic -- The Mythical The Mythical ManMan--Month: Essays on Software Month: Essays on Software Engineering.Engineering.National Medal of Technology National Medal of Technology (1985).(1985).A.M. Turing Award, Association for A.M. Turing Award, Association for Computing Machinery (1999).Computing Machinery (1999).

Page 41: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4141

Tools to amplify human intelligenceTools to amplify human intelligence

Fredrick Brooks:Fredrick Brooks:“... IA > AI, that is, that intelligence amplifying systems can, at any given level of available systems technology, beat AI systems. That is, a machine and a mind can beat a mind-imitating machine working by itself.”

Page 42: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4242

Program Reading Technologies

… Work at ISU and EnSoft

Page 43: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4343

KnowledgeKnowledge--Centric Software (KCS) Centric Software (KCS) ToolsTools

Goal: Enable program reading to preserve, Goal: Enable program reading to preserve, propagate, or apply domain knowledge. propagate, or apply domain knowledge. KCS tools automate execution of KCS tools automate execution of intelligent program reading strategies:intelligent program reading strategies:•• User designs the strategies. User designs the strategies. •• Tools help in executing the strategies by Tools help in executing the strategies by

automating extraction and modeling of automating extraction and modeling of information about software artifacts and their information about software artifacts and their relationships. relationships.

Page 44: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4444

QueryQuery--ModelModel--Refine (QMR) Refine (QMR) ApproachApproach

A natural way to amplify human intelligence by assisting in: •Retrieval of information by analyzing software.

•Generation of visual models from the retrieved information.

•Refinement of the models to manage complexity.

Page 45: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4545

Tools TechnologyTools TechnologyeXtensible Common Intermediate Language (XCIL): a language for referring to program artifacts – makes it easier to develop tools for different languages (Ada, COBOL, C, C++, FORTRAN, and Java).eXtensible Pattern Specification Language (XPSL): a language for referring to relations between program artifacts –makes it easier to develop tools for different domains (control software, systems software, numerical software, business software).

Page 46: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4646

Program Reading Tools

… A Trailer

Page 47: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4747

An Example of Architecture An Example of Architecture Extraction Extraction

Extracting the architecture of XINU Extracting the architecture of XINU networking code.networking code.A model and two successive A model and two successive refinements:refinements:•• View I: Call graph (CG) as a model.View I: Call graph (CG) as a model.•• View II: CG after one refinement.View II: CG after one refinement.•• View III: CG after the second View III: CG after the second

refinement.refinement.

Page 48: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4848

The Call Graph ModelThe Call Graph Model

Page 49: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 4949

After one refinementAfter one refinement

Page 50: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 5050

After the second refinementAfter the second refinement

Page 51: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 5151

Program Reading Tools

… demos and discussions

Page 52: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 5252

Program Reading Tools From EnSoft

Page 53: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 5353

Total Insight Total Insight –– A COBOL ToolA COBOL Tool

Page 54: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 5454

SimDiff SimDiff –– A Model Differencing ToolA Model Differencing Tool

Page 55: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 5555

Atlas Atlas –– A Program Mapping ToolA Program Mapping Tool

Page 56: Software Productivity and Reliability Tools and Techniques

2/5/072/5/07 Copyright Copyright ©© 2007 S.C. Kothari All rights reserved2007 S.C. Kothari All rights reserved 5656

ReferencesReferencesMISRA C Coding Standard:MISRA C Coding Standard:•• http://www.knosof.co.uk/misracom.htmlhttp://www.knosof.co.uk/misracom.html•• http://www.misra.org.uk/http://www.misra.org.uk/

Ellemtel C++ Coding Standard:Ellemtel C++ Coding Standard:•• http://www.doc.ic.ac.uk/lab/cplus/c++.rules/http://www.doc.ic.ac.uk/lab/cplus/c++.rules/

Avionics software standard:Avionics software standard:•• http://en.wikipedia.org/wiki/DOhttp://en.wikipedia.org/wiki/DO--178B178B

Cscope:Cscope:•• http://cscope.sourceforge.net/http://cscope.sourceforge.net/

Fredrick Brooks, Fredrick Brooks, TheThe Computer Scientist as ToolsmithComputer Scientist as Toolsmith,,•• http://www.cs.unc.edu/~brooks/Toolsmithhttp://www.cs.unc.edu/~brooks/Toolsmith--CACM.pdfCACM.pdf

Earliest paper on software complexity: Earliest paper on software complexity: •• Rubey, R.J.; Hartwick, R.D.: Quantitative Measurement Program QuRubey, R.J.; Hartwick, R.D.: Quantitative Measurement Program Quality. ACM, ality. ACM,

National Computer Conference pp. 671National Computer Conference pp. 671--677, 1968.677, 1968.KnowledgeKnowledge--Centric Software Research Laboratory at ISUCentric Software Research Laboratory at ISU•• http://dirac.ece.iastate.edu/sec/http://dirac.ece.iastate.edu/sec/

EnSoft Corp. EnSoft Corp. •• http://www.ensoftcorp.com/http://www.ensoftcorp.com/