Software Development Platform
(Redirected from software-based platform)
Jump to navigation
Jump to search
A Software Development Platform is a software platform that facilitates software development (of software applications) and provides a comprehensive environment to support various software development stages.
- Context:
- It can (typically) be used by Software Engineers performing software engineering tasks, such as: software deployment, Resource Management, Performance Monitoring, and Security Compliance.
- It can (typically) be a Custom Software Development System.
- It can (often) use Software Tools, Software Libraries, Software Frameworks, and/or Software Solution Platforms.
- It can (often) include tools for Version Control, Continuous Integration, Continuous Deployment, Automated Testing, and Project Management.
- It can be managed by a Software Development Platform Team.
- It can range from being a Front-End Development System to being a Back-End Development System (such as a Data Processing Development System).
- It can range from being a No-Code Development System to being a Low-Code Development System.
- It can support multiple Software Development Lifecycle (SDLC) models, such as Agile Software Development, Waterfall Model, or DevOps.
- It can aim at enhancing Developer Productivity and Software Workflow Efficiency.
- It can offer Customizable Workflows to match the specific processes and methodologies of different development teams.
- It can integrate with various Third-Party Tools and Third-Party Services to extend its capabilities.
- It can include a Software Testing Framework System.
- …
- Example(s):
- PlayStation's SD Platform.
- Medable's SD Platform.
- Salesforce's SD Platform.
- Netflix's SD Platform, based on Spinnaker, Chaos Monkey, Titus Platform, and an Operate What You Build Model.
- Google's Software Engineering Platform, based on Google Cloud Platform (GCP), Bazel, and Kubernetes.
- LegalOn's Software Engineering Platform.
- …
- Counter-Example(s):
- a Storage Framework System.
- a Simple Text Editor used for coding without any integrated development features.
- a Standalone Software Tool that does not interact or integrate with other tools in the software development process.
- …
- See: Software Framework, Operating System, Application Programming Interface, Software Component, Inversion of Control, ML Development Platform, Internal Developer Platform, Automated Software Development Process, Software Engineering Best Practices, Software Quality Assurance.
References
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. ...