Vous êtes sur la page 1sur 46

PRESSMAN BOOKS QUESTION SOLUTION

PRESSMAN BOOKS QUESTION SOLUTION


Chapter 1

1.1 Provide at least five additional examples of how the law


of unintended consequences applies to computer
software.
Step-by-step solution
Step 1 of 2
The law of unintended consequences:
The law states that “while observing the problem in a deep way, it seems to be
clear and a solution also seems to
Sure-fire. But at the same time the solution also creates another problem”.

Step 2 of 2
Examples of the law of unintended consequences:
1. Boy and girl internet friend ship:
Instant messengers were developed as a solution for fast, real time
communication.
The problem that rose with this type of software is that - strangers can
communicate
with each other.
2. Way of chatting in mobile phone:
Mobile phone communication technology helped in erasing communication
barriers.
But the same technology showed a path to anti-social elements in creating
havocs.
3. War (Web – apps span a wide array of applications):
Computers are used in the every field, which was a change the strategies of the
user. One of the examples is
Digital automobile dashboard that shows an image in high quality resolution.
• This type of image was harmful to create an impact on the social network users.
• It can be little more than a set of lined hypertext _les that present information
using text and limited graphics.
• However, as e –commerce and B2B applications grow in importance, web apps
are evolving in sophisticated
computing environments.
PRESSMAN BOOKS QUESTION SOLUTION

4. Enjoying the videos in piracy DVD/media:


The advent of laser disc technology helped to store the data easily at low costs.
Due to the low cost, the audio and video material is getting pirated.
5. Missile tracking system:
It is a great achievement in embedded systems area. The Missile tracking
system used to know about the paths of a
missile.
• Actually it is a software system developed with an intension of fisnding out the
path or to track the path generated
or motion by a missile.
• But this has become curse. This technology is now being widely used for darker
side rather than for a right
purpose.
1.2 .Provide a number of examples (both positive and
negative) that indicate the impact of software on our society.
Positive
Step-by-step solution:
Step 1 of 3
Software is both product and a vehicle that delivers a product. Software delivers
the most important product of our
time information. If transforms personal data so that data can be more useful in a
local context; it manages
business information to enhance competitiveness ; it provides gateway to world
wide information networks and
provides the means for acquiring information in all of its forms.

1.3.Develop your own answers to the five questions asked at


beginning of section 1.1. Discuss them with fellow students.
Step-by-step solution:
Step 1 of 3
Today, a huge software industry has become a dominant factor in the economies
of the industrialized world. But
yet questions that were asked are e
(1) Why does it take so long to get software finished:
Ans: Software development is an iterative process. User requirements are
collected, through communication and
the analysis is done on that and finally go for design. In between user can specify
some more requirements and may need some modifications. This takes
development process to starting point. User may not be satisfied with the
PRESSMAN BOOKS QUESTION SOLUTION

developed system, it has to undergo the refinement. There fore if take so long to
get software finished.
1.4. Many modern applications change frequently—before they are presented to the
end user and then after the first version has been put into use. Suggest a few ways
to build software to stop deterioration due to change.
Solution;
Gather the required information.
Designer and customer define the overall objectives for the software.
Identify the known requirements.
After building a prototype the developer uses an existing program fragment, this will help the
working program to complete quickly.
To maintain and improve our technical competence and to undertake technological tasks for
others only if qualified by training or experience, or after full disclosure of pertinent limitations.
Documents should be developed in a timely manner, to do this documentation standards are
defined and mechanisms are established.
Review works done up to a particular stage.
There should be a backup person for every critical team member.
Check whether the risk aversion steps are being properly applied or not. Check whether the
necessary information for future risk analysis is necessary to collect.
1.5. Consider the seven software categories presented in Section 1.1.2. Do you think
that the same approach to software engineering can be applied for each? Explain
your answer.
Step-by-step solution:
Step 1 of 3
Software is engineered, not manufactured.
Nature of software:
The computer software is the product that is built by the software professionals, supported for a
long term.
• It defined with the various programs and approaches presented in the form of architecture.
• Nowadays, software plays a major role because it affects every aspect of the human life in
all the activities.
• In the world, it is placed as a most important technology to improve business, science,
engineering, etc.,
• The importance of software is increasing and growing as software community developing the
technologies
continue to make the life easier, less expensive, faster, and high-quality programs are
maintained.
• Software manages to play a dual role that, it acts as a product and as a vehicle (medium) to
deliver a product;
managing both personal and business information in any manner, also acts a medium for
software threats.
• The role of computer software deals with the signi_cant change over the years, to become a
dominant factor in
the industrialized world.
• Also, there are more concerns about the software being developed to examine the
characteristics of the
software’s that are built by the human world.
PRESSMAN BOOKS QUESTION SOLUTION

• Every software failure leads to an error that complexes the entire system pretends to give
challenges continuously
to the software engineers.
Seven broad categories of computer software present continuing challenges for software
engineers are shown
below:
1. System software
2. Application software
3. Engineering / scienti_c software
4. Embedded software
5. product – line software
6. Web – application
7. Arti_cial intelligence software.
Software Engineering approach:
Software engineering is an engineering discipline which involves all the aspects of software
production from the
starting stage to the _nal stage by maintaining the speci_cations of the system.
• It allows the professionals to build the high-quality computer software which
encompasses a process, a
collection of methods and the tools of the array.
• It completes the profession with a discipline of work to build a complex system in a timely
manner.
• It is the application of a systematic, quanti_able, disciplined approach to the development,
operation, and
maintenance of the software.
• This study approaches the application engineering of the software with a technology of
layers.
• It de_nes all the forms to its application software’s which should be engineered.
• It ultimately leads to the continuous process improvement to approach the effectiveness of
software applications
to software engineering.
• It provides the techniques how-to build the software that includes all the stages of the
software development
with the descriptive techniques.
• These tools provide the full support of the software development to go through all the
stages of the software to
be engineered.

Chapter 2
2.1. Figure 2.1 places the three software engineering layers on top of a layer
entitled “A quality focus.” This implies an organizational quality program such as
total quality management. Do a bit of research and develop an outline of the key
tenets of a total quality management program.
FIGURE 2.1 Software engineering layers
PRESSMAN BOOKS QUESTION SOLUTION

Step-by-step solution:
Step 1 of 2
Software engineering is the layered approach which contains process, methods, and tools. The
method contains a
variety of tasks which includes requirements phase, analysis phase, design and modelling
phase, program
construction phase, testing and support phase.
Software engineering methods depends on certain principals which includes modelling
activates.
The process and methods are provided with automated or semi-automated support for the
fourth layer “tools”.
Step 2 of 2
Key tenets for total quality management program are given below:
• To have perfect vision, Mission and Values
o Create orientation program to educate employees about organizational goals and
achievements.
• Identifying critical success factor (CSF)
o CSF is useful in identifying the objectives set by the organization and how to achieve them.
Some of the
examples of CSF are:
• Financial Performance
• Customer Satisfaction
• Market Share
• Employee Satisfaction
• Product Quality
• Metrics to track CSF data
• Identify key customer group
• Customer feedback
• Develop survey tool
• Quality improvement plan
• Resurvey after certain time period
• Technology
2.2 Is software engineering applicable when Web-Apps are built? If so, how might it
be modified to accommodate the unique characteristics of Web-Apps?
Step-by-step solution:
Step 1 of 3
4633-1-7P SA: 4475
SR: 6376
PRESSMAN BOOKS QUESTION SOLUTION

Yes, software engineering is applicable, when WebApps are built because it is a layered
technology and consists of
Tools, Methods, Process, and A quality focus.
WebApps exhibit some unique attributes like, Network intensiveness, concurrency, availability,
security etc.
These unique characteristics of WebApps can be accommodated through a generic process
framework for
software engineering. It encompasses _ve activities and they are modi_ed to accommodate the
WebApps.
Modi_ed process framework activities for WebApps are:
1. Customer communication (analysis/formulation) - Setting the goals, objectives and scope of
the _rst increment.
2. Planning - _ne grained estimates and schedule for the _rst increment, coarser estimates for
subsequent
increments.
3. Modeling - Establishes requirements and identi_es content items, content design,
architectural design,
navigational design, and interface design.
4. Construction - page generation and testing, merging of content and technical designs to
produce executable
web pages that are exercised to uncover errors.
5. Deliver and evaluation - Increment is reviewed and changes required by customer are
integrated into the next
increment.
2.3. As software becomes more pervasive, risks to the public (due to faulty
programs) become an increasingly significant concern. Develop a doomsday but
realistic scenario in which the failure of a computer program could do great harm,
either economic or human.
There are literally dozens of real life circumstances to choose from. For example, software
errors that have caused major telephone networks to fail, failures in avionics that have
contributed to plane crashes, computer viruses (e.g., Michelangelo) that have caused significant
economic losses and attacks on major e-‐commerce sites.
2.4. Describe a process framework in your own words. When we say that framework
activities are applicable to all projects, does this mean that the same work tasks are
applied for all projects, regardless of size and complexity? Explain. Step-by-step
solution:
Step 1 of 3
A process framework establishes foundation for a complete software process by identifying a
small number of
framework activities that are applicable to all software projects, regardless of their size or
complexity. The process
framework encompasses a set of umbrella activities that are applicable across the entire
software process.
2.5. Umbrella activities occur throughout the software process. Do you think they
are applied evenly across the process, or are some concentrated in one or more
framework activities?
Step-by-step solution:
PRESSMAN BOOKS QUESTION SOLUTION

Step 1 of 3
The activities that are used to keep the progress of the software development process in check
are known as
umbrella activities. They are included inside the frameworks.
2.6. Add two additional myths to the list presented in Section 2.4. Also state the
reality that accompanies the myth.
2.16. it is possible o prove that a software component that even an entire program
is correct.so why doesn`t do this………/2018/2-c
Yes, it is possible to prove that a software component and even an entire program is correct, but
it takes move time.
Though the entire program is tested as we say that there is no 100% successful test, the
program may go out of
reach some times. In order to make the entire program correct, we need to test the each &
every possible test case
but generally all the test cases may not be tested because some of the test cases may be
unknown and the lock of
time factor and the lack of coordination between the developers and the customers
Chapter 3
3.1. In the introduction to this chapter Baetjer notes: “The process provides
interaction between users and designers, between users and evolving tools, and
between designers and evolving tools [technology].” List five questions that (1)
designers should ask users, (2) users should ask designers, (3) users should ask
themselves about the software product that is to be built, (4) designers should ask
themselves about the software product that is to be built and the process that will
be used to build it. Step-by-step solution:
Step 1 of 4

(a) Users should ask designers


1. Will you tell me a little bit about yourself ?
2. How long have you been in business?
3. What your specialty ? How much does it cost?
4. What if I’m not happy with the design?
5. Will you show me a few samples of your ideas for my project so I can get a feel for your
work?
Step 2 of 4
(b) Designers should ask users.
1. What are all of your needs for this project?
2. What is the timeline, deadline for this project?
3. Who will use this project?
4. What sites do you 􀅜nd similar?
5. Who will be your competitors>
Step 3 of 4
(c) Designers should ask themselves.
1. What kind of development tools he / she uses?
2. How many applications he / she previously designed?
3. Does your web designer publish a blog?
4. Does all requirements re􀅜ect in the software?
5. What’s the maintenance record?
PRESSMAN BOOKS QUESTION SOLUTION

Step 4 of 4
(d) Users ask themselves.
1. How quickly developer understand my requirements?
2. Do I have budget to build it correctly?
3. Do I have the human resources to effectively maintain this functionality?
4. Does adding this functionality help me achieve my goals?

3.2. Discuss the differences among the various process flows described in Section
3.1.
Can you identify types of problems that might be applicable to each of the generic
flows described?
Step-by-step solution:
Step 1 of 3
The software engineering process basically de􀅜nes 5 framework activities. They are
communication, planning,
modeling, construction and deployment. They four types of process 􀅜ow begin with
communication activity.

Difference between the various process flows are described in section 3.1 are given in table
below:-
PRESSMAN BOOKS QUESTION SOLUTION

3.3. Try to develop a set of actions for the communication activity. Select one action
and define a task set for it.
Task Set for Communication Activity: A task set would define the actual work to be done to
accomplish the objectives of a software engineering action. For the communication activity
these are:
Make a list of stakeholders for the project
Invite all the stakeholders to an informal meeting
Ask them to make a list of features and functions
Discuss requirements and build a final list
Prioritize requirements and note the areas that he is uncertain of
These tasks may be larger for a complex software project, they may then include
To conduct a series of specification meetings, build a preliminary list of functions and features
based on stakeholder input.
To build a revised list of stake holder requirements Use quality function deployment techniques
to prioritize the requirements.
Note constraints and restrictions on the system.
Discuss methods for validating system.
3.4. A common problem during communication occurs when you encounter two
stakeholders who have conflicting ideas about what the software should be. That is,
you have mutually conflicting requirements. Develop a process pattern (this would
be a stage pattern) using the template presented in Section 3.4 that addresses this
problem and suggest an effective approach to it.

Step-by-step solution

Step 1 of 3
When stakeholders have con􀅜icting, the following process pattern describes an approach
about what the software should be
Pattern name: Con_icting Requirements
Intent: This pattern describes an approach for identifying and making a list of the requirements
specified by the stakeholders.
Type: Stage pattern.
Initial context:
The following conditions must be met prior to the initiation of this pattern.
1. Stake holders have been identi􀅜ed;
2. A mode of communication between stakeholders and the software team has been
established;
3. The overriding software problem to be solved has been identi􀅜ed by stakeholders;

Chapter 4

4.1. Provide three examples of software projects that would be amenable to the
waterfall model. Be specific.
Step-by-step solution:

Step 1 of 4
Waterfall model is a sequential approach to software development that begins with customer
speci_cation
PRESSMAN BOOKS QUESTION SOLUTION

requirements and progresses through planning, modeling, construction and deployment


The waterfall model is appropriate for projects with the following characteristics:
(1) The problem is well understood (requirements are well-de_ned);
(2) The delivery date is realistic;
(3) it's unlikely that major changes in requirements will be requested as the project proceeds
Step 2 of 4
Communication project initiation, requirements gathering
Planning Estimating, scheduling, tracking
Modeling Analysis and design
Construction code and test
Deployment delivery, support and feedback.
Example software project – (1) transaction Maintenance system (TMS)
(2) Us Department of defense
(3) NASA
Step 3 of 4
(1) Transaction Maintain once system
Phase 1. Preliminary investigation: Aim of this phase is not develop system but to
investigate the problem.
Phase 2. Requirement analysis: This phase is concerned abort the collection of
requirements. Out put of this phase is SRS document.
Phase 3. System design: (1) Algorithm
(2) Data structure
(3) software architecture
(4) Interface design
Phase 4. coding
Phase 5. Integration & Testing
Phase 6. Implementation & maintain once.
Step 4 of 4
In similar lines, us department of defense and NASA uses the waterfall model in an extensive
way. As waterfall
model is a sequential approach and many increments can be applied after the evolution of
software in this model,
it is well suited for large and long term projects.
Along with these software projects, many government projects follow waterfall model.

4.2. Provide three examples of software projects that would be amenable to the
prototyping model. Be specific.
Step-by-step solution:

Step 1 of 3
Software applications that are relatively easy to prototype almost always involve human-
machine interaction.
When the customer has a legitimate need but is clueless about the details then develop a
prototype as a _rst step.
A customer de_nes a set of general objectives. For these
applications that are amenable to prototyping are certain classes of mathematical algorithms,
subset of command
driven systems and other applications where results can be easily examined without real-time
interaction.
PRESSMAN BOOKS QUESTION SOLUTION

4.3. What process adaptations are required if the prototype will evolve into a
delivery system or product?
Ans Step-by-step solution:

Step 1 of 3
Prototyping
Prototyping paradigm assists the developers and the stakeholders to better understand what to
build when the
requirements are fuzzy. Refer to _gure 4.4 from the text book.

4.4. Provide three examples of software projects that would be amenable to the
incremental model. Be specific.
Ans:
Step-by-step solution:

Step 1 of 3
Software projects for incremental model
Incremental model:
The incremental model delivers a series of releases, called increments that provide
progressively more functionality
for the customer as each increment is delivered.
The incremental model combines elements of waterfall model applied in an iterative fashion.
Incremental model
applies linear sequences in a staggered fashion as time progresses.
Incremental model is widely used to solve the problem of better integrating human factors into
the system
engineering and acquisition process.

4.5. As you move outward along the spiral process flow, what can you say about the
software that is being developed or maintained?
Ans: As work moves outward on the spiral, the product moves toward a more complete state
and the level of abstraction at which work is performed is reduced (i.e., implementation specific
work accelerates as we move further from the origin).

4.6. Is it possible to combine process models? If so, provide an example.


Ans:

Step-by-step solution:
Step 1 of 3
Combine Process Models
Yes, it is possible to combine the software process models.
Some possibilities to combine of software process models are given below,
1) Evolutionary process model.
2) Incremental process model.
3) The spiral model
PRESSMAN BOOKS QUESTION SOLUTION

4.7. The concurrent process model defines a set of “states.” Describe what these
states represent in your own words, and then indicate how they come into play
within the concurrent process model.
Concurrent modeling defi nes a series of events that will trigger transitions
from state to state for each of the software engineering activities, actions, or tasks.
For example, during early stages of design (a major software engineering action
that occurs during the modeling activity), an inconsistency in the requirements
model is uncovered. This generates the event analysis model correction , which
will trigger the requirements analysis action from the done state into the awaiting
changes state.
Concurrent modeling is applicable to all types of software development and
provides an accurate picture of the current state of a project. Rather than confi
ning software engineering activities, actions, and tasks to a sequence of events,
it defi nes a process network. Each activity, action, or task on the network exists
simultaneously with other activities, actions, or tasks. Events generated at one
point in the process network trigger transitions among the states associated with
each activity.
4.8. What are the advantages and disadvantages of developing software in which
quality is “good enough”? That is, what happens when we emphasize development
speed over product quality?
Ans:Step-by-step solution:
Step 1 of 3
The advantages of developing software in which quality is “good enough” are
• Completeness – All the requirements are re_ected in the software
• Conciseness – Compactness
• Reliability – No faulty outputs
• Improved user satisfaction.
• Reduced cost of maintenance
• Efficiency – Amount of computing resources and cost required by a program to perform a
function.
• Consistency.
We have to compromise with the advantages of quality software, where speed is major
constraint but the speed
has its own pros and cons.

Advantages

Improve leadership and management skills by increased self development.

· Creates an atmosphere conscious of quality.


· Function as a nucleus for company wide quality control at the workshop level.
· Increases employee morale and sense of common goal.
· Employees need to be well educated and have a good understanding of the organisation
beyond own work area.
· Quality circles cost effective.
· Frees management -shop floor workers best located to identify problems.
Disadvantages
PRESSMAN BOOKS QUESTION SOLUTION

· Intensity of work increases -as more problems are solved more is expected of workers.
· Can be introduced for incorrect reasons ie. attitude change.
· Management needs to be fully committed to quality systems -if solutions not implemented can
be frustrating for participants.
· Can have a negative effect on industrial relations.
· Can focus on mundane problems.
4.9. Provide three examples of software projects that would be amenable to the
component-based model. Be specific.
Ans:
Step-by-step solution:
Step 1 of 3
Commercial off – the shelf software components, developed by vendors who offer them as
products , can be used
when software is to be built. These components provide targeted functionality with well de_ned
interfaces that
enable the component to be integrated into the software.
Regardless of the technology that is used to create the components, the component – based
development model
incorporates the following steps.
• Available component – based products are researched
• Component integration issuers are considered
• Comprehensive testing is conducted to ensure proper functionality.

4.10. It is possible to prove that a software component and even an entire program
is correct. So why doesn’t everyone do this?Ans:
Step-by-step solution:

Step 1 of 3
Yes, it is possible to prove that a software component and even an entire program is correct, but
it takes move time.
Though the entire program is tested as we say that there is no 100% successful test, the
program may go out of
reach some times. In order to make the entire program correct, we need to test the each &
every possible test case
but generally all the test cases may not be tested because some of the test cases may be
unknown and the lock of time factor and the lack of coordination between the developers and
the customers.
4.11. Are the Unified Process and UML the same thing? Explain your answer.
Ans:
Step-by-step solution:

Step 1 of 3

Unified process and UML


No, Unified process and the UML is not the same thing.
Unified process:
The Unified process is a type of framework, which is used for UML in software engineering. It is
a popular iterative
PRESSMAN BOOKS QUESTION SOLUTION

and incremental software development process which should be customized for specific
organization or project.
Unified Modeling Language (UML):
UML is a standardized general – purpose modeling language in the field of software
engineering. It is a modeling
notation and language consists of a technology which supports the object-oriented (and
conventional) software
engineering practice.
And also, UML is a graphical language for visualizing, specifying, and constructing the artifacts
of software –
intensive system

Chapter 5
5.1. Reread the “Manifesto for Agile Software Development” at the beginning of this
chapter.
Can you think of a situation in which one or more of the four “values” could get a
software team into trouble?
Ans:
Step-by-step solution:

Step 1 of 2
Manifesto for agile software development:
Better ways of developing software are as follows:
1. Individuals and Interactions over Processes and Tools:
It is the _rst value proposition of the manifesto. In this tool should be used for capturing
requirements, version
control, project planning, editing, _le transfer, etc. Here the process can get in the way, and it is
more important to
get to the point which is using the interaction over process and will get you much better results.
2. Working Software over Comprehensive Documentation:
This tells about the importance of documentation, which is often lacking in projects and can
cause problems.
It is not important, but, when it comes down to a choice between _nishing a project with a
working outcome. It is
really important to the client.
3. Customer Collaboration over Contract Negotiation:
The purpose of contract negotiation is to ensure that responsibilities and deliverables are clear,
as well as providing
a framework for resolving issues should they arise. Relationship with the client are able to
resolve things amicably,
a contract is more like an insurance policy should things go wrong.
4. Responding to Change over Following a Plan:
The purpose of the plan is to know what you are deviating from when you have to make a
change. Change is
inevitable, there's no point in _ghting it.
Creating the initial project plan is an important process to capture all the tasks required, the
ideal order in which
they should be done, and most importantly, to identify dependencies. However, the initial project
plan and how
PRESSMAN BOOKS QUESTION SOLUTION

things happen in reality are often quite different


Step 2 of 2
De_nitely one or more of the four “Values” could get a software team into trouble.
Example:
The customer, programmer interaction may not go well, the user may not specify
all the requirements that the
software must under go. There may be a misunderstanding in the interaction
between customer and the
developer. In such situations the software teams automatically creeps into
troubles.
So, from the fourth value, the software team will get into trouble.
Agile process models have been designed to address the following issues:
1. Importance of self-organizing team that has control over work they perform.
2. Communication and collaboration between team members, practitioners and
their customers.
3. An emphasis on rapid delivery of software that satis_es the customer.

5.2. Describe agility (for software projects) in your own


words.
Step-by-step solution:
Step 1 of 3
The word agility means “To do something very quickly”. Thus, agility in terms of
software development is to
develop a software which meets all the requirement speci_ed by the customer,
and always ready to accept the
changes required by the customer even in later phases.

121

Although, I have not had the chance to have to work with the agile process in my
current profession, I do believe I have a great understanding of it, in comparison to
other models. What sticks out to be the most is it's "flexibility" and it's abilities to
cater to the employers and not solely on the project ONLY. Meaning, people and
interactions are emphasized rather than process and tools. Customers, developers and
testers constantly interact with each other. Particularly in software projects, I think it's
imperative that there is an atmosphere that can adapt to change and have constant
improvement. Software is rapidly changing around us and everyday it's not only new
but continuous innovations with existing product. With that said, in order to "keep up
PRESSMAN BOOKS QUESTION SOLUTION

with the Jones's", implementing the agile model is the best practice to ensure "quality"
is maintained and there is a continuous delivery of software

5.3. Why does an iterative process make it easier to


manage change? Is every agile process discussed in this
chapter iterative? Is it possible to complete a project in
just one iteration and still be agile? Explain your answers.
Ans:

Step-by-step solution:
Step 1 of 3
The software team manages change by focusing on a de􀅜ned increment and
postponing any changes until the
next increment. All agile process models are iterative/incremental.
An iterative process make it easier to manage changes. Since each iteration is a
mini – project, the project team
addresses, to some extent, all the risks associated with the project as a whole
each time it builds an increment of
the system. As risks become greater, as delays occur, and as the environment
become more unstable. The team is
able to make necessary adjustments on a relatively small scale and propagate
those adjustments across the entire
project. An iterative process has greater 􀅜exibility to change the plan. Hence it is
easier to manage the changes.

5.4. Could each of the agile processes be described using


the generic framework activities noted in Chapter 3?
Build a table that maps the generic activities into the
activities defined for each agile process.
Ans:
Step 1 of 3
The generic process framework can be applied to each agile process described
in this chapter. The table should list
all agile process models across the _rst row and all generic framework activities
• Communication
• Planning
• Modeling
• Construction
PRESSMAN BOOKS QUESTION SOLUTION

• Deployment.

5.5. Try to come up with one more “agility principle” that


would help a software engineering team become even
more maneuverable.
Ans:
Step 1 of 3
One more additional agility principle –
Less is more:
Always model for a purpose, either to communicate, or to understand. Don’t
create models for other people unless
you know how and by whom they will be used

5.6. Select one agility principle noted in Section 5.3.1 and


try to determine whether each of the process models
presented in this chapter exhibits the principle. [Note: We
have presented
an overview of these process models only, so it may not
be possible to determine whether a principle has been
addressed by one or more of the models, unless you do
additional research (which is not required for this
problem).]
Ans:
Step 1 of 3
Agile processes embrace change as essential to the customer's competitive
advantage. Each of the process models
presented in this chapter exhibits this principle.
Selected one agility principle is: “Working software is the primary measure of
progress”.
1. Extreme programming (XP):
Planning activity begins with the creation of a set of stories. A value is assigned
to each story and XP team will
assess each story & assign a cost. Finally the XP story will evolve as working
software.

5.7. Why do requirements change so much? After all,


don’t people know what they want?
PRESSMAN BOOKS QUESTION SOLUTION

Ans:
5.8. Most agile process models recommend face-to-face
communication. Yet today, members of a software team
and their customers may be geographically separated
from one another. Do you think this implies that
geographical separation is something to avoid? Can you
think of ways to overcome this problem?
Ans:
Most agile process models recommend face-‐to-‐face communication. Yet today,
members of a software team and their customers may be geographically separated
from one another in that case Communication is the key, the consumer and developer
should constantly be communicating even if they are geographically separated, they
can webtalk or talk over the phone every now and then or write emails, use chatting as
the, means or a medium of conference call communication where 2 and more people
can talk to each other at the same time.

5.9. Write an XP user story that describes the “favorite


places” or “favorites” feature available on most Web
browsers.
Ans:

Step 1 of 3
Internet bookmarks are stored webpage locations that can be retrieved. The
main purpose is to easily catalog and
access web pages that a user has visited and choose to save. Saved links are
called “favorites”, and by virtue of the
browser’s large market share, the term favorite has been synonymous with
bookmark since the early days of widely
– distributed browsers. Bookmark are normally visible in a browser menu and
stored on the user’s computer and
commonly a metaphor is be used for organization.

5.10. What is a spike solution in XP?


Ans:
PRESSMAN BOOKS QUESTION SOLUTION

Step 1 of 3
Extreme Programming (XP):
• Extreme programming (XP) is a popular agile software development
methodology used to implement the
software project.
• XP uses an object-oriented approach as its preferred development paradigm.
• XP encompasses a set of rules and practices that occur within the context of
framework activities.

5.11. Describe the XP concepts of refactoring and pair


programming in your own words.
Ans:
Step 1 of 3
Refactoring:
It is a construction technique. Extreme programming (XP) encourages
refactoring. Refactoring is the process of
changing a software system in such a way that it does not alter the external
behavior of the code yet improves the
internal structure.. it is a disciplined way to clean up the code that minimizes the
chance of introducing bugs. The
intent of refactoring is to control the modi_cations by suggesting small design
changes that can radically improve
the design. The design occurs both before and after coding commences.
Refactoring means that design occurs
continuously as system is constructed.

Pair programming:

Pair programming is an agile software development technique


in which two programmers work together at one workstation.
One, the driver, writes code while the other, the observer or
navigator, reviews each line of code as it is typed in. The
two programmers switch roles frequently.
5.12. Using the process pattern template presented in
Chapter 3, develop a process pattern for any one of the
Scrum patterns presented in Section 5.5.1.
Ans:
PRESSMAN BOOKS QUESTION SOLUTION

Step 1 of 3
Process pattern template for scrum pattern “communicate Early”
Problem: What is the goal of a project and who are members of a team?
Context: Use of scrum in a distributed project (faster, cheaper and quality
projects)

5.13. Visit the Official Agile Modeling site and make a


complete list of all core and supplementary AM principles.
Step 1 of 3
Core principles of agile modeling:
• Assume simplicity
• Embrace change
• Enabling the next effort is your secondary goal
• Incremental change
• Maximize stakeholder ROI
• Model with a purpose
• Multiple models
• Quality work
• Rapid feedback
• Working software is your primary goal
• Travel light

5.14. The tool set proposed in Section 5.6 supports many


of the “soft” aspects of agile methods.
Since communication is so important, recommend an
actual tool set that might be used to enhance
communication among stakeholders on an agile team.
Ans:

Chapter 8
8.1. Why is it that many software developers don’t pay enough attention to
requirements engineering? Are there ever
circumstances where you can skip it?

Step 1 of 2
Designing and building an elegant computer program that solves the wrong
problem server no one needs. That’s
PRESSMAN BOOKS QUESTION SOLUTION

why it is important to understand what the customer wants before beginning to


design and build a computer –
based system.
Step 2 of 2
But many software developers do not pay enough attention to requirements
engineering, because in developers
point of view –
• After all, doesn’t the customer know what is required ?
• Shouldn’t the end users have a good understanding of the features and
functions that will provide bene_t? The
view is not at all correct.
Requirement engineering helps software engineers to better understand the
problem they will work to solve. It
encompasses the set of tasks that lead to an understanding of what the business
impact of the software will be,
what the customer wants and how end – users will interact with software we
cannot directly skip requirement
engineering but v=can be given less importance if the software to be built is very
familiar.
8.2 .You have been given the responsibility to elicit requirements
from a customer who tells you he is too busy to meet with
you. What should you do?
Step 1 of 3
Just asking a stakeholder what their requirements are rarely works. It is said that
the customer is always right. In
fact the customer may be busy and normally far more urgent things to do rather
than speaking to someone in a
suit about requirements for a system that is not even due to be delivered.
The _rst thing to be sure of when eliciting requirements is that we have to get the
stakeholder into a state in which
they want to talk to us.

8.3. Discuss some of the problems that occur when


requirements must be elicited from three or four different
customers. Discuss some of the problems that occur when
requirements must be elicited from three or four different
customers.
Step 1 of 3
PRESSMAN BOOKS QUESTION SOLUTION

The following are the problems that occur when requirements must be elicited
from three or four different
customers.
• The requirements of the customer cannot be understood easily. The customer’s
requirements will change over
time such that a customer with a set of requirements at one time can include
another set of requirements
afterward.
• It is very difficult to understand the requirements of the customers.
• The customers will have a wide range of expectations such that it may lead to
disappointments at most of the
time.
• The customers will change their requirements rapidly.

8.4. Why do we say that the requirements model represents a


snapshot of a system in time?
8.5. Let’s assume that you’ve convinced the customer (you’re a very
good salesperson) to agree to every demand that you
have as a developer. Does that make you a master negotiator? Why?

8.6. Develop at least three additional “context-free questions”


that you might ask a stakeholder during inception.
Step 1 of 3
Context-free questions are said to be the questions that are asked during the
development of a project or the
project which is under construction. These questions will be used to identify the
positive and negative sides of a
project. These questions will give the clarity for the development of the project.

8..7. Develop a requirements-gathering “kit.” The kit should include a


set of guidelines for conducting a requirements-gathering
meeting and materials that can be used to facilitate the creation of
lists and any other items that might help in de_ning requirements

8.8.Your instructor will divide the class into groups of four or


six students. Half of the group will play the role of the
marketing
PRESSMAN BOOKS QUESTION SOLUTION

department and half will take on the role of software


engineering. Your job is to de_ne requirements for the
SafeHome
security function described in this chapter. Conduct a
requirements-gathering meeting using the guidelines
presented in this chapter

Step 1 of 3
Requirements gathering essentials:
• Fours and clarity
• Format for specifying requirements
• The author of requirements document
• The language of requirements
• Accuracy is critical
• Minimizing risk of errant interpretation
• Conclusion

8.9.Develop a complete use case for one of the following


activities:
a. Making a withdrawal at an ATM.
b. Using your charge card for a meal at a restaurant.
c. Buying a stock using an online brokerage account.
d. Searching for books (on a speci_c topic) using an online
bookstore.
e. An activity speci_ed by your instructor.

8.10. What do use case “exceptions” represent?


Step 1 of 3
The purpose of exceptions in use-case is to identify some of the situations that
are not covered in the preliminary
use case.
• The situations that are identi_ed in exceptions are covered while re_ning the
preliminary use case.
• The use case must be complete and must deliver proper meaning to the user.

8..11. Write a user story for one of the activities listed in question 8.9.
PRESSMAN BOOKS QUESTION SOLUTION

8.12. Consider the use case you created in question 8.9, write
a nonfunctional requirement for the application.
Step 1 of 3
A software might not be useable if it does not satisfy its non-functional
requirements (NFR). They specify the
criteria for checking the operational quality of the system. They can be
Performance, Usability, Reliability, Software
Quality, Security and Safety Requirements.
For making a withdrawal at an ATM system application, the NFR can be:-
• A performance requirement can be that each bank should be able to process
transactions from several ATMs at
the same time.
• A safety requirement is that the temperature of the ATM center should be
controlled to prevent the machines
overheating.
• Security requirement are
o A security guards must be present at the ATM at all times.
o A camera should be installed inside the ATM to capture and stores the videos
in the ATM.
• A Quality requirement can be that the relevant communication with the ATM
machine should have a readable
font size.
8.13.Describe what an analysis pattern is in your own words.

8.14. Using the template presented in Section 8.5.2, suggest one or more
analysis pattern for the following application domains:
a. Accounting software.
b. E-mail software.
c. Internet browsers.
d. Word-processing software.
e. Website creation software.
f. An application domain speci_ed by your instructor.

8.15.What does win-win mean in the context of negotiation during


the requirements engineering activity?

8.16. What do you think happens when requirement validation


uncovers an error? Who is involved in correcting the error?
PRESSMAN BOOKS QUESTION SOLUTION

8.17.What _ve tasks make up a comprehensive requirements


monitoring program?

Chapter 9

9.1. Is it possible to begin coding immediately after a requirements


model has been created? Explain your answer and then
argue the counterpoint

Step 1 of 1
The analysis model will serve as a basis for the design and coding. It is possible
to begin coding after objects,
attributes; relationships are analyzed in analysis phase however the design will
suffer as a result of explicit
architecture design will not have been considered. Interfaces will have been
developed in haphazard manner and
global data structure will not have been explicitly designed.

9.2. An analysis rule of thumb is that the model “should focus on requirements
that are visible within the problem or business
domain.” What types of requirements are not visible in these domains? Provide a
few examples.
Step 1 of 3
Thumb rule of Analysis
• The model should focus on requirements which are visible with in problem or
business domain.
• Abstraction levels are high in thumb rule
• New elements added in the analysis model should help in better understanding
of the software requirements of
the system.
• These elements provide better understanding of the functionality, behaviour and
information domain of the
system.
• Coupling should be minimized throughout the system
PRESSMAN BOOKS QUESTION SOLUTION

• The model should be simple

9.3. What is the purpose of domain analysis? How is it related to the


concept of requirements patterns?
Step 1 of 3
592-8-3P SA CODE: 4478
SR CODE: 4475
Domain analysis is an on-going software engineering activity that is not
connected to any one software project
Purpose of domain analysis:
The key to reusable software is captured in domain analysis in that it stresses the
reusability of analysis and design.

9.4. Is it possible to develop an effective analysis model without


developing all four elements shown in Figure 9.3 ? Explain.
FIGURE 9.3 Elements of the analysis model

9.5.
The department of public works for a large city has decided to develop a
Web-based pothole tracking and repair system
(PHTRS). A description follows:
Citizens can log onto a website and report the location and severity of
potholes. As potholes are reported they are logged
within a “public works department repair system” and are assigned an
identifying number, stored by street address, size
PRESSMAN BOOKS QUESTION SOLUTION

(on a scale of 1 to 10), location (middle, curb, etc.), district (determined


from street address), and repair priority (determined
from the size of the pothole). Work order data are associated with each
pothole and include pothole location and size,
repair crew identifying number, number of people on crew, equipment
assigned, hours applied to repair, hole status (work
in progress, repaired, temporary repair, not repaired), amount of _ller
material used, and cost of repair (computed from
hours applied, number of people, material and equipment used). Finally, a
damage _le is created to hold information
about reported damage due to the pothole and includes citizen’s name,
address, phone number, type of damage, and
dollar amount of damage. PHTRS is an online system; all queries are to be
made interactively.
Draw a UML use case diagram PHTRS system. You’ll have to make a
number of assumptions about the manner in which a
user interacts with this system.

9.6. Write two or three use cases that describe the roles of various actors
in the PHTRS described in Problem 9.5.

Step 1 of 3
The department of public works for a city has decided to develop a web-based
Pot Hole Tracking and Repair
System (PHTRS).
To construct use case for the system _rst identify the actors in the system. For
PHTRS, actors can include:-
• Citizen
• PHTRS employees
• Contractor
• Repair Crew
Then, identify the functionalities to be identi_ed as use case in the system. For
PHTRS, functionalities can include:-
• Citizen reports pothole information like its severity and location.
• Log pothole information like identi_cation number, size, location, address, repair
priority in PHTRS.
• Issue work order with data like repair crew id number, repair crew size,
equipment assigned, hours worked,
status, cost or repair etc.
• Create a PHTRS damaged _le with information such as citizen name, phone
number, and address, type of
PRESSMAN BOOKS QUESTION SOLUTION

damage and cost of damage.

9.7. Develop an activity diagram for one aspect of PHTRS.


Step 1 of 3
The department of public works for a city has decided to develop a web-based
Pot Hole Tracking and Repair
System (PHTRS).
One of the use case scenario for the system is:-
Use Case: Report Pothole
Primary Actor: Citizen
Goal in Context: To report a pothole with damage to citizen or property, if any.
Precondition: Citizen is logged in a fully con_gured web based PHTRS.
Trigger: Citizen sees a pothole or faces loss due to the pothole, decides to report
it.
Scenario:
1. The user clicks on 'Report Pothole' in the web site.
2. The web site displays a form to _ll in following information: location, severity,
and address of Pothole.
3. The user _lls his/her information into the _elds, and if s/he needs to mention
damages.
4. The user Clicks on ‘Next’ button.
5. Site asks user for information about Type of damage done and cost if s/he
choose damages in last section.
6. The user _lls out all this information.
7. The user clicks on ‘Submit’ button.
8. The application stores all the information that Citizen entered in a database.

9.8. Develop a swimlane diagram for one or more aspects of


PHTRS
Step 1 of 3
The department of public works for a city has decided to develop a web-based
Pot Hole Tracking and Repair
System (PHTRS).
One of the use case scenario for the system is:-
Use Case: Report Pothole
Primary Actor: Citizen
Goal in Context: To report a pothole with damage to citizen or property, if any.
Precondition: Citizen is logged in a fully con_gured web based PHTRS.
Trigger: Citizen sees a pothole or faces loss due to the pothole, decides to report
it.
PRESSMAN BOOKS QUESTION SOLUTION

Scenario:
1. The user clicks on 'Report Pothole' in the web site.
2. The web site displays a form to _ll in following information: location on street,
severity, and address of Pothole.
3. The user _lls his/her information into the _elds, and if s/he needs to mention
damages.
4. The user Clicks on ‘Next’ button.
5. Site asks user for information about Type of damage done and cost if s/he
choose damages in last section.
6. The user _lls out all this information.
7. The user clicks on ‘Submit’ button.
8. The application stores all the information that Citizen entered in a database.

Chapter 10

10.1. You have been asked to build one of the following systems:
a. A network-based course registration system for your university.
b. A Web-based order-processing system for a computer store.
c. A simple invoicing system for a small business.
d. An Internet-based cookbook that is built into an electric range or
microwave. Select the system that is of interest to you
and develop a processing narrative. Then use the grammatical
parsing technique to identify candidate objects and
classes.
Step 1 of 2
PRESSMAN BOOKS QUESTION SOLUTION
PRESSMAN BOOKS QUESTION SOLUTION
PRESSMAN BOOKS QUESTION SOLUTION
PRESSMAN BOOKS QUESTION SOLUTION

10.2. Develop a set of operations that are used within the


classes identi_ed in Problem 10.1.

10.3. Develop a class model for the PHTRS system present in


Problem 9.5.

10.4. Write a template-based use case for the SafeHome home


management system described informally in the sidebar
following Section 10.4.
10.5. Develop a complete set of CRC model index cards on the
product or system you chose as part of Problem 10.1.

10.6. Conduct a review of the CRC index cards with your


colleagues. How many additional classes, responsibilities, and
collaborators were added as a consequence of the review?

10.7. What is an analysis package and how might it be used?


Step 1 of 3
Analysis package:
In a software engineering, various elements of the analysis model such as use
cases, analysis classes are
categorized in a manner that packages them as a grouping. This is called an
analysis package
To build a software, lot of classes are there which fall in one category and other
classes fall in other categories.
Thus, classes that come under a category are grouped under a name, that is
called an analysis package

Chapter 11
PRESSMAN BOOKS QUESTION SOLUTION

11.1. There are two different types of “states” that behavioral models
can represent. What are they?
Step 1 of 1
4633-7-7P SA: 9420
SR: 6376
The two different types of “states” that behavioral models can represent are:
1. The state of each class as the system performs its function and
2. The state of the system as observed from the outside as the system performs
its function.

11.2. How does a sequence diagram differ from a state diagram? How
are they similar?
11.3. Suggest three requirements patterns for a modern mobile phone
and write a brief description of each. Could these
patterns be used for other devices? Provide an example.

11.4. Select one of the patterns you developed in Problem 11.3 and
develop a reasonably complete pattern description similar
in content and style to the one presented in Section 11.4.2.

11.5. How much analysis modeling do you think would be


required for www.safehomeassured.com? Would each of the
model
types described in Section 11.5.3 be required?
Step 1 of 3
For a SafeHomeAssured.com application, the degree to which analysis modeling
for an application is emphasized
depends on the following factors:
• Size and complexity of WebApp increment
• Number of stakeholders
• Size of the WebApp team
• Degree to which members of the WebApp team worked together before
• Degree to which the organization’s success is directly depends on the success
of the WebApp.
PRESSMAN BOOKS QUESTION SOLUTION

11.6. What is the purpose of the interaction model for a WebApp?


Step 1 of 3
4633-7-12P SA: 9420
SR: 6376
The interaction model describes the manner in which users interact with the
WebApp. The purpose of the
interaction model for a WebApps is to enable a “conversation” between an end
user and application functionality,
content, and behavior.
This conversation can be described using an interaction model that can be
composed of one or more of the
following elements:
• Use cases
• Sequence diagrams
• State diagrams
• User interface prototypes

11.7. It could be argued that a WebApp functional model should


be delayed until design. Present pros and cons for this
argument.

11.8. What is the purpose of a con_guration model?


11.9. How does the navigation model differ from the interaction
model?

Chapter 12
12.1. Do you design software when you “write” a program? What
makes software design different from coding?
Step 1 of 1
Design software
No, writing a program is the different concept in design software. Design is the
place where software quality is
established. Before starting of design software, _rst requirements should be
analyzed and speci_ed.
PRESSMAN BOOKS QUESTION SOLUTION

In the software design process, design engineering is the one of the concept.
While beginning software,
requirements have been analyzed and modeled. This model can be accessed for
quality and improved before code
is generated.
In a software engineering context, _rst need to develop the models of program.
Not the program themselves.
Software design different from coding:
At _rst it is very clear that, design is not coding and coding is not
design. It is created from program
components.
Design is the description of the logic, which is used in solving the problem.
Coding is the language speci_cation
which is implementation of the design. It runs on the computer and, provides the
expected resul

12.2. If a software design is not a program (and it isn’t), then


what is it?
Step-by-step solution:
Step 1 of 3
Yes, software design is not a program. Coding or programming is a language
which is used to represent the
design. Programming is not good for representing details of architecture,
components or their collaborations.
Software design contains a set of principles, concepts, and practices which leads
to development of high quality
product. Design plays an important role in the development of a successful
software product.
The main aim of design is to create a model that presents _rmness, commodity,
and delight to customers those
who use it. Software engineering continuously changes with new methods for
better analysis and to evolve
broader understanding.

12.3. How do we assess the quality of a software design?


Step 1 of 3
The quality of software is assessed based on the design even before it is
implemented. During design, the quality is
assessed by conducting a series of technical reviews.
The following are the guidelines to assess the quality of the software design:
PRESSMAN BOOKS QUESTION SOLUTION

• A design should be simple created by using recognizable patterns which are


easier for implementation and
testing.
• A design should be modular that is, it can be broken down into smaller sub
systems.
• A design should lead to data structures, components, and interfaces that are
appropriate for classes and in turn
reduce the complexity of connection with the external environment.
• A design is derived using repeatable methods and should be represented using
simple notations which
communicates its meaning

12.4. Examine the task set presented for design. Where is quality
assessed within the task set? How is this accomplished? How
are the quality attributes discussed in Section 12.2.1 achieved?
Step 1 of 3
4633-8-4P SA: 4475
SR: 6376
Generic task set for design:
1. Examine information domain model and design appropriate data structures for
data objects and their attributes
2. Select an architectural pattern appropriate to the software based on the
analysis model
3. Partition the analysis model into design subsystems and allocate these
subsystems within the architecture
4. Create a set of design classes or components
5. Design any interface required with external systems or devices
6. Design the user interface
7. Conduct component level design
8. Develop a deployment model

12.5. Provide examples of three data abstractions and the


procedural abstractions that can be used to manipulate them.
Step 1 of 3
Data abstractions: It is the process of representing essential details not
including internal details.
Examples:
1) First example of data abstraction is to abstract “Doors” as a data structure
with essential properties:
Door: Properties
PRESSMAN BOOKS QUESTION SOLUTION

Type
Swing direction,
Manufacturer,
Insets,
Lights,
Weight,
Opening / Close mechanisms

12.6. Describe software architecture in your own words


Step 1 of 3
The software architecture is the structures of program components / modules.
And
Software architecture is:
• An overall view of the solution to a problem
• The high-level design of modular components and how they interact
• A foundation that one can build on to solve a problem (e.g., rules, policies,
attributes, etc.)
• An efficient method to meet a _xed set of well-de_ned attributes

12.7. Suggest a design pattern that you encounter in a category of


everyday things (e.g., consumer electronics, automobiles,
appliances). Brie_y describe the pattern.
12.8. Describe separation of concerns in your own words. Is there a
case when a “divide and conquer” strategy may not be
appropriate? How might such a case affect the argument for
modularity?

12.9. When should a modular design be implemented as monolithic


software? How can this be accomplished? Is performance
the only justi_cation for implementation of monolithic software?

Step 1 of 3
To accomplish this, implement all the task performed by the software in a single
module.
PRESSMAN BOOKS QUESTION SOLUTION

12.10. Discuss the relationship between the concept of information


hiding as an attribute of effective modularity and the concept
of module independence.

Step 1 of 3
592-9-10P SA Code: 4478
SR Code: 4578

12.11. How are the concepts of coupling and software portability


related? Provide examples to support your discussion.

12.12. Apply a “stepwise re_nement approach” to develop three


different levels of procedural abstractions for one or more of the
following programs: (1) Develop a check writer that, given a numeric
dollar amount, will print the amount in words
normally required on a check. (2) Iteratively solve for the roots of a
transcendental equation. (3) Develop a simple taskscheduling
algorithm for an operating system.

Step 1 of 3
592-9-12P SA Code: 4478
SR Code: 4578

12.13. Consider the software required to implement a full navigation


capability (using GPS) in a mobile, handheld communication
device. Describe two or three crosscutting concerns that would be
present. Discuss how you would represent one of these
concerns as an aspect.

12.14. Does “refactoring” mean that you modify the entire


design iteratively? If not, what does it mean?

12.15. Discuss what the dependency inversion principle is in your


own words.
PRESSMAN BOOKS QUESTION SOLUTION

12.16. Why is design for testing so important?

12.17. Briefly describe each of the four elements of the design model

Step 1 of 3
4633-8-15P SA: 9420
SR: 6376
The design model has four major elements:
1. Data design elements
2. Architectural design elements
3. Interface design elements
4. Component level design elements

Chapter 19
19.1 Describe how you would assess the quality of a
university before applying to it. What factors would be
important? Which would be critical?
Ans:
Step 1 of 1
4633-14-1P SA: 9420
SR: 6376
The quality can be assessed by observing various aspects. The important factors
to be observed are:
1. Standards: The standards that the university is maintaining and whether it is
following all the applicable
standards or not.
2. Recognition: How good the university is certi_ed by the government and
recognition it has.
PRESSMAN BOOKS QUESTION SOLUTION

3. Quality of teaching: How good the teaching is? And how the results are
obtained?
4. Infrastructure: Check whether a good and supportive environment is present
for students to concentrate well on
studies or not.
5. Behavior and Discipline: Is the management well concerned about teaching
well disciplined activities and
behavior and also making the students to implement them.
Of all the factors the most critical are the standards and the quality of teaching
and knowledge being provided.

19.2 Garvin [Gar84] describes five different views of


quality. Provide an example of each using one or more
well-known electronic products with which you are
familiar.

19.3 Using the definition of software quality proposed in


Section 19.2, do you think it’s possible to create a useful
product that provides measurable value without using an
effective process? Explain your answer.

19.4 Add two additional questions to each of Garvin’s


quality dimensions presented in Section
19.2.1.
Step 1 of 3
4633-14-4P SA: 9420
SR: 6376
David Garvin describes eight dimensions of quality.
Performance quality:
PRESSMAN BOOKS QUESTION SOLUTION

1. Does the software contain main operating features such as power, clarity,
speed etc.?
2. Does the software requirements are easy to assess by the user?

19.5 McCall’s quality factors were developed during the


1970s. Almost every aspect of computing has changed
dramatically since the time that they were developed, and
yet, McCall’s factors continue to apply to modern
software. Can you draw any conclusions based on this
fact?

Step 1 of 3
McCall’s quality factors are
• Correctness
• Reliability
• Efficiency
• Integrity
• Usability
• Maintainability
• Flexibility
• Portability
• Reusability
• Interoperability

19.6 Using the sub-attributes noted for the ISO 9126


quality factor “maintainability” in Section 19.2.3, develop
a set of questions that explore whether or not these
attributes are present.
Follow the example shown in Section 19.2.4.

Step 1 of 3
The sub-attributes of the quality factor maintainability are:
• Analyzability
PRESSMAN BOOKS QUESTION SOLUTION

• Changeability
• Stability
• Testability

19.7 Describe the software quality dilemma in your own


words.

19.8 What is “good enough” software? Name a specific


company and specific products that you believe were
developed using the good enough philosophy.

19.9 Considering each of the four aspects of the cost of


quality, which do you think is the most expensive and
why?
Step 1 of 3
The four aspects involved in the cost of quality are:
• Prevention costs
• Appraisal costs
• Internal failure costs
• External failure costs
19.10 Do a Web search and fi nd three other examples of
“risks” to the public that can be directly traced to poor
software quality. Consider beginning your search at
http://catless
.ncl.ac.uk/risks .
Step 1 of 3
Low-quality software increases risks for both the developer and the end user.
The downside of poorly designed
and implemented applications does not always stop with dollars and time; they
incur a great loss to people.
19.11 Are quality and security the same thing? Explain.
PRESSMAN BOOKS QUESTION SOLUTION

19.12 Explain why it is that many of us continue to live by


Meskimen’s law. What is it about the software business
that causes this?
Step 1 of 3
Meskimen’s Law: There’s never time to do it right, but always time to do it over.
Many of us continue to live by Meskimen’s law because of the high competition
and demand for a product in the
market. As there are tough competitors in producing software product, taking
much time in developing high quality
software will not work.
If one spends in_nite time, extremely large effort, and huge sums of money to
build the absolutely perfect piece of
software, then it will take so long time to complete and it will be so expensive.
And also, they will be out of
business. Either ignores the market window, or simply exhausts all the
resources.

Chapter 21

21.1. Some people say that “variation control is the heart of quality
control.” Since every program that is created is different from
every other program, what are the variations that we look for and how
do we control them?

Step 1 of 1
4633-16-1P SA: 9420
SR: 6376
A program is equal to data structure plus algorithm. Generally, different
programmers will design a program in a
different way. Logic of one person varies from the other as per their own thinking.
Coding of one programmer will
be different from others in solving the same problem.
So, we can expect variations in the design and coding of the data structure and
the algorithm of a program by
different individuals. Also the programming language chosen by each may vary.
Hence we can look for the
variations also in the syntax, logic, complexity, readability.
We can control the variations by checking the types and levels of complexity that
can be used in the design of the
data structures and the algorithms of a program.
PRESSMAN BOOKS QUESTION SOLUTION

21.2. Is it possible to assess the quality of software if the


customer keeps changing what it is supposed to do?

21.3. Quality and reliability are related concepts but are


fundamentally different in a number of ways. Discuss the differences.

21.4. Can a program be correct and still not be reliable? Explain.


21.5. Can a program be correct and still not exhibit good quality?
Explain.

21.6. Why is there often tension between a software engineering


group and an independent software quality assurance group?
Is this healthy?

21.7. You have been given the responsibility for improving the quality
of software across your organization. What is the _rst
thing that you should do? What’s next?

21.8. Besides counting errors and defects, are there other countable
characteristics of software that imply quality? What are
they and can they be measured directly?

21.9. The MTBF concept for software is open to criticism. Explain


why.
PRESSMAN BOOKS QUESTION SOLUTION

21.10. Consider two safety-critical systems that are controlled by


computer. List at least three hazards for each that can be
directly linked to software failures

Step 1 of 3
To build safety – critical systems, instead of simply trying to get software correct
and assuming that will ensure.
System safety, attention is focused on eliminating or controlling the software
behaviors.
1. The software requirements are complete and specify only safe behaviors.
2. The entire software development and maintenance process eliminates (or)
reduces the possibility of the unsafe
behavior.

21.11. Acquire a copy of ISO 9001:2000 and ISO 9000-3. Prepare


a presentation that discusses three ISO 9001 requirements and
how they apply in a software context.
Step 1 of 3
ISO 9001: 2000 is the generic source of requirements for quality assurance in
design, development, production;
installation and servicing as well as the standard against which quality
management systems for software are
assessed.
In ISO 9000:2000 quality management system – fundamentals and vocabulary.
ISO 9004: 2000 quality management systems
- Guidelines for performance imprisonment

Vous aimerez peut-être aussi