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.[1] EspFrom Wikipedia, the free encyclopedia
|
|
This article needs additional citations for verification. Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (October 2008) |
| Software development process | |
|---|---|
| Activities and steps | |
| Requirements ¡ Specification Architecture ¡ Design Implementation ¡ Testing Deployment ¡ Maintenance |
|
| Models | |
| Agile ¡ Cleanroom ¡ DSDM Iterative ¡ RAD ¡ RUP ¡ Spiral Waterfall ¡ XP ¡ Scrum ¡ Lean V-Model ¡ FDD ¡ TDD |
|
| Supporting disciplines | |
| Configuration management Documentation Quality assurance (SQA) Project management User experience design |
|
| Tools | |
| Compiler ¡ Debugger ¡ Profiler GUI designer Integrated development environment |
|
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.[1] Especially the first phase in the software development process may involve many departments, including marketing, engineering, research and development and general management.[2]
The term software development may also refer to computer programming, the process of writing and maintaining the source code.
Contents
|
Overview
There are several different approaches to software development, much like the various views of political parties toward governing a country. Some take a more structured, engineering-based approach to developing business solutions, whereas others may take a more incremental approach, where software evolves as it is developed piece-by-piece. Most methodologies share some combination of the following stages of software development:
- Market research
- Gathering requirements for the proposed business solution
- Analyzing the problem
- Devising a plan or design for the software-based solution
- Implementation (coding) of the software
- Testing the software
- Deployment
- Maintenance and bug fixing
These stages are often referred to collectively as the software development lifecycle, or SDLC. Different approaches to software development may carry out these stages in different orders, or devote more or less time to different stages. The level of detail of the documentation produced at each stage of software development may also vary. These stages may also be carried out in turn (a âwaterfallâ based approach), or they may be repeated over various cycles or iterations (a more "extreme" approach). The more extreme approach usually involves less time spent on planning and documentation, and more time spent on coding and development of automated tests. More âextremeâ approaches also promote continuous testing throughout the development lifecycle, as well as having a working (or bug-free) product at all times. More structured or âwaterfallâ based approaches attempt to assess the majority of risks and develop a detailed plan for the software before implementation (coding) begins, and avoid significant design changes and re-coding in later stages of the software development lifecycle.
There are significant advantages and disadvantages to the various methodologies, and the best approach to solving a problem using software will often depend on the type of problem. If the problem is well understood and a solution can be effectively planned out ahead of time, the more "waterfall" based approach may work the best. If, on the other hand, the problem is unique (at least to the development team) and the structure of the software solution cannot be easily envisioned, then a more "extreme" incremental approach may work best. A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.
Software development topic
Marketing
The sources of ideas for software products are legion.[2] These ideas can come from market research including the demographics of potential new customers, existing customers, sales prospects who rejected the product, other internal software development staff, or a creative third party. Ideas for software products are usually first evaluated by marketing personnel for economic feasibility, for fit with existing channels distribution, for possible effects on existing product lines, required features, and for fit with the company's marketing objectives. In a marketing evaluation phase, the cost and time assumptions become evaluated. A decision is reached early in the first phase as to whether, based on the more detailed information generated by the marketing and development staff, the project should be pursued further.[2]
In the book "Great Software Debates", Alan M. Davis states in the chapter "Requirements", subchapter "The Missing Piece of Software Development":
| â | Students of engineering learn engineering and are rarely exposed to finance or marketing. Students of marketing learn marketing and are rarely exposed to finance or engineering. Most of us become specialists in just one area. To complicate matters, few of us meet interdisciplinary people in the workforce, so there are few roles to mimic. Yet, software product planning is critical to the development success and absolutely requires knowledge of multiple disciplines.[3] | â |
Because software development may involve compromising or going beyond what is required by the client, a software development project may stray into less technical concerns such as human resources, risk management, intellectual property, budgeting, crisis management, etc. These processes may also cause the role of business development to overlap with software development.
Software development methodology
A software development methodology is a framework that is used to structure, plan, and control the process of developing information systems. A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses. One system development methodology is not necessarily suitable for use by all projects. Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations.[4]
Recent trends in the sector
Given the rapid growth of this sector, several companies have started to use offshore development in China, India and other countries with a lower cost per developer model. Several new Web 2.0 platforms and sites are now developed offshore while management is located in Western countries. The advantages mostly revolve around better cost-control over the process, which means that there is lower cash-outflow (often the biggest struggle for startups). Furthermore, the time difference when working with India and China for the Western world allows work to be done round the clock adding a competitive advantage. Notable firms that are involved in development include Tata Consultancy Services, Infosys, Wipro, and Satyam.
The end of the 1990 provided W3C standards[5] which enabled ontologies to unite 4 modelling functions in 1 knowledge model: the knowledge representation (in RDF(S) and OWL), the knowledge generation through inferences, the conceptual model through ontologies and the physical model through triple stores. The latest developments allow to generate applications straight from the knowledge systems (ontologies)[6]. This approach finds its justification in the use of semantic technologies with substitution of www data with verified production data. One business case for this developement method is available at the finance ontology website.
See also
|
|
References
- ^ DRM Associates (2002). "New Product Development Glossary". http://www.npd-solutions.com/glossary.html. Retrieved 2006-10-29.
- ^ a b c Joseph M. Morris (2001). Software Industry Accounting. p.1.10
- ^ Alan M. Davis. Great Software Debates (October 8, 2004), pp:125-128 Wiley-IEEE Computer Society Press
- ^ Selecting a development approach. Revalidated: March 27, 2008. Retrieved 27 Oct 2008.
- ^ Standards on RDF [1] and recommendations on OWL [2]
- ^ See the finance semantic web application [3]
Further reading
| Wikimedia Commons has media related to: Software development |
- Jim McCarthy (1995). Dynamics of Software Development.
- Dan Conde (2002). Software Product Management: Managing Software Development from Idea to Product to Marketing to Sales.
- A.M. Davis (2005). Just enough requirements management: where software development meets marketing.
- Edward Hasted. (2005). Software That Sells : A Practical Guide to Developing and Marketing Your Software Project.
- Luke Hohmann (2003). Beyond Software Architecture: Creating and Sustaining Winning Solutions.
- John W. Horch (2005). "Two Orientations On How To Work With Objects." In: IEEE Software. vol. 12, no. 2, pp. 117-118, Mar., 1995.
- John Rittinghouse (2003). Managing Software Deliverables: A Software Development Management Methodology.
- Karl E. Wiegers (2005). More About Software Requirements: Thorny Issues and Practical Advice.
- Robert K. Wysocki (2006). Effective Software Project Management.
|
||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||
[pdf] Software development
The Forum will review trends in international development ... To facilitate dialogue among stakeholders at the 2008 Development Cooperation Forum, the ...
[pdf] Software development
... try out software freely over the Web; development procedures that ... projects, market research, software development, space renovation, and many other types of ...
[pdf] Software development
OO software the lack of such repositories makes it hard to generalize, to validate ... Although many software quality models are proposed in the ...
[pdf] Software development
The European Software Association would like to expand its network of contacts to include Trade ... Network Software Partners ... European software industry. ...
[pdf] Software development
There are seven principles of Lean Software Development, drawn from the seven ... The seven wastes of software development are: ...
[pdf] Software development
If strategies for sustainable development are genuinely to get to grips with ... development, identifying gaps in knowledge, and filling them through research. ...
[pdf] Software development
... Software integrates ... Hybrid Software sends Linux server application data to NonStop ... © Copyright 2005 Hewlett-Packard Development Company, L.P. The ...
[pdf] Software development
... aims to ensure that content development follows internationally ... Until software supports the standards and specifications defined in this document, content ...
[pdf] Software development
the development of functional assessment software. ... inexpensive software tool that will allow an evaluator to ... development, and evaluation of a prototype for the ...
[pdf] Software development
can expect from the quality of software behavior. ... grated development environment (devel- oped at the University of North Carolina ...
Show more pdf files...
... of software development. identify various aspects of software quality ... Software Quality. 1-7. Development ... NOT the primary part of software development ! ...
[ppt] Software development
M&E Capacity Development. in the AfCoP-MfDR and the Case in Ethiopia ... Managing for Development Results ... Strategy for the Development of Statistics (NSDS) ...
[ppt] Software development
Development Lead, Advanced Model Driven Development & Application Analysis. IBM ... Rational Software Development Platform. Shipped 6.0 in December 2004. ...
[ppt] Software development
... requirements engineering, software development, testing and ... Embodied in the Cleanroom' approach to software development. No need to test for defects ...
[ppt] Software development
Participants in Systems Development ... in the first part of software development, such as investigation, analysis, and design ...
[ppt] Software development
Software development: group game which is goal seeking, finite and cooperative ... software development? Software Development is a resource-limited) cooperative ...
[ppt] Software development
Software Engineering 2 (Formal Methods, XML, PHP, OO Concepts) ... Design process was very appropriate for reengineering of software. ...
[ppt] Software development
... Approach to Discovery and Modeling of Open Source Software Development Processes ... Domain: large scale online open source software development (OSSD) projects ...
[ppt] Software development
Computer Hardware and Software Development. The First Business Computers ... sophisticated software development. growth of business size, complexity, and competition ...
[ppt] Software development
Software development process. How size affects the basic assumptions ... maintenance of software products, lBM Journal of Research & Development, Vol. 28, ...
Show more powerpoint files...
[msword] Software development
The software will be hosted without any fees or charges. ... As such the development of the software and its maintenance forthwith from the ...
[msword] Software development
The roles for the development of the software and data products are: ... The development documents include the following: Software Requirements Document (SRD) ...
[msword] Software development
Place all HUD's software development and production work products under an ... Software Development Capability Maturity Model. APPENDIX 2. Forms Required by ...
[msword] Software development
Today's software development is characterized by many disturbing but well ... Corporate software development standards concern both maintaining standards in ...
[msword] Software development
Interfacing software and probes are available for both systems. ... teacher also needs a computer, for lesson development and demonstration purposes. ...
[msword] Software development
... developer of collaborative web development software, today announced at Web2.0 ... software required. Contact. Blake D. Johnson, VP Business Development ...
[msword] Software development
Software development in the core areas is both crucial to the work of ATLAS ... The design and development effort for core software must, therefore, be heavily ...
[msword] Software development
The Software AG and ND ITD groups will provide software development standards, ... Software Development Standards. Best Practices in Software Development Standards ...
[msword] Software development
... of outsourced software development, and enforce software security requirements ... in financial services, telecommunications, software development, government, and ...
[msword] Software development
... software and documentation (project development teams ... You should have both a development Test account and a Production account for KAAJEE software. ...
Show more ms word files...
