Design Activities and Environments Essay
Sorry, but copying text is forbidden on this website!
1. Review the definitions of architectural and detailed design and the brief descriptions of high-level design activities at the beginning of the chapter. Which activities are clearly architectural? Which are clearly detailed? Which can be architectural or detailed?
Designing the support services architecture and deployment environment and designing the software architecture are clearly architectural.
Designing use case realizations and designing the database are clearly detailed.
Designing the system and user interfaces and designing the system security and controls can be architectural or detailed.
2. Discuss the evolution of client-server computing from file server to multilayer applications to Web-based applications. What has been the driving force causing this evolution? Where do you think network computing will be in the next five years? Ten years?
Cheaper computers, and networks, ubiquitous networking, and the desire of companies to increase the accessibility of their systems to increase the customer base/satisfaction, gain efficiencies from greater inter- and intraorganization coordination, and greater flexibility to reorganize people, processes, and systems.
3. Assume that the deployment environment for a high-volume payment processing system consists of the following: • DB2 DBMS running under the OS/390 operating system on an IBM S/390 mainframe • WebSphere application server running under the Z/OS operating system on an IBM zSeries 900 mainframe • CORBA-compliant component-based application software written in Java that will be executed by other internal and external systems
What are the key architectural design decisions that must be made for the system? When should the decisions be made and who should make them? Outline the subsequent design tasks that should occur after the key architectural design decisions are made. To what extent can the subsequent steps be performed in parallel?
Some key architectural decisions to explore include: the key components and subsystems, where each component will execute and how will all of the pieces interoperate (which requires nailing down how the network, CORBA, and database infrastructure will be configured)?
Many of the decisions depend on whether the supporting infrastructure is already in place. If it is, then many of the architectural decisions can be delayed until much code has been written and tested. If not, then the required infrastructure and tools will have to be acquired and configured.
Developers will have to be trained, and architectural design will need to occur early to ensure that the developers don’t make any “mistakes” due to lack of fit with the development or deployment environment. Note that an OO development approach is assumed given the nature of the infrastructure and tools
4. Develop a network diagram that supports the architectural design decisions in your answer to number 2.
Answers will vary. Some important points that should be included are:
File servers just sent the data across the network. They tended to use lots of bandwidth, because the entire file was sent. Also, since the applications that processed the data were on all the different workstations, deployment and maintenance of these applications was expensive.
Application servers moved the applications from the workstations (clients) to the server. This made it easier to maintain a consistent set of applications and to upgrade the applications. This movement was influenced by the appearance of “thin clients” that had very little storage, but good processing capability. However, due to the drastic reduction in storage costs, thin clients have not caught on.
Multi-tier networks are where multiple servers and clients work together to provide the complete functionality of a system. Some processing will be on the clients. Servers such as database servers and application servers provide additional capability. The driving force behind much of this is the rapid growth and capability of the Internet and languages such as JAVA with protocols such as J2EE. Microsoft’s .NET also provides capabilities to have distributed systems. Answers for the future will vary.