The document discusses standards and guidelines for software in the healthcare sector. It mentions that software on its own can be considered a medical device if intended for medical purposes. Validation of medical device software is an essential requirement. The IEC 62304 standard provides a framework for the software life cycle process for medical devices. Agile methodologies are discussed as an alternative to traditional waterfall models, emphasizing iteration, collaboration and quality. Techniques like unit testing, integration testing, versioning and bug tracking are recommended.
3. 1 progetto software su 6
sfora il budget del
200%
e i tempi del
70%
Flyvbjerg B., Why Your IT Project May Be Riskier Than You Think, Harvard Business Review, September 2011:3-4
Monday, October 29, 2012
6. DIRECTIVE 2007/47/EC OF THE EUROPEAN
PARLIAMENT AND OF THE COUNCIL
of 5 September 2007
amending Council Directive 90/385/EEC on the
approximation of the laws of the Member States
relating to active implantable medical devices,
Council Directive 93/42/EEC concerning medical
devices and Directive 98/8/EC concerning the placing
of biocidal products on the market
http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:
2007:247:0021:0055:en:PDF
Monday, October 29, 2012
7. (6) It is necessary to clarify that software in its own
right, when specifically intended by the manufacturer to
be used for one or more of the medical purposes set
out in the definition of a medical device, is a medical
device. Software for general purposes when used in a
healthcare setting is not a medical device.
Monday, October 29, 2012
8. (20) Taking account of the growing importance of
software in the field of medical devices, be it as stand
alone or as software incorporated in a device,
validation of software in accordance with the state
of the art should be an essential requirement.
Monday, October 29, 2012
9. IEC 62304
Medical device software – Software life cycle processes
Monday, October 29, 2012
27. stakeholders
possono essere numerosi e eterogenei.
Monday, October 29, 2012
28. scrivilo!
scrivere subito una bozza e migliorare;
usare strumenti con poco attrito (ad es. wiki).
Monday, October 29, 2012
29. versioning
git, mercurial, svn... o perfino cvs;
chi ha fatto cosa? quando? come torno indietro?
Monday, October 29, 2012
30. tener traccia dei difetti
come si riproduce;
cosa succede;
cosa dovrebbe succedere;
meglio un file excel condiviso che niente.
Monday, October 29, 2012
32. unit test
provano una funzione/unità per volta;
si scrivono mentre si implementa (o prima! -TDD);
si usano anche come test di regressione.
Monday, October 29, 2012
33. black box testing
provare il software dall'esterno;
integrare continuamente, e provare l'integrazione;
coinvolgere gli utenti il prima possibile.
Monday, October 29, 2012
34. fuzz testing
il mondo reale non è deterministico;
nemmeno il testing dovrebbe esserlo;
vedi, ad esempio zzuf.
Monday, October 29, 2012
35. automatizzare
deve essere possibile lanciare i test in un comando;
oltre ai test automatizzare tutto il resto.
Monday, October 29, 2012
36. Brooks, Fred P. (1986). "No Silver Bullet — Essence and Accident in Software Engineering".
Proceedings of the IFIP Tenth World Computing Conference: 1069–1076.
Monday, October 29, 2012
37. wiki
unit testing
fuzz testing
sviluppo iterativo
versioning
code review
integration testing bug tracking
automated building
Monday, October 29, 2012