Software is the intangible side of computers. It includes programs and data.
Software development is the process of creating and deploying software.
This post covers some aspects of software development. It is somehow an index to other posts in the blog.
Software Engineering
Software engineering is the is the branch of computer science that deals with the design, development, testing, and maintenance of software applications. Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users.
Joint Requirement Planning (JRP) uses different roles in the team. One of them is the moderator.
Joint Application Design (JAD).
Process Modeling
Process modeling is one aspect of software engineering.
Process modeling is performed through the use of process modeling languages. You can read this post about process modeling languages.
There are tools to aid and provide visuals for process modeling. You can read this post about process modeling software.
Software Design Patterns
There are software design patterns that can be used as templates for solutions to common problems found in software development. You can read more about this on this post.
Software Project Management
You can read more about software project management on this post.
Software Development Models
You can read a post about software development models, also known as software development lifecycles (SDLCs), such as waterfall and agile methodologies.
Programming Languages
Software is created by using programming languages.
You can read more about programming languages on this post.
Software Implementation
Software implementation involves actually coding, programming or writing the source code.
Software Implementation with AI
Software implementation with AI make use of AI software engineer.
GitHub Copilot is an AI that helps you to develop.
Devin is self-named “the first AI Software engineer cognition”.
Devika is a FOSS version that aspires to compete with Devin.
OpenDevin is another FOSS version that aspire to compete with Devin.
Software Tracking Tools
You can find a list of software tracking tools or applications on this post.
Programming Environment
A programming environment needs to be set to perform software development. It is a set of tools that enables software development and collaborative work.
You can find more information about programming environments on this post.
You can read about how to set a software development environment on this post.
Software Testing
Software must be tested before it is released.
Software Testing is part of IT quality assurance (QA). You can read more about IT quality assurance and find a list of software testing tools on this post.
Software Deployment
Software deployment involves releasing software in a given environment, for instance test or production environment.
Software Maintenance
Software must be maintained after it is released.
Types of maintenance:
- Perfective
- Adaptative
- Corrective
- Preventive
Perfective software maintenance focuses on features that improve the user experience through functional enhancements.
Adaptive software maintenance is about changing software in response to changes in its environment.
Corrective software maintenance is unsurprisingly about correcting software defects, errors and faults.
Preventive software maintenance is about software changes and adaptations that reduce the risk of deterioration and outdating.
Software Development Documentation
Standard ISO/IEC 26514 is about software development documentation.
DevOps
You can find more information about DevOps on this post.
Web Development
Web Development is a subset of software development that is focused on developing websites.
You can find more information about this on this post.
Software Development Security
You can read about software development security on this post.