Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Luigi Vanvitelli
Dipartimento di Ingegneria
Laurea Magistrale in Ingegneria Informatica
Fault Avoidance
Topics covered
Fault avoidance
Dependable processes
Fault Avoidance
Fault avoidance
The system is developed in such a way that human error is
avoided and thus system faults are minimised.
The development process is organised so that faults in the system
are detected and repaired before delivery to the customer.
Documentable The process shou ld have a defined process model that sets out
the activities in the process and the docu mentation that is to be
produced during these activities.
Standardised A comprehensive set of software development standards that
define ho w the software is to be produced and documented
should be available.
Auditable The process shou ld be understandable by people apart from
process participants who can check that process standards are
being followed and make suggestions for process improvement.
Diverse The process shou ld include redundant and diverse verification
and validation activities.
Robust The process shou ld be able to recover from failures of
individual process activities.
Software Design
UML
"The Unified Modeling Language (UML) is a graphical
language for visualizing, specifying, constructing, and
documenting the artifacts of a software‐intensive
System”
UML Diagrams
SysML
The OMG systems Modeling Language (OMG SysML™) is a
general‐purpose graphical modeling language for specifying,
analyzing, designing, and verifying complex systems that may
include hardware, software, information, personnel, procedures,
and facilities.
- http://www.omgsysml.org/
- http://www.ati.ttu.ee/~helena_k/sysml
SysML Structure
SysML vs UML
Pillars of SysML
Requirements
• A requirement describes one or more properties or
behaviors of a system that always have to be met.
• Functional requirements represent capabilities of the
system (can be modeled with Use Case)
• Non‐functional requirments cover areas such as
performance or reliability, constraints (no element in UML
to explicitly describe nonfunctional requirements)
Requirement element
• Probabilities of flows.
• Modeling rules for activities in the form of a block definition
diagram (function trees).
Affidabilità dei Sistemi Software Complessi - Docente: Massimo Ficco 40
SysML Activity Diagram
Function trees can be
represented by block
definition diagrams
Allocations
Parametric diagram
• SysML provides possibility to simulate portions of the
model, based on mathematical and physical laws that
describe key aspects of the system.
Constraint blocks
• A constraint block describes constraints on system
structures and the parameters required.
• Notation: «constraintBlock» (or «constraint»)
• Constraints are declared in Block Definition Diagram
• Decraled constrains are applied to the parametric diagram
Online resources
UML:
• UML Resource Page: http://www.uml.org/
• UML graphical notation overview: http://www.uml‐diagrams.org/
• UML Tutorial: http://uml‐tutorials.trireme.com/
SysML:
• OMG SysML page: http://www.omgsysml.org/
• INCOSE SysML Tutorial:
http://www.sysmlforum.com/sysmltutorials/
• Think SysML: http://www.thinksysml.org/Tutorials.html
• SysML FAQ: http://www.sysmlforum.com/sysml‐faq/
• HSUV sxample: http://www.omg.org/ocsmp/HSUV.pdf
La domotica cont’d
Nei sistemi domotici, impianti ed elettrodomestici
convivono in uno stesso ambiente grazie all’impiego
di un sistema di controllo che garantisce
contemporaneamente requisiti di:
● Semplicità
● Affidabilità
● Apertura
● Integrazione
● Flessibilità
● Espandibilità
● Continuità di funzionamento
Dependable programming
Use programming constructs and techniques that contribute
to fault avoidance
Fault-free software
Current methods of software engineering now
allow for the production of fault-free software, at least
for relatively small systems.
Fault-free software means software which
conforms to its specification. It does NOT mean
software which will always perform correctly as
there may be specification errors.
The cost of producing fault free software is very
high. It is only cost-effective in exceptional
situations. It is often cheaper to accept software faults
and pay for their consequences than to expend
resources on developing fault-free software.
Safe programming
Faults in programs are usually a consequence of
programmers making mistakes.
These mistakes occur because people lose track of the
relationships between program variables.
Some programming constructs are more error-prone than
others so avoiding their use reduces programmer mistakes.
Error-prone constructs
Inheritance (binding dinamico che rende difficile comprendere il
comportamento di un oggetto)
Code is not localised. This can result in unexpected
behaviour when changes are made and problems of
understanding.
Unbounded arrays
A run-time il sistema non controlla se le assegnazioni sono
corrette – buffer-overflow
Default input processing
Può costituire una vulnerabilità sfruttabile da un attacker
Validation activities
Requirements inspections
Model checking (analisi automatica tramite strumenti CASE
per garantire la consistenza)
Design and code inspection
Static analysis
Test planning and management
Configuration management