You are on page 1of 4

Lab Exercise 1

1.1. Provide at least five additional examples of how the law of unintended
consequences applies to computer software.
Ans: Classic examples include the use of digital automobile dashboards to impart
a high-tech, high-quality images. Appliances that think; the broad array of
consumer electronics; personal computers (today, differentiated more by their
software function than the hardware), industrial instrumentation and machines.
All e-‐commerce applications are differentiated by software.
1.2. Provide a number of examples (both positive and negative) that indicate the
impact of software on our society.
Ans: A few positive examples are:

 It has transformed the way of business operations where many ones


can gather information, communicate, and use their leisure time in a much
meaningful way.
 It helps in accounting bar code scanners distribution optimization analysis
process control web retailing graphics, virtual classroom concepts defenses
legal support and few protective tools which have enabled to get the work
done in a much quicker efficient and accurate way.  

Whereas the negative points can be:

 With the advent of software, our society is under constant threat from


identity theft hacking viruses’ piracy unintelligent telephone voice menus
spyware. These are increasing in numbers and becoming hazardous to our
society.

1.3. Develop your own answers to the first five questions asked at the beginning
of section 1.1. Discuss them with your fellow students.
Questions in section 1.1.:
1) Why does it take so long to get a software finished?
A1) Over the course of a software product's life cycle, numerous changes are
made. As modifications are done, flaws in other parts of the software that
interact with the altered piece may be created unintentionally. In addition,
software engineers must test and verify each element of the software
development process, and each phase must be documented and finished
before moving on to the next phase.
2) Why are development costs so high?
A2) Because developing and testing software necessitates a wide range of
talents and experience, as well as many individuals working together. It can
take months, if not years, to write, test, and check all the code. To do this,
you'll need a team of employees, all of whom are well-educated and often
have a lot of expertise.
3) Why can’t we find all errors before we give the software to our customers?
A3) Because we, as developers, are more concerned with developing to the
best of our abilities rather than with what customers want and request. Aside
from that, it's likely that we didn't do peer review, didn't follow the proper
software development life cycle, and didn't create case scenarios or do the
test.
4) Why do we spend so much time and effort maintaining existing programs?
A4) Because once we have finished coding and developing the program
doesn't mean the project is finished. Maintaining software for a large project
can keep a lot of people busy for a long time. Because there are so many
aspects that influence a project's success or failure, as well as many
competitors and new software.
5) Why do we continue have difficulty in measuring progress as software is
being developed and maintained?
A5) Because basically software developed is new and fresh and different with
other software, so it does not have example. And the error outcome is not
expected as software develop goal. And of course, completed the software
does not mean that progress is completed and always must be maintained.
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.
Ans: Software programs should, first and foremost, be maintained. That is, it
should be designed in such a way that changes can be done quickly as the
application expands. Allowing automated updates to be built in is one
technique to prevent deterioration due to change. Consider the Windows
operating system: it has the option of allowing automatic updates for critical
security and firewall platforms to keep the system "up to date." Because
earlier apps are constantly updated, it's critical to create new software that
has the same capabilities.
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.
Ans: Software is engineered not manufactured. Millions of software engineers
worldwide are hard at work on software projects in one or more of these
categories. In some cases, new systems are being built, but in many others,
existing applications are being corrected, adapted, and enhanced. Because of
this, a different approach to software engineering may be required for
individual categories. Many of the programs that software engineers work on
are extremely old and continue to be upgraded. Therefore, it makes sense that
you would not use the same approach for an existing program that you would
use for a new program.
1.6. 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 a
great harm, either economic or human.
Ans: An example could be the failure of a specific programs on an airliner. The
major computerized programs on airplanes have the same risk of failing as any
other program and can have catastrophic results. For example, the sensor that
detects the altitude of an aircraft allows the pilot to know how many feet the
aircraft is above the ground. This program is particularly necessary when
weather conditions could impair the pilot’s visibility of the runway. Once an
airline begins its decent and prepares to land, the pilot uses these programs to
guide the plane to a safe landing. If this program were to fail, and the weather
hindered the pilot’s visibility, the pilot may not know how far above the
ground he is. Plane crashes happen all the time and hundreds of passengers
die every year mostly due to failed programs and instruments on the aircraft.
1.7. 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.
Ans: The software engineering process does not just magically happen without
some sort of order and organizational planning. A process framework creates
the foundation for the engineering process by using a small number of
activities that are applicable to all projects. The step-by-step algorithm for a
process framework is comprised of five activities: communication, planning,
modeling, construction, and deployment. All programs regardless of their size
and complexity conform to these activities in that order. Although the details
of the software process will be quite different for each program, the tasks
involved within the framework remain the same.
1.8. 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?
Ans: Umbrella activities are applied throughout a software project and help a
software team manage and control progress, quality, change and risk. Since
the software engineering process is not a rigid regimen that must be followed
precisely by a software team, the process has a lot of room for adaptation.
Although the umbrella activities that occur throughout the process are
generally applied to all aspects of the process, the engineering should be agile
and adaptable, specific to the problem, to the project, to the team, and to the
organizational culture. Because of this, a process adopted for one project
might be significantly different that a process adopted for another project ,
and some activities may be concentrated in one or more areas.

You might also like