2. Traditional Development Gather requirements. Define architecture and design. Develop the application based on the architecture and design Test the application Deploy application
3. Traditional Development Issues Any mistake made in a step is discovered in the next step only. It is very difficult to gather requirements completely before starting the project. It is difficult to check whether developers have written code adhering to the architecture and design specified. The end user can visualize the application only after completing development(it could be partial). Implementing changes after seeing the application is hard and painful. Sometimes we may need to work on the same screen many times. Changing architecture or design half way in the project is very difficult and time consuming. The documentation for the application has to be kept in synch with the application changes. Migrating to another technology will be very difficult.
4. Enterprise Application Any enterprise application has three parts. User Interface(UI)(HTML, Flex, Windows Forms, Java Swing etc) Business Logic(BL)(C#, Java, PHP etc) Data(Files, RDBMS etc)
6. Monolithic Architecture User Interface, Business logic and data are within the same executable. All the three exist in the same process. E.g. Word, PowerPoint
7. Client/Server Architecture User Interface and (business logic + data) are in separate executables. OR (User Interface + business logic) and data are in separate executables. The two executables are linked using network protocols. E.g. Outlook and Exchange Server
8. Web Architecture User Interface, Business logic and data are in different executables. User Interface is executed browser. Business logic is executed by application server Data is stored in RDBMS
10. What we need? Software development should be based on business problem rather than on architecture and design. i.e. Software development should be independent of technology and architecture.
11. SednaSpace A tool to collect technical details about the application, independent of technology. A server to execute the collected details. The application can be executed in .net or Java environment A code generator to generate code from the collected details. A BPM designer to define business process. A BPM engine to execute business process.
12. SednaSpace Solution Need not gather complete requirements before starting to develop the application. Development and requirements gathering can be done simultaneously. The end user can be engaged on a daily basis. Thus the end user gives feed back right away for the developer to implement changes. Technical Documentation is automatically generated , thus the documentation is in synch with the application developed. Code is generated by SednaSpace as per the architecture and design specified. Thus there will be no violation of architecture or design. Applying changes is easy in SednaSpace. Migrating to another architecture or technology can be done with zero to less effort.