Software Factory
A Software Factory is a development environment configured to support the rapid development of a specific type of application. Software Factories are just a logical next step in the continuing evolution of software development methods and practices. However, they change the character of the software industry by introducing patterns of industrialization.
• It’s a software product line that configures
– Extensible tools
– Processes
– Content using a software factory template based on a software factory schema
• It helps to automate the development and maintenance product by adapting
– assembling
– configuring framework-based components
• Help building specific type of application
– Smart client
– Web service
– Web application
– Mobile application
• Incorporate guidelines and best practice
– Architecture and design guidance
– Patterns
– How-to’s
– Application blocks
– Guidance packages
Why software factory?
• Productivity in software development
• Reusability in efficient way
• Reduction in development time
• Communication between architect and development team
• Utilize resources not having extensive expertise on software development
• Shorten time to market
– Reuse of existing core assets
• Improved product quality
– Pre-tested factory
– Less chance of error during development
• Framework variability and extensibility
• Expand market
– By selling products
– Frameworks
Which are available software factory?
• Web Client Software Factory
• Smart Client Software Factory
• Web Service Software Factory
• Mobile Client Software Factory
Web Client Software Factory capabilities
Modularity
- Building composite UIs that are based on integration of multiple back-end systems.
- Composing applications from individually developed, tested, and deployed units (modules).
- Supporting XCopy deployment through distributed Web.config files
- Unit testing Web user interface application logic
User experience
- Separating the responsibility of UI design from UI development
- Leverage ASP.NET master pages, themes, and skins
- Dynamically interact with ASP.NET site map
Page flow
- Defining screen workflows
Deployment and updates
- XCopy deployment and updates of independent modules
- Module versioning by separating interfaces from implementation
Security
- Authentication (using Forms Authentication)
- Profile based user interface and authorization
- Input and output validation
- Exception shielding
State management
- Session
- Page flow
Manageability
- Handling exceptions
- Logging exceptions
Web service communication
- Communicating synchronously with external Web services
Details about web-client software factory:
- Required component
- How to create web-client software factory application?
- Using Logging application block
- Using Exception handling block
- Creating new module
- Inbuilt MVC pattern implementation
- Customize look and feel
- Adding page flow
To know more:
http://msdn2.microsoft.com/en-us/library/bb264518.aspx#wcsfbenefits
http://msdn2.microsoft.com/en-us/architecture/aa480032.aspx