This presentation is about a lecture I gave within the "Software Modeling" 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
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
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 "Green Lab" course of the Computer Science master program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Contributions to the multidisciplinarity of computer science and ISSaïd Assar
Les diapos de ma présentation HDR en informatique (CNU section 27) à l'université Paris 1 Panthéon Sorbonne le vendredi 20 janvier 2017. L'enregistrement vidéo de la soutenance est visible sur https://www.youtube.com/watch?v=1ro_iaI-roA
--
Slides of my presentation for Habilitation (HDR) defense in computer science (Informatique section 27 CNU) at University Paris 1 Panthéon Sorbonne on Friday January 2017.
Video recording is visible on https://www.youtube.com/watch?v=1ro_iaI-roA
Computer science curriculum based on Program learning outcomes and objectivesJawad Khan
Designing curriculum of computer sciences and computer engineering on the bases of needs in the industry. Program learning objectives have been dealt in a case study in this presentation
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
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
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 "Green Lab" course of the Computer Science master program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Contributions to the multidisciplinarity of computer science and ISSaïd Assar
Les diapos de ma présentation HDR en informatique (CNU section 27) à l'université Paris 1 Panthéon Sorbonne le vendredi 20 janvier 2017. L'enregistrement vidéo de la soutenance est visible sur https://www.youtube.com/watch?v=1ro_iaI-roA
--
Slides of my presentation for Habilitation (HDR) defense in computer science (Informatique section 27 CNU) at University Paris 1 Panthéon Sorbonne on Friday January 2017.
Video recording is visible on https://www.youtube.com/watch?v=1ro_iaI-roA
Computer science curriculum based on Program learning outcomes and objectivesJawad Khan
Designing curriculum of computer sciences and computer engineering on the bases of needs in the industry. Program learning objectives have been dealt in a case study in this presentation
Requirements engineering with UML [Software Modeling] [Computer Science] [Vri...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" 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 Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling behaviour via UML state machines [Software Modeling] [Computer Scie...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Object-oriented design patterns in UML [Software Modeling] [Computer Science...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" 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 Modeling" 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
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
The Green Lab - [13 B] Future research challengesIvano Malavolta
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master, Software Engineering and Green IT track of the Vrije Universiteit Amsterdam: http://masters.vu.nl/en/programmes/computer-science-software-engineering-green-it/index.aspx
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
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
[2016/2017] 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
[2016/2017] 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
Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...Ivano Malavolta
29th of June 2016. My presentation done at the 5th IEEE International Conference on Mobile Services (MS 2016).
Accompanying paper: http://www.ivanomalavolta.com/files/papers/MS_2016.pdf
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Requirements engineering with UML [Software Modeling] [Computer Science] [Vri...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" 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 Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling behaviour via UML state machines [Software Modeling] [Computer Scie...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Object-oriented design patterns in UML [Software Modeling] [Computer Science...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Modeling" 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 Modeling" 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
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
The Green Lab - [13 B] Future research challengesIvano Malavolta
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master, Software Engineering and Green IT track of the Vrije Universiteit Amsterdam: http://masters.vu.nl/en/programmes/computer-science-software-engineering-green-it/index.aspx
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
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
[2016/2017] 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
[2016/2017] 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
Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...Ivano Malavolta
29th of June 2016. My presentation done at the 5th IEEE International Conference on Mobile Services (MS 2016).
Accompanying paper: http://www.ivanomalavolta.com/files/papers/MS_2016.pdf
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master 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 is an intermediate conversion course for C++, suitable for second year computing students who may have learned Java or another language in first year.
De introductie slides voor de cursus Agile Software Architecture, die gegeven wordt door het Nederlands Instituut voor de Software Industrie.
Voor meer informatie, kijk op http://nisi.nl/cursussen/agile-software-architecture
Success in Engineering Studies Presentation at IEEE Awareness Programme Prof. Mohandas K P
This is a presentation given at the "Roadmap to Success in Engineering Studies 2016", IEEE, IEI Programme at Regional science Centre Kozhikode on 7th May
A presentation on Course Design and Implementation of Course Delivery in Open and Distance Learning.
Delivered during University of Ibadan Cascade Training for all Academic Staffs in Distance Learning Programme.
Workplace Simulated Courses - Course Technology Computing Conference
Presenter: Angie Rudd & Kelly Hinson, Gaston College
What do our students need to learn to be productive in the workplace, to get a job, what skills do they need? The workplace has changed, leadership has changed, and the future is collaboration. This presentation will discuss the methods and tools used in two online project classes. We will show you how we take our learning outcomes and design online classes to simulate a workplace environment. These courses are designed to give students the most realistic workplace environment that we can in an academic setting. One course teaches Emerging Technologies by using teamwork and collaboration environments. The other course uses the System Development Lifecycle as a guide for students to complete an individual project with feedback and brainstorming from other students. The goals for the session are: demonstrating and discussing collaboration, showing how to include useful teamwork in an online environment, working as a collective team, sharing information and knowledge, encouraging suggestions and ideas, brainstorming, building in frustration on purpose, using peer feedback in projects, enabling team resources, and embracing roles and responsibilities. Attendees will walk away with a template of how to design a course for a workplace environment while meeting the learning objectives of the course.
Similar to Modeling and abstraction, software development process [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017] (20)
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
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 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
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
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.
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.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
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
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.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
Modeling and abstraction, software development process [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]
1. Software and Services research group (S2)
Department of Computer Science, Faculty of Sciences
Vrije Universiteit Amsterdam
VRIJE
UNIVERSITEIT
AMSTERDAM
Introduction to the course
Software modeling (401016) – 2016/2017
Ivano Malavolta
i.malavolta@vu.nl
2. VRIJE
UNIVERSITEIT
AMSTERDAM
Hello
2
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 Joseph Yoder
3. VRIJE
UNIVERSITEIT
AMSTERDAM
Who is who
• Ivano Malavolta
• i.malavolta@.vu.nl
• Room T4.38 – Sciences building
• Lars Cordewener
• l.e.j.cordewener@student.vu.nl
• George Karlos
• g.karlos@student.vu.nl
3
teaching assistants
coordinator & lecturer
7. VRIJE
UNIVERSITEIT
AMSTERDAM
Recommended background knowledge
The course does not impose any specific prerequisites
The only requirement is a basic knowledge of Java
• to check whether you know Java, follow this tutorial (until the
Java – Packages section):
• https://www.tutorialspoint.com/java
7
8. VRIJE
UNIVERSITEIT
AMSTERDAM
What this course is about
• MAIN GOAL – to have insights and knowledge about:
• recurrent software design problems
• methodologies and techniques for solving those problems
• object-oriented
• model-driven
• Understanding different types of software life cycle
• How to identify software requirements with models
• How to transform requirement models into design models
• How to let design models drive the whole development life
cycle
• source code generation
• models execution
8
9. VRIJE
UNIVERSITEIT
AMSTERDAM
What this course is NOT about
• How to write documentation
• How to draw nice pictures
• First I model, than I implement
• Good modeling à saving of time (and $$$)
9
10. VRIJE
UNIVERSITEIT
AMSTERDAM
Schedule of the course
10
Theory Lab sessions
WK 1 Abstraction + software life cycle
WK 2 Requirements engineering with UML
WK 3 Detailed structural models in UML + code generation
WK 4 Object-oriented design patterns in ML
WK 5 Behavioral models in UML + models execution
WK 6 Modeling communication patterns in UML
WK 7 Insights on advanced techniques + Q&A
WK 8 Exam and team project final boost
You will be evaluated on this part only
11. VRIJE
UNIVERSITEIT
AMSTERDAM
A typical lecture
• ~5 minutes
• discussion about the previous lab session
• questions about how it went, feeling about the tools, problems,
ideas, etc.
• ~5 minutes
• recap of the previous lecture and setting the stage for the
topics discussed in this lecture in a light way
• ~1 hour
• lecturing, giving and explaining examples, moderation of
possible discussions
• ~5 minutes
• wrap up, discussion of reading material, look forward to the
next phases of the course
11
Each lecture will be your
compass, not your book
13. VRIJE
UNIVERSITEIT
AMSTERDAM
Additional books
• [Optional] Russ Miles, Kim Hamilton, “Learning UML 2.0”,
O’Reilly, 2006.
• [Mandatory, only selected chapters] Craig Larman, “Applying
UML and Patterns: An Introduction to Object-Oriented
Analysis and Design and Iterative Development”, 3rd edition,
Prentice Hall PTR, 2005.
13
14. VRIJE
UNIVERSITEIT
AMSTERDAM
A typical lab session
• ~5 minutes
• discussion about the previous lecture and lab
• ~15 minutes
• explanation of an exercise and its execution in an interactive
manner
• the source code of the exercise will be available on BB
• ~60 minutes
• you can work on your own team project by following the
same steps performed by the TA
• you can ask questions at any time to the TA, thus solving
your problems “on-demand”
• bring your own laptops
14
if you attend, you
already learnt J
15. VRIJE
UNIVERSITEIT
AMSTERDAM
Grading
• Team project (70% of the final grade)
• teams of 3 students
• each part of project will be started during the lab sessions
and finished as homework
• Written exam (30% of the final grade)
• 20 multiple-choice questions
• based on the books listed in the Readings section of the
student guide
More details on BlackBoard
15
16. VRIJE
UNIVERSITEIT
AMSTERDAM
Grading (continued)
To pass the course the following conditions must be met:
• The score of the team project must be 6.0 or higher
• The score of the written exam must be 6.0 or higher
• The final weighted grade must be 6.0 or higher
Deadlines and slip days:
• Deadlines are firm
• Violating deadlines means losing slip days
• You have 3 slip days per team
• You decide how to spend them
• Your assignment will be marked fail after you exhaust your
slip days
16
17. VRIJE
UNIVERSITEIT
AMSTERDAM
Course overall timeline
7 Feb
31 Mar
Modeling and software life cycle
Modeling requirements
Structural modeling
Behavioural modeling
Advanced concepts
• Teams formed
• Tool installed
Project deliverable 1
Project deliverable 2
Written exam
Project deliverable 3
30 Mar
19. VRIJE
UNIVERSITEIT
AMSTERDAM
Project - the ROVU system
• Goal
• to develop a robotic system with various UML-based
techniques
• implement a simple demonstrator via a robotic 3D simulator
19
20. VRIJE
UNIVERSITEIT
AMSTERDAM
Project
• Teams of 3 students
• Aims:
• to put in practice what you will learn
• to develop your technical skills
• Two conceptual parts:
• Modeling
• Implementation (in Java)
• Each deliverable has two parts:
• Written report
• Eclipse project with source code and UML models
20
Start forming teams NOW!
21. VRIJE
UNIVERSITEIT
AMSTERDAM
Project - modeling part
You will provide:
• a set of UML models of the ROVU system
• a detailed description of
• your design decisions
• how you evaluated alternatives
• how you shaped the problem and its solution
• etc.
The tools allow you to automatically generate Java source code
• you will use that Java code as basis for the implementation
part of the project
21
24. VRIJE
UNIVERSITEIT
AMSTERDAM
Project - implementation part
• You will implement a running system from the created
models
• The resulting system must be functional with respect to a
basic usage of the modeled system
• In order to prove that your system works, you have to
• integrate it with the Simbad robotic simulator
• provide a demo video in which you show the simulation
24
25. VRIJE
UNIVERSITEIT
AMSTERDAM
Project - implementation part (tool)
Reference material about the Simbad robot simulator can be
found here:
• http://simbad.sourceforge.net/index.php
• http://simbad.sourceforge.net/guide.php
• http://simbad.sourceforge.net/doc/
• https://github.com/jimmikaelkael/simbad/tree/master/src
• https://www.ibm.com/developerworks/library/j-robots/
25
26. VRIJE
UNIVERSITEIT
AMSTERDAM
Project - schedule and deliverables
• Deliverable 1 (25% of the final grade)
• System informal description and system requirements
• Only modeling and textual descriptions
• Deadline: 24 February: 23:59
• Deliverable 2 (25% of the final grade)
• Detailed design model
• Modeling and code generation
• Deadline: 13 March: 23:59
• Deliverable 3 (50% of the final grade)
• Final project submission
• Modeling and implementation
• Deadline: 31 March: 23:59
26
27. VRIJE
UNIVERSITEIT
AMSTERDAM
Project - the requirement change ⚡
• After the deadline for deliverable 2 I will declare a
requirement change of your system spec
• there are 3 types of changes
• your team will be randomly assigned to one of them
• You will adapt your project to the new requirement
• The change will not be disruptive if you correctly modelled
the system
27
28. VRIJE
UNIVERSITEIT
AMSTERDAM
Project - relationship with lab sessions
Attendance to lab sessions is VERY advised (aka mandatory)
Each lab session will correspond to a specific part of your
project
à you can look at how each part is done by a TA
à you can ask questions to the TA interactively
à you can start working on your project right away
Misinterpreting or not applying what TAs teach in lab sessions
will result in failing the course
28
29. VRIJE
UNIVERSITEIT
AMSTERDAM
What we expect from you
This is a 6 credits course
à we ask you to invest approximately 150 hours for passing the
exam
Your estimated average time per week is as follows:
• Attending lectures and lab sessions: 4 hours
• Studying literature and lecture material: 8 hours
• Working on your team project: 6 hours
• TOTAL: 18 hours
• Total study time: 18 hours x 7 weeks = 126 hours
• Preparing for the final project: 150 – 126 = 24 hours
29
30. VRIJE
UNIVERSITEIT
AMSTERDAM
Communication
• All course material is provided on BlackBoard
• Dedicated forum on BlackBoard as well
• you will easily find potential solutions to your problems
already in there
• For questions concerning specific cases about the course
• i.malavolta@vu.nl
• Meet and talk to us during the breaks J
30
31. VRIJE
UNIVERSITEIT
AMSTERDAM
First action!
• Form your team and enroll on Blackboard (today)
• Tomorrow we will finalize the teams
• Setup the project tools
• Before next lab session
• Installation guides on BlackBoard for:
• Apple Mac
• Linux
• Microsoft Windows
31
34. VRIJE
UNIVERSITEIT
AMSTERDAM
How big is software today?
34
http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
http://hbr.org/2010/06/why-dinosaurs-will-keep-ruling-the-auto-industry/ar/1
Can you name some problems emerging
from software complexity and large size?
39. VRIJE
UNIVERSITEIT
AMSTERDAM
Models and abstraction
The human mind continuously re-works reality by applying
cognitive processes
Model
a simplified or partial representation of reality, defined in order
to accomplish a task or to reach an agreement
Abstraction
the activity of finding the commonality in many different
observations
Modeling
the activity of creating models representing an abstract view of
the system
Marco Brambilla, Jordi Cabot, and Manuel Wimmer. 2012.
Model-Driven Software Engineering in Practice (1st ed.)
40. VRIJE
UNIVERSITEIT
AMSTERDAM
Models
What is a model?
Mapping Feature A model is based on an original (=system)
Reduction Feature A model only reflects a (relevant) selection
of the original‘s properties
Pragmatic Feature A model needs to be usable in place of an
original with respect to some purpose
ModelrepresentsSystem
Marco Brambilla, Jordi Cabot, and Manuel Wimmer. 2012.
Model-Driven Software Engineering in Practice (1st ed.)
41. VRIJE
UNIVERSITEIT
AMSTERDAM
Motivation
What is Model Engineering?
Model as the central artifact of software development
Model
Rapid prototyping
Static analysis
Code generation
Automated testing
Refactoring/
Transformation
Documentation
Marco Brambilla, Jordi Cabot, and Manuel Wimmer. 2012.
Model-Driven Software Engineering in Practice (1st ed.)
42. VRIJE
UNIVERSITEIT
AMSTERDAM
§Models as drafts
§ Communication of ideas and alternatives
§ Objective: modeling per se
§Models as guidelines
§ Design decisions are documented
§ Objective: instructions for implementation
§Models as programs
§ Applications are generated automatically
§ Objective: models are source code and vice versa
t
Marco Brambilla, Jordi Cabot, and Manuel Wimmer. 2012.
Model-Driven Software Engineering in Practice (1st ed.)
Uses of models
44. VRIJE
UNIVERSITEIT
AMSTERDAM
Descriptive VS prescriptive models
• A consumer may be a human, but also a software
• Consumer and intent influence the abstraction level of a
model
• The importance of a model may vary during its lifetime
44
Slide inspired by Patrizio Pelliccione’s lecture at GSSI
45. VRIJE
UNIVERSITEIT
AMSTERDAM
Descriptive models
• Sketches and throw-away models
• to better understand the reality and to explore possible
solutions
• short life time
• Models of ideas and vision about the system to be developed
• to exploit the model for having feedback before
implementing the system
• Models extracted from a running system or source code
• for example, to visualize all the calls between a set of Java
classes
45
Slide inspired by Patrizio Pelliccione’s lecture at GSSI
46. VRIJE
UNIVERSITEIT
AMSTERDAM
Prescriptive models
• The subject does not yet exist
• for example, models are used to generate the subject
• They guide the development of the system
• tipically more detailed than descriptive models
• put constraints on the system
• The most common consumers of prescriptive models are
code generators
• Prescriptive models are often used for development à their
importance might decade when the system is implemented
46
Slide inspired by Patrizio Pelliccione’s lecture at GSSI
48. VRIJE
UNIVERSITEIT
AMSTERDAM
Problem
If you need to develop a system with 10M LOCs…
• How many people do you need?
• How much time?
• How do they synchronize?
• How do you know that you are performing well?
49. VRIJE
UNIVERSITEIT
AMSTERDAM
Code & Fix: the naïve process model
• Write code
• Fix it to
• eliminate any errors that have been detected
• enhance existing functionality
• add new features
Source of difficulties and deficiencies
• impossible to predict
• impossible to manage
51. VRIJE
UNIVERSITEIT
AMSTERDAM
Software process
Attempt to organize the software life cycle by defining:
§ activities involved in software production
§ order of activities and their relationships
Goals of a software process
§ standardization
§ predictability
§ productivity
§ high product quality
§ ability to plan time and budget requirements
52. VRIJE
UNIVERSITEIT
AMSTERDAM
The goals of a development process
(B. Boehm 1988)
“… to determine the order of stages involved in software
development and evolution, and to establish the transition
criteria for progressing from one stage to the next.
Thus a process model addresses the following software
project questions:
What shall we do next?
How long shall we continue to do it?”
53. VRIJE
UNIVERSITEIT
AMSTERDAM
Main development activities
They must be performed independently of the used process
The process simply affects the flow among activities
Requirements engineering
Design
Implementation and testing
Evolution
You will cover these
activities in your project
54. VRIJE
UNIVERSITEIT
AMSTERDAM
Requirements engineering
Involves
§ eliciting
§ understanding
§ analyzing
§ specifying
Feasibility
study
Requirements
elicitation and
analysis
Requirements
specification
Requirements
validation
Feasibility
report
System
models
User and system
requirements
Requirements
document
Focus on
– what functionalities are needed
– NOT on how to realize them
55. VRIJE
UNIVERSITEIT
AMSTERDAM
The requirements specification document
• Specifies what are the main functionalities of the system
• For example:
• R1: the rovers shall never collide with each other
• R2: the rovers shall avoid obstacles autonomously
• Defines the qualities to be met
• For example:
• R3: each rover shall react to the presence of an obstacle within 10
milliseconds
• R4: the central station shall be secure with respect to malicious
attacks
56. VRIJE
UNIVERSITEIT
AMSTERDAM
Design
• The art of giving shape to a system via models
• drives the implementation
• helps in understanding the system
• Not a clear-cut, sequential process
• you get ideas, propose solutions
• you backtrack and retry when problems arise
Interface
design
Component
design
System
architecture
Database
specification
Interface
specification
Requirements
specification
Architectural
design
Component
specification
Platform
information
Data
description
Design inputs
Design activities
Design outputs
Database design
57. VRIJE
UNIVERSITEIT
AMSTERDAM
Implementation and testing
Involves the actual implementation of the system
Component testing
§ Individual components are tested independently
§ Components may be Java classes, methods or objects
System testing
§ Testing of the system as a whole
§ Testing of emergent properties is particularly important
• ex. overall performance of the system
Acceptance testing
§ Testing with customer data to check that the system
meets the customer’s needs
58. VRIJE
UNIVERSITEIT
AMSTERDAM
Evolution
Software is inherently flexible and can change
Fewer and fewer systems are completely new
à continuous evolution
Assess existing
systems
Define system
requirements
Propose system
changes
Modify
systems
New
system
Existing
systems
59. VRIJE
UNIVERSITEIT
AMSTERDAM
What you need to remember
Requirements engineering
create the software specification (what needs to be realized)
Design
requirements à detailed design of the system (descriptive
and/or prescriptive)
Implementation and testing
design à executable software
Software evolution
new requirements à the software must evolve to remain useful
60. VRIJE
UNIVERSITEIT
AMSTERDAM
The waterfall development process
• Exist in many variants
• all sharing sequential flow style
• It is document-driven
Requirements
definition
System and
software design
Implementation
and unit testing
Integration and
system testing
Operation and
maintenance
61. VRIJE
UNIVERSITEIT
AMSTERDAM
Critical evaluation of the waterfall model
+ sw process subject to discipline, planning, and management
à standard-oriented
+ postpone implementation to after understanding objectives
+ good documentation
– difficult to gather all requirements once and for all
– users may not know what they want
– rigid
– no feedback from the customer
– no parallelism, all phases are blocking
– a single delivery date (at the end!)
66. VRIJE
UNIVERSITEIT
AMSTERDAM
Agile principles
Agile methods are iterative development processes with:
frequent releases of the product
continuous interaction between dev. team and customer
reduce product documentation
continuous and systematic assessment of produced value and
risks
68. VRIJE
UNIVERSITEIT
AMSTERDAM
Critical evaluation of the agile method
+ Acceptance of change à less risky
+ Frequent and short iterations
+ Emphasis on working code
+ Associating a test with every piece of functionality
+ tests are a key resource within the project
+ Continuous integration (and delivery)
+ Planned
– Tests as a replacement for specifications
– Feature-based development & ignorance of dependencies
– No quality plan
– Dismissal of a priori architecture work
– actually, dismissal of everything which is non-shippable
69. VRIJE
UNIVERSITEIT
AMSTERDAM
What this lecture means to you?
• Today software is complex and large
• Abstraction is key for complex systems
• Models are abstract representations of a system
• low-level details are safely ignored
• models can be used for many purposes
• documentation is the less interesting one
• descriptive VS prescriptive models
• No silver bullet for software development process
• waterfall VS agile
• models drive the development across the whole process
69