What is software development?

 Software development refers to a set of computer science activities dedicated to the process of creating, designing, deploying, and supporting software.

The software itself is the set of instructions or programs that tell a computer what to do. It is independent of hardware and makes computers programmable. There are three basic types:

System software to provide core functions such as operating systems, disk management, utilities, hardware management, and other operational necessities.

Programming software gives programmers tools such as text editors, compilers, linkers, debuggers, and other tools to create code.

Application software (applications or apps) to help users perform tasks. Office productivity suites, data management software, media players, and security programs are examples. Applications also refers to web and mobile applications like those used to shop on Amazon.com, socialize with Facebook or post pictures on Instagram.

https://www.visualchemy.gallery/forum/viewtopic.php?id=119817

https://www.visualchemy.gallery/forum/viewtopic.php?id=119817&p=2

https://www.visualchemy.gallery/forum/viewtopic.php?id=1541130

https://forum.papbio.org/showthread.php?tid=5416

https://the-awakening.de/showthread.php?tid=16

http://forum.quillmane.com/viewtopic.php?t=132

http://forum.quillmane.com/viewtopic.php?t=132&sid=62e2aa4289080a9d01c3344339c58a57&start=10

http://forum.quillmane.com/viewtopic.php?t=279

http://forum.quillmane.com/viewtopic.php?t=279&start=10

http://forum.quillmane.com/viewtopic.php?t=239

http://forum.quillmane.com/viewtopic.php?t=239&start=10

http://forum.quillmane.com/viewtopic.php?t=200

Steps in the software development process

Developing software typically involves the following steps:


  1. Selecting a methodology to establish a framework in which the steps of software development are applied. It describes an overall work process or roadmap for the project. Methodologies can include Agile development, DevOps, Rapid Application Development (RAD), Scaled Agile Framework (SAFe), Waterfall and others. (See the glossary.)
  2. Gathering requirements to understand and document what is required by users and other stakeholders.
  3. Choosing or building architecture as the underlying structure within which the software will operate.
  4. Developing a design around solutions to the problems presented by requirements, often involving process models and storyboards.
  5. Building a model with a modeling tool that uses a modeling language like SysML or UML to conduct early validation, prototyping and simulation of the design.
  6. Constructing code in the appropriate programming language. Involves peer and team review to eliminate problems early and produce quality software faster.
  7. Testing with pre-planned scenarios as part of software design and coding — and conducting performance testing to simulate load testing on the application.
  8. Managing configuration and defects to understand all the software artifacts (requirements, design, code, test) and build distinct versions of the software. Establish quality assurance priorities and release criteria to address and track defects.
  9. Deploying the software for use and responding to and resolving user problems.
  10. Migrating data to the new or updated software from existing applications or data sources if necessary.
  11. Managing and measuring the project to maintain quality and delivery over the application lifecycle, and to evaluate the development process with models such as the Capability Maturity Model (CMM).


The steps of the software development process fit into application lifecycle management (ALM). The IBM Engineering Management solution is a superset of ALM that enables the management of parallel mechanical, electrical and software development.


https://forum.berlcoin.fr/viewtopic.php?t=70

https://forum.berlcoin.fr/viewtopic.php?t=70&start=10

https://forum.berlcoin.fr/viewtopic.php?t=2231

https://forum.berlcoin.fr/viewtopic.php?t=2231&start=10

https://forum.berlcoin.fr/viewtopic.php?t=907

https://forum.berlcoin.fr/viewtopic.php?t=907&start=10

https://forum.berlcoin.fr/viewtopic.php?t=899

http://xavierdeschamps.free.fr/Escalade/Forum_escalade/viewtopic.php?id=31

http://xavierdeschamps.free.fr/Escalade/Forum_escalade/viewtopic.php?id=49

http://www.yypf.com/showthread.php?tid=1322

https://forum.papbio.org/showthread.php?tid=4691

https://forum.metalheartradio.com/thread-825.html

https://gasdefence.ru/forum/viewtopic.php?p=107762

The steps of the software development process fit into application lifecycle management (ALM). The IBM Engineering Management solution is a superset of ALM that enables the management of parallel mechanical, electrical and software development.


Requirements analysis and specification


  • Design and development
  • Testing
  • Deployment
  • Maintenance and support


Software development process steps can be grouped into the phases of the lifecycle, but the importance of the lifecycle is that it recycles to enable continuous improvement. For example, user issues that surface in the maintenance and support phase can become requirements at the beginning of the next cycle.

https://gasdefence.ru/forum/viewtopic.php?t=105584&postdays=0&postorder=asc&start=15&sid=4138a2b19aa3f326ff10876968ca521d

https://gasdefence.ru/forum/viewtopic.php?p=107570

https://gasdefence.ru/forum/viewtopic.php?t=105393&postdays=0&postorder=asc&start=15

http://wpw-community.de/viewtopic.php?f=3&t=375

http://wpw-community.de/viewtopic.php?f=3&t=375&sid=be3fdca36fecaaa67a01f26e600ba8eb&start=10

http://wpw-community.de/viewtopic.php?f=3&t=380

http://wpw-community.de/viewtopic.php?f=3&t=380&start=10

https://wpw-community.de/viewtopic.php?t=66

http://wpw-community.de/viewtopic.php?f=3&t=334

http://yonghengro.gain.tw/viewthread.php?tid=60708&extra=

http://yonghengro.gain.tw/viewthread.php?tid=60481&extra=

http://yonghengro.gain.tw/viewthread.php?tid=237536&extra=


Key features of effective software development

Using software development to differentiate brands and gain competitive advantage requires proficiency with the techniques and technologies that can accelerate software deployment, quality and efficacy.

  1. Artificial intelligence (AI): AI enables software to emulate human decision-making and learning. Neural networks, machine learning, natural language processing and cognitive capabilities present developers and businesses with the opportunity to offer products and services that disrupt marketplaces and leap ahead of the competition. IBM Watson offers developers a way to connect with and use artificial intelligence services as part of their applications through application programming interfaces or APIs. You can also use IBM Watson to improve your product requirements by checking for ambiguity, unclear actors, compound or negative requirements, missing units or tolerances, incomplete requirements, and unspecific quantities.
  2. Cloud-native development: Cloud-native development is a way of building applications to exploit cloud environments. A cloud-native application consists of discrete, reusable components known as microservices that are designed to integrate into any cloud environment. These microservices act as building blocks and are often packaged in containers. Because of this architecture, cloud-native applications can use cloud environments to improve application performance, flexibility, and extensibility.
  3. Cloud-based development: Just as IT organizations look to the cloud to improve resource management and cut costs, so do software development organizations. In this way, the cloud can be used as a fast, flexible, and cost-efficient integrated development environment (IDE) or development Platform as a Service (PaaS). Cloud-based development environments can support coding, design, integration, testing, and other development functions. They can also offer access to APIs, microservices, DevOps, and other development tools, services, and expertise. 
  4. Blockchain: Blockchain is a secure, digitally linked ledger that eliminates cost and vulnerability introduced by parties like banks, regulatory bodies, and other intermediaries. It is transforming businesses by freeing capital, accelerating processes, lowering transaction costs, and more.  Blockchain presents a tremendous opportunity for software development. Developers are working with distributed ledgers and open-source Hyperledger (link resides outside of ibm.com) technology to change how businesses operate.
  5. Low code: Forrester defines low code as: “Products and/or cloud services for application development that employ visual, declarative techniques instead of programming and are available to customers at low- or no-cost in money and training ...” 4 In short, it’s a development practice that reduces the need for coding and enables non-coders or citizen developers to build or help build applications quickly and at a lower cost.
  6. Analytics: Annual demand for data scientists, data developers, and data engineers will reach nearly 700,000 openings by 2020. The demand signifies how critical it is for companies to gain insight and value from the explosion of data. Accordingly, software developers are integrating advanced analytics capabilities into their applications. Cloud-based services and APIs make it simpler to guide data exploration, automate predictive analytics and create dashboards that deliver new insights and improve decision-making.
  7. Model-Based Systems Engineering (MBSE): In MBSE, software modeling languages are used to perform early prototyping, simulation, and analysis of software designs for early validation. Building designs in MBSE helps you to analyze and elaborate project requirements and move rapidly from design to implementation.  
  8. Mobile: A key capability for software developers is creating mobile apps with deep connections to data that enrich and elevates user experiences. Forrester has found that “deeply integrating digital/mobile customer data has a strong effect on how customers interact with brands.”

A quick glossary


Agile development breaks requirements into consumable functions and delivers rapidly on those functions through incremental development. A feedback loop helps find and fix defects as functionality continues to deploy.

Capability Maturity Model (CMM) assesses the proficiency of software development processes. It tracks progress from ad hoc actions to defined steps to measured results and optimized processes.
DevOps, a combination of development and operations, is an agile-based approach that brings software development and IT operations together in the design, development, deployment and support of software.

Rapid application development (RAD) is a non-linear approach that condenses design and code construction into one interconnected step.

Scaled Agile Framework (SAFe) provides a way to scale agile methodology to a larger software development team or organization.

Waterfall, often considered the traditional software development methodology, is a set of cascading linear steps from planning and requirements gathering through deployment and maintenance.

Comments

Popular posts from this blog

Know about how you can activate USA Network on different devices

PC games might get console-style quick resume

How to download, Install, and Activate TCM