The logical stage is the bridge between defining the goals of the users and defining components, and the services and attributes they will need, to fulfil these goals. In this stage we define the interface for our components, i.e. the public properties and methods of the components.
Our choice of framework will have a major influence on the interfaces that we will choose for our system. We saw that a three-tier architecture is more scalable and makes it easier to upgrade our application; this will result in us dividing the system services into three types: client, business and data. The client services will interact with the user and usually not be reusable. The business services will be easily upgradeable, reusable and allow for a design that can evolve as the needs of the business change. The internet-style techniques of DNA, using stateless server-side components, allow our solution to be scalable. We can further improve scalability by using Microsoft Transaction Server, which provides support for apartment threading, allowing instances of each object to be created on the server, so more than one client can access our server-side objects. MTS has the added advantage of providing support for transactions, which are a prerequisite for any e-commerce application.
The primary tools used in the logical stage are the use cases and sequence diagrams that are built from the use cases. In addition to these, the initial class diagrams can be created with public properties and methods. This stage ends with a set of documents that will allow us to move on to the detailed design of our components.
Finally, this stage also requires the prototype for the user interface to be built, so we also looked at some of the principles behind building a user-friendly GUI, and saw how we should base the design of our GUI on the sequence diagrams we created earlier in this stage.
Was this article helpful?