Chapter 6 6.1 When describing a system, explain why you may have to start the design of the system architecture before the requirements specification is complete • Architecture has an impact on the nonfunctional requirements and can influence the functional requirements too. •Early stage of agile development: Focus on designing an overall system architecture. Incremental development is not usually successful. o Refactoring components in response to changes is relatively easy o Refactoring architecture is expensive because most system components will need to be modified. • Architecture designed before requirements spec is complete because: o Allow manufacture of hardware by subcontractors and provide models for system costing. o you need to model the architecture to identify subsystems and associate the requirements with these subsystems. • Main reasons for the above: o Means for structuring o Model for estimating system costing o Allow manufacture of hardware by subcontractors 6.3 performance and security may pose to be conflicting non functional requirements when architecting software system. Answer: Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. often these are applied to the system as a whole rather than individual features or services. For a system that prioritizes security, design could include layered structure !herein there is a high level of security in every layer until the innermost one. We can say then say that there is limited access to the layers of the system as a preventive measure. On the other hand, if availability is to be prioritized, there should me multiple and redundant components which shall serve as back up for the system that can also be updated without stopping the !hole system.Therefore, for a system Which see's both availability and security at the same time, there will be design conflicts. Or Fundamentally, to provide availability, you need to have (a) replicated components in the architecture so that in the event of one component failing, you can switch immediately to a backup component. You also need to have several copies of the data that is being processed. Security requires minimizing the number of copies of the data and, wherever possible, adopting an architecture where each component only knows as much as it needs to, to do its job. This reduces the chance of intruders accessing the data. Therefore, there is a fundamental architectural conflict between availability (replication, several copies) and security (specialization, minimal copies). The system architect has to find the best compromise between these fundamentally opposing requirements 6.5. Explain why you normally use several architectural patterns when designing the architecture of a large system. Apart from the information about patterns that I have discussed in this chapter, what additional information might be useful when designing large systems? When designing a system you would normally use several architectural patterns when designing the architecture of a large system because you may need different architectures for different components. For example, a large system may be a distributed system and the overall architecture may reflect that but one component may be best implemented using a client server pattern and another component structured as a repository. In designing a large system it is most useful to know how the components that make up the large system are going to communicate. Once you know how the components are going to communicate it is easier to design the components themselves and properly structure the entire system to maximize the benefits of each decision and minimize the drawbacks. Or Sometimes, large systems are like relationships. They can getcomplicated. This is why we need to use several architectural patternsin the design of such large systems. When we look into it, there maybe parts of a system that prioritizes (for instance) security whilesome other components prioritize something else. Then, we could see what appropriate pattern should be followed. One subcomponent couldmake use of clientserver while another requires repository. Inaddition, it is useful to know how to communicate or connect thesesubcomponents very well even they different patterns. This is neededso that the whole large system will maximize the benefits and minimizedrawbacks. 6.6 The architecture needed for this type of system is a client-server model. iTunes will have a database that has records on all the music that is available through their system. These music records can be searched for by the user by artist name, genre, etc., through a web based interface and downloaded for a certain price. The server handles music orders through the web based interface. The architectural pattern that is the basis for this is client-server pattern. Or Client-server model. • iTunes store music in a database where clients can search these tracks by music details via a web based interface. • Music can be purchased and downloaded via a web based interface. 6.7 Explain how you would use the reference model of CASE environments (available on the book’s web pages) to compare the IDEs offered by different vendors of a programming language such as Java. You can make the comparison between the IDEs by taking the different components of the reference model in turn than assess how well the IDE toolset being studied provides these services. You also have to look at how these services are used in particular toolsets. Generally, IDEs are tightly integrated systems and all parts of the reference model may not be applicable. In this case, comparisons would be drawn using: 1. Data repository services. What kind of data management is supported? 2. Data integration services. How well can data be interchanged with other tools and what support is provided for configuration management? 3. User interface services. What facilities are supported to allow presentation integration? How well integrated at the user interface level are different parts of the systems? 4. Task management services. This is really for general purpose environments so is probably inapplicable to Java IDEs. 5. Message services. How do different components of the IDE communicate? 6.8 answer in manual 6.9. Using the basic model of an information system, as presented in Figure 6.16,suggest the components that might be part of an information system that allowsusers to view information about flights arriving and departing from a particularairport. At the top layer is the web browser the user uses to access the airport website. The second laye rwould be comprised of web forms that collect information of the flight the user wants to look up or search for general time ranges. The next layer is the server at which the flight time request is sent, will receive the flight information collected and process it into query. The last layer is the actual database server which will query the database for the specified flights or time range of flights, and if something goes wrong during the transaction any updates will be rolled back. Or Studio doc share with you on whatsapp Or Students should consider the levels in the information system and should identify components that might be included at each level. Examples of these components might be: Level 1 (Database level) Flight database; Flight status database; Airport information; Level 2: (Information retrieval level) Status management; Flight management; Search; Level 3: (User interaction level) Authentication; session management; forms processing () Level 4 (User interface) Input checking (Javascript), browsers