Download as pdf or txt
Download as pdf or txt
You are on page 1of 27

lOMoARcPSD|10786172

Chapter 1 individual assignments

1.1. Explain why professional software that is developed for a customer is not simply
the programs that have been developed and delivered.

Software is not just the programs themselves but also all associated
documentation, libraries, support websites, and configuration data that are
needed to make these programs useful. A professionally developed software
system is often more than a single program. A system may consist of several
separate programs and configuration files that are used to set up these
programs. It may include system documentation, which describes the structure of
the system, user documentation, which explains how to use the system, and
websites for users to download recent product information.

1.2. What is the most important difference between generic software product
development and custom software development? What might this mean in
practice for users of generic software products?
Difference Between generic software product development and customer
software development.
1. Generic products: These are stand-alone systems that are produced by a
development organization and sold on the open market to any customer who is
able to buy them. Examples are apps for mobile devices, software for PCs such
as databases, word processors, drawing packages, and project management
tools. This kind of software also includes “vertical” applications designed for a
specific market such as library information systems, accounting systems, or
systems for maintaining dental records.

2. Customized software: These are systems that are commissioned by


and developed for a particular customer. A software contractor designs and
implements the software especially for that customer. Examples of this type of
software include control systems for electronic devices, systems written to
support a particular business process, and air traffic control systems.

The critical distinction between these types of software is that, in generic


products, the organization that develops the software controls the software
specification. This means that if they run into development problems, they can
rethink what is to be developed. For custom products, the specification is
developed and controlled by the organization that is buying the software. The
software developers must work to that specification.

Downloaded by ???? ????????? ???? ???? (it182120036@avicenna.uobasrah.edu.iq)


lOMoARcPSD|10786172

1.3. What are the four important attributes that all professional software should
possess? Suggest four other attributes that may sometimes be significant.
The four important attributes that all professional software should possess
are:
Acceptability
Dependability and security
Efficiency
Maintainability
Other attributes that may be significant are:
Low cost, budgeting – Financial constraint to make sure project doesn’t shoot
over budget.
Easy to use – A good UI and simplified one is always a plus for a software
process.
High-quality software – Less problems with software is a better for a brand and
adaptable to customer in general
Future enhancements - Flexible software process that accommodates rapid
change. This saves cost and assures software can be upgraded to latest
trending/supported technologies

1.4. Apart from the challenges of heterogeneity, business and social change, and
trust and security, suggest other problems and challenges that software
engineering is likely to face in the 21st century. (Hint: Think about the
environment.)
Scaling software: Software has to be developed across a very wide range of
scales, from very small embedded systems in portable or wearable devices
through to Internet-scale, cloud-based systems that serve a global community.

Cloud Implementation: 21st century demands for application to be running on


cloud and sometimes may require to be run on multiple clouds to take advantage
of factors such as cost and ease of understanding, implementation. Thus
software has to be designed in a newer approach to take advantage of cloud
implementation and cost factors.

Virtualization and container technologies: 21st century is moving towards


trend of containerization and that brings in the change on how software is being
developed and deployed across infrastructure. Sometimes deploying into right
infrastructure solutions is more important that writing good software otherwise

Downloaded by ???? ????????? ???? ???? (it182120036@avicenna.uobasrah.edu.iq)


lOMoARcPSD|10786172

good written software can have challenges running and performing at pace 21st
century customer may be expecting.

1.5. Based on your own knowledge of some of the application types discussed in
Section 1.1.2, explain, with examples, why different application types require
specialized software engineering techniques to support their design and
development.
To elaborate on specialized technique I would take an example of Big data
processing which requires specialized infrastructure dedicated to be execute
queries of enormous amount on data in PB’s (Petabytes). Huge data processing
requires CPU and memory intensive servers and thus would require
developmental process in place that adapts to utilize process and methodologies
focused more towards writing memory optimization and cpu optimizations
programs such as parallel processing, multiple thread execution, memory
allocation, work managers, no memory leaks, CPU overloading.
On the other hand an ecommerce application program deals with process and
methodologies inclined towards a better UI design, ease of use, best match
search, payment gateway transaction security and product recommendations
and ever changing demands to adapt for rapid change in design solution and
technology advancements.

1.6. Explain why the fundamental software engineering principles of process,


dependability, requirements management, and reuse are relevant to all types of
software system.
The fundamental software engineering principles of process, dependability,
requirements management, and reuse are relevant to all types of software
system. These fundamentals are independent of the program language used for
software development.
Software engineering fundamentals that apply to all types of software systems
due to below mentioned reasons
a) Software to be developed using a managed and understood development
process.
b) The organization developing the software should plan the development
process and have clear ideas of what to produced and schedule to deliver.
c) Software meets expectation, without failures, and available for use when
needed.
d) Software should be secure and efficient
e) Easy to maintain, meets expectation and to be delivered within budget and to
schedule.
f) Software should be reusable

Downloaded by ???? ????????? ???? ???? (it182120036@avicenna.uobasrah.edu.iq)


lOMoARcPSD|10786172

1.7. Explain how the universal use of the web has changed software systems
and software systems engineering.
Effect on software systems
a) web-based systems that could be developed where, instead of a special-
purpose user interface, these systems could be accessed using a web
browser.

b) Instead of writing software and deploying it on users’ PCs,the software


was deployed on a web server.
c) Change and upgrade the software became cheap as software was
deployed on a web server
d) It also reduced costs, as user interface development is particularly
expensive.
e) Users do not buy software but pay according to how much the software is
used or are given free access in return for
f) watching adverts that are displayed on their screen

Effect on software engineering for web-based systems


a) Software reuse has become the dominant approach for constructing web-
based systems.
b) Web-based systems are always developed and delivered incrementally.
c) Software may be implemented using service-oriented software engineering,
where the software components are stand-alone web services.

1.8. Discuss whether professional engineers should be licensed in the same way
as doctors or lawyers.
Yes certainly professional engineers should be licensed in the same way as
doctors or lawyers. Most of the software deals with intellectual property, country
specific laws for health, finance, education, hospitality and other specialized
institutions. Thus a professional engineers needs to possess required skills, to
better put it through licensing in relevant areas specific to an industry segment
such as HIPPA for healthcare industry, PCI-DSS for payment industry. 21st
century demands for individual to design even the infrastructure to attain a
standard that follows a specific industry requirement. Most of the cloud vendors
have these certifications to ensure clients can trust the code to be run on such
platform. A professional engineer with licensing on specialized industry specific
functions in terms of infra solutions, payments solution, healthcare solution, legal
solution and thus ensures an organizations, country rights are well protected and
follows ethical practices aligned by ACM, IEEE and other pioneer standards.

Downloaded by ???? ????????? ???? ???? (it182120036@avicenna.uobasrah.edu.iq)


lOMoARcPSD|10786172

Chapter 2

Exercises

2.1. Giving reasons for your answer based on the type of system being
developed, suggest the most appropriate generic software process
model that might be used as a basis for managing the development of
the following systems:
- A system to control anti-lock braking in a car
- A virtual reality system to support software maintenance
- A university accounting system that replaces an existing system
- An interactive travel planning system that helps users plan journeys
with the lowest environmental impact.
1. Anti-lock braking system This is a safety-critical system so requires a lot of
up-front analysis before implementation. It certainly needs a plan-driven
approach to development with the requirements carefully analysed. A waterfall
model is therefore the most appropriate approach to use, perhaps with formal
transformations between the different development stages.
2. Virtual reality system This is a system where the requirements will change
and there will be an extensive user interface components. Incremental
development with, perhaps, some UI prototyping is the most appropriate
model. An agile process may be used.
3. University accounting system This is a system whose requirements are fairly
well-known and which will be used in an environment in conjunction with lots
of other systems such as a research grant management system. Therefore, a
reuse-based approach is likely to be appropriate for this.
4. Interactive travel planning system System with a complex user interface but
which must be stable and reliable. An incremental development approach is
the most appropriate as the system requirements will change as real user
experience with the system is gained.

Downloaded by ???? ????????? ???? ???? (it182120036@avicenna.uobasrah.edu.iq)


lOMoARcPSD|10786172

2.2. Explain why incremental development is the most effective approach for
developing business software systems. Why is this model less appropriate for
real-time systems engineering?
Incremental development is established on the indication of developing the
primary execution, showing this to customer/user proxy and changing it over
some versions until the tolerable system has been developed. This incremental
development is a major part of agile approaches and reflects the way that we
resolve software system problems. Generally speaking, developing business
software systems are more difficult, software exhaustive and changes happens
regularly when business processes or targets are changed. In these cases using
incremental development model to achieve business software systems
requirements makes more sense.
Real-time systems accuracy depends both on an input response and the time
taken to produce the output. Generally real-time systems contain many
hardware modules which are cannot be incremental and not easy to alter.
Moreover real-time systems are typically protection critical; it must be built on
a good planned procedure. So, incremental development model is less
appropriate for real-time systems engineering.

2.3. Consider the reuse-based process model shown in Figure 2.3. Explain why
it is essential to have two separate requirements engineering activities in the
process.
In a reuse based process, you need two requirements engineering activities
because it is essential to adapt the system requirements according to the
capabilities of the system/components to be reused. These activities are:
1. An initial activity where you understand the function of the system and set
out broad requirements for what the system should do. These should be
expressed in sufficient detail that you can use them as a basis for deciding of a
system/component satisfies some of the requirements and so can be reused.
2. Once systems/components have been selected, you need a more detailed
requirements engineering activity to check that the features of the reused
software meet the business needs and to identify changes and additions that
are required.

Downloaded by ???? ????????? ???? ???? (it182120036@avicenna.uobasrah.edu.iq)


lOMoARcPSD|10786172

2.4. Suggest why it is important to make a distinction between developing the


user requirements and developing system requirements in the requirements
engineering process.
There is a fundamental difference between the user and the system
requirements that mean they should be considered separately.
1. The user requirements are intended to describe the system’s functions and
features from a user perspective and it is essential that users understand these
requirements. They should be expressed in natural language and may not be
expressed in great detail, to allow some implementation flexibility. The people
involved in the process must be able to understand the user’s environment and
application domain.
2. The system requirements are much more detailed than the user
requirements and are intended to be a precise specification of the system that
may be part of a system contract. They may also be used in situations where
development is outsourced and the development team need a complete
specification of what should be developed. The system requirements are
developed after user requirements have been established

2.5. Describe the main activities in the software design process and the outputs
of these activities. Using a diagram, show possible relationships between the
outputs of these activities.
Specification ———> User Requirements and System Requirements
Development ———> a well documented functional software
system
Validation ———> V&V report
Evolution ———> new version of software system

2.6. Explain why change is inevitable in complex systems and give examples
(apart from prototyping and incremental delivery) of software process activities
that help predict changes and make the software being developed more
resilient to change.

Downloaded by ???? ????????? ???? ???? (it182120036@avicenna.uobasrah.edu.iq)


lOMoARcPSD|10786172

Examples of process activities that support change are:


1. Recording of requirements rationale so that the reason why a requirement is
included is known. This helps with future change.
2. Requirements traceability that shows dependencies between requirements
and between the requirements and the design/code of the system.
3. Design modelling where the design model documents the structure of the
software.

2.7. Explain why systems developed as prototypes should not normally be used
as production systems.
Talking about prototype model, we can say that, it is developed by knowing the
requirements.
A client Interaction with prototype makes the client to have the ability to get
the feel of system.
It is best for large systems as this helps to determine the requirements. It is not
complete, this is because many of its details are yet to be built. Users also
involved in its development.
Production system is a result of organizing inputs, then process is carried out
and then output is based on some logic and functions. Production system fails
if any such arrangement made don't give a desired level of outcome.
If requirements are missed then production system may fail. So prototype
systems are not used as production systems.

2.8. Explain why Boehm’s spiral model is an adaptable model that can support
both change avoidance and change tolerance activities. In practice, this model
has not been widely used. Suggest why this might be the case.
Boehm’s spiral model is an adaptable model. It can support both change
avoidance and change tolerance. Because, this model assumes that changes
are a result of project risks and includes explicit risk management activities to
reduce these risks by each loop in the spiral. Each loop in the spiral is split into
four sectors.

Downloaded by ???? ????????? ???? ???? (it182120036@avicenna.uobasrah.edu.iq)


lOMoARcPSD|10786172

2.9. What are the advantages of providing static and dynamic views of the
software process as in the Rational Unified Process?
An approach to process modelling which is simply based on static activities,
such as requirements, implementation, etc. forces these activities to be set out
in a sequence which may not reflect the actual way that these are enacted in
any one organization. In most cases, the static activities shown in Figure 2.13
are actually interleaved so a sequential process model does not accurately
describe the process used. By separating these from the dynamic perspective
i.e. the phases of development, you can then discuss how each of these static
activities may be used at each phase of the process. Furthermore, some of the
activities that are required during some of the system phases are in addition to
the central static activities shown in Figure 2.13. These vary from one
organization to another and it is not appropriate to impose a particular process
in the model.

2.10. Historically, the introduction of technology has caused profound changes


in the labour market and, temporarily at least, displaced people from jobs.
Discuss whether the introduction of extensive process automation is likely to
have the same consequences for software engineers. If you don’t think it will,
explain why not. If you think that it will reduce job opportunities, is it ethical
for the engineers affected to passively or actively resist the introduction of this
technology?
Process automation surely reduce job opportunities and so is an improvement
of productivity which is totally ethical. It is the responsibility for every living
person to fight against the changing world and march towards new
opportunities. At meanwhile, the society is responsible to help the people
during their migration

Downloaded by ???? ????????? ???? ???? (it182120036@avicenna.uobasrah.edu.iq)


SOFTWARE ENGINEERING 9TH EDITION

CHAPTER 4

4.1. Identify and briefly describe four types of requirement that may be
defined for a computer based system.

Ans: Types of requirements for a computer based system:

Generally, system requirements are included to communicate the functions


that the system should provide. And every computer based systems consists
of many requirements. They are

1. User requirements.
2. System requirements
3. Functional requirements
4. Non-functional requirements.

Description of requirements:

1. User requirements: The requirements are the statements in a natural


language plus diagrams of the services the system provides and its
operational constraints.
2. System requirements: A structured document setting out detailed
description of the system’s functions, services and operational
constraints. Define what should be implemented. It may be part of a
contract between client and contactor.
3. Functional requirements: These are the statement of the services the
system should provide, how the system should react to particular input
and how the system should behave in particular situation.
4. Nonfunctional Requirements: 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.

4.2. Discover ambiguities or omissions in the following statement of


requirements for part of ticket-issuing systems:

An automated ticket-issuing system sells rail tickets. Users select their


destination and input a credit card and a personal identification
number. The rail ticket is issued and their credit card account charged.

IRFAN ZAFAR AWAN


SOFTWARE ENGINEERING 9TH EDITION

When the user presses the start button, a menu display of potential
destinations is activated, along with a message to the user to select a
destination. Once a destination has been selected, users are requested to
input their credit card. Its validity is checked and the user is then
requested to input a personal identifier. When the credit transaction has
been validated, the ticket is issued.
Ans:
Ambiguities and omissions include:

a) Can a customer buy several tickets for the same destination together or
must they be bought one at a time?
b) Can customers cancel a request if a mistake has been made?
c) How should the system respond if an invalid card is input?
d) What happens if customers try to put their card in before selecting a
destination (as they would in ATM machines)?
e) Must the user press the start button again if they wish to buy another
ticket to a different destination?
f) Should the system only sell tickets between the station where the
machine is situated and direct connections or should it include all
possible destinations?

4.3. Rewrite the above description using the structured approach described
in chapter 4 of the textbook. Resolve the identified ambiguities in an
appropriate way.
Ans.

Function – Give customer a rail ticket, and charge credit account


accordingly

Description – Determine customer’s destination, calculate the charge for the


trip, and charge the customer the appropriate amount. If charge is
complete, print the ticket, otherwise, print no ticket, and report
error to customer.

Inputs – Destination, credit card number, personal ID number

Outputs – Tickets, error messages

Action – Ask the customer for their destination, when input, calculate the
total, and prompt for swiping of a credit card, prompt customer for

IRFAN ZAFAR AWAN


SOFTWARE ENGINEERING 9TH EDITION

PIN, prompt customer that the transaction is taking place, if


successful print the ticket and return to start state, if unsuccessful,
ask customer to swipe their card again and re-input the PIN. If
unsuccessful again, prompt that the transaction has failed, and
return to start state.

Requires – Destination, credit card number, and PIN

Pre-condition – None

Post-condition – None

Side effects – Charge to the customer’s credit account

4.4. Write a set of non-functional requirements for the ticket-issuing system,


setting out its expected reliability and response time.
Ans.
Possible non-functional requirements for the ticket issuing system include:

a) Between 0600 and 2300 in any one day, the total system down time
should not exceed 5 minutes.
b) Between 0600 and 2300 in any one day, the recovery time after a
system failure should not exceed 2 minutes.
c) Between 2300 and 0600 in any one day, the total system down time
should not exceed 20 minutes.

All these are availability requirements – note that these vary according to the
time of day. Failures when most people are traveling are less acceptable than
failures when there are few customers.

d) After the customer presses a button on the machine, the display should
be updated within 0.5 seconds.
e) The ticket issuing time after credit card validation has been received
should not exceed 10 seconds.
f) When validating credit cards, the display should provide a status
message for customers indicating that activity is taking place. This tells
the customer that the potentially time consuming activity of validation
is still in progress and that the system has not simply failed.

IRFAN ZAFAR AWAN


SOFTWARE ENGINEERING 9TH EDITION

g) The maximum acceptable failure rate for ticket issue requests is 1:


10000.

4.5 : Using the technique suggested here, where natural language


descriptions are presented in a standard format, write plausible user
requirements for the following functions:

An unattended petrol (gas) pump system that includes a credit card


reader.
1. The customer swipes the card through the reader then specifies
the amount of fuel required. The fuel is delivered and the
customer’s account debited.
2. The cash-dispensing function in a bank ATM.
3. The spelling-check and correcting function in a word processor.
ANS…
I.
1) User swipes their card and then enters zip code for credit or pin for debit.
2) User enters the amount of fuel they want to purchase from the station.
3) User then will place the pump nozzle into their car to retrieve the gas.
4) When their desired amount has been dispersed the pump will stop
pumping gas and the customer will be given a receipt of their purchase.

II.
1).User swipes card at the atm card reader.
2) User enters their pin number on the keypad.
3) User then enters the amount of money to be withdrawn from specified
account.
4) If the withdraw amount does not exceed the balance then the money is
dispersed to the customer and a receipt is given with remaining balance.

III.
1) user clicks on the button to run the spell check in the word processor
2) user is then prompted for each error the spell check function finds and is
presented with possible fixes.
3) User either chooses a recommended fix of the problem or chooses to
ignore the error until all errors have been accounted for.

IRFAN ZAFAR AWAN


SOFTWARE ENGINEERING 9TH EDITION

4.6). Suggest how an engineer responsible for drawing up a system


requirements specification might keep track of the relationships
between functional and non-functional requirements.

Ans: In software development, these relationships you're trying to make are


almost certainly never going to be one-to-one. Without knowing more about
your project, I'd say your best bet would be to start by systematically
separating your project into sections and to developing the requirements lists
around each of those modules.
For each section, once you've got requirements lists drawn out, go through
each and decide where (if any) there are any conflicts or dependencies
between and within the lists, even if they are minor. Document each
extensively, on *both* sides of the conflict/dependency. Redundancy is okay
here.
If you need something to present to bosses/professors, displaying the
functional and non-functional key points in two columns for each section
with directional conflict/dependency arrows between each should be
sufficiently simple.

4.7 : Using your knowledge of how an ATM is used, develop a set of use-cases
that could serve as a basis for understanding the requirements for an
ATM system.

1. The user is prompted to enter a card.


2. The user enters their card.
3. The user is prompted to enter their PIN.
4. The user enters their PIN.
5. The user is prompted to withdraw or check balance
6. The balance is displayed.
7. If withdraw is chosen, the user is prompted to enter the amount to
be withdrawn.
8. If withdraw is chosen, the amount is compared with the balance,
and if enough money is available, the money is dispensed.

IRFAN ZAFAR AWAN


SOFTWARE ENGINEERING 9TH EDITION

9. If withdraw is chosen, the user is prompted to take the dispensed


money.
10. The user is prompted to take their card.
11. All transactions are complete, and display a happy message forth
user.

IRFAN ZAFAR AWAN


SOFTWARE ENGINEERING 9TH EDITION

4.8). who should be involved in a requirement review? Draw a process model


showing how a requirement review might be organized.

Ans.. The primary stakeholders should be involved in the requirements review, as


well as those involved with the development of the system, and the project
managers who are in charge of the budget and scheduling of the system.

IRFAN ZAFAR AWAN


SOFTWARE ENGINEERING 9TH EDITION

4.9). When emergency changes have to be made to system, the system


software may have to be modified before changes to the requirements
have been approved. Suggest a process model for making these
modifications that ensures that the requirements document and the
system implementation do not become inconsistent.

Answer:

4.10 You have taken a job with a software user who has contracted your
previous employer to develop a system for them. You discover that your
company’s interpretation of the requirements is different from the
interpretation taken by your previous employer. Discuss what you
should do in such a situation. You know that the costs to your current
employer will increase if the ambiguities are not resolved. However, you
have also a responsibility of confidentiality to your previous employer.

Ans: The key here is the ambiguities....there is nothing illegal about resolving the
interpretation of ambiguities. i would discuss the ambiguities, and email a
bullet pointed list of the specific ambiguities and recommendations to my
current employer specific decision maker.

IRFAN ZAFAR AWAN


1) Explain why it is important to model the context of a system that is
being developed. Give two examples of possible errors that could
arise if software engineers do not understand the system context?
Because context models show the environment that includes several others
automated systems. These models will help in getting a clear view of the
system to be developed and several other systems involved.
Two examples:
1.) The software engineers may miss some functionality to be included which
require coordinating with automated systems.
2.) The system design and development may be deviated from the actual
functionality as some requirements may not be known properly?
2) How might you use a model of a system that already exists?
Explain why it is not always necessary for such a system model to
be complete and correct. Would the same be true if you were
developing a model of a new system?
You might create and use a model of a system that already exists for the followin
g reasons:
1. To understand and document the architecture and operation of the existing sys
tem
2. To act as the focus of discussion about possible changes to that system.
3. To inform the re-implementation of the system.
You do not need a complete model unless the intention is to completely
document the operation of the existing system. The aim of the model in such
cases is usually to help you work on parts of the system so only this need to be
modeled. Furthermore, if the model is used as a discussion focus, you are
unlikely to be interested in details and so can ignore parts of the system in the
model.
This is true, in general, for models of new systems unless a model-based
approach to development is taking place in which case a complete model is
required. The other circumstance where you may need a complete model is when
there is a contractual requirement for such a model to be produced as part of the
system documentation.
3) For the MHC-PMS, propose a set of use cases that illustrates the
interactions between a doctor, who sees patients and prescribes
medicine and treatments, and the MHC-PMS.?
-The MHC-PMS (Mental Health Care-Patient
Management System) is an information system that is intended for use in clinics.
- It makes use of a centralized database of patient information but has also been
designed to run on a PC, so that it may be accessed and used from sites that do
not have secure network connectivity.
-When the local systems have secure network access, they use patient
information in the database but they can download and use local copies of
patient records when they are disconnected.

4) Develop a sequence diagram showing the interactions involved


when a student registers for a course in a university. Courses may
have limited enrollment, so the registration process must include
checks that places are available. Assume that the student accesses
an electronic course catalog to find out about available courses?
A relatively simple diagram is all that is needed here. It is best not to be too
fussy about things like UML arrow styles as hardly anyone can remember the
differences between them

5) Look carefully at how messages and mailboxes are represented in


the e-mail system that you use. Model the object classes that
might be used in the system implementation to represent a
mailbox and an e-mail message?
6) Based on your experience with a bank ATM, draw an activity
diagram that models the data processing involved when a
customer withdraws cash from the machine?

……………………………………………………………………………………………………
CHAPTER-6
1) When describing a system, explain why you may have to design
the system architecture before the requirements specification is
complete?
The architecture may have to be designed before specifications are written to
provide a means of structuring the specification and developing different sub-
system specifications concurrently, to allow manufacture of hardware by sub-
contractors and to provide a model for system costing
2) Explain why design conflicts might arise when designing an
architecture for which both availability and security
requirements are the most important non-functional
requirements?
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.
3) 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?
-Because it as a stylized, abstract description of good practice, which has been
tried and tested in different systems and environments. So, an architectural
pattern should describe a system organization that has been successful in previous
systems. It should include information of when it is and is not appropriate to use
that pattern, and the pattern’s strengths and weaknesses.
- You should also include information about when the pattern should be used and
its advantages and disadvantages. Graphical models of the architecture associated
with the MVC pattern

4) Suggest architecture for a system (such as iTunes) that is used to


sell and distribute music on the Internet. What architectural
patterns are the bases for this architecture?
- Shows a possible run-time architecture when this pattern is used for interaction
management in a web-based system.
……………………………………………………………………………………………………
CHAPTER-7
1) Using the structured notation shown in Figure 7.3, specify the
weather station use cases for Report status and Reconfigure.
You should make reasonable assumptions about the
functionality that is required here?

System: Weather station


Use case: Report status
Actors: Weather information system, weather station
Data: The weather station sends a status update to the weather information system
giving information about the status of its instruments, computers and power supply.
Stimulus: The weather information system establishes a satellite link with the
weather station and requests status information.
Response: A status summary is uploaded to the weather information system
Comments: System status is usually requested at the same time as the weather
report.

System: Weather station


Use case: Reconfigure
Actors: Weather information system, weather station
Data: The weather information station sends a reconfiguration command to the
weather station. This places it into remote control mode where further commands
may be sent from the remote system to update the weather station software
Stimulus: A command from the weather information system.
Response: Confirmation that the system is in remote control mode
Comments: Used occasionally when software updates have to be installed.

2) Assume that the MHC-PMS is being developed using an object


oriented approach. Draw a use case diagram showing at least six
possible use cases for this system?
Report weather: send weather data to the weather information system
Report status: send status information to the weather information system
Restart: if the weather station is shut down, restart the system
Shutdown: shut down the weather station
Reconfigure: reconfigure the weather station software
Powers save: put the weather station into power-saving mode
Remote control: send control commands to any weather station subsystem
3) Using the UML graphical notation for object classes, design the
following object classes, identifying attributes and operations.
Use your own experience to decide on the attributes and
operations that should be associated with these objects.
- a telephone
- a printer for a personal computer
-a personal stereo system
- a bank account
- a library catalog?
There are many possible designs here and a great deal of complexity can be added to
the objects. However, I am only really looking for simple objects which encapsulate
the principal requirements of these artifacts'. Possible designs are shown in the
above diagram.
4) Develop the design of the weather station to show the
interaction between the data collection subsystem and the
instruments that collect weather data. Use sequence diagrams
to show this interaction?

You might also like