Software factory

From Wikipedia, the free encyclopedia
Jump to: navigation, search

According to Greenfield and Short, software factory is "a software product line that configures extensive tools, processes, and content using a software factory template based on a software factory schema to automate the development and maintenance of variants of an archetypical product by adapting, assembling, and configuring framework-based components." [1]

Contents

[edit] Description

In software engineering and enterprise software architecture, a software factory is an organizational structure that specializes in producing computer software applications or software components according to specific, externally-defined end-user requirements through an assembly process. A software factory applies manufacturing techniques and principles to Software Development to mimic the benefits of traditional manufacturing. Software factories are generally involved with outsourced software creation. See also outsourcing.

Since coding requires a software engineer, (or the parallel in traditional manufacturing, a skilled craftsman) it is eliminated from the process at the application layer, the software is created by assembling predefined components instead of using traditional IDE's[clarification needed]. See also composite application. Traditional coding, is left only for creating new components or services. Like traditional manufacturing, the engineering is left to the creation of the components and the requirements gathering for the system. A composite application is the end result of manufacturing in a software factory.

[edit] History

  • The first company to adopt this term was Hitachi in 1969 with its Hitachi Software Works. Later, other companies such as System Development Corporation in 1975, NEC, Toshiba and Fujitsu in 1976 and 1977 followed the same organizational approach.[2]
  • Software factory–based application development addresses the problem of traditional application development where applications are developed and delivered without taking advantage of the knowledge gained and the assets produced from developing similar applications. Many approaches, such as training, documentation, and frameworks, are used to address this problem; however, using these approaches to consistently apply the valuable knowledge previously gained during development of multiple applications can be an inefficient and error-prone process.
  • Software factories address this problem by encoding proven practices for developing a specific style of application within a package of integrated guidance that is easy for project teams to adopt. Developing applications using a suitable software factory can provide many benefits, such as improved productivity, quality and evolution capability.

[edit] References

  1. ^ Jack Greenfield, Keith Short , Steve Cook, Stuart Kent, Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, ISBN 0-471-20284-3
  2. ^ Ivan Aaen, Peter Bøttcher & Lars Mathiassen, The Software Factory: Contributions and Illusions. In: Proceedings of the Twentieth Information Systems Research Seminar in Scandinavia, Oslo, 1997.

[edit] See also

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages