The document proposes a methodology called PropER-Doc to assist API providers in collecting and recommending proper code examples for documentation. PropER-Doc uses code search engines to locate code that potentially uses a given API element, and then applies recommendation assistants to help inspect, annotate, and select candidate examples according to their appropriateness and significance of API usage. The methodology aims to reduce the manual effort required of API providers for code example construction.
This document provides an overview and introduction to the Eclipse platform workspace components, including resources, compare, team, and CVS plugins. It discusses key concepts like resources, properties, preferences, content types, markers, natures, builders, and alternate file systems. It also covers the repository integration framework and compare framework for integrating version control. The presentation includes demos of these features and is intended to provide a basic understanding of the Eclipse platform workspace.
This document discusses WordPress filters and actions. It explains that filters and actions allow customization of WordPress' core functionality through hooks placed throughout the PHP script. Filters and actions are functions that can modify data or alter the script's execution without changing the core code. Tags associate hooks with specific instances, and the $wp_filter variable stores tag and function relationships. Utility functions help manage these relationships. Examples demonstrate how to add basic and advanced filters and actions.
AWS Lambda, Amazon API Gateway, MySQL, PHP - it’s LAMP but not as you know it. In this session, Ben will show why there has never been a better time to build serverless applications with PHP.
Using this new LAMP stack to build serverless applications allows PHP developers to benefit from the agility and scalability enabled by the serverless paradigm, all without needing to manage servers.
He’ll demo how to get started running your PHP code using functions as a service. You’ll learn how to connect to databases at scale with spiky workloads, and continue to use your favourite libraries and tools, without impacting performance or availability.
Learn how to become a serverless PHP developer, and use the world’s most popular web runtime to build scalable, agile apps without the server management.
The document discusses application programming interfaces (APIs) and different types of API architectures. It describes REST as an architectural style that focuses on resources and resource representations. The key principles of REST include identifying resources with URIs, manipulating resources through standard HTTP methods like GET, PUT, POST, and DELETE, self-descriptive messages containing metadata like content types, and hypermedia as the engine of application state by including related URIs in responses. Examples are provided of XML-RPC, SOAP, and JSON-RPC as alternative API styles oriented around remote procedure calls rather than resources.
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...Tom Hofte
The document provides an agenda and overview for a 3.5 hour conference session on mapping a domain model to a RESTful web API. The session will cover discovering the domain model, mapping it to REST resources and operations, and other REST modeling topics. It introduces key REST concepts like resources, URIs, HTTP methods, and HATEOAS. It also discusses best practices like the Richardson Maturity Model and API style guides. Interactive exercises are planned to have attendees practice domain discovery and REST modeling for a sample airline booking case study.
O'Reilly SACon San Jose, CA - 2019 - API design tutorialTom Hofte
This document discusses mapping a domain model to a RESTful web API. It begins with an introduction and agenda for the presentation. It then covers discovering the API domain by identifying domain entities, operations, and relationships. This involves analyzing use cases, events, and domain expert input. The document provides an example of mapping verbs and nouns to entities and operations. It emphasizes grouping related concepts into bounded contexts. The goal is to learn how to map the domain model to REST resources, representations, and operations to define the API interface.
Mortgage-backed securities (MBS) are created when mortgages are pooled together and sold as securities. There are two main types of MBS: mortgage pass-through securities, where payments are passed through to investors, and mortgage-backed derivatives like CMOs that create multiple classes of securities. Government agencies like Fannie Mae and Freddie Mac purchase mortgages from lenders and pool them to issue MBS to expand the secondary mortgage market. Yields on MBS can be calculated in different ways, such as monthly cash flow yield based on interest and principal payments, or bond equivalent yield which compares the yield to a bond of similar maturity.
This document provides an overview and introduction to the Eclipse platform workspace components, including resources, compare, team, and CVS plugins. It discusses key concepts like resources, properties, preferences, content types, markers, natures, builders, and alternate file systems. It also covers the repository integration framework and compare framework for integrating version control. The presentation includes demos of these features and is intended to provide a basic understanding of the Eclipse platform workspace.
This document discusses WordPress filters and actions. It explains that filters and actions allow customization of WordPress' core functionality through hooks placed throughout the PHP script. Filters and actions are functions that can modify data or alter the script's execution without changing the core code. Tags associate hooks with specific instances, and the $wp_filter variable stores tag and function relationships. Utility functions help manage these relationships. Examples demonstrate how to add basic and advanced filters and actions.
AWS Lambda, Amazon API Gateway, MySQL, PHP - it’s LAMP but not as you know it. In this session, Ben will show why there has never been a better time to build serverless applications with PHP.
Using this new LAMP stack to build serverless applications allows PHP developers to benefit from the agility and scalability enabled by the serverless paradigm, all without needing to manage servers.
He’ll demo how to get started running your PHP code using functions as a service. You’ll learn how to connect to databases at scale with spiky workloads, and continue to use your favourite libraries and tools, without impacting performance or availability.
Learn how to become a serverless PHP developer, and use the world’s most popular web runtime to build scalable, agile apps without the server management.
The document discusses application programming interfaces (APIs) and different types of API architectures. It describes REST as an architectural style that focuses on resources and resource representations. The key principles of REST include identifying resources with URIs, manipulating resources through standard HTTP methods like GET, PUT, POST, and DELETE, self-descriptive messages containing metadata like content types, and hypermedia as the engine of application state by including related URIs in responses. Examples are provided of XML-RPC, SOAP, and JSON-RPC as alternative API styles oriented around remote procedure calls rather than resources.
Mind The Gap - Mapping a domain model to a RESTful API - OReilly SACon 2018, ...Tom Hofte
The document provides an agenda and overview for a 3.5 hour conference session on mapping a domain model to a RESTful web API. The session will cover discovering the domain model, mapping it to REST resources and operations, and other REST modeling topics. It introduces key REST concepts like resources, URIs, HTTP methods, and HATEOAS. It also discusses best practices like the Richardson Maturity Model and API style guides. Interactive exercises are planned to have attendees practice domain discovery and REST modeling for a sample airline booking case study.
O'Reilly SACon San Jose, CA - 2019 - API design tutorialTom Hofte
This document discusses mapping a domain model to a RESTful web API. It begins with an introduction and agenda for the presentation. It then covers discovering the API domain by identifying domain entities, operations, and relationships. This involves analyzing use cases, events, and domain expert input. The document provides an example of mapping verbs and nouns to entities and operations. It emphasizes grouping related concepts into bounded contexts. The goal is to learn how to map the domain model to REST resources, representations, and operations to define the API interface.
Mortgage-backed securities (MBS) are created when mortgages are pooled together and sold as securities. There are two main types of MBS: mortgage pass-through securities, where payments are passed through to investors, and mortgage-backed derivatives like CMOs that create multiple classes of securities. Government agencies like Fannie Mae and Freddie Mac purchase mortgages from lenders and pool them to issue MBS to expand the secondary mortgage market. Yields on MBS can be calculated in different ways, such as monthly cash flow yield based on interest and principal payments, or bond equivalent yield which compares the yield to a bond of similar maturity.
The document provides a list of 22 social media tools and marketing examples of how major companies are using each tool, such as blogs, social networks, online video, and more. It encourages companies to consider all the tools and get started with social media marketing right away instead of overanalyzing. Some comments discuss starting with objectives and strategy before tools, and that the document is not truly a social media marketing plan but rather a list of tools and examples.
MAVIS: A Visualization Tool for Cohesion-based Bad Smell Inspection立偉 馬
This document introduces MAVIS, a visualization tool to assist with inspecting cohesion-based code smells detected by bad smell detection tools. It summarizes an empirical study that found many detected smells were false positives and manual inspection was required. MAVIS visualizes metrics to expose smell symptoms and links the visualization to code to aid inspection. Two case studies found MAVIS reduced inspection effort for 1/3 of candidates.
A Scripting Environment for Refactoring Process Execution立偉 馬
This document introduces Refactoring Commando, a scripting environment for assisting the execution of refactoring processes. It provides a unified command line interface and APIs to cascade different refactoring tools. Refactoring Commando allows batching of repetitive tasks and reusing developed procedures. An example usage scenario demonstrates how it can be used to detect and remove feature envy in a project by finding affected methods, inspecting them with MAVIS, constructing a refactoring plan, and previewing and applying changes.
USING FINANCIAL STATEMENTS INFORMATIONDoulat panah
This document discusses financial statement analysis and the time value of money. It covers:
- Reasons for analyzing financial statements like performance evaluation and checking projections.
- Benchmarking methods like comparing to peers or historical trends.
- Calculating future value over time using compound interest formulas for single deposits or regular cash flows.
- How present value considers the time value of money by discounting future cash flows.
HippoNetwork is a Digital Advertising Agency that provide online marketing services in Singapore. Visit us at http://www.hipponetwork.com to find out more!
This document describes the design of a DS-CDMA transmitter using VHDL and an FPGA. It discusses the design of the transmitter's key components like the PN code generator and BPSK modulator. The PN code generator uses a 16-stage linear feedback shift register with a specific feedback polynomial to generate codes. The transmitter blocks were designed separately in VHDL and then combined and implemented on an FPGA board. The transmitter is capable of transmitting data at rates up to 2 Mbps using a 40 MHz carrier frequency.
This document consists of 7 scenes where the song "Go Do" by Jonsi is playing in each scene. The overall message is that this particular song "gives you that feeling".
This document provides an overview of immunology and the immune system. It defines key terms like immunity, immune system, and immunology. It describes the basic functions of the immune system, which are to protect the body from microbes, tumors, and remove dead or abnormal cells. The immune system contains both innate immunity, which provides immediate non-specific defense, and acquired adaptive immunity which has antigen-specific responses and immunological memory. The document outlines the basic subjects and concepts in immunology including cell-mediated defenses, antibodies, hypersensitivities, immunodeficiencies and transplantation.
Informe del estudio de opinión publica sobre la intensión de voto Presidencial y al Congreso de la República por Ayacucho desarrollado del 15 al 18 de marzo de 2016 en las provincias de Huamanga, Huanta, y La Mar
Este documento presenta información sobre varias bandas de música incluyendo sus años de actividad, géneros musicales principales y algunas de sus canciones más populares. Resume la información sobre 11 bandas diferentes con detalles sobre su periodo de actividad que va desde la década de 1990 hasta la actualidad, los géneros musicales como pop punk, rock alternativo y metal, y sus canciones más conocidas.
Practices and tools for building better API (JFall 2013)Peter Hendriks
Een belangrijke voorwaarde om goede en leesbare Java code te schrijven is om gebruik te maken van een goede API. Een goede API helpt ontwikkelaars om sneller hoogwaardige code te schrijven. Het ontwerp van een API is daarom belangrijk, zeker als er grotere systemen worden gerealiseerd in teamverband. Moderne ontwikkeltools als Eclipse, IntelliJ IDEA en FindBugs helpen met het schrijven van goede API, en het detecteren van slecht gebruik. Deze sessie gaat in op de laatste ontwikkelingen en mogelijkheden, inclusief nieuwe taalmogelijkheden in Java 8. Er wordt hierbij gebruik gemaakt van praktische situaties en concrete codevoorbeelden, gebaseerd op echte ervaringen in grote codebases. Met praktische tips en toegankelijke tools kan al een grote stap gemaakt worden om in de praktijk beter met API ontwerp om te gaan!
This document discusses practices and tools for building better APIs. It outlines some key aspects of API quality, including value, usability, and stability. For usability, it discusses factors like learnability, efficiency, and errors based on a generic usability model. It also provides examples of API release notes to demonstrate concerns around stability and backward compatibility. The overall goal is to provide developers with perspectives and considerations for designing APIs that are easy to use and integrate with existing code.
Practices and Tools for Building Better APIsPeter Hendriks
The most important part of well-designed Java code is a nice API. A good API helps developers be more productive and write high-quality code quickly. API design matters for any developer, especially in building larger systems with a team. Modern coding tools such as Eclipse and FindBugs contain advanced tooling to help with designing an API and checking for bad usage. This session demonstrates the latest innovations, including new capabilities in Java 8, by presenting realistic examples based on real experiences in large codebases. They show that just a few Java tricks and simple annotations can make all the difference for building a great API.
Content Strategy and Developer Engagement for DevPortalsAxway
Slides from Write the Docs Ottawa Meet Up at Shopify HQ in Canada, June 24, 2019
We’ll walk through 5 scenarios and concrete ways of reaching a developer community for frictionless and increased engagement.
The document discusses K9, a recommender system that helps developers find relevant open source applications by analyzing API documentation rather than source code or project descriptions. K9 uses help documents to identify relevant API calls for a user's query, then checks that the calls are logically connected based on the query concepts. This approach aims to more accurately link high-level user intents to implementation details. Future work includes automating more of the application analysis and expanding K9's scope beyond Java projects.
The document provides an overview of API testing using Postman. It discusses testing APIs to verify functionality, status codes, response validation, data accuracy, performance, and security. The document outlines the different types of tests that can be performed in Postman, including tests for functionality, response validation, data accuracy, performance, and security. It also demonstrates how to write test scripts in Postman to validate responses, headers, response times, and security headers. The document uses an example API for a book management system to demonstrate setting up a test environment and collection in Postman, and writing tests to validate the API functionality.
Survival Strategies: Building your first website for API documentationMary Linderman
This presentation explores the challenges that building your first website for Application Programming Interface (API) documentation may present. It investigates how you can leverage minimal resources to create documentation that provides useful information to support the adoption of your API by third-party developers.
APIs at Scale with TypeSpec by Mandy Whaley, MicrosoftNordic APIs
A presentation given by Mandy Whaley, Partner Director of Product, Azure Developer Tools at Microsoft, at our 2024 Austin API Summit, March 12-13.
Session Description:
TypeSpec is a new API description language developed and used by Microsoft to deliver APIs at a massive scale. Learn how Microsoft uses TypeSpec to deliver high quality services to millions of customers and across tens of thousands of API endpoints. We will show how to use this new language and the related IDE tooling to encapsulate common API patterns into reusable components, up-level API descriptions with business-specific metadata and behaviors, connect API guidelines to development time activities, maintain API consistency, and generate custom assets, all while interoperating with the OpenAPI ecosystem.
Emulators as an Emerging Best Practice for API providersPostman
"Modern applications are highly distributed. We face challenges related to the use of internal and external APIs and how to build APIs with agility in the face of software that can evolve and change at any time. The API industry proposes two common strategies to circumvent these challenges: API Mocking and Service Virtualization. Both have pros and cons.
At Cisco, we came up with the idea of API emulators has a third strategy to handle the challenges we were facing. As a result of our work, we published a reference implementation for Webex ChatBots.
In this talk, we'll explain the motivation behind API emulators in the perspective of DevOps, CI/CD, Software Development, and serverless/microservices architectures. I will elaborate on the idea of integrating emulators as part of an overall API strategy, dive into the process of building such emulators, and validating them with Postman."
The document provides a list of 22 social media tools and marketing examples of how major companies are using each tool, such as blogs, social networks, online video, and more. It encourages companies to consider all the tools and get started with social media marketing right away instead of overanalyzing. Some comments discuss starting with objectives and strategy before tools, and that the document is not truly a social media marketing plan but rather a list of tools and examples.
MAVIS: A Visualization Tool for Cohesion-based Bad Smell Inspection立偉 馬
This document introduces MAVIS, a visualization tool to assist with inspecting cohesion-based code smells detected by bad smell detection tools. It summarizes an empirical study that found many detected smells were false positives and manual inspection was required. MAVIS visualizes metrics to expose smell symptoms and links the visualization to code to aid inspection. Two case studies found MAVIS reduced inspection effort for 1/3 of candidates.
A Scripting Environment for Refactoring Process Execution立偉 馬
This document introduces Refactoring Commando, a scripting environment for assisting the execution of refactoring processes. It provides a unified command line interface and APIs to cascade different refactoring tools. Refactoring Commando allows batching of repetitive tasks and reusing developed procedures. An example usage scenario demonstrates how it can be used to detect and remove feature envy in a project by finding affected methods, inspecting them with MAVIS, constructing a refactoring plan, and previewing and applying changes.
USING FINANCIAL STATEMENTS INFORMATIONDoulat panah
This document discusses financial statement analysis and the time value of money. It covers:
- Reasons for analyzing financial statements like performance evaluation and checking projections.
- Benchmarking methods like comparing to peers or historical trends.
- Calculating future value over time using compound interest formulas for single deposits or regular cash flows.
- How present value considers the time value of money by discounting future cash flows.
HippoNetwork is a Digital Advertising Agency that provide online marketing services in Singapore. Visit us at http://www.hipponetwork.com to find out more!
This document describes the design of a DS-CDMA transmitter using VHDL and an FPGA. It discusses the design of the transmitter's key components like the PN code generator and BPSK modulator. The PN code generator uses a 16-stage linear feedback shift register with a specific feedback polynomial to generate codes. The transmitter blocks were designed separately in VHDL and then combined and implemented on an FPGA board. The transmitter is capable of transmitting data at rates up to 2 Mbps using a 40 MHz carrier frequency.
This document consists of 7 scenes where the song "Go Do" by Jonsi is playing in each scene. The overall message is that this particular song "gives you that feeling".
This document provides an overview of immunology and the immune system. It defines key terms like immunity, immune system, and immunology. It describes the basic functions of the immune system, which are to protect the body from microbes, tumors, and remove dead or abnormal cells. The immune system contains both innate immunity, which provides immediate non-specific defense, and acquired adaptive immunity which has antigen-specific responses and immunological memory. The document outlines the basic subjects and concepts in immunology including cell-mediated defenses, antibodies, hypersensitivities, immunodeficiencies and transplantation.
Informe del estudio de opinión publica sobre la intensión de voto Presidencial y al Congreso de la República por Ayacucho desarrollado del 15 al 18 de marzo de 2016 en las provincias de Huamanga, Huanta, y La Mar
Este documento presenta información sobre varias bandas de música incluyendo sus años de actividad, géneros musicales principales y algunas de sus canciones más populares. Resume la información sobre 11 bandas diferentes con detalles sobre su periodo de actividad que va desde la década de 1990 hasta la actualidad, los géneros musicales como pop punk, rock alternativo y metal, y sus canciones más conocidas.
Practices and tools for building better API (JFall 2013)Peter Hendriks
Een belangrijke voorwaarde om goede en leesbare Java code te schrijven is om gebruik te maken van een goede API. Een goede API helpt ontwikkelaars om sneller hoogwaardige code te schrijven. Het ontwerp van een API is daarom belangrijk, zeker als er grotere systemen worden gerealiseerd in teamverband. Moderne ontwikkeltools als Eclipse, IntelliJ IDEA en FindBugs helpen met het schrijven van goede API, en het detecteren van slecht gebruik. Deze sessie gaat in op de laatste ontwikkelingen en mogelijkheden, inclusief nieuwe taalmogelijkheden in Java 8. Er wordt hierbij gebruik gemaakt van praktische situaties en concrete codevoorbeelden, gebaseerd op echte ervaringen in grote codebases. Met praktische tips en toegankelijke tools kan al een grote stap gemaakt worden om in de praktijk beter met API ontwerp om te gaan!
This document discusses practices and tools for building better APIs. It outlines some key aspects of API quality, including value, usability, and stability. For usability, it discusses factors like learnability, efficiency, and errors based on a generic usability model. It also provides examples of API release notes to demonstrate concerns around stability and backward compatibility. The overall goal is to provide developers with perspectives and considerations for designing APIs that are easy to use and integrate with existing code.
Practices and Tools for Building Better APIsPeter Hendriks
The most important part of well-designed Java code is a nice API. A good API helps developers be more productive and write high-quality code quickly. API design matters for any developer, especially in building larger systems with a team. Modern coding tools such as Eclipse and FindBugs contain advanced tooling to help with designing an API and checking for bad usage. This session demonstrates the latest innovations, including new capabilities in Java 8, by presenting realistic examples based on real experiences in large codebases. They show that just a few Java tricks and simple annotations can make all the difference for building a great API.
Content Strategy and Developer Engagement for DevPortalsAxway
Slides from Write the Docs Ottawa Meet Up at Shopify HQ in Canada, June 24, 2019
We’ll walk through 5 scenarios and concrete ways of reaching a developer community for frictionless and increased engagement.
The document discusses K9, a recommender system that helps developers find relevant open source applications by analyzing API documentation rather than source code or project descriptions. K9 uses help documents to identify relevant API calls for a user's query, then checks that the calls are logically connected based on the query concepts. This approach aims to more accurately link high-level user intents to implementation details. Future work includes automating more of the application analysis and expanding K9's scope beyond Java projects.
The document provides an overview of API testing using Postman. It discusses testing APIs to verify functionality, status codes, response validation, data accuracy, performance, and security. The document outlines the different types of tests that can be performed in Postman, including tests for functionality, response validation, data accuracy, performance, and security. It also demonstrates how to write test scripts in Postman to validate responses, headers, response times, and security headers. The document uses an example API for a book management system to demonstrate setting up a test environment and collection in Postman, and writing tests to validate the API functionality.
Survival Strategies: Building your first website for API documentationMary Linderman
This presentation explores the challenges that building your first website for Application Programming Interface (API) documentation may present. It investigates how you can leverage minimal resources to create documentation that provides useful information to support the adoption of your API by third-party developers.
APIs at Scale with TypeSpec by Mandy Whaley, MicrosoftNordic APIs
A presentation given by Mandy Whaley, Partner Director of Product, Azure Developer Tools at Microsoft, at our 2024 Austin API Summit, March 12-13.
Session Description:
TypeSpec is a new API description language developed and used by Microsoft to deliver APIs at a massive scale. Learn how Microsoft uses TypeSpec to deliver high quality services to millions of customers and across tens of thousands of API endpoints. We will show how to use this new language and the related IDE tooling to encapsulate common API patterns into reusable components, up-level API descriptions with business-specific metadata and behaviors, connect API guidelines to development time activities, maintain API consistency, and generate custom assets, all while interoperating with the OpenAPI ecosystem.
Emulators as an Emerging Best Practice for API providersPostman
"Modern applications are highly distributed. We face challenges related to the use of internal and external APIs and how to build APIs with agility in the face of software that can evolve and change at any time. The API industry proposes two common strategies to circumvent these challenges: API Mocking and Service Virtualization. Both have pros and cons.
At Cisco, we came up with the idea of API emulators has a third strategy to handle the challenges we were facing. As a result of our work, we published a reference implementation for Webex ChatBots.
In this talk, we'll explain the motivation behind API emulators in the perspective of DevOps, CI/CD, Software Development, and serverless/microservices architectures. I will elaborate on the idea of integrating emulators as part of an overall API strategy, dive into the process of building such emulators, and validating them with Postman."
The document discusses principles of effective API design. It begins by defining an API as providing a way for developers to interact with and consume a service. Some key principles discussed include:
1. Designing the API first before implementing backend logic to focus on usability.
2. Choosing an appropriate runtime that allows for scalability, reliability and hybrid cloud/on-premise deployment.
3. Using API contracts to define and enforce policies and service level agreements with consumers.
4. Monitoring API usage over time to understand usage patterns and improve the consumer experience.
5. Iteratively improving APIs through continuous feedback to optimize them over time.
6. Socializing APIs by creating developer port
The document provides an introduction and overview of APIs, REST, and OpenAPI specification. It discusses key concepts like resources, HTTP verbs, and OpenAPI structure. It also demonstrates OpenAPI syntax using JSON and YAML examples and highlights best practices for documenting APIs with OpenAPI.
An API is a specification that allows software components to communicate with each other. APIs can be classified based on the abstraction they describe, such as operating systems, programming languages, applications, and infrastructure services. REST architecture uses nouns and verbs for readability and less bandwidth than SOAP. When building APIs on AWS, developers can use services like Elastic Beanstalk for deployment, CloudWatch for monitoring, and IAM for security. It is important to focus on security at all stages of developing and deploying APIs.
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays
apidays LIVE Paris 2021 - APIs and the Future of Software
December 7, 8 & 9, 2021
Lessons from the API Stewardship Journey in Azure
Ryan Sweet, Principal Architect at Microsoft
API testing training in Hyderabad locationanithastoitech
Join our comprehensive API testing training in Hyderabad. Learn best practices, gain hands-on experience, and excel in API testing for a successful IT career.
The document discusses automated testing of REST APIs. It describes four key ingredients for automating REST API testing: 1) Using REST Assured wrappers to break API calls into reusable request/response parts. 2) Parsing Swagger documentation to obtain API details. 3) Automatically generating Java code from Swagger/JSONSchema. 4) Using JavaFX for building graphical user interfaces to test APIs. Code examples and links are provided for each ingredient to illustrate the automated testing approach.
API documentation provides information about how to use an application programming interface (API). It explains what an API is, how APIs allow applications to interact and exchange data, and the benefits of using APIs. The documentation also describes how APIs work by sending requests and receiving responses, and who typically creates APIs and their documentation. It provides details on API requests and responses, different types of APIs, and who the target audience of API documentation is. It recommends tools like Swagger that can automatically generate API documentation from code annotations to help technical writers complement the generated documentation.
API documentation provides information about how to use an application programming interface (API). It explains what an API is, how APIs allow applications to interact and exchange data, and the benefits of using APIs. The documentation also describes how APIs work by sending requests and receiving responses, and who typically creates APIs and their documentation. It provides details on API requests and responses, different types of APIs, and who the target audience is for API documentation. It also recommends tools like Swagger that can automatically generate API documentation from code annotations to help technical writers complement the generated documentation.
Patterns for automating API delivery. API conferencessuser9e7c64
Automating API product delivery is about automating workflows to improve the quality and delivery speed for APIs by applying APIOps principles. In this talk, I discuss patterns for
API consistency checks: Enforcing API design standards with linting tools like Spectral, Redocly and Vacuum.
API breaking change checks: Automating breaking-change checks with OpenAPI diff tools like Oasdiff
API conformance checks: Ensuring accuracy of your API reference documents using API conformance tools like Schemathesis.
API code generation: Generate server and client code using SDK generators like OpenAPI Generator
apidays LIVE LONDON - API Standards and Governance Platform by Nicoleta Stoicaapidays
apidays LIVE LONDON - The Road to Embedded Finance, Banking and Insurance with APIs
API Standards and Governance Platform
Nicoleta Stoica, Lead API Architect at HSBC
We present a novel code search approach for answering queries focused on
API-usage with code showing how the API should be used.
To construct a search index, we develop new techniques for statically mining
and consolidating temporal API specifications from code snippets. In
contrast to existing semantic-based techniques, our approach handles partial
programs in the form of code snippets. Handling snippets allows us to consume
code from various sources such as parts of open source projects,
educational resources (e.g. tutorials), and expert code sites. To handle code
snippets, our approach (i) extracts a possibly \emph{partial} temporal
specification from each snippet using a relatively precise static analysis
tracking a generalized notion of typestate, and (ii) consolidates the
partial temporal specifications, combining consistent partial information to
yield consolidated temporal specifications, each of which captures a full(er)
usage scenario.
To answer a search query, we define a notion of relaxed inclusion
matching a query against temporal specifications and their corresponding code
snippets.
We have implemented our approach in a tool called PRIME and applied it to
search for API usage of several challenging APIs. PRIME was able to analyze
and consolidate thousands of snippets per tested API, and our results
indicate that the combination of a relatively precise analysis and
consolidation allowed PRIME to answer challenging queries effectively.
Similar to Recommending Proper API Code Examples for Documentation Purpose (20)
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Recommending Proper API Code Examples for Documentation Purpose
1. Recommending Proper API Code Examples
for Documentation Purpose
Lee Wei Mar, Ye-Chi Wu, and Hewijin Christine Jiau
DBSE Lab @ Inst. CCE & Dept. EE
National Cheng Kung University (NCKU), Taiwan
2. Outline
• Introduction
• Code Search Engines for Code Example Collection
• The Proposed Methodology - PropER-Doc
– Execution Process
– Recommendation Assistants
• Evaluation
• Conclusion
4. Introduction
• Nowadays, object-oriented frameworks & libraries offer powerful APIs
that facilitate programmers in accomplishing their works
Power ↑ API Complexity ↑ Learning Barrier ↑
5. Introduction
• Nowadays, object-oriented frameworks & libraries offer powerful APIs
that facilitate programmers in accomplishing their works
Hamper
Power ↑ API Complexity ↑ Learning Barrier ↑
6. Introduction
• Nowadays, object-oriented frameworks & libraries offer powerful APIs
that facilitate programmers in accomplishing their works
Hamper
Power ↑ API Complexity ↑ Learning Barrier ↑
To ensure the facilitation, offering effective API learning resources
is essential for API providers
8. Introduction (cont.)
• Code examples (CEs) are effective resources for API learning
Eclipse SWT
public class Snippet26 {
public static void main (String [] args) {
Display display = new Display ();
Shell shell = new Shell (display);
Combo combo = new Combo (shell, SWT.READ_ONLY);
combo.setItems (new String [] {"Alpha", "Bravo", "Charlie"});
Rectangle clientArea = shell.getClientArea ();
combo.setBounds (clientArea.x, clientArea.y, 200, 200);
shell.pack ();
shell.open ();
….
}
Independent CE repository
9. Introduction (cont.)
• Code examples (CEs) are effective resources for API learning
Eclipse SWT Eclipse JDT
public class Snippet26 {
public static void main (String [] args) {
Display display = new Display ();
Shell shell = new Shell (display);
Combo combo = new Combo (shell, SWT.READ_ONLY);
combo.setItems (new String [] {"Alpha", "Bravo", "Charlie"});
Rectangle clientArea = shell.getClientArea ();
combo.setBounds (clientArea.x, clientArea.y, 200, 200);
shell.pack ();
shell.open ();
….
}
Independent CE repository Embedding CE in API reference
10. Introduction (cont.)
• Code examples (CEs) are effective resources for API learning
Guide programmers to properly use API by demonstration
11. Introduction (cont.)
• Code examples (CEs) are effective resources for API learning
Guide programmers to properly use API by demonstration
• However, many APIs fail to offer sufficient CEs
12. Introduction (cont.)
• Code examples (CEs) are effective resources for API learning
Guide programmers to properly use API by demonstration
• However, many APIs fail to offer sufficient CEs
API providers must invest large human effort for CE
construction from scratch
13. CSEs for Code Example Collection
• Code Search Engines (CSEs) are potentially useful in CE collection
query
API provider
source files potentially
use the API element
14. CSEs for Code Example Collection
• Code Search Engines (CSEs) are potentially useful in CE collection
query
API provider
source files potentially
use the API element
The signature of a specific API element
is given as the query keyword
15. CSEs for Code Example Collection
• Code Search Engines (CSEs) are potentially useful in CE collection
query
API provider
source files potentially
use the API element
The signature of a specific API element
is given as the query keyword • These files contain “client code” that
demonstrates the use of the API element
• The client code can be treated as
“candidates” of CEs for documentation
16. CSEs for Code Example Collection - Challenges
• Code Search Engines (CSEs) are potentially useful in CE collection
query
API provider
source files potentially
use the API element
API providers must manually
17. CSEs for Code Example Collection - Challenges
• Code Search Engines (CSEs) are potentially useful in CE collection
query
API provider
source files potentially
use the API element
API providers must manually
1. Locate API usage code scattered in source files as candidates
2. Reorganize candidates according to different usages
3. Check appropriateness of candidates for documentation
18. CSEs for Code Example Collection - Challenges
• Code Search Engines (CSEs) are potentially useful in CE collection
query
API provider
source files potentially
use the API element
API providers must manually
1. Locate API usage code scattered in source files as candidates
2. Reorganize candidates according to different usages
3. Check appropriateness of candidates for documentation
These manual efforts must be reduced to make such practice applicable
19. The Proposed Methodology – PropER-Doc
• Proper code Example candidates Recommendation for Documentation
– Use API element links to guide the recommendation from CSE results
20. The Proposed Methodology – PropER-Doc
• Proper code Example candidates Recommendation for Documentation
– Use API element links to guide the recommendation from CSE results
Links between API elements to indicate the joint use relationship
• Structural Links from structural dependencies in API implementation
• Conceptual Links from cross references in API documentation
21. The Proposed Methodology – PropER-Doc
• Proper code Example candidates Recommendation for Documentation
– Use API element links to guide the recommendation from CSE results
Links between API elements to indicate the joint use relationship
• Structural Links from structural dependencies in API implementation
• Conceptual Links from cross references in API documentation
– Offer recommendation assistants for candidate inspection & selection
22. PropER-Doc Execution Process
perform
targetType query Candidate code search
Collection
API Provider
candidates
check API call
Candidate significance
candidate suggestion Annotation
annotated
candidates
Candidate
Recommendation
24. PropER-Doc Execution Process
perform
targetType query Candidate code search
Collection
API Provider
The API provider gives a name
of the API type that needs CEs
25. PropER-Doc Execution Process
perform
targetType query Candidate code search
Collection
API Provider
The API provider gives a name
of the API type that needs CEs The query is delegated to CSEs
26. PropER-Doc Execution Process
perform
targetType query Candidate code search
Collection
API Provider
candidates
The API provider gives a name
of the API type that needs CEs The query is delegated to CSEs
• PropER-Doc collects candidates from CSE results
• Candidate: a method implementation that refers targetType
usage
27. PropER-Doc Execution Process
perform
targetType query Candidate code search
Collection
API Provider
candidates
check API call
Candidate significance
Annotation
28. PropER-Doc Execution Process
perform
targetType query Candidate code search
Collection
API Provider
candidates
check API call
For each API call, annotate it with a
Candidate significance
significance degree Annotation
6 0
(relevant) (irrelevant)
29. PropER-Doc Execution Process
perform
targetType query Candidate code search
Collection
API Provider
candidates
check API call
For each API call, annotate it with a
Candidate significance
significance degree Annotation
6 0
(relevant) (irrelevant)
annotated
candidates
30. PropER-Doc Execution Process
perform
targetType query Candidate code search
Collection
API Provider
candidates
check API call
candidate suggestion
Candidate significance
Annotation
annotated
candidates
Candidate
Recommendation
31. PropER-Doc Execution Process
perform
targetType query Candidate code search
Collection
API Provider
candidates
check API call
candidate suggestion
Candidate significance
Annotation
recommendation
with
assistants annotated
candidates
Candidate
Recommendation
33. Candidate Recommendation
Four Recommendation Assistants are offered to guide the recommendation
[All candidates]
Grouping for
distinguishing API usages
34. Candidate Recommendation
Four Recommendation Assistants are offered to guide the recommendation
[All candidates] [A selected group]
Grouping for Diagramming API
distinguishing API usages types interaction
35. Candidate Recommendation
Four Recommendation Assistants are offered to guide the recommendation
[All candidates] [A selected group] [Candidates in a group]
Grouping for Diagramming API Ranking based on
distinguishing API usages types interaction appropriateness metrics
36. Candidate Recommendation
Four Recommendation Assistants are offered to guide the recommendation
[All candidates] [A selected group] [Candidates in a group] [A selected candidate]
Grouping for Diagramming API Ranking based on Presenting the
distinguishing API usages types interaction appropriateness metrics candidate for inspection
37. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[All candidates] – Distinguish different API usages
38. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[All candidates] – Distinguish different API usages
Rationale: In different usages, targetType tends to interact with different API types
39. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[All candidates] – Distinguish different API usages
Rationale: In different usages, targetType tends to interact with different API types
• PropER-Doc extracts iTypes of each
candidate
– iTypes: the set of API types where
targetType directly interacts with
• Candidates with the same iTypes tend
to demonstrate the same usage and are
grouped together
40. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[All candidates] – Distinguish different API usages
Rationale: In different usages, targetType tends to interact with different API types
• PropER-Doc extracts iTypes of each
candidate
– iTypes: the set of API types where
targetType directly interacts with
• Candidates with the same iTypes tend
to demonstrate the same usage and are
grouped together
42. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[One group is selected for inspection]
Use visual notation to summarize API type interaction of a specific usage
43. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[One group is selected for inspection]
Use visual notation to summarize API type interaction of a specific usage
• Visual Grammar
44. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[One group is selected for inspection]
Use visual notation to summarize API type interaction of a specific usage
• Visual Grammar
– Box: API Type
45. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[One group is selected for inspection]
Use visual notation to summarize API type interaction of a specific usage
• Visual Grammar
– Box: API Type
– Edge / Label: interaction / API calls
46. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[One group is selected for inspection]
Use visual notation to summarize API type interaction of a specific usage
• Visual Grammar
– Box: API Type
– Edge / Label: interaction / API calls
– API call popularity
47. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[One group is selected for inspection]
Use visual notation to summarize API type interaction of a specific usage
• Visual Grammar
– Box: API Type
– Edge / Label: interaction / API calls
– API call popularity
48. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[One group is selected for inspection]
Use visual notation to summarize API type interaction of a specific usage
• Visual Grammar
– Box: API Type
– Edge / Label: interaction / API calls
– API call popularity
• Selection of interested API calls for
filtering candidates
49. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A set of similar candidates demonstrating the same usage is chosen]
50. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A set of similar candidates demonstrating the same usage is chosen]
Which one is more appropriate for documentation and should be inspected first?
51. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A set of similar candidates demonstrating the same usage is chosen]
Define three appropriateness metrics to rank the candidates
52. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A set of similar candidates demonstrating the same usage is chosen]
Define three appropriateness metrics to rank the candidates
Significance Density Cohesiveness
Importance of referred API calls Portion of relevant API calls Degree of relevant call aggregation
> > >
more more
representative comprehensible easier extraction
Candidate Statements with significance degree
6 0
53. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A set of candidates is chosen]
Rank function: f(c) = Significance(c) + Density(c) + Cohesiveness(c)
54. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A candidate is selected for inspection & CE construction]
55. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A candidate is selected for inspection & CE construction]
Highlight relevant code place to facilitate code inspection & extraction
56. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A candidate is selected for inspection & CE construction]
Highlight relevant code place to facilitate code inspection & extraction
57. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A candidate is selected for inspection & CE construction]
Highlight relevant code place to facilitate code inspection & extraction
Important code blocks are highlighted
58. Recommendation - Clustering
Grouping Diagramming Ranking Presenting
[A candidate is selected for inspection & CE construction]
Highlight relevant code place to facilitate code inspection & extraction
Key API elements are
marked as bold
Important code blocks are highlighted
59. Evaluation
• Objective: check PropER-Doc effectiveness on
A. Distinguishing different API usages among candidates
B. Suggesting proper candidates for CEs construction
• Procedure
1. For an API type, manually identify its typical usages (U1) that need CEs
2. Use PropER-Doc to collect candidates and distinguish the API type usages (U2)
3. Map between U1 and U2 (objective A)
4. For each usage in U1, use PropER-Doc to select the top-ranked candidate
5. Evaluate the effort for constructing CE from top-ranked candidate (objective B)
• Subject: ASTParser class (A complex API type in Eclipse JDT framework)
60. Evaluation Result – Mapping Result
U1 U2 (GID)
Get AST from ICompilationUnit 1
Get AST from a string of class body 2
Get AST from a string of statements 3
Get AST from a string of expression 4
Get AST from ITypRoot 5
Get IJavaElement binding info. 6
Get AST from source code 7
Get ASTs from ICompilationUnits 8
Get AST from IClassFile 9
61. Evaluation Result – Mapping Result
U1 U2 (GID) • Mostly 1 : 1 mapping
Get AST from ICompilationUnit 1
Get AST from a string of class body 2
Get AST from a string of statements 3
Get AST from a string of expression 4
Get AST from ITypRoot 5
Get IJavaElement binding info. 6
Get AST from source code 7
Get ASTs from ICompilationUnits 8
Get AST from IClassFile 9
62. Evaluation Result – Mapping Result
U1 U2 (GID) • Mostly 1 : 1 mapping
Get AST from ICompilationUnit 1 – Confirm the effectiveness of the
Get AST from a string of class body 2
grouping assistant in PropER-Doc
Get AST from a string of statements 3
Get AST from a string of expression 4
Get AST from ITypRoot 5
Get IJavaElement binding info. 6
Get AST from source code 7
Get ASTs from ICompilationUnits 8
Get AST from IClassFile 9
63. Evaluation Result – Mapping Result
U1 U2 (GID) • Mostly 1 : 1 mapping
Get AST from ICompilationUnit 1 – Confirm the effectiveness of the
Get AST from a string of class body 2
grouping assistant in PropER-Doc
Get AST from a string of statements 3
Get AST from a string of expression 4
• For the 3 : 1 mapping, the
diagramming assistant is useful in
Get AST from ITypRoot 5 distinguishing different usages
Get IJavaElement binding info. 6
Get AST from source code 7
Get ASTs from ICompilationUnits 8
Get AST from IClassFile 9
64. Evaluation Result – Mapping Result
U1 U2 (GID) • Mostly 1 : 1 mapping
Get AST from ICompilationUnit 1 – Confirm the effectiveness of the
Get AST from a string of class body 2
grouping assistant in PropER-Doc
Get AST from a string of statements 3
Get AST from a string of expression 4
• For the 3 : 1 mapping, the
diagramming assistant is useful in
Get AST from ITypRoot 5 distinguishing different usages
Get IJavaElement binding info. 6
Get AST from source code 7
Get ASTs from ICompilationUnits 8
Get AST from IClassFile 9
The Grouping and Diagramming assistants are useful
in distinguishing different API usages
65. Evaluation Result – Constructing Effort
U1 ∆Stmt (+/-) Coh.
Get AST from ICompilationUnit 0/0 1.00
Get AST from a string of class body 0/0 1.00
Get AST from a string of statements 0/0 1.00
Get AST from a string of expression 4/0 1.00
Get AST from ITypRoot 0/1 1.00
Get IJavaElement binding info. 3/0 1.00
Get AST from source code 0/0 1.00
Get ASTs from ICompilationUnits 16 / 0 0.63
Get AST from IClassFile 0/0 1.00
∆Stmt (+/-): #(extra statements) / #(missed statements)
Coh.: Cohesiveness (between 0 and 1)
66. Evaluation Result – Constructing Effort
U1 ∆Stmt (+/-) Coh. • 5 of 9 top candidates can be
Get AST from ICompilationUnit 0/0 1.00 directly used as CEs
Get AST from a string of class body 0/0 1.00
Get AST from a string of statements 0/0 1.00
Get AST from a string of expression 4/0 1.00
Get AST from ITypRoot 0/1 1.00
Get IJavaElement binding info. 3/0 1.00
Get AST from source code 0/0 1.00
Get ASTs from ICompilationUnits 16 / 0 0.63
Get AST from IClassFile 0/0 1.00
∆Stmt (+/-): #(extra statements) / #(missed statements)
Coh.: Cohesiveness (between 0 and 1)
67. Evaluation Result – Constructing Effort
U1 ∆Stmt (+/-) Coh. • 5 of 9 top candidates can be
Get AST from ICompilationUnit 0/0 1.00 directly used as CEs
Get AST from a string of class body 0/0 1.00
Get AST from a string of statements 0/0 1.00 • Only 1 top candidate misses 1
statement for CE construction
Get AST from a string of expression 4/0 1.00
– Top candidates contains almost all
Get AST from ITypRoot 0/1 1.00 required API calls for CE construction
Get IJavaElement binding info. 3/0 1.00
Get AST from source code 0/0 1.00
Get ASTs from ICompilationUnits 16 / 0 0.63
Get AST from IClassFile 0/0 1.00
∆Stmt (+/-): #(extra statements) / #(missed statements)
Coh.: Cohesiveness (between 0 and 1)
68. Evaluation Result – Constructing Effort
U1 ∆Stmt (+/-) Coh. • 5 of 9 top candidates can be
Get AST from ICompilationUnit 0/0 1.00 directly used as CEs
Get AST from a string of class body 0/0 1.00
Get AST from a string of statements 0/0 1.00 • Only 1 top candidate misses 1
statement for CE construction
Get AST from a string of expression 4/0 1.00
– Top candidates contains almost all
Get AST from ITypRoot 0/1 1.00 required API calls for CE construction
Get IJavaElement binding info. 3/0 1.00
Get AST from source code 0/0 1.00 • High cohesiveness in all top
candidates
Get ASTs from ICompilationUnits 16 / 0 0.63
– Effort for relevant code extraction
Get AST from IClassFile 0/0 1.00 from top candidates is quite low
∆Stmt (+/-): #(extra statements) / #(missed statements)
Coh.: Cohesiveness (between 0 and 1)
69. Evaluation Result – Constructing Effort
U1 ∆Stmt (+/-) Coh. • 5 of 9 top candidates can be
Get AST from ICompilationUnit 0/0 1.00 directly used as CEs
Get AST from a string of class body 0/0 1.00
Get AST from a string of statements 0/0 1.00 • Only 1 top candidate misses 1
statement for CE construction
Get AST from a string of expression 4/0 1.00
– Top candidates contains almost all
Get AST from ITypRoot 0/1 1.00 required API calls for CE construction
Get IJavaElement binding info. 3/0 1.00
Get AST from source code 0/0 1.00 • High cohesiveness in all top
candidates
Get ASTs from ICompilationUnits 16 / 0 0.63
– Effort for relevant code extraction
Get AST from IClassFile 0/0 1.00 from top candidates is quite low
PoperER-Doc suggests high quality candidates
for CEs construction
70. Conclusion
• PropER-Doc is proposed to assist API providers in constructing proper API
code examples using code search engines
1. Candidate grouping algorithm
2. API-type interaction diagram
3. Metrics-based ranking mechanism
71. Conclusion
• PropER-Doc is proposed to assist API providers in constructing proper API
code examples using code search engines
1. Candidate grouping algorithm Distinguish different API usages
2. API-type interaction diagram
3. Metrics-based ranking mechanism
72. Conclusion
• PropER-Doc is proposed to assist API providers in constructing proper API
code examples using code search engines
1. Candidate grouping algorithm Distinguish different API usages
2. API-type interaction diagram Inspect specific usage & filter candidates
3. Metrics-based ranking mechanism
73. Conclusion
• PropER-Doc is proposed to assist API providers in constructing proper API
code examples using code search engines
1. Candidate grouping algorithm Distinguish different API usages
2. API-type interaction diagram Inspect specific usage & filter candidates
3. Metrics-based ranking mechanism Select high quality candidates
74. Conclusion
• PropER-Doc is proposed to assist API providers in constructing proper API
code examples using code search engines
1. Candidate grouping algorithm Distinguish different API usages
2. API-type interaction diagram Inspect specific usage & filter candidates
3. Metrics-based ranking mechanism Select high quality candidates
• Evaluation on Eclipse JDT framework has been conducted to confirm the
effectiveness of PropER-Doc
75. Thank You
Lee Wei Mar (馬立偉)
lwmar@nature.ee.ncku.edu.tw
Database and Software Engineering Laboratory,
Institute of Computer and Communication Engineering &
Department of Electrical Engineering,
National Cheng Kung University, Tainan, Taiwan