Outline of software development
   HOME

TheInfoList



OR:

The following
outline Outline or outlining may refer to: * Outline (list), a document summary, in hierarchical list format * Code folding, a method of hiding or collapsing code or text to see content in outline form * Outline drawing, a sketch depicting the outer edge ...
is provided as an overview of and topical guide to software development:
Software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
is the development of a
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
product, which entails
computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as ana ...
(process of writing and maintaining the
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
), and encompasses a planned and structured process from the conception of the desired software to its final manifestation. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.


What ''type'' of thing is software development?

Software development can be described as all of the following: *
Research and development Research and development (R&D or R+D), known in Europe as research and technological development (RTD), is the set of innovative activities undertaken by corporations or governments in developing new services or products, and improving existi ...
*
Vocation A vocation () is an occupation to which a person is especially drawn or for which they are suited, trained or qualified. People can be given information about a new occupation through student orientation. Though now often used in non-religious co ...
*
Profession A profession is a field of work that has been successfully ''professionalized''. It can be defined as a disciplined group of individuals, '' professionals'', who adhere to ethical standards and who hold themselves out as, and are accepted by ...


Branches of software development

*
Software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
*
Computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as ana ...
*
Video game development Video game development (or gamedev) is the process of developing a video game. The effort is undertaken by a developer, ranging from a single person to an international team dispersed across the globe. Development of traditional commercial PC a ...
*
Web development Web development is the work involved in developing a website for the Internet (World Wide Web) or an intranet (a private network). Web development can range from developing a simple single static page of plain text to complex web applications ...
*
Web application development A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection. History In earlier computing models like client-serve ...
*
Mobile application development Mobile app development is the act or process by which a mobile app is developed for mobile devices, such as personal digital assistants, enterprise digital assistants or mobile phones. These software applications are designed to run on mobile ...


History of software development

*
History of operating systems Computer operating systems (OSes) provide a set of functions needed and used by most application programs on a computer, and the links needed to control and synchronize computer hardware. On the first computers, with no operating system, every p ...
*
History of programming languages The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure ...


Software development participants

*
Software developer Software development is the process of conceiving, specifying, designing, Computer programming, programming, software documentation, documenting, software testing, testing, and Software bugs, bug fixing involved in creating and maintaining applic ...
*
Software engineer Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ''p ...
* Consulting software engineer *
Computer programmer A computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates computer programs — often for larger computer software. A programmer is someone who writes/creates ...
*
Software publisher A software publisher is a publishing company in the software industry between the developer and the distributor. In some companies, two or all three of these roles may be combined (and indeed, may reside in a single person, especially in the case o ...
*
Web developer A web developer is a programmer who develops World Wide Web applications using a client–server model. The applications typically use HTML, CSS, and JavaScript in the client, and any general-purpose programming language in the server. is used f ...


Software development problems

*
Shovelware Shovelware is a term for individual video games or software bundles known more for the quantity of what is included than for the quality or usefulness. The metaphor implies that the creators showed little care for the quality of the original soft ...
*
Software bloat Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory, disk space or processing power, or have higher hardware requirements than the previous version, while making only dubious use ...
*
Software bug A software bug is an error, flaw or fault in the design, development, or operation of computer software that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The process of finding and correcting bugs i ...


Software project management

*
Software project management Software project management is an art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, implemented, monitored and controlled. History In the 1970s and 1 ...
– 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 configuration management In software engineering, software configuration management (SCM or S/W CM) is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management. SCM practices include revision ...


Software development strategies

*
Offshore software R&D In software engineering, offshore custom software development consists in offshoring the software development process in a country where production costs are lower, thus decreasing budget spending. Background Early days Since the 1960s and t ...
– 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 Outsourcing is an agreement in which one company hires another company to be responsible for a planned or existing activity which otherwise is or could be carried out internally, i.e. in-house, and sometimes involves transferring employees and ...
.


Software development process

*
Software development process In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software devel ...
**
Software release life cycle A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
*** Stages of development ****
Pre-alpha A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
****
Alpha release A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
****
Beta release A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
*****
Closed beta A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
*****
Open beta A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
****
Release candidate A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
*** Release ****
Release to manufacturing A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
(RTM) ****
General availability release A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
(GA) **** Web release (RTW) ***
Technical support Technical support (abbreviated as tech support) is a call centre type customer service provided by companies to advise and assist registered users with issues concerning their technical products. Traditionally done on the phone, technical suppor ...
**** End-of-life – termination of support for a product


Activities and steps

*
Requirements analysis In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the ...
**
Software development effort estimation In software development, effort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input. Effort ...
*
Functional specification A functional specification (also, ''functional spec'', ''specs'', ''functional specifications document (FSD)'', ''functional requirements specification'') in systems engineering and software development is a document that specifies the functio ...
*
Software architecture Software architecture is the fundamental structure of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. ...
*
Software design Software design is the process by which an agent creates a specification of a software artifact intended to accomplish goals, using a set of primitive components and subject to constraints. Software design may refer to either "all the activity ...
*
Computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as ana ...
*
Software testing Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
*
Software deployment Software deployment is all of the activities that make a software system available for use. The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur on the S ...
**
Software release A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
** Product installation **
Product activation Product activation is a license validation procedure required by some proprietary software programs. Product activation prevents unlimited free use of copied or replicated software. Unactivated software refuses to fully function until it ''determin ...
** Deactivation **
Adaptation In biology, adaptation has three related meanings. Firstly, it is the dynamic evolutionary process of natural selection that fits organisms to their environment, enhancing their evolutionary fitness. Secondly, it is a state reached by the po ...
**
Software update A patch is a set of changes to a computer program or its supporting data designed to update, fix, or improve it. This includes fixing security vulnerabilities and other bugs, with such patches usually being called bugfixes or bug fixes. Patches ...
** Uninstallation ***
Uninstaller An uninstaller, also called a deinstaller, is a variety of utility software designed to remove other software or parts of it from a computer. It is the opposite of an installer. Uninstallers are useful primarily when software components are install ...
** Product retirement *
Software maintenance Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes. A common perception of maintenance is that it merely involves fixing defects. H ...


Software development methodologies

*
Aspect-oriented software development In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding behavior to existing code (an advice) ''without'' modifying t ...
*
Cleanroom Software Engineering The cleanroom software engineering process is a software development process intended to produce software with a certifiable level of reliability. The cleanroom process was originally developed by Harlan Mills and several of his colleagues in ...
*
Iterative and incremental development Iterative and incremental development is any combination of both iterative design or iterative method and incremental build model for development. Usage of the term began in software development, with a long-standing combination of the two terms ' ...
*
Incremental funding methodology The Incremental Funding Methodology (IFM) is an ROI-informed approach to software development in which software is developed and delivered in carefully prioritized chunks of customer valued functionality. These chunks are known as Minimum Marketabl ...
*
Rapid application development Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
*
IBM Rational Unified Process The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable proce ...
*
Spiral model The spiral model is a risk-driven software development process model. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolut ...
*
Waterfall model The waterfall model is a breakdown of project activities into linear sequential phases, meaning they are passed down onto each other, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks. ...
*
Extreme programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, PD ...
*
Lean software development Lean software development is a translation of lean manufacturing principles and practices to the software development domain. Adapted from the Toyota Production System, it is emerging with the support of a pro-lean subculture within the agil ...
*
Scrum Scrum may refer to: Sport * Scrum (rugby), a method of restarting play in rugby union and rugby league ** Scrum (rugby union), scrum in rugby union * Scrum, an offensive melee formation in Japanese game Bo-taoshi Media and popular culture * M ...
*
V-Model The V-model is a graphical representation of a systems development lifecycle. It is used to produce rigorous development lifecycle models and project management models. The V-model falls into three broad categories, the German ''V-Modell'', a g ...
*
Test-driven development Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against al ...
(TDD)


Agile software development

*
Cross-functional team A cross-functional team, also known as a multidisciplinary team or interdisciplinary team, is a group of people with different functional expertise working toward a common goal. It may include people from finance, marketing, operations, and human ...
*
Extreme programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, PD ...
*
Iterative and incremental development Iterative and incremental development is any combination of both iterative design or iterative method and incremental build model for development. Usage of the term began in software development, with a long-standing combination of the two terms ' ...
*
Pair programming Pair programming is an software development technique in which two programmers work together at one workstation. One, the ''driver'', writes code while the other, the ''observer'' or ''navigator'', reviews each line of code as it is typed in. The ...
*
Self-organization Self-organization, also called spontaneous order in the social sciences, is a process where some form of overall order arises from local interactions between parts of an initially disordered system. The process can be spontaneous when suffi ...
*
Timeboxing In agile principles, timeboxing allocates a fixed and maximum unit of time to an activity, called a timebox, within which planned activity takes place. It is used by agile principles-based project management approaches and for personal time man ...


Supporting disciplines

*
Computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as ana ...
*
Software documentation Software documentation is written text or illustration that accompanies computer software or is embedded in the source code. The documentation either explains how the software operates or how to use it, and may mean different things to people in ...
*
Software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
*
Software quality assurance Software quality assurance (SQA) is a means and practice of monitoring all software engineering processes, methods, and work products to ensure compliance against defined standards. It may include ensuring conformance to standards or models, suc ...
(SQA) *
User experience design User experience design (UX design, UXD, UED, or XD) is the process of defining the experience a user would go through when interacting with a digital product or website. Design decisions in UX design are often driven by research, data analysis, an ...


Software development tools

*
Programming tool A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can b ...
**
Compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
**
Debugger A debugger or debugging tool is a computer program used to software testing, test and debugging, debug other programs (the "target" program). The main use of a debugger is to run the target program under controlled conditions that permit the pr ...
** Performance analysis **
Graphical user interface builder A graphical user interface builder (or GUI builder), also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange graphical control elements (often calle ...
**
Integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...


Education relevant to software development

*
Bachelor's degree A bachelor's degree (from Middle Latin ''baccalaureus'') or baccalaureate (from Modern Latin ''baccalaureatus'') is an undergraduate academic degree awarded by colleges and universities upon completion of a course of study lasting three to six ...
in
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
– 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 Information technology (IT) is the use of computers to create, process, store, retrieve, and exchange all kinds of data . and information. IT forms part of information and communications technology (ICT). An information technology system (I ...
(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 The Association for Computing Machinery (ACM) is a US-based international learned society for computing. It was founded in 1947 and is the world's largest scientific and educational computing society. The ACM is a non-profit professional member ...
(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 The Association of Independent Information Professionals (AIIP) is an international professional association for information professionals specializing in primary and secondary research, marketing and communications, information management and ...
(AIIP) is an association for information professionals working independently or within the related industries. *
Association of Information Technology Professionals The Association of Information Technology Professionals (AITP) is a professional association that focuses on information technology education for business professionals. The group is a non-profit US-oriented group, but its activities are performed ...
(AITP) is a worldwide community that focuses on information technology education. It helps to connect experts from different IT fields. *
ASIS International ASIS International, headquartered in Alexandria, Virginia Alexandria is an independent city (United States), independent city in the northern region of the Commonwealth (U.S. state), Commonwealth of Virginia, United States. It lies on the we ...
(ASIS) is the leading community that connects security professionals from all over the world. *
Association of Shareware Professionals The Association of Software Professionals (ASP), formerly Association of Shareware Professionals, was a professional association for authors and developers of freeware, commercial, and shareware computer software. It was formed in April 1987, and ...
(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 The Computer and Communications Industry Association (CCIA) is an international non-profit advocacy organization based in Washington, DC, United States which represents the information and communications technology industries. According to their ...
(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 Educause is a nonprofit association in the United States whose mission is "to advance higher education through the use of information technology". Membership is open to institutions of higher education, corporations serving the higher education in ...
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 The International Association of Engineers (IAENG) is a non-profit international association for engineers and computer scientists. IAENG was founded by a group of engineers and computer scientists in 1968, originally as a private club network f ...
(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 The Institute of Electrical and Electronics Engineers (IEEE) is a 501(c)(3) professional association for electronic engineering and electrical engineering (and associated disciplines) with its corporate office in New York City and its operation ...
(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 Information Systems Security Association (ISSA) is a not-for-profit, international professional organization of information security professionals and practitioners. It was founded in 1984, after work on its establishment started in 1982. ISSA pro ...
(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 The Society for Technical Communication (STC) is a professional association dedicated to the advancement of the theory and practice of technical communication with more than 4,500 members in the United States, Canada, and the world. The society pu ...
(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


Persons influential in software development


Language creators, designers

*
Kathleen Booth Kathleen Hylda Valerie Booth ( Britten, 9 July 1922 – 29 September 2022) was a British computer scientist and mathematician who wrote the first assembly language and designed the assembler and autocode for the first computer systems at Birkbe ...
(
Assembly Assembly may refer to: Organisations and meetings * Deliberative assembly, a gathering of members who use parliamentary procedure for making decisions * General assembly, an official meeting of the members of an organization or of their representa ...
) *
Bjarne Stroustrup Bjarne Stroustrup (; ; born 30 December 1950) is a Danish computer scientist, most notable for the invention and development of the C++ programming language. As of July 2022, Stroustrup is a professor of Computer Science at Columbia University. ...
(
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
) *
Brendan Eich Brendan Eich (; born July 4, 1961) is an American computer programmer and technology executive. He created the JavaScript programming language and co-founded the Mozilla project, the Mozilla Foundation, and the Mozilla Corporation. He served as ...
(
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
) *
James Gosling James Gosling (born May 19, 1955) is a Canadian computer scientist, best known as the founder and lead designer behind the Java programming language. Gosling was elected a member of the National Academy of Engineering in 2004 for the conceptio ...
(
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
) *
Guido van Rossum Guido van Rossum (; born 31 January 1956) is a Dutch programmer best known as the creator of the Python programming language, for which he was the " benevolent dictator for life" (BDFL) until he stepped down from the position on 12 July 20 ...
(
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
)


Influencers of software design

*
Bill Joy William Nelson Joy (born November 8, 1954) is an American computer engineer and venture capitalist. He co-founded Sun Microsystems in 1982 along with Scott McNealy, Vinod Khosla, and Andy Bechtolsheim, and served as Chief Scientist and CTO at ...
* Martin Fowler * "Uncle Bob" Martin


See also

*
Product activation Product activation is a license validation procedure required by some proprietary software programs. Product activation prevents unlimited free use of copied or replicated software. Unactivated software refuses to fully function until it ''determin ...
*
Software blueprint {{Short description, Final product of a software blueprinting process A software blueprint is the final product of a software blueprinting process. Its name derives from an analogy with the term blueprint as used within the traditional construction ...
*
Software design Software design is the process by which an agent creates a specification of a software artifact intended to accomplish goals, using a set of primitive components and subject to constraints. Software design may refer to either "all the activity ...
*
Software development effort estimation In software development, effort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input. Effort ...
*
Outline of web design and web development The following outline is provided as an overview of and topical guide to web design and web development, two very related fields: Web design encompasses many different skills and disciplines in the production and maintenance of websites. The diff ...
*
Outline of software engineering The following outline is provided as an overview of and topical guide to software engineering: Software engineering – application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; ...


References

{{Outline footer Software development
Software Development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
Software Development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...