All Topics  
Software development process

 

   Email Print
   Bookmark   Link






 

Software development process



 
 
A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle
Software Lifecycle Processes

Software lifecycle processes are methods and standards for improving and mastering development processes, supporting processes and management processes throughout the software lifecycle....
 and software process. There are several models
Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include Software_Lifecycle_Processes and software process....
 for such processes, each describing approaches to a variety of tasks or activities
Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include Software_Lifecycle_Processes and software process....
 that take place during the process.
rgely growing body of software development
Software development

Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products....
 organizations implement process methodologies. Many of them are in the defense industry
Defense industry

The defense industry, also called the military industry, comprises government and commerce industry involved in research, development, production, and service of military equipment and facilities....
, which in the U.S.






Discussion
Ask a question about 'Software development process'
Start a new discussion about 'Software development process'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle
Software Lifecycle Processes

Software lifecycle processes are methods and standards for improving and mastering development processes, supporting processes and management processes throughout the software lifecycle....
 and software process. There are several models
Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include Software_Lifecycle_Processes and software process....
 for such processes, each describing approaches to a variety of tasks or activities
Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include Software_Lifecycle_Processes and software process....
 that take place during the process.

Overview

A largely growing body of software development
Software development

Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products....
 organizations implement process methodologies. Many of them are in the defense industry
Defense industry

The defense industry, also called the military industry, comprises government and commerce industry involved in research, development, production, and service of military equipment and facilities....
, which in the U.S. requires a rating based on 'process models' to obtain contracts.

The international standard for describing the method of selecting, implementing and monitoring the life cycle for software is ISO 12207
ISO 12207

ISO 12207 is an International Organization for Standardization standard for Software Lifecycle Processes. It aims to be 'the' standard that defines all the tasks required for developing and maintaining software....
.

A decades-long goal has been to find repeatable, predictable processes that improve productivity and quality. Some try to systematize or formalize the seemingly unruly task of writing software. Others apply project management techniques to writing software. Without project management, software projects can easily be delivered late or over budget. With large numbers of software projects not meeting their expectations in terms of functionality, cost, or delivery schedule, effective project management appears to be lacking.

Organizations may create a Software Engineering Process Group (SEPG), which is the focal point for process improvement. Composed of line practitioners who have varied skills, the group is at the center of the collaborative effort of everyone in the organization who is involved with software engineering process improvement.

Software development activities

Waterfall Model

Requirements analysis

The most important task in creating a software product is extracting the requirements
Requirement

In engineering, a requirement is a singular documented need of what a particular product or service should be or do. It is most commonly used in a formal sense in systems engineering or software engineering....
 or requirements analysis
Requirements analysis

Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various Stakeholder , such as beneficiaries or users....
. Customers typically have an abstract idea of what they want as an end result, but not what software should do. Incomplete, ambiguous, or even contradictory requirements are recognized by skilled and experienced software engineers at this point. Frequently demonstrating live code may help reduce the risk that the requirements are incorrect.

Once the general requirements are gleaned from the client, an analysis of the scope of the development should be determined and clearly stated. This is often called a scope document. Certain functionality may be out of scope of the project as a function of cost or as a result of unclear requirements at the start of development. If the development is done externally, this document can be considered a legal document so that if there are ever disputes, any ambiguity of what was promised to the client can be clarified.

Domain Analysis
Domain analysis

In software engineering, domain analysis, or product line analysis, is the process of analyzing related software systems in a Application domain to find their common and variable parts....
 is often the first step in attempting to design a new piece of software, whether it be an addition to an existing software, a new application, a new subsystem or a whole new system. Assuming that the developers (including the analysts
Business analyst

The term Business Analyst is used to describe a person who practices the discipline of business analysis. A business analyst or "BA" is responsible for analyzing the business needs of clients to help identify business problems and propose solutions....
) are not sufficiently knowledgeable in the subject area of the new software, the first task is to investigate the so-called "domain" of the software. The more knowledgeable they are about the domain already, the less work required. Another objective of this work is to make the analysts, who will later try to elicit and gather the requirements from the area experts, speak with them in the domain's own terminology, facilitating a better understanding of what is being said by these experts. If the analyst does not use the proper terminology it is likely that they will not be taken seriously, thus this phase is an important prelude to extracting and gathering the requirements. If an analyst hasn't done the appropriate work confusion may ensue: "I know you believe you understood what you think I said, but I am not sure you realize what you heard is not what I meant."

Specification

Specification is the task of precisely describing the software to be written, possibly in a rigorous way. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. Specifications are most important for external interfaces that must remain stable. A good way to determine whether the specifications are sufficiently precise is to have a third party review the documents making sure that the requirements and Use Cases are logically sound.

Architecture

The architecture of a software system or software architecture
Software architecture

The software architecture of a program or computing system is the structure or structures of the software system, which comprise software components, the externally visible properties of those components, and the relationships between them....
 refers to an abstract representation of that system. Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed. The architecture step also addresses interfaces between the software system and other software products, as well as the underlying hardware or the host operating system.

Design, implementation and testing

Implementation
Implementation

Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, Standardization, algorithm, or policy....
 is the part of the process where software engineers
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
 actually program
Computer programming

Computer programming is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. This source code is written in a programming language....
 the code for the project.

Software testing
Software testing

Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test , with respect to the context in which it is intended to operate....
 is an integral and important part of the software development process. This part of the process ensures that bugs
Software bug

A software bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it from behaving as intended . Most bugs arise from mistakes and errors made by people in either a program's source code or its software architecture, and a few are caused by compilers producing incorrect code....
 are recognized as early as possible.

Documenting
Software documentation

Software documentation or source code documentation is written text that accompanies computer software. It either explains how it operates or how to use it, and may mean different things to people in different roles....
 the internal design of software for the purpose of future maintenance and enhancement is done throughout development. This may also include the authoring of an API, be it external or internal.

Deployment and maintenance

Deployment
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....
 starts after the code is appropriately tested, is approved for release and sold or otherwise distributed into a production environment.

Software Training and Support
Technical support

Technical support is a range of Customer service providing assistance with technology products such as mobile phones, televisions, computers, or other electronic or mechanical goods....
 is important because a large percentage of software projects fail because the developers fail to realize that it doesn't matter how much time and planning a development team puts into creating software if nobody in an organization ends up using it. People are often resistant to change and avoid venturing into an unfamiliar area, so as a part of the deployment phase, it is very important to have training classes for new clients of your software.

Maintenance
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, or to adapt the product to a modified environment ....
 and enhancing software to cope with newly discovered problems
Software bug

A software bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it from behaving as intended . Most bugs arise from mistakes and errors made by people in either a program's source code or its software architecture, and a few are caused by compilers producing incorrect code....
 or new requirements can take far more time than the initial development of the software. It may be necessary to add code that does not fit the original design to correct an unforeseen problem or it may be that a customer is requesting more functionality and code can be added to accommodate their requests. It is during this phase that customer calls come in and you see whether your testing was extensive enough to uncover the problems before customers do.

Models


Iterative processes

Iterative development prescribes the construction of initially small but ever larger portions of a software project to help all those involved to uncover important issues early before problems or faulty assumptions can lead to disaster. Iterative processes are preferred by commercial developers because it allows a potential of reaching the design goals of a customer who does not know how to define what they want.

Agile software development

Agile software development
Agile software development

Agile software development is a group of software development methodologies that are based on similar principles. Agile methodologies generally promote a project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering be...
 processes are built on the foundation of iterative development. To that foundation they add a lighter, more people-centric viewpoint than traditional approaches. Agile processes use feedback, rather than planning, as their primary control mechanism. The feedback is driven by regular tests and releases of the evolving software.

Interestingly, surveys have shown the potential for significant efficiency gains over the waterfall method. For example, a survey, published in August 2006 by VersionOne and Agile Alliance and based on polling more than 700 companies claims the following benefits for an Agile approach. The survey was repeated in August 2007 with about 1,700 respondents.

XP: Extreme Programming

Extreme Programming
Extreme Programming

Extreme Programming is a software engineering methodology prescribing a set of daily stakeholder Extreme Programming#Practices that embody and encourage particular Extreme Programming#XP values ....
 (XP) is the best-known iterative process. In XP, the phases are carried out in extremely small (or "continuous") steps compared to the older, "batch" processes. The (intentionally incomplete) first pass through the steps might take a day or a week, rather than the months or years of each complete step in the Waterfall model. First, one writes automated tests, to provide concrete goals for development. Next is coding (by a pair of programmers), which is complete when all the tests pass, and the programmers can't think of any more tests that are needed. Design and architecture emerge out of refactoring
Refactoring

Code refactoring is the process of changing a computer program's internal structure without modifying its external Functional requirement behavior or existing functionality....
, and come after coding. Design is done by the same people who do the coding. (Only the last feature - merging design and code - is common to all the other agile processes.) The incomplete but functional system is deployed or demonstrated for (some subset of) the users (at least one of which is on the development team). At this point, the practitioners start again on writing tests for the next most important part of the system.

Waterfall processes

The waterfall model
Waterfall model

The waterfall model is a sequence development process, in which development is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design , Construction,Integration and software maintenance....
 shows a process, where developers are to follow these steps in order:
  1. Requirements specification
    Software Requirements Specification

    A Software Requirements Specification is a complete description of the behavior of the system to be developed. It includes a set of use cases that describe all the interactions the users will have with the software....
     (AKA Verification or Analysis)
  2. Design
    Software design

    Software design is a process of problem-solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution....
  3. Construction (AKA implementation
    Implementation

    Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, Standardization, algorithm, or policy....
     or coding)
  4. Integration
  5. Testing and debugging
    Debugging

    Debugging is a methodical process of finding and reducing the number of computer bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected....
     (AKA validation)
  6. Installation
    Installation (computer programs)

    Installation of a computer program is the act and the effect of putting the program in a computer system so that it can be execution .Most programs are supplied in a condensed form intended for sale and distribution....
     (AKA deployment)
  7. Maintenance
    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, or to adapt the product to a modified environment ....
After each step is finished, the process proceeds to the next step, just as builders don't revise the foundation of a house after the framing has been erected.

There is a misconception that the process has no provision for correcting errors in early steps (for example, in the requirements). In fact this is where the domain of requirements management comes in which includes change control.

This approach is used in high risk projects, particularly large defense contracts. The problems in waterfall do not arise from "immature engineering practices, particularly in requirements analysis and requirements management." Studies of the failure rate of the DOD-STD-2167
DOD-STD-2167A

DOD-STD-2167A , titled "Defense Systems Software Development", was a United States Defense Standard, published on February 29, 1988. This document established "uniform requirements for the software development that are applicable throughout the system life cycle." It was designed to be used with MIL-STD-2168, "Defense System Software Qualit...
 specification, which enforced waterfall, have shown that the more closely a project follows its process, specifically in up-front requirements gathering, the more likely the project is to release features that are not used in their current form .

Often the supposed stages are part of review between customer and supplier, the supplier can, in fact, develop at risk and evolve the design but must sell off the design at a key milestone called Critical Design Review (CDR). This shifts engineering burdens from engineers to customers who may have other skills

Other models

Capability Maturity Model Integration
The Capability Maturity Model Integration
Capability Maturity Model Integration

Capability Maturity Model Integration in software engineering and organizational development is a process improvement approach that provides organizations with the essential elements for effective process improvement....
 (CMMI) is one of the leading models and based on best practice. Independent assessments grade organizations on how well they follow their defined processes, not on the quality of those processes or the software produced. CMMI has replaced CMM
Capability Maturity Model

The Capability Maturity Model in software engineering is a model of the maturity of the capability of certain business processes. A maturity model can be described as a structured collection of elements that describe certain aspects of maturity in an organization, and aids in the definition and understanding of an organization's processes....
.


ISO 9000
ISO 9000
ISO 9000

ISO 9000 is a family of standardization for quality management systems. ISO 9000 is maintained by ISO, the International Organization for Standardization and is administered by accreditation and certification bodies....
 describes standards for formally organizing processes with documentation.


ISO 15504
ISO 15504
ISO 15504

ISO/IEC 15504 also known as SPICE is a "framework for the assessment of processes" developed by the Joint Technical Subcommittee between ISO and IEC ....
, also known as Software Process Improvement Capability Determination (SPICE), is a "framework for the assessment of software processes". This standard is aimed at setting out a clear model for process comparison. SPICE is used much like CMMI. It models processes to manage, control, guide and monitor software development. This model is then used to measure what a development organization or project team actually does during software development. This information is analyzed to identify weaknesses and drive improvement. It also identifies strengths that can be continued or integrated into common practice for that organization or team.


Six sigma
Six Sigma
Six Sigma

Six Sigma is a Strategic management, originally developed by Motorola, that today enjoys widespread application in many sectors of industry.Six Sigma seeks to identify and remove the causes of defects and errors in manufacturing and business processes....
 is a methodology to manage process variations that uses data and statistical analysis to measure and improve a company's operational performance. It works by identifying and eliminating defects in manufacturing and service-related processes. The maximum permissible defects is 3.4 per one million opportunities. However, Six Sigma is manufacturing-oriented and needs further research on its relevance to software development.


Test Driven Development
Test Driven Development (TDD) is a useful output of the Agile camp but some suggest that it raises a conundrum. TDD requires that a unit test be written for a class before the class is written. It might be thought, then, that the class firstly has to be "discovered" and secondly defined in sufficient detail to allow the write-test-once-and-code-until-class-passes model that TDD actually uses. This would be actually counter to Agile approaches, particularly (so-called) Agile Modeling, where developers are still encouraged to code early, with light design. However, to get the claimed benefits of TDD a full design down to class and responsibilities (captured using, for example, Design By Contract
Design by contract

Design by Contract or Programming by Contract is an approach to designing computer software. It prescribes that software designers should define Formal methods, precise and verifiable interface specifications for Component-based software engineering#Software component based upon the theory of abstract data types and the conceptual metaph...
) is not necessary. This would count towards iterative development, with a design locked down, but not iterative design - as heavy refactoring and re-engineering might negate the usefulness of TDD.


Formal methods

Formal methods are mathematical approaches to solving software (and hardware) problems at the requirements, specification and design levels. Examples of formal methods include the B-Method
B-Method

B is a tool-supported formal method based around AMN , used in the development of computer software. It was originally developed by Jean-Raymond Abrial in France and the United Kingdom....
, Petri net
Petri net

A Petri net is one of several mathematical modeling languages for the description of discrete distributed systems. A Petri net is a directed bipartite graph, in which the nodes represent transitions , places , and directed arcs ....
s, RAISE
Raise

Raise is a fell in the England Lake District. It stands on the main spine of the Helvellyn range in the Eastern Fells, between Thirlmere and Ullswater....
 and VDM
Vienna Development Method

The Vienna Development Method is one of the longest-established Formal Methods for the development of computer-based systems. Originating in work done at IBM's Vienna Laboratory in the 1970s, it has grown to include a group of techniques and tools based on a formal specification language - the VDM Specification Language ....
. Various formal specification notations are available, such as the Z notation
Z notation

The Z notation , named after Zermelo-Fr?nkel set theory ? J.R. Abrial answers the question "Why Z?" with "Because it is the ultimate language!" ? , is a Formal specification specification language used for describing and modeling computing systems....
. More generally, automata theory
Automata theory

In theoretical computer science, automata theory is the study of abstract machines and problems which they are able to solve. Automata theory is closely related to formal language theory as the automata are often classified by the class of formal languages they are able to recognize....
 can be used to build up and validate application behavior by designing a system of finite state machine
Finite state machine

A finite state machine or finite state automaton or simply a state machine, is a model of behavior composed of a finite number of state s, transitions between those states, and actions....
s.

Finite state machine (FSM) based methodologies allow executable software specification and by-passing of conventional coding (see virtual finite state machine
Virtual finite state machine

The "virtual finite state machine" is a concept promoted by and implemented in their StateWORKS product. A VFSM is a finite state machine defined in a virtual environment....
 or event driven finite state machine).

Formal methods are most likely to be applied in avionics software
Avionics software

Avionics software is embedded system with legally-mandated avionics safety and Reliability engineering concerns used in avionics. The main difference between avionic software and conventional embedded software is that the software development model is required by law and is optimized for safety....
, particularly where the software is safety critical. Software safety assurance standards, such as DO178B demand formal methods at the highest level of categorization (Level A).

Formalization of software development is creeping in, in other places, with the application of Object Constraint Language
Object Constraint Language

The Object Constraint Language is a declarative language for describing rules that apply to Unified Modeling Language models developed at IBM and now part of the UML standard....
 (and specializations such as Java Modeling Language
Java Modeling Language

The Java Modeling Language follows the design by contract paradigm. It is a specification language for Java programs, using Hoare logic Precondition and postconditions and Invariant ....
) and especially with Model-driven architecture
Model-driven architecture

Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as computer models....
 allowing execution of designs, if not specifications.

Another emerging trend in software development is to write a specification in some form of logic (usually a variation of FOL), and then to directly execute the logic as though it were a program. The OWL language, based on Description Logic, is an example. There is also work on mapping some version of English (or another natural language) automatically to and from logic, and executing the logic directly. Examples are Attempto Controlled English
Attempto Controlled English

Attempto Controlled English is a controlled natural language, i.e. a subset of standard English grammar with a restricted syntax and a restricted semantics described by a small set of construction and interpretation rules ....
, and Internet Business Logic, which does not seek to control the vocabulary or syntax. A feature of systems that support bidirectional English-logic mapping and direct execution of the logic is that they can be made to explain their results, in English, at the business or scientific level.

The Government Accountability Office, in a 2003 report on one of the Federal Aviation Administration’s air traffic control modernization programs, recommends following the agency’s guidance for managing major acquisition systems by
  • establishing, maintaining, and controlling an accurate, valid, and current performance measurement baseline, which would include negotiating all authorized, unpriced work within 3 months;
  • conducting an integrated baseline review of any major contract modifications within 6 months; and
  • preparing a rigorous life-cycle cost estimate, including a risk assessment, in accordance with the Acquisition System Toolset’s guidance and identifying the level of uncertainty inherent in the estimate.


See also

Some more development methods:
  • Evolutionary Development model
  • Model driven development
  • User experience
  • Top-down and bottom-up design
    Top-down and bottom-up design

    Top-down and bottom-up are strategy of information processing and knowledge ordering, mostly involving software, but also other humanistic and scientific theories ....
  • Chaos model
    Chaos model

    In computing, the Chaos model is a structure of software development that extends the spiral model and waterfall model.The chaos model was defined by L.B.S....
  • Evolutionary prototyping
  • Prototyping
  • ICONIX Process
    ICONIX

    ICONIX is a software development methodology which predates both the Rational Unified Process , Extreme Programming and Agile software development....
     (UML-based object modeling with use cases)
  • Unified Process
    Unified Process

    The Unified Software Development Process or Unified Process is a popular iterative and incremental development software development process framework....
  • V-model
    V-Model (software development)

    The V-model is a software development process which can be presumed to be the extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the source code phase, to form the typical V shape....
  • Extreme Programming
    Extreme Programming

    Extreme Programming is a software engineering methodology prescribing a set of daily stakeholder Extreme Programming#Practices that embody and encourage particular Extreme Programming#XP values ....
  • Software Development Rhythms
    Software Development Rhythms

    The approach of software development rhythms seeks to answer the key question of whether programmer productivity is impacted by the various agile practices, rather than by any single software development method....
  • Specification and Description Language
    Specification and Description Language

    Specification and Description Language is a specification language targeted at the unambiguous specification and description of the behaviour of reactive and distributed systems....
  • Incremental funding methodology
    Incremental funding methodology

    The Incremental Funding Methodology is an Rate of return-informed approach to software development in which software is developed and delivered in carefully prioritized chunks of customer valued functionality....
  • Verification and Validation (software)
  • Service-Oriented Modeling
    Service-oriented modeling

    Service-oriented modeling is the discipline of modeling business and systems, for the purpose of designing and specifying service-oriented business systems within a service-oriented architecture....
     Framework
Related subjects:
  • Rapid application development
    Rapid application development

    Rapid application development is a software development methodology, which involves iterative development and the construction of prototypes....
  • Software design
    Software design

    Software design is a process of problem-solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution....
  • Software development
    Software development

    Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products....
  • Software Estimation
    Estimation in software engineering

    The ability to accurately estimate the time and/or cost taken for a project to come in to its successful conclusion is a serious problem for software engineering....
  • Abstract Model
    Model (abstract)

    In mathematical logic, the formal languages, formal systems, and theory which are studied have no meaningful content until they are given an interpretation within some other system....
  • Development stage
    Development stage

    A software release is the distribution of an initial or upgraded Software versioning of a computer software product. The software engineering and company doing the work decide on how to distribute the program or system, or changes to that program or system....
  • IPO+S Model
    IPO Model

    The IPO Model also known as the IPO+S Model is a functional model and conceptual schema of a general system. An IPO chart identifies a program?s inputs, its outputs, and the processing steps required to transform the inputs into the outputs....
  • List of software engineering topics
    List of software engineering topics

    This list complements the software engineering article, giving more details and examples.For an alphabetical listing of topics, please see List of software engineering topics ....
  • Performance engineering
    Performance Engineering

    Within systems engineering, performance engineering encompasses the set of roles, skills, activities, practices, tools, and deliverables applied at every phase of the Systems Development Lifecycle which ensures that a solution will be designed, implemented, and operationally supported to meet the non-functional requirements defined for the so...
  • Process
  • Programming paradigm
    Programming paradigm

    A programming paradigm is a fundamental style of computer programming. . Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation ....
  • Programming productivity
    Programming productivity

    Programming productivity refers to a variety of software development issues and methodologies affecting the quantity and quality of code produced by an individual or team....
  • Project
    Project

    A project in business and science is a collaborative enterprise, frequently involving research or design, that is carefully planned to achieve a particular aim....
  • Systems Development Life Cycle (SDLC)
    Systems Development Life Cycle

    Systems Development Life Cycle , or Software Development Life Cycle, in systems engineering and software engineering refers to the process of creating or altering systems, and the models and methodologies that people use to develop these systems....
  • Software documentation
    Software documentation

    Software documentation or source code documentation is written text that accompanies computer software. It either explains how it operates or how to use it, and may mean different things to people in different roles....
  • Systems design
    Systems design

    Systems design is the process or art of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements....
  • List of software development philosophies
    List of software development philosophies

    This is an incomplete list of approaches, styles, and philosophies in software development.* Agile software development* Agile Unified Process * Behavior Driven Development ...
  • Test effort
    Test effort

    In software development, test effort refers to the expenses for tests. There is a relation with test costs and failure costs . Some factors which influence test effort are: maturity of the Software Development Process, quality and testability of the testobject, test infrastructure, skills of staff members, quality goals and test strategy....
  • Best Coding Practices
    Best Coding Practices

    Best coding practices for software development can be broken into many levels based on the coding language, the platform, the target environment and so forth....
  • Service-Oriented Modeling
    Service-oriented modeling

    Service-oriented modeling is the discipline of modeling business and systems, for the purpose of designing and specifying service-oriented business systems within a service-oriented architecture....
     Framework


External links

  • ", 1986
  • Gerhard Fischer, , 2001
  • Lydia Ash: The Web Testing Companion: The Insider's Guide to Efficient and Effective Tests, Wiley, May 2, 2003. ISBN 0471430218
  • - Software as a Service Systems Development Life Cycle Project
  • Software development life cycle (SDLC) [visual image],
  • -