3rd-Party Software Development Platform
(Redirected from software architecture and services)
Jump to navigation
Jump to search
A 3rd-Party Software Development Platform is a software platform that facilitates software development (of software systems).
- Context:
- It can (typically) provide tools, libraries, and frameworks for building, testing, and deploying software applications.
- It can (often) target different types of users, including professional developers, non-technical users, and business analysts, based on the platform's complexity and features.
- ...
- It can range from being a Code-Centric Software Development Platform to being a Visual Software Development Platform, depending on its reliance on text-based coding or visual elements.
- It can range from being a Standalone Development Platform to being a Cloud-Based Development Platform, based on whether it is installed locally or accessed through a cloud service.
- It can range from being a Proprietary Software Development Platform to being an Open-Source Development Platform, depending on its licensing and accessibility.
- It can range from being a Single-Language Development Platform to a Multi-Language Development Platform, based on its support for programming languages.
- It can range from being a General-Purpose Development Platform to a Specialized Development Platform, depending on the scope of its application domains.
- ...
- It can support the creation of a Software Engineering System.
- It can include an Integrated Development Environment (IDE) for writing, compiling, and debugging code, or use a visual programming interface for constructing applications without code.
- It can support various programming paradigms such as object-oriented programming, functional programming, and visual programming.
- It can integrate with third-party services and tools, such as version control systems, continuous integration pipelines, and database management systems.
- It can facilitate collaboration by providing real-time editing, shared project workspaces, and issue tracking features.
- It can support multiple application domains, including web development, mobile development, desktop development, and IoT development.
- It can provide deployment and release management tools, enabling developers to easily publish and update applications across different environments.
- It can include security and compliance features to ensure that applications meet industry standards and protect sensitive data.
- It can offer performance monitoring and analytics tools to track application usage and optimize code efficiency.
- ...
- Example(s):
- Visual Software Development Platforms:
- Microsoft Visual Studio, a comprehensive IDE supporting multiple programming languages and platforms.
- Xcode, which specializes in application development for iOS and macOS.
- IntelliJ IDEA, popular for Java development and integrating tools for testing and debugging.
- Low-Code Software Development Platforms:
- OutSystems, which enables rapid application development with minimal coding.
- Mendix, designed for building enterprise applications quickly.
- Appian, focusing on workflow automation and low-code solutions.
- No-Code Software Development Platforms:
- Cloud-Based Development Platforms:
- GitHub Codespaces, which offers cloud-based environments for coding, testing, and collaboration.
- AWS Cloud9, providing a browser-based IDE with direct integration into the AWS ecosystem.
- Google Cloud Platform, which supports cloud-hosted development with AI and machine learning capabilities.
- Game Development Platforms:
- Unity, a versatile engine for creating 2D and 3D games.
- Unreal Engine, known for its advanced graphics and physics capabilities.
- Godot, an open-source engine for multi-platform game development.
- Enterprise Application Development Platforms:
- Salesforce Lightning, which focuses on building CRM and enterprise-grade applications.
- ServiceNow, enabling the development of workflow automation and service management apps.
- Oracle APEX, which specializes in database-centric enterprise applications.
- Frontend Development Platforms:
- Backend Development Platforms:
- Django, a Python-based framework for rapid backend development.
- Ruby on Rails, emphasizing convention over configuration for building web apps.
- Spring, a Java-based framework for developing enterprise-level backend systems.
- Cross-Platform Mobile Development Platforms:
- React Native, enabling the development of native-like mobile apps using JavaScript.
- Flutter, which uses the Dart language to create cross-platform applications.
- Xamarin, leveraging C# and .NET for building mobile apps on iOS and Android.
- IoT Development Platforms:
- Arduino IDE, supporting embedded development for IoT hardware.
- Azure IoT Hub, facilitating cloud connectivity for IoT devices.
- Google Cloud IoT, integrating IoT data with cloud-based analytics.
- ...
- Visual Software Development Platforms:
- Counter-Example(s):
- Design Platforms, which focus on creating design assets and user interfaces but lack software development capabilities.
- Database Management Platforms, which are primarily used for managing and querying databases, rather than full-scale software development.
- See: Integrated Development Environment, Application Development Framework, Software Testing Platform.
References
2024
- 3rd-Party Software Development Platforms
- 3rd-Party Integrated Development Environment (IDE)s
- 3rd-Party Low-Code Development Platforms
- 3rd-Party No-Code Development Platforms
- 3rd-Party Web Application Builders (e.g., Webflow, Wix)
- 3rd-Party Mobile App Builders (e.g., Adalo, Thunkable)
- 3rd-Party Game Development Platforms
- 3rd-Party Enterprise Application Development Platforms
- 3rd-Party Software Development Frameworks
- 3rd-Party Web Application Frameworks
- 3rd-Party Frontend Frameworks (e.g., React, Angular)
- 3rd-Party Backend Frameworks (e.g., Django, Ruby on Rails)
- 3rd-Party Full-stack Frameworks (e.g., Meteor)
- 3rd-Party Mobile Development Frameworks
- 3rd-Party Cross-platform Frameworks (e.g., React Native, Flutter)
- 3rd-Party Native Frameworks (e.g., SwiftUI for iOS, Jetpack Compose for Android)
- 3rd-Party Data Processing Frameworks
- 3rd-Party Machine Learning Frameworks
- 3rd-Party Testing and Automation Frameworks
- 3rd-Party Unit Testing Frameworks (e.g., JUnit, pytest)
- 3rd-Party UI Testing Frameworks (e.g., Selenium, Cypress)
- 3rd-Party IoT Development Frameworks
- 3rd-Party Web Application Frameworks
- 3rd-Party Development Tools and Services
- 3rd-Party Cloud and Infrastructure Platforms
- 3rd-Party DevOps and SRE Tools
- 3rd-Party Specialized Development Environments
2024
- https://thenewstack.io/developer-productivity-in-2024-new-metrics-more-genai/
- NOTE: It discusses the importance of Software Engineering Platforms in enhancing Developer Productivity and Software Workflow Efficiency. The focus is on building robust platforms that support various stages of the Software Development Lifecycle (SDLC) and improve the work life of internal developers.
2022
- (Wikipedia, 2022) ⇒ https://en.wikipedia.org/wiki/software_framework Retrieved:2022-11-1.
- In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products and solutions. Software frameworks may include support programs, compilers, code libraries, toolsets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system.
Frameworks have key distinguishing features that separate them from normal libraries:
- inversion of control: In a framework, unlike in libraries or in standard user applications, the overall program's flow of control is not dictated by the caller, but by the framework. This is usually achieved with the Template Method Pattern.
- default behaviour: This can be provided with the invariant methods of the Template Method Pattern in an abstract class which is provided by the framework.
- extensibility: A user can extend the framework – usually by selective overriding – or programmers can add specialized user code to provide specific functionality. This is usually achieved by a hook method in a subclass that overrides a template method in the superclass.
- non-modifiable framework code: The framework code, in general, is not supposed to be modified, while accepting user-implemented extensions. In other words, users can extend the framework, but cannot modify its code.
- In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products and solutions. Software frameworks may include support programs, compilers, code libraries, toolsets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system.
2013
- http://dropwizard.codahale.com/getting-started/
- Dropwizard straddles the line between being a library and a framework. ...