Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de...
Transcript of Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de...
![Page 2: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/2.jpg)
Object-OrientedSoftware Engineering
Plethora of (SE) Software Engineering Paradigmspromoting “quality by construction”
• syndrome of *-based software engineering approaches
– underpinning principles
• simple design
• low coupling and high cohesion
• separation of concerns
• narrow interfaces
• ….
– abstractions and decomposition mechanisms
• classes, objects, inheritance, delegation, …
– new methods, techniques, mechanisms
Component-BasedSoftware Engineering
Product LineEngineering
Aspect-Oriented
Software Development
Architecture-CentricSoftware Development
Pattern-Based
Software Engineering
Are theyenough?
![Page 3: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/3.jpg)
However ...
Memory manager component - Linux
3
... Spite of developers applying those principles and approaches by construction
Taylor, R. et al. Software Architecture: Foundations, Theory and Practice. Wiley Publishing. 2009
Nenad Medvidović. When, Where, and Why Do Software Systems Architectures Decay? March 2013.
![Page 4: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/4.jpg)
Quality Degradation over Time
Actual architecture - iRODS
March 16 4
violations of theintended architecture
Taylor, R. et al. Software Architecture: Foundations, Theory and Practice. Wiley Publishing. 2009
Nenad Medvidović. When, Where, and Why Do Software Systems Architectures Decay? March 2013.
![Page 5: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/5.jpg)
Quality Degradation over Time
• Hadoop
5
![Page 6: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/6.jpg)
Quality Degradation over Time
Actual architecture - Hadoop
March 16 6Nenad Medvidović. When, Where, and Why Do Software Systems Architectures Decay? March 2013.
![Page 7: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/7.jpg)
Intended architecture of a software system
March 16 7
• … defines how developers actually communicate and
work on the system’s “building blocks”
![Page 8: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/8.jpg)
Actual architecture of the same…
March 16 8
… software system
![Page 9: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/9.jpg)
Architectural Erosion
March 16 9
Actual architecture in the program
Intended
architecture
![Page 10: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/10.jpg)
Architectural Erosion
March 16 10
Actual architecture in the program
Intended
architecture
![Page 11: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/11.jpg)
Architectural Drift
March 16 11
Intended
architecture
No dependencyviolation!
Unused interface
Scattered parasitic functionality
Ambiguous interface
Connector envy
Bloated interface
Concernoverload
![Page 12: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/12.jpg)
Retrospective Techniques in SE
• Help to undestand when, how and why certain quality problems were introduced
– architecture recovery techniques
– bug localization techniques
– system’s reviews
• However, then reparining the problems afterwards might be too late...
![Page 13: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/13.jpg)
Continuous Code Quality
March 16 13
Did I violate any design rule?
How is the modularity ‘health’
of my code?
Will I introduce
merge conflicts?
Did I introduce security vulnerabilities?
How should I
refactor my code?
How to implement this ‘catch’ block?
Is my list of assertions
ok?
![Page 14: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/14.jpg)
Continuous Code Quality
• support: warn and provide feedback to developers when editing the code
14
Before After
OngoingContinuously
Inbetween
Programmer
editing code
specifying
designing
compiling
committing
maintaining
evolving
![Page 15: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/15.jpg)
Examples of emerging SE techniques
• Continuous Maintainability
• Continuous Robustness
• Continuous Security
15
![Page 16: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/16.jpg)
Ementa e Formato da Disciplina
• Série de seminários/aulas
• Parte 1: Técnicas para qualidade de software por construção/retrospecção
– Arquitetura de software
• Recuperação de arquitetura
– Linhas de produto de software
– Desenvolvimento orientado a aspectos
– Localização de bugs
– Etc...16
![Page 17: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/17.jpg)
Ementa e Formato da Disciplina
• Parte 2: Taxonomia para problemas de
qualidade de software
– Anomalias de modularidade
– Anomalias de robustez
– Vulnerabilidades de segurança
– Outros problemas de qualidade
• Estudos de caso: por que e como estes
problemas ocorrem em projetos de software?
• Limitações de técnicas prospectivas e
retrospectivas de análise de qualidade de
software 17
![Page 18: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/18.jpg)
Ementa e Formato da Disciplina
• Parte 3: Qualidade contínua em software
– Robustez contínua em software
– Modularidade contínua em software
– Segurança contínua em software
– Suporte a colaboração para qualidade
contínua em software
Apresentações dos alunos e aulas
18
![Page 19: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/19.jpg)
Trabalho
• Apresentação
– Cada aluno escolhe uma técnica de
qualidade contínua para estudar e apresentar
• Apresentação de aprox. 50 minutos
– Monografia pode abordar qualquer um destes
temas:
• Revisão conceitual daquela área
• Revisão sistemática de trabalhos naquela área
• Comparação de técnicas naquela área
• Um estudo de caso de uma ferramenta
• Etc...
![Page 20: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/20.jpg)
Assessment
• Participation – 10%
• Presentation – 45%
• Article – 45%
![Page 21: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/21.jpg)
Monografia e Apresentação
• Critério:– Clareza e Objetividade– Originalidade– Uso de exemplos– Reflexão crítica– Se houver avaliação/comparação, espera-se que o
critério esteja bem definido– Largura e profundidade– Se envolver implementação:
• criatividade no projeto • uso elegante de principios e mecanismos de modularidade• qualidade da documentação do projeto
![Page 22: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/22.jpg)
Atendimento
• Todos sempre muito bem-vindos para discutir proposta e refinamento do trabalho, apresentação e outras questões
• Via email: [email protected]
• Minha sala: RDC – 506, marcar horário com antecedência
![Page 23: Qualidade Contínua de Software › ~inf2007 › docs › aulas › 1-Course... · qualidade de software – Anomalias de modularidade – Anomalias de robustez – Vulnerabilidades](https://reader033.fdocuments.net/reader033/viewer/2022060411/5f1088e07e708231d44995d5/html5/thumbnails/23.jpg)
Próximas duas aulas
• 15/3, 16:00, terça: sala 9º. Andar, Prédio Couve-
Flor
• 22/3, 16:00, terça: sala 9º. Andar, Prédio Couve-
Flor
Professores Convidados:
1) architecture-centric development,
Apache Ant (Prof. Marcio Barros)
2) product-line engineering (Prof. Jaejoon Lee)