This presentation talks about the main features of UML use cases and use cases diagrams. The slides contain information about what is a scenario, an actor, an use case and interactions between them.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Level Design Workshop - GDC China 2012Joel Burgess
Originally presented at GDC China 2012, this workshop covered level design fundamentals such as layout, pacing and storytelling. It was presented by Joel Burgess (Bethesda Game Studios), Matthew Scott (Valve Software), and Steven Gaynor (The Fullbright Company)
The document discusses the key principles of agile development including early and continuous delivery of valuable software, embracing change, frequent delivery, having business and developers work together, motivated individuals, working software over comprehensive documentation, sustainable development, technical excellence, face-to-face conversation, keeping it simple, self-organizing teams, reflection for effectiveness, and valuing individuals and interactions over processes and tools. It also provides an overview of agile being able to move quickly and easily through incremental delivery and continual planning.
The document provides an overview of Agile software development and Scrum framework. It discusses the benefits of Agile over traditional waterfall model through the example of FBI's failed Virtual Case File project. Some key points include:
- Agile development uses short iterations called sprints which allow for continuous improvement compared to long sequential phases in waterfall.
- FBI was able to successfully develop its case management system using Scrum after previous attempts failed with waterfall approach.
- Scrum is one of the popular Agile frameworks and involves self-organizing teams, daily stand-ups, sprints and product backlogs.
- Other Agile frameworks mentioned are Extreme Programming and Kanban which focus on iterative development and limiting
This document provides an overview of scrum, an agile project management framework. It defines key scrum roles like the product owner, scrum master, and scrum team. It also outlines the scrum process which involves sprint planning meetings, daily stand-up meetings, and working in 2-4 week sprints to develop incremental deliverables. The document notes major companies that use scrum and the advantages of increased flexibility, quality, and clear project status, while also acknowledging potential disadvantages like lack of a final plan and challenges in change management.
Nguyen Vu Hung - Software Project Management with Jira AgileVu Hung Nguyen
Biography:
Nguyen Vu Hung is the CLO of Septeni Technology, a development center of Tokyo based Septeni Group that focuses on developing and operating, mostly, web-based online advertisement systems. He has numerous years of IT and software development, project/product management in both Japan and Vietnam. Considering himself as a FOSS and Agile evangelist and being a Agile lover and an CLO, he is also interested in not-so-related domains such as human resource management and (organization) (re)structuring. Hung is interested in: – Agile/Scrum and the alikes – Open Source – Project Management
Software project management with Jira Agile:
In this workshop, I will share hand-on experience on how using Jira Agile to manage project in Agile/Scrum ways. The workshop will guide you:
– How to create and manage your product backlog, sprints backlog using Confluence
– How to manage sprint backlog using Confluence, link it with JIRA
– How to manage daily tasks and stories in JIRA
– Using Scrum board, Epic
– Make Sprint report, Velocity chart
– Using Planning and Estimating
Goal of this session:
Master Scrum Artifacts using JIRA
References:
http://agiletourvietnam.org/speakers/
http://agiletourvietnam.org/speaker/nguyen-vu-hung/
http://agiletourvietnam.org/session/software-project-management-with-jira-agile/
When I needed to do presentations of Scrum to executives and students, I started to look for existing ones. Most presentations I found were very good for detailed presentations or training. But what I was looking for was a presentation I could give in less than 15 minutes (or more if I wanted). Most of them also contained out dated content. For example, the latest changes in the Scrum framework were not present and what has been removed was still there.
UPDATE VERSION : https://www.slideshare.net/pmengal/scrum-in-ten-slides-v20-2018
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfJongwon Kim
NDC 2021에서 발표하였던 '게임 테스트 자동화 5년의 기록'이라는 주제로 NCSOFT에서 5년 동안 진행했던 게임 테스트 자동화에 대한 내용을 정리한 회고 내용입니다.
영상은 https://youtu.be/ckqUzRyIPoA 에 올라와 있습니다.
* 문서에 적용된 폰트나 아이콘 등의 문서 형식에 대한 권리는 Nexon에 있으니 배포 시 유의하시기 바랍니다
Level Design Workshop - GDC China 2012Joel Burgess
Originally presented at GDC China 2012, this workshop covered level design fundamentals such as layout, pacing and storytelling. It was presented by Joel Burgess (Bethesda Game Studios), Matthew Scott (Valve Software), and Steven Gaynor (The Fullbright Company)
The document discusses the key principles of agile development including early and continuous delivery of valuable software, embracing change, frequent delivery, having business and developers work together, motivated individuals, working software over comprehensive documentation, sustainable development, technical excellence, face-to-face conversation, keeping it simple, self-organizing teams, reflection for effectiveness, and valuing individuals and interactions over processes and tools. It also provides an overview of agile being able to move quickly and easily through incremental delivery and continual planning.
The document provides an overview of Agile software development and Scrum framework. It discusses the benefits of Agile over traditional waterfall model through the example of FBI's failed Virtual Case File project. Some key points include:
- Agile development uses short iterations called sprints which allow for continuous improvement compared to long sequential phases in waterfall.
- FBI was able to successfully develop its case management system using Scrum after previous attempts failed with waterfall approach.
- Scrum is one of the popular Agile frameworks and involves self-organizing teams, daily stand-ups, sprints and product backlogs.
- Other Agile frameworks mentioned are Extreme Programming and Kanban which focus on iterative development and limiting
This document provides an overview of scrum, an agile project management framework. It defines key scrum roles like the product owner, scrum master, and scrum team. It also outlines the scrum process which involves sprint planning meetings, daily stand-up meetings, and working in 2-4 week sprints to develop incremental deliverables. The document notes major companies that use scrum and the advantages of increased flexibility, quality, and clear project status, while also acknowledging potential disadvantages like lack of a final plan and challenges in change management.
Nguyen Vu Hung - Software Project Management with Jira AgileVu Hung Nguyen
Biography:
Nguyen Vu Hung is the CLO of Septeni Technology, a development center of Tokyo based Septeni Group that focuses on developing and operating, mostly, web-based online advertisement systems. He has numerous years of IT and software development, project/product management in both Japan and Vietnam. Considering himself as a FOSS and Agile evangelist and being a Agile lover and an CLO, he is also interested in not-so-related domains such as human resource management and (organization) (re)structuring. Hung is interested in: – Agile/Scrum and the alikes – Open Source – Project Management
Software project management with Jira Agile:
In this workshop, I will share hand-on experience on how using Jira Agile to manage project in Agile/Scrum ways. The workshop will guide you:
– How to create and manage your product backlog, sprints backlog using Confluence
– How to manage sprint backlog using Confluence, link it with JIRA
– How to manage daily tasks and stories in JIRA
– Using Scrum board, Epic
– Make Sprint report, Velocity chart
– Using Planning and Estimating
Goal of this session:
Master Scrum Artifacts using JIRA
References:
http://agiletourvietnam.org/speakers/
http://agiletourvietnam.org/speaker/nguyen-vu-hung/
http://agiletourvietnam.org/session/software-project-management-with-jira-agile/
When I needed to do presentations of Scrum to executives and students, I started to look for existing ones. Most presentations I found were very good for detailed presentations or training. But what I was looking for was a presentation I could give in less than 15 minutes (or more if I wanted). Most of them also contained out dated content. For example, the latest changes in the Scrum framework were not present and what has been removed was still there.
UPDATE VERSION : https://www.slideshare.net/pmengal/scrum-in-ten-slides-v20-2018
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfJongwon Kim
NDC 2021에서 발표하였던 '게임 테스트 자동화 5년의 기록'이라는 주제로 NCSOFT에서 5년 동안 진행했던 게임 테스트 자동화에 대한 내용을 정리한 회고 내용입니다.
영상은 https://youtu.be/ckqUzRyIPoA 에 올라와 있습니다.
* 문서에 적용된 폰트나 아이콘 등의 문서 형식에 대한 권리는 Nexon에 있으니 배포 시 유의하시기 바랍니다
Here are some tips for breaking down work in an agile way:
- Focus on delivering value to users. Each story and task should provide some value.
- Iterate frequently. Stories and tasks should be small enough that you can complete and release them within a sprint or two.
- Get early feedback. Small slices allow testing work sooner and adjusting based on feedback.
- Prioritize flexibility. Small slices give you options to reorder or drop work as priorities change.
- Estimate costs accurately. Tasks should take 1-5 days; if longer, may need refactoring. Consider spikes for technical challenges.
- Refactor when repetitive. If work is very similar, look for ways to simplify through ref
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsGerke Max Preussner
The document discusses the Slate UI framework in Unreal Engine, which provides tools for building user interfaces. It is written in C++ and works across platforms. Slate includes a widget library, tools for styling and input handling, and allows composing UI hierarchies through declarative syntax. It is used for interfaces like the Unreal Editor, games, and other applications. The document also covers Slate architecture, concepts, and provides an example of a custom button widget.
The document provides an overview of Agile methodology and Scrum framework for project management. It discusses that Agile focuses on adaptability, collaboration, and frequent delivery of working software. Scrum is the most commonly used Agile framework and involves sprints, daily stand-ups, sprint planning and reviews to manage projects. The roles in Scrum include the Product Owner, Scrum Master, and Development Team who work together using artifacts like the Product Backlog, Sprint Backlog and delivered Product Increment.
Life cycle of user story: Outside-in agile product management & testing, or...Ravi Tadwalkar
It has always been my pleasure and fun to facilitate workshops for PM (product management) community at and outside Cisco, although this was first time I did a BDD workshop with PMs alone. And I realized today how PayPal has been a really great venue for SVPMA annual product camp "unconference" for 1k+ PMs with 550 waitlisted this year! I look forward to this event every year now...huge success!
Abstract:
As Product Owners and Managers are driving innovation thru' those fuzzy ideas in terms of scenarios, testers have always been thinking about those in form of test cases which take form of acceptance criteria for those scenarios. When you talk about those scenarios to your teams or even peers, you see those diverging ideas converging to something concrete.
That's how BDD helps you shape that idea. That fuzzy scenario, when validated thru' an engineering "spike", can be useful for product management MRD/PRD/use-case-models/stories...whatever it is that you want to use to drive product development.
And this is where Agile Tester role begins! So instead of doing top-down or bottoms-up product management & testing, try this outside-in approach. Go for it!
My workshop on BDD is about what I term as "Outside-in agile product management". To understand what I really mean by that, here is my slideshare presentation used rarely when teaching from the back of the class during this hyper-interactive workshop.
A New Introduction to Jira & Agile Product ManagementDan Chuparkoff
These are the corresponding slides from another one of my talks in the series for Great Product Teams: https://www.youtube.com/watch?v=TsG3OWTDAFY
FOR MORE:
If your team wants to learn more about building disruptive products, leveraging the power of data science, and exponential teamwork, check out my YouTube videos at: https://bit.ly/ChupSpeaks
IN THIS PRESENTATION:
In one video, I give you everything you need to understand the basics of Agile and get started in the new Jira interface! I'll show you basic Jira planning and working with Scrum and Kanban. We also talk about story points and about some of the most common customizations. With these basics, you'll get Jira to match the way your team works, so you and your team can focus on building great products.
This slides-share describes best practices to implement Jira in software development organizations who practice Agile.
The focus is on simple implementation based on Jira core and portfolio to achieve high ROI
GDC 2016: Modular Level Design of Fallout 4 Joel Burgess
Originally presented by Joel Burgess and Nathan Purkeypile at GDC 2016, this presentation expands on the 2013 "Modular Level Design of Skyrim" presentation.
Waterfall vs Agile : A Beginner's Guide in Project ManagementJonathan Donado
The document compares the Waterfall and Agile project management methodologies. Waterfall follows a sequential design process with distinct stages and heavy documentation, while Agile uses short iterative cycles, embraces change, and values team collaboration and customer feedback. Some advantages of Waterfall are its structure and clear expectations, while disadvantages include inflexibility. Agile allows for changes and prioritizes delivering working software frequently for customer input, though the dynamic process may lack formal planning. The document recommends selecting the methodology based on the project's needs and characteristics.
The document describes The Kanban Game, which is a collaborative experience used to learn how to use Kanban in a team-building setting. The game includes story cards, chance cards, and a progress tracking sheet. It involves drawing a Kanban board and playing through 3 scenarios with different Kanban configurations over multiple iterations to experiment with Kanban. Retrospectives are held after each game to discuss strategies. The goal is to provide a useful experience for learning and improving Kanban practices.
JIRA is an issue tracking tool from Atlassian that allows users to prioritize, assign, track, report, and audit issues. It provides customizable reporting with detailed graphs and charts. Users can map their business processes with a custom workflow. JIRA integrates with other systems through an open API and over 100 free plugins. Issues are tracked in JIRA and have attributes like status, priority, assignee, comments. Workflows define the life cycle of an issue. JIRA can also be used for agile project management like Scrum, tracking user stories, sprints, and providing burn down charts.
Jira is a project management tool released in 2002 by Atlassian that is widely used for managing products, projects, processes, and services. It was originally derived from the word "Godzilla" and was initially only available on-premise, but now has a cloud-based version called Jira Cloud. Jira provides configurable settings and plugins to customize development or project management workflows, and can integrate with other Atlassian tools to automate processes from start to finish.
This document provides an overview of the Scrum framework for developing software. Some key points:
- Scrum is an empirical, lightweight framework that helps teams generate value through adaptive solutions to complex problems. It is based on empiricism, lean thinking, and values transparency, inspection, and adaptation.
- Scrum uses events like sprints, daily stand-ups, sprint reviews and retrospectives to inspect and adapt its processes. Sprints are time-boxed periods for delivering increments of work toward a sprint goal.
- Scrum teams are cross-functional and consist of developers, a product owner, and scrum master. The product owner manages the product backlog and maximizes value. The scrum
Jira software 8.0 8.5 community presentationMaitrey Patel
The document discusses the new features and improvements in versions 8.0 through 8.5 of Jira Software. Key highlights include a new Lucene search engine making Jira 20x faster, improved email notifications, priority icon updates, and the introduction of a mobile app. Upgrades from 7.0 to 8.0 include a customized pre-upgrade planning page. Feature releases like 8.1 add support for Java 11 and SQL Server 2017. The Jira 8.5 enterprise release will target Q4 2019 and include backported security updates.
Our latest webinar "Software Development with Agile Waterfall Hybrid Method" presents you the pros and cons of both methodologies, Agile and Waterfall.
Watch our webinar to learn more about what kind of projects the Hybrid model works for best, and how exactly you can implement a Hybrid approch in software development and benefit from the advanced features of codeBeamer ALM software.
Scrum Teams work best when they collaborate with their product owners to continually refine their backlogs. This is, of course, easier to do when teams are small and collocated. In this webinar, Luke Hohmann, from Conteneo, will present a collection of frameworks that support product owners and Scrum Teams working together to refine backlogs in large and/or distributed teams.
We have explained how best to use JIRA (JIRA guide) and what should be taken care of in the “Planning and Initiation” phase of a project and “Execution” phase of the project with Scrum framework.
This presentation talks about the main features of UML activity diagrams. The slides contain information about which are the main components of activity diagrams, how to use them to represent business processes and software algorithms.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about the main features of UML class diagrams. The slides contain information about how to use sequence diagrams to represent components' interactions in a software system. UML 2.x featuers are also described, like frames.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Here are some tips for breaking down work in an agile way:
- Focus on delivering value to users. Each story and task should provide some value.
- Iterate frequently. Stories and tasks should be small enough that you can complete and release them within a sprint or two.
- Get early feedback. Small slices allow testing work sooner and adjusting based on feedback.
- Prioritize flexibility. Small slices give you options to reorder or drop work as priorities change.
- Estimate costs accurately. Tasks should take 1-5 days; if longer, may need refactoring. Consider spikes for technical challenges.
- Refactor when repetitive. If work is very similar, look for ways to simplify through ref
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsGerke Max Preussner
The document discusses the Slate UI framework in Unreal Engine, which provides tools for building user interfaces. It is written in C++ and works across platforms. Slate includes a widget library, tools for styling and input handling, and allows composing UI hierarchies through declarative syntax. It is used for interfaces like the Unreal Editor, games, and other applications. The document also covers Slate architecture, concepts, and provides an example of a custom button widget.
The document provides an overview of Agile methodology and Scrum framework for project management. It discusses that Agile focuses on adaptability, collaboration, and frequent delivery of working software. Scrum is the most commonly used Agile framework and involves sprints, daily stand-ups, sprint planning and reviews to manage projects. The roles in Scrum include the Product Owner, Scrum Master, and Development Team who work together using artifacts like the Product Backlog, Sprint Backlog and delivered Product Increment.
Life cycle of user story: Outside-in agile product management & testing, or...Ravi Tadwalkar
It has always been my pleasure and fun to facilitate workshops for PM (product management) community at and outside Cisco, although this was first time I did a BDD workshop with PMs alone. And I realized today how PayPal has been a really great venue for SVPMA annual product camp "unconference" for 1k+ PMs with 550 waitlisted this year! I look forward to this event every year now...huge success!
Abstract:
As Product Owners and Managers are driving innovation thru' those fuzzy ideas in terms of scenarios, testers have always been thinking about those in form of test cases which take form of acceptance criteria for those scenarios. When you talk about those scenarios to your teams or even peers, you see those diverging ideas converging to something concrete.
That's how BDD helps you shape that idea. That fuzzy scenario, when validated thru' an engineering "spike", can be useful for product management MRD/PRD/use-case-models/stories...whatever it is that you want to use to drive product development.
And this is where Agile Tester role begins! So instead of doing top-down or bottoms-up product management & testing, try this outside-in approach. Go for it!
My workshop on BDD is about what I term as "Outside-in agile product management". To understand what I really mean by that, here is my slideshare presentation used rarely when teaching from the back of the class during this hyper-interactive workshop.
A New Introduction to Jira & Agile Product ManagementDan Chuparkoff
These are the corresponding slides from another one of my talks in the series for Great Product Teams: https://www.youtube.com/watch?v=TsG3OWTDAFY
FOR MORE:
If your team wants to learn more about building disruptive products, leveraging the power of data science, and exponential teamwork, check out my YouTube videos at: https://bit.ly/ChupSpeaks
IN THIS PRESENTATION:
In one video, I give you everything you need to understand the basics of Agile and get started in the new Jira interface! I'll show you basic Jira planning and working with Scrum and Kanban. We also talk about story points and about some of the most common customizations. With these basics, you'll get Jira to match the way your team works, so you and your team can focus on building great products.
This slides-share describes best practices to implement Jira in software development organizations who practice Agile.
The focus is on simple implementation based on Jira core and portfolio to achieve high ROI
GDC 2016: Modular Level Design of Fallout 4 Joel Burgess
Originally presented by Joel Burgess and Nathan Purkeypile at GDC 2016, this presentation expands on the 2013 "Modular Level Design of Skyrim" presentation.
Waterfall vs Agile : A Beginner's Guide in Project ManagementJonathan Donado
The document compares the Waterfall and Agile project management methodologies. Waterfall follows a sequential design process with distinct stages and heavy documentation, while Agile uses short iterative cycles, embraces change, and values team collaboration and customer feedback. Some advantages of Waterfall are its structure and clear expectations, while disadvantages include inflexibility. Agile allows for changes and prioritizes delivering working software frequently for customer input, though the dynamic process may lack formal planning. The document recommends selecting the methodology based on the project's needs and characteristics.
The document describes The Kanban Game, which is a collaborative experience used to learn how to use Kanban in a team-building setting. The game includes story cards, chance cards, and a progress tracking sheet. It involves drawing a Kanban board and playing through 3 scenarios with different Kanban configurations over multiple iterations to experiment with Kanban. Retrospectives are held after each game to discuss strategies. The goal is to provide a useful experience for learning and improving Kanban practices.
JIRA is an issue tracking tool from Atlassian that allows users to prioritize, assign, track, report, and audit issues. It provides customizable reporting with detailed graphs and charts. Users can map their business processes with a custom workflow. JIRA integrates with other systems through an open API and over 100 free plugins. Issues are tracked in JIRA and have attributes like status, priority, assignee, comments. Workflows define the life cycle of an issue. JIRA can also be used for agile project management like Scrum, tracking user stories, sprints, and providing burn down charts.
Jira is a project management tool released in 2002 by Atlassian that is widely used for managing products, projects, processes, and services. It was originally derived from the word "Godzilla" and was initially only available on-premise, but now has a cloud-based version called Jira Cloud. Jira provides configurable settings and plugins to customize development or project management workflows, and can integrate with other Atlassian tools to automate processes from start to finish.
This document provides an overview of the Scrum framework for developing software. Some key points:
- Scrum is an empirical, lightweight framework that helps teams generate value through adaptive solutions to complex problems. It is based on empiricism, lean thinking, and values transparency, inspection, and adaptation.
- Scrum uses events like sprints, daily stand-ups, sprint reviews and retrospectives to inspect and adapt its processes. Sprints are time-boxed periods for delivering increments of work toward a sprint goal.
- Scrum teams are cross-functional and consist of developers, a product owner, and scrum master. The product owner manages the product backlog and maximizes value. The scrum
Jira software 8.0 8.5 community presentationMaitrey Patel
The document discusses the new features and improvements in versions 8.0 through 8.5 of Jira Software. Key highlights include a new Lucene search engine making Jira 20x faster, improved email notifications, priority icon updates, and the introduction of a mobile app. Upgrades from 7.0 to 8.0 include a customized pre-upgrade planning page. Feature releases like 8.1 add support for Java 11 and SQL Server 2017. The Jira 8.5 enterprise release will target Q4 2019 and include backported security updates.
Our latest webinar "Software Development with Agile Waterfall Hybrid Method" presents you the pros and cons of both methodologies, Agile and Waterfall.
Watch our webinar to learn more about what kind of projects the Hybrid model works for best, and how exactly you can implement a Hybrid approch in software development and benefit from the advanced features of codeBeamer ALM software.
Scrum Teams work best when they collaborate with their product owners to continually refine their backlogs. This is, of course, easier to do when teams are small and collocated. In this webinar, Luke Hohmann, from Conteneo, will present a collection of frameworks that support product owners and Scrum Teams working together to refine backlogs in large and/or distributed teams.
We have explained how best to use JIRA (JIRA guide) and what should be taken care of in the “Planning and Initiation” phase of a project and “Execution” phase of the project with Scrum framework.
This presentation talks about the main features of UML activity diagrams. The slides contain information about which are the main components of activity diagrams, how to use them to represent business processes and software algorithms.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about the main features of UML class diagrams. The slides contain information about how to use sequence diagrams to represent components' interactions in a software system. UML 2.x featuers are also described, like frames.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about the main features of UML class diagrams. The slides contain information about how to represent a class, what is a classe feature, what are possible association types, class dependency, hineritance and subtyping.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Design pattern architetturali Model View Controller, MVP e MVVMRiccardo Cardin
This presentation talks about model view controller, model view presenter and model view viewmodel patterns. These are architectural design patterns for implementing user interfaces. They divide a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user. Also, they promote separation of concerns. As examples, some frameworks are reported, such as:
- Spring MVC
- BackboneJS
- AngularJS
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about creational design patterns. In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. In particular in the slides are described the following patterns:
- Singleton
- Builder
- Abstract Factory
Design patterns are presented using examples in Java, Scala and Javascript.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces basic concepts about the Java socket abstraction. These slides introduce the following concepts:
- What is a socket
- How to implement a client program
- How to implement a server program
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This document discusses Java input/output (I/O) streams and readers/writers for processing files, URLs, and other sources of input and output. It covers obtaining and working with input and output streams, reading and writing bytes, character encodings, text I/O, random access files, file operations, URL connections, and object serialization. The key classes for I/O include InputStream, OutputStream, Reader, Writer, File, Path, and URLConnection.
This presentation introduces the concept of synchronization beatween threads, as implemented in the Java platform. It is the first part of a series of slides dedicated to thread synchronization. This slides introduces the following concepts:
- Thread safety
- Types of race conditions
- Locking (reentrant locks, intrinsic locks, synchronized blocks)
- Locking pitfalls
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about behavioural design patterns. In software engineering, behavioral design patterns are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication. In particular in the slides are described the following patterns:
- Command
- Iterator
- Observer
- Strategy
- Template Method
Design patterns are presented using examples in Java, Scala and Javascript.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces the concept of synchronization beatween threads, as implemented in the Java platform. It is the second part of a series of slides dedicated to thread synchronization. This slides introduces the following concepts:
- Conditional locking
- Volatile variables
- Thread confinement
- Immutability
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
A brief introduction to UML: the history, what are the problems that UML tries to resolve and how we should use it during software design and development.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces some advanced concepts of generics in Java. These slides introduce the following concepts:
- Generic classes and methods
- Type variable bounds
- Type erasure process
- Generics and inheritance
- Wildcard types
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces some advanced concepts of threads, as implemented in the Java platform. It is part of a series of slides dedicated to threads. This slides introduces the following concepts:
- Callable
- Futures
- Executors and executor services
- Deadlocks (brief introduction)
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces the Java concept of thread. It is the first part of a series of slides dedicated to concurrent programming. This slides introduces some basics concepts, such as:
- Differences between processes and threads
- Thread's basics
- Thread's states
- Introduction to UML sequence diagrams
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about structural design patterns. In software engineering, structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships between entities. In particular in the slides are described the following patterns:
- Decorator
- Proxy
- Facade
- Adapter
Design patterns are presented using examples in Java, Scala and Javascript.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Errori comuni nei documenti di Analisi dei RequisitiRiccardo Cardin
This presentation talks about common errors that I found in my career in documents of specification of requirements. In the presentation are described common errors on use cases, use cases' diagrams and on requirements' specification.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about some commonly used software architecture patterns. The main features of the following architectural patterns are described:
- Layered architecture
- Event-driven architecture (both mediator and broker topology)
- Microservices architecture (API-REST based, REST based, Centralized message topology)
Each pattern is analyzed in terms of:
- Overall agility
- Ease of deployment
- Testability
- Performance
- Scalability
- Ease of develpment.
The slide refers to the online book "Software Architecture Patterns", Mark Richards, 2015, O’Reilly.
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces the main features of Swing, an UI development library for the Java ecosystem. The main focus of the slides is to show the basic features of Swing, such as:
- Main components (JFrame, JPanel, ...)
- Layout management (FlowLayout, BorderLayout, GridLayout, ...)
- Event handling
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
Java Exception Handling, Assertions and LoggingRiccardo Cardin
This presentation introduces the java exception handling mechanisms. In detail, the main focus of the slides is to show how the language implements its exception handling polices, such as:
- Checked and uncheked exception
- Try / catch blocks
- Assertions
- Logging
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces basic concepts about the Java Remote Method Invocation, a.k.a. RMI. These slides introduce the following concepts:
- Remote interfaces
- Dynamic code loading
- Serialization
- Security manager
- Exporting remote objects
- Compiling and running RMI programs
- Distributed garbage collection
The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation introduces the concept of design pattern in object oriented programming and design. The slides contain information about what a design pattern is, why should we use design pattern and how design patterns could be grouped togheter. The ideas presented in the slides are taken directly from GoF's book "Design Patterns".
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Introduzione al Domain Driven Design (DDD)DotNetMarche
In questa sessione si approfondirà il concetto di Domain Driven Design, un principio di progettazione che può essere visto come una “forma-mentis” per aiutare a concepire e modellare applicazioni enterprise che fanno un forte uso del Domain Model. Questa metodologia, introdotta da Eric Evans, mette in risalto il dominio applicativo di un progetto, costituendo quindi il collante tra il modello analitico e il modello implementativo e trovando la sua naturale applicazione in ambienti di sviluppo agili come Extreme Programming. Come completamento della sessione verranno esaminate alcune tecniche di Layering e pattern architetturali che ben si sposano con questa tecnica.
Questo file (39 Mb) contiene tutte le figure del libro di R.Polillo, "Facile da usare" (Apogeo, 2010), nell’ordine in cui compaiono nel libro. Esse sono rese disponibili a chiunque volessero utilizzarle per scopi didattici. Per le didascalie, si rimanda al libro stesso, reperibile anche in rete, in www.rpolillo.it
This presentation talks about dependecy injection, an architectural design pattern that aims to help developer to resolve dependencies between objects. Starting by describing general problem of dependecy resolution, the presentation continues presenting Inversion of Control (IoC) pattern, constructor injection and setting injection. As examples, some frameworks and libraries are reported, such as:
- Google Guice
- Spring framework
- AngularJS
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
Slides delle lezioni del corso di Strumenti e applicazioni Web per il corso di laurea magistrale in teoria e tecnologia della comunicazione - Università di Milano Bicocca (prof.R.Polillo) - Lezione del 20 marzo 2014
Market e Tools: Utility per la personalizzazione di applicazioni AndroidAndrea Pola
Analisi di fattibilità e delle problematiche in tema di Application Building per terze parti su Android. Il significato di chiave privata e firma digitale per le applicazioni Android.
Le scelte progettuali per realizzare sistemi per la creazione assistita di webservice per la realizzione di applicazioni mobile.
Sorgente e tesi dispnonibili su: https://github.com/peppo1616/Mywebview
Market e Tools: Utility per la personalizzazione di applicazioni Android
Diagrammi Use Case
1. DIAGRAMMI DEI CASI D’USO
INGEGNERIA DEL SOFTWARE
Università degli Studi di Padova
Dipartimento di Matematica
Corso di Laurea in Informatica, A.A. 2014 – 2015
rcardin@math.unipd.it
2. SOMMARIO
Cosa sono gli Use Case
Specifica Use Case
Diagrammi dei Casi d’Uso
Use Case: Inclusione
Use Case: Estensione
Use Case: Generalizzazione
Individuazione Use Case
Ingegneria del software mod. A
Riccardo Cardin 2
3. SOMMARIO
Cosa sono gli Use Case
Specifica Use Case
Diagrammi dei Casi d’Uso
Use Case: Inclusione
Use Case: Estensione
Use Case: Generalizzazione
Individuazione Use Case
Ingegneria del software mod. A
Riccardo Cardin 3
4. DIAGRAMMI DEI CASI D’USO
Ingegneria del software mod. A
Riccardo Cardin 4
5. DIAGRAMMI DEI CASI D’USO
Analisi dei Requisiti
Ingegneria del software mod. A
Riccardo Cardin 5
• Diagrammi Use case
• Diagrammi di flusso
Revisione dei
Requisiti
R. Progetto
Architetturale
Revisione di
Qualifica
R. di
Accettazione
• Diagrammi dei package
• Diagrammi delle classi
• Diagrammi degli oggetti
• Diagrammi di attività
• Diagrammi di sequenza
• Diagrammi delle classi
• Diagrammi di attività
• Diagrammi di sequenza
• Diagrammi di flusso
6. COSA SONO GLI USE CASE
Tecniche per individuare i requisiti funzionali
Descrivono interazioni
Sistema
Utenti (attori)/elementi esterni al sistema
Come il sistema deve essere utilizzato?
Che funzionalità espone?
Ingegneria del software mod. A
Riccardo Cardin 6
Esempio
È richiesto lo sviluppo di un’applicazione che permetta la gestione di un semplice blog.
In particolare devono essere disponibili almeno tutte le funzionalità base di un blog:
deve essere possibile per un utente inserire un nuovo post e successivamente per gli
altri utenti deve essere possibile commentarlo. Queste due operazioni devono essere
disponibili unicamente agli utenti registrati all’interno del sistema. La registrazione
avviene scegliendo una username e una password. La username deve essere univoca
all’interno del sistema.
7. COSA SONO GLI USE CASE
Scenari
Sequenza di passi che descrivono interazioni
Attori (utenti) e il sistema
Rappresentazione di una possibilità
Scenari alternativi
Esempio: la carta di credito non è accettata, il cliente è
abituale e il suo profilo è già presente nel sistema, …
Tutti gli scenari (principale e alternativo) condividono
uno scopo
Esempio: l’acquisto di almeno un prodotto
Ingegneria del software mod. A
Riccardo Cardin 7
8. COSA SONO GLI USE CASE
Definizione
Un caso d’uso è un insieme di scenari (sequenze di azioni)
che hanno in comune uno scopo finale (obiettivo) per un
utente (attore).
Informale
Un caso d’uso è una situazione nella quale il sistema viene
utilizzato per soddisfare uno o più bisogno dell’utente.
Descrivono l’insieme di funzionalità del sistema come
sono percepite dagli utenti
Visione esterna del sistema
Nessun dettaglio implementativo
Ingegneria del software mod. A
Riccardo Cardin 8
9. COSA SONO GLI USE CASE
Attori
Ruolo dell’ utente nell’interazione con il sistema
Utente: persona, altro sistema esterno
Utente “fisico” più ruoli (attori)
Più utente medesimo ruolo (attore)
Svolgono il caso d’uso per raggiungere l’obiettivo
Stesso attore più casi d’uso
Un caso d’uso più attori
Buon mezzo di individuazione dei casi d’uso
1. Individuare la lista degli attori
2. Comprendere i loro obiettivi e come interagiscono con il
sistema (quale ruolo a quale funzionalità)
Nessun dettaglio implementativo sui modi di interazione!
Ingegneria del software mod. A
Riccardo Cardin 9
10. COSA SONO GLI USE CASE
Ingegneria del software mod. A
Riccardo Cardin 10
Identificare gli
ATTORI
11. SOMMARIO
Cosa sono gli Use Case
Specifica Use Case
Diagrammi dei Casi d’Uso
Use Case: Inclusione
Use Case: Estensione
Use Case: Generalizzazione
Individuazione Use Case
Ingegneria del software mod. A
Riccardo Cardin 11
12. SPECIFICA USE CASE
Use Case sono puro TESTO
UML descrive solo gli use case diagram
Specificano l’interazione tra i casi d’uso
Caso d’uso: UC1 - Registrazione
Attore primario: Utente
Precondizioni: L’utente non è ancora autenticato presso il sistema
Postcondizioni: L’utente possiede un’account presso il sistema, contraddistinto da una username e da
una password
Scenario principale:
1. L’utente accede al sistema
2. L’utente seleziona la funzionalità "Registrati"
3. L’utente inserisce una username univoca nel sistema
4. L’utente inserisce una password che rispetta i vincoli imposti
Estensioni:
a. Nel caso in cui l’utente inserisca una username già censita a sistema:
Ingegneria del software mod. A
Riccardo Cardin 12
1. L’utente non viene registrato presso il sistema
2. Viene visualizzato un errore esplicativo
3. Viene fornita all’utente la possibilità di scegliere un’altra password
13. SPECIFICA USE CASE
Il valore aggiunto è nel contenuto testuale
Nome/Identificatore
Scenario principale
Scenari alternativi
D’eccezione o errore
Pre-condizioni
Effetti / Garanzia (post-condizioni)
Trigger
Evento scatenante del caso d’uso
Attori principali
Attori secondari
Ingegneria del software mod. A
Riccardo Cardin 13
14. SPECIFICA USE CASE
Considerazioni
Un solo scenario principale per caso d’uso
Scenari alternativi (0..*)
Prendono in considerazione solo la parte che differisce dallo
scenario principale
Granularità
Soddisfa lo scopo di un attore (fare un ordine, …)
Più piccolo di un processo di business
Non fornisce dettagli significativi, non individua le funzionalità
del sistema
Kite level
Più grande di una singola operazione su un componente
Dettaglio eccessivo allontana il focus dall’obiettivo
Sea level, Fish level
Ingegneria del software mod. A
Riccardo Cardin 14
15. SOMMARIO
Cosa sono gli Use Case
Specifica Use Case
Diagrammi dei Casi d’Uso
Use Case: Inclusione
Use Case: Estensione
Use Case: Generalizzazione
Individuazione Use Case
Ingegneria del software mod. A
Riccardo Cardin 15
16. DIAGRAMMI DEI CASI D’USO
Rappresentazione grafica dei casi d’uso
Mette in evidenza attori e servizi del sistema
Grafo i cui nodi sono
Attori
Use case
Archi del grafo rappresentano
La comunicazione tra gli attori e gli use case
I legami tra gli use case
Relazione di estensione
Relazione di inclusione
Relazione di generalizzazione
Il diagramma individua i confini del sistema nello
scenario
Ingegneria del software mod. A
Riccardo Cardin 16
17. DIAGRAMMI DEI CASI D’USO
Componenti di un diagramma use case
Ingegneria del software mod. A
Riccardo Cardin 17
Attore
Use case
Il nome del caso
d’uso può essere
posizionato dentro
o fuori della figura
Associazione
Inclusione
Estensione
Generalizzazione
«include»
«extend»
Relazioni
18. DIAGRAMMI DEI CASI D’USO
Esempio
Blog
Associazione attore - use case: partecipazione
Comunicazione diretta
Utilizzazione del sistema
DEVE essere descritta anche in versione TESTUALE
Precondizioni e postcondizioni non possono essere desunte
Ingegneria del software mod. A
Riccardo Cardin 18
UC1 - Registrazione
Utente
esegue
19. DIAGRAMMI DEI CASI D’USO
Esempio
Ingegneria del software mod. A
Riccardo Cardin 19
attore
soggetto
caso d’uso
20. USE CASE: INCLUSIONE
Funzionalità comune fra più use case
Ogni istanza di A esegue B
B è incondizionatamente incluso nell’esecuzione di A
A non conosce i dettagli di B, ma solo i suoi risultati
B non conosce di essere inlcuso da A
Responsabilità esecuzione di B è completamente di A
Evita la ripetizione / Aumenta il riutilizzo
Ingegneria del software mod. A
Riccardo Cardin 20
A B
21. USE CASE: INCLUSIONE
Esempio
Ingegneria del software mod. A
Il database deve
essere esterno al
perimetro del sistema
(i.e. Facebook,
Twitter)!!!
Riccardo Cardin 21
22. USE CASE: ESTENSIONE
Aumento delle funzionalità di un use case
A B
Ogni istanza di A può esegue B in modo condizionato
L’esecuzione di B interrompe A
La responsabilità dei casi di estensione è di chi estende (B)
Non rappresenta l’ereditarietà nei linguaggi di progr.
Ingegneria del software mod. A
Riccardo Cardin 22
23. USE CASE: ESTENSIONE
Estensione
Condizione di estensione
Determina quando l’estensione deve essere utilizzata
Descrizione narrativa e/o icona dello use case
La condizione di estensione è verificata
Può esistere indipendentemente dagli use case estesi
Può estendere più use case base (riuso)
Attenzione al perimetro del caso d’uso esteso
Modifica scenario principale / post condizione
Esempio: gestione dei casi di eccezione
Ingegneria del software mod. A
Riccardo Cardin 23
24. USE CASE: ESTENSIONE
Esempio
Ingegneria del software mod. A
Riccardo Cardin 24
25. INCLUSIONE E ESTENSIONE
Aspetti in comune
Fattorizzano comportamenti comuni a più use case
Aumentano il comportamento di un use case base
Differenze
Estensione: l’attore può non eseguire tutte le
estensioni
Condizioni non verificate
Inclusione: l’attore esegue sempre tutte le inclusioni
Casi di utilizzo
Inclusione: una funzionalità si ripete in più use case
Estensione: si vogliono descrivere variazioni dalla
funzionalità standard
Ingegneria del software mod. A
Riccardo Cardin 25
26. USE CASE: GENERALIZZAZIONE
Aggiungere o modificare caratteristiche base
Attori
A è generalizzazione di B se B condivide almeno le
funzionalità di A
Use Case (più raro)
I casi d’uso figli possono aggiungere funzionalità rispetto ai
padri, o modificarne il comportamento
Tutte le funzionalità non ridefinite nel figlio si mantengono
in questo come definite nel padre
Ingegneria del software mod. A
Riccardo Cardin 26
Generalizzazione
fra use case
Generalizzazione
fra attori
28. USE CASE: ESEMPIO
Tripadvisor è un noto sito di viaggi diffuso in tutto il mondo. Per accedervi, è
necessario registrarsi fornendo una username e una password. Come in molti altri
sistemi, la usename deve essere univoca: il sistema, quindi, non permette ad un
nuovo utente di registrarsi utilizzando una username già scelta da un altro utente.
All’interno del sito sono presenti le recensioni di numerose attrazioni turistiche,
ristoranti, hotel, ecc...Le recensioni sono visibili pubblicamente e possono essere lette
anche dagli utenti non registrati. La scrittura delle recensioni è disponibile unicamente
per gli utenti registrati. Ogni recensione contiene un giudizio riassuntivo che l’utente
inserisce utilizzando le “stelle” (da una a cinque) e da una descrizione di almeno 100
caratteri. Nel caso si cerchi di inserire una recensione di lunghezza inferiore, il sistema
avvisa l’utente con un messaggio di errore. È possibile per l’eventuale proprietario
dell’attrazione turistica rispondere brevemente ad una recensione, inserendo a sua
volta un commento. Il profilo di un utente è caratterizzato oltre che dal suo nome e
dalla sua foto, che può essere modificata, dai distintivi che ha ottenuto. I distintivi sono
legati al numero di recensioni scritte: ad esempio, dopo 20 recensioni l’utente diviene
un “Recensore esperto” e il sistema lo notifica con un messaggio opportuno. È infine
possibile collegare il proprio account con il proprio profilo Facebook. In questo caso il
sistema notificherà l’utente ogni qualvolta un proprio amico inserisce all’interno di
Tripadvisor una recensione.
Ingegneria del software mod. A
Riccardo Cardin 28
30. SOMMARIO
Cosa sono gli Use Case
Specifica Use Case
Diagrammi dei Casi d’Uso
Use Case: Inclusione
Use Case: Estensione
Use Case: Generalizzazione
Individuazione Use Case
Ingegneria del software mod. A
Riccardo Cardin 30
31. INDIVIDUAZIONE USE CASE
Definizione del contesto
1. Identificazione attori e responsabilità
2. Identificazione degli obiettivi da raggiungere per
ciascun attore
Primi approssimazione use case
3. Valutare attori e use case e raffinarli
Divisione e accorpamento
4. Trovare le relazioni di inclusione
5. Trovare le relazioni di estensione
6. Trovare le relazioni di generalizzazione
«A use case is something that provides some measurable result to
the user on an external system»
Ingegneria del software mod. A
Riccardo Cardin 31
32. INDIVIDUAZIONE USE CASE
Fino a che livello di dettaglio spingersi?
Kite level
Livello molto astratto, definisce macro funzionalità
Sea level
Livello intermedio, utile nella scoperta di funzionalità
nascoste
Fish level
Livello di dettaglio, da esso si individuano direttamente i
requisiti del sistema
Vediamo un esempio...
Ingegneria del software mod. A
Riccardo Cardin 32
33. RIFERIMENTI
OMG Homepage – www.omg.org
UML Homepage – www.uml.org
UML Distilled, Martin Fowler, 2004, Pearson
(Addison Wesley)
Learning UML 2.0, Kim Hamilton, Russell Miles,
O’Reilly, 2006
Ingegneria del software mod. A
Riccardo Cardin 33