This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2015/2016] Collaborative software development with GitIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Requirements Engineering,
Functional and Non-Functional Requirements,
Engineering Design Process and Process Engineering,
Logistics Management,
Risk management, and
Requirements specification
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2015/2016] Collaborative software development with GitIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Requirements Engineering,
Functional and Non-Functional Requirements,
Engineering Design Process and Process Engineering,
Logistics Management,
Risk management, and
Requirements specification
Know Software Engineering very well and see the difference between the Software Programming & Software Engineering. Including other concepts as well as where you will know how this Software engineering is different for the building the software compared to do only the programming.
Selenium - A Trending Automation Testing Toolijtsrd
Selenium is an important testing tool for software quality assurance. In recent days number of websites are increasing rapidly and it becomes essential to test the websites against various quality factors to make sure it meets the expected quality goals. Several companies are spending a lot of bucks for the testing tool while Selenium is available completely free for the performance test. The open source tool is well known for its unlimited capabilities and unlimited reach. Selenium stands out from the crowd in this aspect. Anyone could visit the Selenium website and download the latest version and use it. It is not only an open source but also highly modifiable. Testers could make changes based upon their needs and requirements. Manav Kundra "Selenium - A Trending Automation Testing Tool" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-4 | Issue-4 , June 2020, URL: https://www.ijtsrd.com/papers/ijtsrd31202.pdf Paper Url :https://www.ijtsrd.com/engineering/software-engineering/31202/selenium-%E2%80%93-a-trending-automation-testing-tool/manav-kundra
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)IrtazaAfzal3
A prescriptive process model is a model that describes "how to do" according to a certain software process system. ... Prescriptive models are used as guidelines or frameworks to organize and structure how software development activities should be performed, and in what order.
Systems Engineering Principles in Problem SolvingAkhmad Hidayatno
ISEEC UI is an international competition for Industrial Engineers and Systems Engineers hosted by Universitas Indonesia. This slides are guidance on how to develop solutions in ISEEC UI.
Know Software Engineering very well and see the difference between the Software Programming & Software Engineering. Including other concepts as well as where you will know how this Software engineering is different for the building the software compared to do only the programming.
Selenium - A Trending Automation Testing Toolijtsrd
Selenium is an important testing tool for software quality assurance. In recent days number of websites are increasing rapidly and it becomes essential to test the websites against various quality factors to make sure it meets the expected quality goals. Several companies are spending a lot of bucks for the testing tool while Selenium is available completely free for the performance test. The open source tool is well known for its unlimited capabilities and unlimited reach. Selenium stands out from the crowd in this aspect. Anyone could visit the Selenium website and download the latest version and use it. It is not only an open source but also highly modifiable. Testers could make changes based upon their needs and requirements. Manav Kundra "Selenium - A Trending Automation Testing Tool" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-4 | Issue-4 , June 2020, URL: https://www.ijtsrd.com/papers/ijtsrd31202.pdf Paper Url :https://www.ijtsrd.com/engineering/software-engineering/31202/selenium-%E2%80%93-a-trending-automation-testing-tool/manav-kundra
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)IrtazaAfzal3
A prescriptive process model is a model that describes "how to do" according to a certain software process system. ... Prescriptive models are used as guidelines or frameworks to organize and structure how software development activities should be performed, and in what order.
Systems Engineering Principles in Problem SolvingAkhmad Hidayatno
ISEEC UI is an international competition for Industrial Engineers and Systems Engineers hosted by Universitas Indonesia. This slides are guidance on how to develop solutions in ISEEC UI.
In a project of the complexity of the SKA, it is very important to be very observant of the different requirements for the SKA telescopes, and how they are implemented by the different sub-systems. And because the design of the SKA is evolving, the need to assess the impact of design changes, and potential trade-offs, is more relevant than ever. In this talk I will present how the SKA Organisation is leading the Systems Engineering work of the different consortia, and how we are using Model Based Systems Engineering (MBSE) to integrate the design inputs from the sub-systems, and be able to keep a Systems view that ensures that the element designs are sound, and really comply with the stringent requirements posed by the SKA.
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
5th of April 2016. My presentation done at the 3rd Architecture Centric Virtual Integration Workshop (ACVI) workshop, co-located with WICSA and Comparch 2016, Venice, Italy.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/IEEESoftware_2015.pdf
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2015/2016] Introduction to software architectureIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2015/2016] AADL (Architecture Analysis and Design Language)Ivano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Introduction to the course
Hybrid mobile development frameworks
Mobile thinking
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Navigation
Forms
Search, sort & filter
Tools
Invitations
Feedback & Affordance
Anti-Patterns
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Definition of design
Design principles
User-centred design
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Introduction to software engineering
Software products
Why Software is Important?
Software costs
Features of Software?
Software Applications
Software—New Categories
Software Engineering
Importance of Software Engineering
Essential attributes / Characteristics of good software
Software Components
Software Process
Five Activities of a Generic Process framework
Relative Costs of Fixing Software Faults
Software Qualities
Software crisis
Software Development Stages/SDLC
What is Software Verification
Advantages of Software Verification
Advantages of Validation
Hugtakið hugbúnaðararkítektúr er yfirhlaðið orð og þýðir mismunandi hluti fyrir mismunandi fólk. Við ætlum í þessum fyrirlestri að skilgreina ýmis hugtök tengd arkítektúr til að fá betri skilning á þessu. Við munum einnig skilgreina hvað agile arkítektúr þýðir eða hvað það þýðir ekki. Þá skoðum við monolith arkítektúr sem er hinn hefðbundi arkítektúr sem flestir nota í dag. Vandinn er sá að í dag eru kröfurnar meiri en þessi arkítektúr ræður við og því hafa menn verið að skoða aðrar leiðir eins og lightweight Service Oriented Architecture og hvernig smíða má hugbúnað sem þjónustur eða microapps eða microservice.
Við skoðum einnig lagskiptingu en það er elsta trikkið í bókinni og byggir á deila og drottna aðferðinni.
Kelis King offer involve conducting system testing to ensure correct operation, and integration testing to ensure the system integrates correctly with other required systems, such as databases.
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
Slides of my invited talk at the 2nd workshop on Quality and Reliability Assessment of Robotic Software Architectures and Components (QRARSAC), co-located with the International Conference on Robotics and Automation (ICRA 2023).
Abstract of the talk. Today robotic systems are central to many industrial sectors, such as logistics, autonomous warehousing, and healthcare. If on one side ROS is helping roboticists by providing a standardized communication platform for robotic systems, on the other side ROSsystems are getting more and more large and complex, thus making it extremely difficult to ensure their level of quality, e.g., in terms of performance, security, energy efficiency, testability, maintainability. Improving the quality of robotic systems is not a new activity, but in this talk, we tackle it from a different perspective: we look at them from a software architecture perspective. In this talk, I will walk you through a series of experiments we conducted at the Vrije Universiteit Amsterdam targeting the architecture of ROS systems, we will discuss some architectural tactics for ROS systems, and will close with an overview of our open-source tool for automatically executing experiments on robotics software.
The slides of a short presentation I gave about my experience about working in the context of EU grants. It contains tips and tricks for the before/during/after phases of a EU project.
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
The slides of my presentation about the Green Lab at the event called Research Cocktail (October 2020). The event is organized by the Computer Science Department of the Vrije Universiteit Amsterdam.
The source code of our tools and the replication package of our experiments performed in the Green Lab can be found here: https://github.com/S2-group
For further details about the Green Lab and all our activities around it, you can contact me at i.malavolta@vu.nl
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
Slides of my presentation at the NIER track of the 41th International Conference on Software Engineering (ICSE 2019).
The paper is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2019_NAPPA.pdf
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
Slides of my presentation at the Research track of the 34th International Conference on Software Maintenance and Evolution (ICSME 2018).
The full paper is available here: http://www.ivanomalavolta.com/files/papers/ICSME_2018.pdf
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
Slides of my presentation at the Journal first track of the 40th International Conference on Software Engineering (ICSE 2018).
The accompanying extended abstract is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2018_JournalFirst.pdf
The original TSE paper is available here: http://www.ivanomalavolta.com/files/papers/TSE_2017.pdf
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.it/.
http://www.ivanomalavolta.com
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
3. Hello
Software Architecture & Model-Driven Engineering
applied to
Autonomous drones
Mobile applications
Web technologies
If you think good architecture is expensive,
try bad architecture.
... Brian Foote and JosephYoder
5. Course overview
Module name #hours Instructor
Introduction to the course 2 Inverardi
Software engineering principles and research 4 Malavolta
Software development process 2 Malavolta
Eclipse IDE 2 Iovino
Collaborative software development 1 Malavolta
Model-based design and development 8 Iovino
Software architecture 6 Malavolta
LAB 2 Iovino, Malavolta
Modern development paradigms 2 Malavolta
Principles of software testing and dependability 2 Bertolino
Homework 1
Christmas break
Homework 2
6. Homework 1
Tasks
• create an AADL specification describing the architecture of a chosen system
• write an Acceleo program or an ATL transformation that takes as input the
AADL model and produces some report or other artifact
• write a report describing the performed activities
Goals
• to understand what are the advantages of SE principles like abstraction and
separation of concerns
• to concretely understand what architectural modeling means
• to be exposed to concerns and issues related to dependability
• to understand how to use MDE techniques like model transformations and
code generators
Tentative deadline
20/12/2015
7. Homework 2
Tasks
• pick a set of articles related to a chosen research theme
• carefully read them and explore the state of the art about the research
theme
• write a report about your findings
• make a brief presentation to the classroom
Goals
• to have the chance to study a specific area of software engineering that
may be of interest to each student
• to be exposed to a specific problem in software engineering
• to start being trained in reading and writing scientific papers
Tentative deadline
15/01/2016
Research themes will
be available soon
10. Software today
How “big” is software today?
http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
http://hbr.org/2010/06/why-dinosaurs-will-keep-ruling-the-auto-industry/ar/1
11. Needs
To DESIGN software
– software development has to be a systematic activity
QUALITY assurance
– we have to verify and validate our SW in order to make it
something people can rely on
– we have to do it as soon as possible
ABSTRACTION
– the principal instrument for managing complexity
12. The application of engineering to software
Field of computer science dealing with software systems
that are:
– large and complex
– built by teams
– exist in many versions
– last many years
– undergo changes
Programming skills are not enough
“Physicist example”
Software engineering
Programmer:
complete program
Software engineer:
software component
13. What is part of software
engineering?
http://wonderfulengineering.com/what-is-software-engineering/
14. Software engineering vs computer
science
Computer Science
– Computability, algorithms and complexity, programming
languages, data structures, databases, artificialintelligence,
etc.
Software Engineering
– The APPLICATION of computer science, mathematics,
project management to build high quality software
17. Correctness
Software is correct if it satisfies the functional
requirements specifications
– assuming that specification exists!
If specifications are formal, since programs are formal
objects, correctness can be defined formally
– It can be proven as a theorem or disproved by
counterexamples (testing)
Improved by:
• Appropriate tools
• Standard algorithms and libraries
• An established development process
18. The limits of correctness
It is an absolute (yes/no) quality
– there is no concept of “degree of correctness”
– there is no concept of severity of deviation
What if specifications are wrong?
– (e.g., they derive from incorrect requirements or errors in
domain knowledge)
19. Reliability
Informal definition:
software is reliable if the user can depend on it
can be defined mathematically as “probability of absence of
failures for a certain time period”
Improved by:
• Fault avoidance (e.g., careful design)
• Fault tolerance (e.g., redundancy)
• Fault detection (e.g., testing)
22. Software behaves “reasonably” even in unforeseen
circumstances (e.g., incorrect input, hardware failure)
Robustness
Robustness vs correctness vs reliability?
Improved by:
• Software monitoring
• Defensive programming
23. Example: the MAPE-K loop
http://www.cs.kent.ac.uk/people/rpg/cb492/saaf/concept.html
24. Performance
Efficient use of resources
– memory, processing time, communication
Can be evaluated:
– algorithms complexity
– measurement of the implemented system
– analysis of a model (e.g., using queuing theory)
– simulation
Performance can affect scalability
– e.g., a solution that works on a small local network
may not work on a large intranet
Improved by:
• Considering it during design
• Small-scale code optimization
25. Usability
Expected users find the system easy to use
– otherterm: user-friendliness
Rather subjective, difficult to evaluate
Affected mostly by user interface
• e.g., visual vs. textual
Can the user interface impact reliability?
(Performance and correctness) vs usability?
Improved by:
• User-centred design process
• Adaptable user interfaces
26. Maintainability
Maintainability: ease of maintenance
àMaintenance: changes after release
Maintenance costs exceed 60% of total cost of software
Three main categories of maintenance
– corrective: removing residual errors (20%)
– adaptive: adjusting to environment changes (20%)
– perfective: quality improvements (>50%)
See it as software evolution
Improved by:
• Modular design
• Well-defined interfaces
• Good documentation
27. Maintainability
Can be decomposed as
– Repairability
• ability to correct defects in reasonable time
– Evolvability
• ability to adapt SW to environment changes and to improve it
in reasonable time
Repairability vs modularity?
Ever heared about software product lines?
28. Reusability
Existing product (or components) used (with minor
modifications) to build another product
– e.g., software libraries, jQuery plugins
Also applies to process
Reuse of standard parts measure of maturity of the field
Improved by:
• Modular design
• Well-defined interfaces
• Parameterization
• Good documentation
29. Portability
Software can run on different HW platforms or SW
environments
Remains relevant as new platforms and environments
are introduced (e.g. digital assistants)
Relevant when downloading software in a
heterogeneous network environment
Improved by:
• Isolation of dependencies
on environment
• Layered architectures
• Virtual machines
30. Understandability
Ease of understanding software
Maintainability vs understandability?
Is it internal or external?
Improved by:
• Modular design
• Well-defined models
• Good documentation
32. Interoperability
Ability of a system to coexist and cooperate with other
systems
– e.g., OSX + iOS
– OSGI
Can be achieved via standardization of interfaces
Examples?
• Browser plug-ins
• The whole open data movement!
Improved by:
• Well-documented interfaces
• Standard interface formats
e.g., XML,JSON objects
33. Exercise
Show graphically the interdependence of the SW qualities
Correctness
Reliability
Robustness
Performance
Usability
Maintainability
Reusability
Portability
Understandability
Interoperability
Repairability
Evolvability
36. Application of principles
Principles apply to process and product
Principles become practice through methods and
techniques
– often methods and techniques are packaged in a methodology
– methodologies can be enforced by tools
Principles
Methodologies
Principles
Methods
and techniques
Methodologies
Tools
37. Application of principles
Principles
Methodologies
Principles
Methods
and techniques
Methodologies
Tools
Principles:
General and abstract descriptions
of desirable properties of
products and processes
Methods:
General guidelines
that govern activities
Techniques:
More technical and
mechanic than methods
Methodologies:
Preselected
methods
and techniques
Tools:
Software for applying
methodologies
38. Key principles
• Rigor and formality
• SEPARATION OF CONCERNS
• MODULARITY
• ABSTRACTION
• Anticipation of change
• Generality
• Incrementality
39. Rigor and formality
Software engineering is a creative design activity, BUT
it must be practiced systematically
Rigor is necessary to:
– repeatedlyproduce reliable products
– control their costs
Formality is rigor at the highest degree
– software process driven and evaluated by mathematical laws
– opens to automation
40. Examples
• Mathematical (formal) analysis of program
correctness
• Systematic (rigorous) test data derivation
• Rigorous documentation of development steps helps
project management and assessment of timeliness
41. More on formality
No need to be always formal during design
The engineer must know how and when to be formal
Requirements
Analysis
System design
Detailed Design
Implementation
Validation
Requirements
Analysis
System design
Detailed Design
Implementation
Validation
GSSI website GSSI automatic doors
43. Why separation of concerns?
Helps you focus
– easier to pay attention to one thing at a time
– put some complexities aside
– separate out critical functions
Encourages decoupling
– disentangle aspects that seemed intertwined
Supports parallelization of efforts and separation of
responsibilities
44. Dimensions of separation of concerns
Complexity
Time
(waterfall model)
Size
(modularization)
Qualities
(correctness, and
performance later)
Views
(data flow,
control flow)
45. Example: concerns in a mobile app
Information
Architect
UI
Designer
App
Developer
Back-end
Developer
Experience Security Performance
Upgradability
Schedule
Cost
Content
Management
Product
Strategy
46. Example: compiler
Correctness is primary concern
Other concerns:
– Efficiency of compiler and of generated code
– User friendliness (helpfulwarnings, etc.)
Example of interdependencies:
runtime diagnostics vs. efficient code
– Diagnostics simplifytesting, but create overhead
– Typical solution: option to disable checks
47. Modularity
A complex system may be divided into simpler pieces
called modules
A system that is composed of modules is called modular
Supports application of separation of concerns
– when dealing with a module we can ignore details of other
modules
Modularity is the basis for understandabilityà software evolution
Modularity VS reusability?
48. Cohesion and coupling
Each module should be highly cohesive
– module understandable as a meaningful unit
– components of a module are closely related to one another
Modules should exhibit low coupling
– modules have low interactions with others
– understandable separately
imagebyPeterMüller
50. Abstraction
Given a difficult problem/system, extract a simpler view
of it, avoiding unneeded details
Abstraction in software engineering:
– Models of the realworld (omit irrelevant details)
– Subtyping and inheritance (factor out commonalities)
– Interfaces and information hiding (hide implementation
details)
– Structured programming (loops, methods)
– Layered systems (hide deeper layers in the stack)
51. Abstraction
Engineers abstract away from a number of details that can
be ignored SAFELY
Example:
– equations describing complex circuit (e.g., amplifier allows
designer to reason about signal amplification)
– equations may approximate description, ignoring details that yield
negligible effects (e.g., connectors assumed to be ideal)
53. Anticipation of change
It is very rare in reality that requirements are fully
understood and freezed since the beginning of the project
Ability to support software evolution à anticipating potential
future changes
It is the basis for software EVOLVABILITY and REUSABILITY
How does it relate to modularity?
55. Generality
While solving a problem, try to discover if it is an instance of
a MORE GENERAL PROBLEM
– Sometimes a generalproblem is easier to solve than a
special case
– A solution to a more generalproblem may be already
provided by off-the-shelf packages
– A solution to a more generalproblem can be reused in
other cases
Carefully balance generality against performance and cost
56. Incrementality
Process proceeds in a stepwise fashion (increments)
Examples (process)
– deliver subsets of a system early to get early feedback from
expected users, then add newfeatures incrementally
– deal first with functionality, then turn to performance
• this may be risky
– deliver a first prototype and then incrementally add effort to
turn prototype into product
Ever eared about user-centered design?
58. Case study
Mirco Franzago, Henry Muccini,Ivano Malavolta:Towards a collaborative framework for the design and development of data-
intensive mobile applications.MOBILESoft 2014
Key principles
• Rigor and formality
• SEPARATION OF CONCERNS
• MODULARITY
• ABSTRACTION
• Anticipation of change
• Generality
• Incrementality
59. Case study
Key principles
• Rigor and formality
• SEPARATION OF CONCERNS
• MODULARITY
• ABSTRACTION
• Anticipation of change
• Generality
• Incrementality
Mirco Franzago, Henry Muccini,Ivano Malavolta:Towards a collaborative framework for the design and development of data-
intensive mobile applications.MOBILESoft 2014
60. Case study
Key principles
• Rigor and formality
• SEPARATION OF CONCERNS
• MODULARITY
• ABSTRACTION
• Anticipation of change
• Generality
• Incrementality
Mirco Franzago, Henry Muccini,Ivano Malavolta:Towards a collaborative framework for the design and development of data-
intensive mobile applications.MOBILESoft 2014
61. Suggested readings
1. M. E. Joorabchi, A. Mesbah, and P. Kruchten. Real challenges in
mobile app development. In Empirical Software Engineering and
Measurement,2013, pages 15–24, 2013.
2. Mirco Franzago, Henry Muccini, and Ivano Malavolta. Towards a
collaborative framework for the design and development of data-
intensive mobile applications. In Proceedings of the 1st International
Conference on Mobile Software Engineering and Systems, pages
58–61. ACM, 2014.
1. SWEBOK V.3.0 – Guide to the software engineering body of
knowledge. Pierre Bourke, Richard E. Fairley. IEEE Computer Society,
2014.