Uploaded by humaima6323

Chapter 6 software engineering solution manual

advertisement
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
Download