FAIR and interactive data graphics from a scientific knowledge graph
Contents
mychillo
The following outline is provided as an overview of and topical guide to software development:
Software development – development of a software product, which entails computer programming (process of writing and maintaining the source code), and encompasses a planned and structured process from the conception of the desired software to its final manifestation.[1] Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.[2]
What type of thing is software development?
Software development can be described as all of the following:
Branches of software development
- Software engineering
- Computer programming
- Video game development
- Web development
- Web application development
- Mobile application development
History of software development
Software development participants
- Software developer
- Software engineer
- Consulting software engineer
- Computer programmer
- Software publisher
- Web developer
Software development problems
Software project management
- Software project management – art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, monitored and controlled.
Software development strategies
- Offshore software R&D – provision of software development services by an external supplier positioned in a country that is geographically remote from the client enterprise; a type of offshore outsourcing.
Software development process
- Software development process
- Software release life cycle
- Stages of development
- Release
- Release to manufacturing (RTM)
- General availability release (GA)
- Web release (RTW)
- Technical support
- End-of-life – termination of support for a product
- Software release life cycle
Activities and steps
- Requirements analysis
- Functional specification
- Software architecture
- Software design
- Computer programming
- Software testing
- Software deployment
- Software release
- Product installation
- Product activation
- Deactivation
- Adaptation
- Software update
- Uninstallation
- Product retirement
- Software maintenance
Software development methodologies
- Aspect-oriented software development
- Cleanroom Software Engineering
- Iterative and incremental development
- Incremental funding methodology
- Rapid application development
- IBM Rational Unified Process
- Spiral model
- Waterfall model
- Extreme programming
- Lean software development
- Scrum
- V-Model
- Test-driven development (TDD)
Agile software development
- Cross-functional team
- Extreme programming
- Iterative and incremental development
- Pair programming
- Self-organization
- Timeboxing
Supporting disciplines
- Computer programming
- Software documentation
- Software engineering
- Software quality assurance (SQA)
- User experience design
Software development tools
Education relevant to software development
- Bachelor's degree in computer science – type of bachelor's degree awarded for study of computer science, emphasizing the mathematical and theoretical foundations of computing, rather than teaching specific technologies that may quickly become outdated. Such a degree is a common initial bachelor's degree for those entering the field of software development.
Software development organizations
While the information technology (IT) industry undergoes changes faster than any other field, most technical experts agree that one must have a community to consult, learn from, or share experiences with. Here is a list of well-known software development organizations.
- Association of Computer Engineers and Technicians (ACE – ACET) professional standards within the IT industry.
- Association for Computing Machinery (ACM) is one of the oldest and largest scientific communities that deal with computing and technology. It covers a wide range of topics including e-commerce, bioinformatics, and networking.
- Association of Independent Information Professionals (AIIP) is an association for information professionals working independently or within the related industries.
- Association of Information Technology Professionals (AITP) is a worldwide community that focuses on information technology education. It helps to connect experts from different IT fields.
- ASIS International (ASIS) is the leading community that connects security professionals from all over the world.
- Association of Shareware Professionals (ASP) connects developers and tech specialists who work with services and application on "try-before-you-buy" basis.
- Association for Women in Computing (AWC) organizes educational and networking events for female tech specialists in order to increase the share of women in the industry.
- Black Data Processing Associates (BDPA) gathers a community of African Americans working in information technology for both educational and professional growth.
- Computer & Communications Industry Association (CCIA) advocates for open markets, systems and competition.
- Computing Technology Industry Association (CompTIA) provides certifications for the IT industry, as well as educates individuals and group on changes and tendencies for the industry.
- Computer Professionals for Social Responsibility (CPSR) an organization concerned with technology's impact on society. The group provides the assessment of the tech development and its impact on various fields of life.
- Data & Analysis Center for Software (DACS) collects and serves the information about various entities and software they produce, as well as its trustworthiness.
- EDUCAUSE is a non-profit organization that states its mission as ‘advance higher education through information technology’.
- European Computer Manufacturers Association (ECMA) is a European organization that facilitates standards and information and communication systems.
- International Association of Engineers (IAENG) is an international association that used to be a private network. Nowadays, hosts annual World Congress on Engineering for R&D and engineers.
- Institute of Electrical and Electronics Engineers (IEEE) Computer Society provides educational services to its members worldwide. This society has one of the biggest networks and offers numerous perks to its members.
- Information Systems Security Association (ISSA) is a not-for-profit, that encourages the use of practices to protect the confidentiality and integrity of information resources.
- Network Professional Association (NPA) encourages its members to adhere to the code of ethics, follows the latest best practices and indulge in continuous self-education.
- Technology Services Industry Association (TSIA) is a professional association that offers research and advisory services.
- Society for Technical Communication (STC) offers support and knowledge sharing to specialists involved in technical communication and related fields.
- User Experience Professionals Association (UXPA) is an organization that shares knowledge about UX and helps its members to grow, develop and improve their products.
- Women in Technology (WIT) advocates the education of female representatives in the industry all the way from elementary training to advanced programs.
Software development publications
- SD Times
- The Pragmatic Programmer
- Design Patterns: Elements of Reusable Object-Oriented Software
- Introduction to Algorithms
- Structure and Interpretation of Computer Programs
Persons influential in software development
Language creators, designers
- Kathleen Booth (Assembly)
- Bjarne Stroustrup (C++)
- Brendan Eich (JavaScript)
- James Gosling (Java)
- Guido van Rossum (Python)
Influencers of software design
See also
- Product activation
- Software blueprint
- Software design
- Software development effort estimation
- Outline of web design and web development
- Outline of software engineering
References
- ^ "Application Development (AppDev) Defined and Explained".
- ^ DRM Associates (2002). "New Product Development Glossary". Retrieved 2006-10-29.