Upload
candice-small
View
215
Download
1
Embed Size (px)
Citation preview
CPSC 871
John D. McGregorMCS1
Conformance and Certification
Please read for Thursday
• http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5562808&tag=1
Basic elements
• Software development process
– Requirements – Design – Coding – Integration
• Validation & Verification
– Reviews– Analyses– Tests
The basic set
• DO-178B (as well as A, C, D) are sets of guidelines for verifying software used in life critical systems in planes, trains, and automobiles as well as health care.
• Verification takes the form of an argument to “prove” that a product is safe.
• The argument is termed an “assurance case.”
High-level process
• Requirements – captures functional and non-functional
• Design – structures the system based on non-functional requirements
• Coding – design translated to executable statements
• Integration – components from multiple teams are brought together to form larger portions of the system
Verification
• Software Verification Process Framework, consisting of three techniques to perform the validation of the process:– Reviews: Provide a qualitative assessment of
correctness– Analyses: Provide repeatable evidence of
correctness– Tests: Dynamic execution of the product
Reviews and Analyses of the Software Architecture
• Compatibility with the high-level requirements• Consistency• Compatibility with the target computer• Verifiability• Conformance to standards• Partitioning integrity
Reviews and Analyses of the Source Code
• Compliance with the software architecture• Conformance to standards• Accuracy and consistency• Think SONAR
Requirements-Based Testing Methods
• Requirements-based Software Integration Testing
• Requirements-Based Low-Level Testing• Structural Coverage Analysis Resolution• Dead code• Deactivated code
Software Configuration Management Process Activities
• Change Review• Configuration Status Accounting
• Must assure that the build contains the correct units
• Must assure that deployment packages must contain the correct units
Software Design Standards
• Naming conventions to be used.• Constraints on design, for example, exclusion
of recursion• Complexity restrictions, for example,
maximum level of nested calls
Software Code Standards
• Programming language(s) to be used and/or defined subset(s).
• Naming conventions for components, subprograms, variables, and constants.
• Conditions and constraints imposed on permitted coding conventions, such as the degree of coupling between software components
An example of conformance testing
• http://files.ctia.org/pdf/CTIA_Bluetooth_CC_PMD_Rev_3.1.pdf
• Testing the conformance to the Bluetooth standard
• Many standards come complete with a test suite that evaluates conformance
• Not a substitute for product testing
Independent labs
• Labs become certified to test conformance• They must meet criteria• They may have to pay a fee to the standard
owner
More on deployment
• Enterprise programs – big, handles lots of data, embodies the firm’s business
• Local programs – small, change quickly, embody a set of rules
• Create a complete package, often tools such as Ant are used to automate package creation from a tested script
• Many platforms usually mean multiple scripts
Deployment do’s & don’ts
• Have a common language for each type of release• All release activity is documented in an issue tracking system• Absolutely everything must be in version control• Each environment has a single, well-defined responsibility• A software version is represented by an SCM tag• Every step of the release process is scripted and can be run by
anyone with sufficient privileges• Plan for failure• Don’t treat servers like your laptop; nuke and pave!
Deployment
• Types of deployment– Media-based – a set of discs that contain an
application that validates the platform and installs– Web-based – software is downloaded and a file is
unzipped – Local service – Windows has a local service– Remote service – a remote service controls the
deployment
Administrative actions Publish to users Assign to users Assign to
computersAfter the administrator deploys the software, it is available for installation:
If an application is deployed in a GPO that is already applied to the user from a previous logon, it is available for installation in the current logon session
If an application is deployed in a GPO that is already applied to the user from a previous logon, it is available for installation in the current logon session
The next time the computer starts (reboot).
Typically, users install the software from:
The Add/Remove Programs in Control Panel.
Start menu shortcut.Desktop shortcut.Add/Remove Programs in Control Panel.
The software is already installed.
If the software is not installed and the user opens a file associated with the software, will the application install?
yes yes The software is already installed.
Can the users remove the software using the Add/Remove Programs in Control Panel?
Yes. Users can re-install the application from the Add/Remove Programs in Control Panel.
Yes. The software will be re-advertised immediately. This means that the shortcuts will be present in the users' desktops and they can re-install the application by clicking on a shortcut, for example.
No. Only the local administrator can remove the software. A user can run a repair on the software.
The latest - DevOps
• An integration of development and operations teams
• Automation of deployment• Automation of feedback at all points• Paths of communication
IBM’s perspective
• http://www.ibm.com/ibm/devops/us/en/• Download and read the DevOps for Dummies
book from this web site• Culture, Process, and Tools• Plan and measure• Develop and test• Release and deploy • Monitor and optimize
LifeCycle
Case Study• This company is an online healthcare information provider offering consumers
information on improving health or treating an illness. Based in the United States, the company employs approximately 1,500 people. The company’s health information services systems consist of more than 200 applications.
• Business need: To quickly deliver an engaging customer experience with the most up-to-date information, this company needed a more efficient and reliable process to deploy new products and features.
• Solution: The organization implemented IBM® UrbanCode Deploy software to automate and improve its application deployment processes.
• Benefits: The company now achieves faster, continuous delivery of new functionality and value to customers. The solution helps reduce deployment risk and supports a more collaborative culture.
Case study 2• Headquartered in Chicago, Cars.com is a leading destination for online car
shoppers, visited by more than 11 million users each month. The site offers credible and easy-to-understand information from consumers and experts that can help users formulate opinions on what to buy, where to buy and how much to pay for a car. The site includes comprehensive pricing information, side-by-side comparison tools, photo galleries, videos, editorial content and a large inventory of new and used vehicles. Founded in 1998, Cars.com is a division of Classified Ventures, LLC.
• Business need: To eliminate a backlog of projects and improve staff efficiency and morale, Cars.com wanted to overhaul its development processes, moving from waterfall methods to agile methodology.
• Solution: Working with IBM and IBM Business Partner Ascendant Technology, LLC, Cars.com implemented IBM Rational Build Forge and IBM Rational Automation Framework software.
• Benefits: Using the new platform, Cars.com company decreased the time to deploy releases by 77 percent. The company now averages 300 new product releases a year versus the 30 to 40 it deployed in the past.
• http://www.coverity.com/library/pdf/Coverity-Meeting-DO-178B-Requirements.pdf
• http://technet.microsoft.com/en-us/library/bb742421.aspx
• http://emphaticsolutions.com/2009/09/06/the-rules-of-software-deployment.html