Professional Documents
Culture Documents
Submitted to:
Instructor:
Muhammad Asif Sir
Note:
----------------------------------------------
-
Date:05/03/2021
Pg. 1
Introduction to software engineering
Q1. Explain why professional software is not just the programs that
are developed for a customer?
Ans: - Proficient programming isn't only the projects produced for a client in
light of the fact that the product is quite often bundled with related documentation
like necessities, plan models, and client manuals. A decent or expert programming
goes past programming grew exclusively for a client. It is typically made out of
executable code combined with documentation and setup of information that is
needed to cause these projects to work accurately. For instance, a word handling
framework comprise of executable program, client manual and the report, for
example, necessities and the plan expected to deliver the executable program.
Q3. What are the four important attributes that all professional
software should have? Suggest four other attributes that may
sometimes be significant.
Ans: - Four important attributes of professional software are:
Pg. 2
1. Maintainability
3. Efficiency
4. Acceptability/Usability
2. Interactivity
3. Reliable
4. Evolution
Ans: - In the 21st century, the software engineering may face key challenges.
Those are:
The legacy challenge is the challenge of maintaining and updating this software in
such a way that excessive costs are avoided and essential business services
continue to be delivered.
2. Competence:
Engineers should not misrepresent their level of competence. They should not
knowingly accept work which is outwitting their competence.
The delivery challenge is the challenge of shortening delivery times for large and
complex systems without compromising system quality. Here supporting software
must change equally rapidly.
Pg. 3
Q5. Based on your own knowledge of some of the application types
discussed in (book section 1.1.2), explain, with examples, why
different application types require specialized software engineering
techniques to support their design and development.
Ans: - Different application types require the use of different development
techniques for a number of reasons:
1. Costs and frequency of change. Some systems are extremely expensive
to change; others, must change frequently in response to changing
requirements. Systems which are very expensive to change need
extensive upfront analysis to ensure that the requirements are consistent
and extensive validation to ensure that the system meets its specification.
This is not cost effective for systems that change very rapidly.
2. The most important ‘non-functional’ requirements. Different systems
have different priorities for non-functional requirements. For example, a
real-time control system in an aircraft has safety as its principal priority;
an interactive game has responsiveness and usability as its priority. The
techniques used to achieve safety are not required for interactive gaming;
the extensive UI design required for games is not needed in safety-
critical control systems.
3. The software lifetime and delivery schedule. Some software systems
have a relatively short lifetime, others have a lifetime of tens of years.
Some systems have to be delivered quickly if they are to be useful. The
techniques used to develop short-lifetime, rapid delivery systems (e.g.,
use of scripting languages, prototyping, etc.) are inappropriate for long-
lifetime systems which require techniques that allow for long-term
support such as design modelling.
Pg. 4
Q 7. Explain how the universal use of the Web has changed software
systems.
Ans: - In the beginning, the web had very few certain effects on software systems,
unlike we have it today.
These days, the high use of web-based software development has highly affected
the software industry. The points to show this are as given below:
•In place of monolithic development most of the applications are developed for
web users.
• The updating and maintenance of web-based software is easy. Changes made at
one place will affect globally.
• Software is developed in parts. One part is developed at one place and second is
developed at any other place. By using web, it becomes easy to collect all parts to
make a working application.
If a lawyer screws up in his work, some people might suffer financially or one
person can suffer physical damage. If a doctor screws up, probably his patients will
suffer physical damage and maybe financially as well. The same reasoning may be
applied for engineers also. For example, while consider about civil engineer, the
damage caused by a collapsed bridge or skyscraper is reason enough. But a lot of
other areas of engineering have this very high capacity for damage (both financial
and personal).
Pg. 5
Q 9. For each of the clauses in the ACM/IEEE Code of Ethics shown
in Figure 1.3, suggest an appropriate example that illustrates that
clause.
Ans: -
Public > An example of acting in the public's interest is not to share any
private information that the software engineer is privy to while working on a
project.
Client and Employer > A good software engineer will not let the needs of
the client or the wants of the employer harm the public.
Product > A good software engineer would not allow software to be released
that they know is faulty and will crash.
Judgement > An example of using good judgement is, if a software engineer
is approached by a client that wants them to build software that causes
airplanes to crash, the software engineer knows that they must decline since
although that may be in the client's interest, it is not in the publics.
Management > For example, Software engineering managers and leaders
will not encourage employees to slack off when they are aware there is a
deadline coming up.
Profession > For example, software engineers will not accept payment for
inadequate software that they have admitted will not work as intended. This
would reflect badly on other software engineers.
Colleagues > An example of following this clause would be a software
engineer not stealing their coworkers code without permission.
Self > For example, a good software engineer will keep up with changes in
technology and encourage others to do the same.
Ans: - To help counter terrorism, computer systems are being developed to track
large number of citizens and their actions. The ethics of working on the
development of such system are:
Pg. 6
• It affects the privacy of the citizens.
Q11. 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:
Ans: -
Pg. 7
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.
Pg. 8
Q14. Suggest why it is important to make a distinction between
developing the user requirements and developing system
requirements in the requirements engineering process.
Ans: - There is a fundamental difference between the user and the system
requirements that mean they should be considered separately.
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.
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.
Q15. 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.
Ans: -
Specification User Requirements and System Requirements
Pg. 9
Q16. 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.
Ans: - The requirements may change due to the change of the environment.
Sometimes a better solution to the old requirements is also necessary.
Develop software interactively can help predict changes, because the experts can
have better insight about the possible changes on the business domain in the future.
Use component-based architecture can restrict the impact of many changes within
some components but not the entire system.
Ans: - This is a direct result of the unequivocal danger the board of Boehm's
winding model. By spotting and dealing with the dangers among arranging and
creating, numerous progressions can be stayed away from ahead of time and plans
for future changes can be made to improve change resilience.
Winding model can be over costly for most cases, that perhaps the motivation
behind why it isn't generally utilized. The other explanation is that actually like
gradual turn of events, without a total detail before the finish of the cycle makes it
difficult to work with the executives’ frameworks.
Pg. 10
Q19. What are the advantages of providing static and dynamic views of the
software process as in the Rational Unified Process?
Ans: - The Rational Unified Process perceives that a solitary cycle model presents
just a solitary view, so the RUP consolidated three viewpoints, two of them being
dynamic, that depicts the periods of the model as time advances, and static, that
portrays the exercises that are instituted. The strength in utilizing both is that
periods of the improvement interaction are not attached to any one explicit work
process, so the whole cycle can be perceived.
Pg. 11