Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

1. What.are.two.types.of.thinking.employed.during.problem.solving?.Provide.an.example.

of
.how.they.are.applied.to.design.problems?

Ans). Problem Definition in different Terms: -


Problem solving skills are among the most valued skills in the workforce today because they
can be applied to dozens of situations. A person with a physics degree might get hired as a
computer programmer because of their problem solving skills. Or an industrial engineer
might have an easier time getting a job as an urban planner because they used problem
solving skills at their previous job.
Problem solving methods are the steps we use to find solutions to problems and issues.
Humans are naturally quite good at problem solving, and we often use sophisticated methods
that we don't even know we're using to try to get to the answer. Learning about the methods
will enable you to recognize the approaches you already use and identify other approaches
that could be useful for you. Then, you will have several tools to help you strategize solutions
to difficult problems.

Two Types of thinking Employed during Problem Solving: -


Convergent Thinking Type of thinking that seeks to find one single solution to a problem
Divergent Thinking Type of thinking that seeks to find multiple solutions to a problem

Convergent and Divergent: -


Both convergent and divergent thinking have significant roles in solving engineering
problems. In many cases, problem solvers begin using divergent thinking with different
levels of abstraction, and each level provides finer-grained solutions to the problem until
convergent thinking can be employed to solve it.
Example: -
In many cases, determining the type of solution required for a given problem can reduce
wasted time and effort spent in attempting to find a single, optimal solution. In such cases,
designers can elect to seek approximate solutions as opposed to optimal solutions that are
appropriate and acceptable for meeting project constraints. Determining the type of solution
for a given problem can reduce time and budget required for building the system.
Two types of solutions are algorithms and heuristics. Algorithms are step-by-step procedures
for finding the correct solution to given problems. Algorithms do not normally involve
subjective decisions or rely on intuition or creativity to find solutions. For some types of
problems, using algorithms to find solutions can be unrealistic, especially in time-driven,

1|Page
practical engineering problems. In these cases, heuristics provide a realistic approach for
finding good approximations of the solution. In some cases, heuristics can lead to optimal
solutions; in others, they can lead to solutions that are far from optimal or no solution at all.
Algorithms and heuristics are both used heavily in the design of engineering systems and
determining their appropriateness for solving particular problems is essential to meeting
other project demands.
2. Explain why it is essential that every version of a component should be uniquely
identified. Comment on the problems of using a version identification scheme that is
simply based on version numbers?
Ans). The signature on the source code file is a checksum calculated from data in the
file. A checksum function calculates a unique number using the source text as input. If
you change the source code (even by one character), this will generate a different
checksum. You can therefore be confident that source code files with different
checksums are actually different. The checksum is assigned to the source code just before
compilation and uniquely identifies the source file. The build system then tags the
generated object code file with the checksum signature. If there is no object code file with
the same signature as the source code file to be included in a system, then recompilation
of the source code is necessary.
Version Identification: -
Version and release identification Managed versions are assigned identifiers when they
are submitted to the system. These identifiers are usually based on the name of the
configuration item (e.g., ButtonManager), followed by one or more numbers. So
ButtonManager 1.3 means the third version in code line 1 of the ButtonManager
component. Some CM systems also allow the association of attributes with versions (e.g.,
mobile, small screen), which can also be used for version identification. A consistent
identification system is important because it simplifies the problem of defining
configurations. It makes it simpler to use shorthand references (e.g., *.V2 meaning
version 2 of all components). The checksum approach has the advantage of allowing
many different versions of the object code of a component to be maintained at the same
time. The signature rather than the file name is the link between source and object code.
The source code and object code files have the same signature. Therefore, when you
recompile a component, it does not overwrite the object code, as would normally be the
case when the timestamp is used. Rather, it generates a new object code file and tags it
with the source code signature. Parallel compilation is possible and different versions of a
component may be compiled at the same time.

3. List.and.explain.the.challenges.faced.in. software. Design?


Ans). The software design phase has evolved from an ad hoc and sometimes overlooked
phase to an essential phase of the development life cycle. Furthermore, the increasing

2|Page
complexity of today’s systems has created a set of particular challenges that makes it hard
for software engineers to meet the continuous customer demand for higher software
quality. These challenges have prompted software engineers to pay closer attention to the
design process to better understand, apply, and promulgate well known design principles,
processes, and professional practices to overcome these challenges. Some of the major
challenges include requirements volatility, design process, quality issues (e.g.,
performance, usability, security), distributed software development, efficient allocation of
human resources to development tasks, limited budgets, unreasonable expectations and
schedules, fast-changing technology, and accurate transformation from software
requirement to a software product.

4. Imagine a situation where two developers are simultaneously modifying three different
software components. What difficulties might arise when they try to merge the changes
that they have made?
Ans). There is the usual problem where developers each make changes to the same
component and these changes are, in some way, incompatible. However, where several
components are being changed at the same time, the problems are exacerbated because
there may be dependencies between the components that are affected by the changes. For
example, say developer A checks out components X and Y and decides to implement a
change by changing Y, which depends on a particular feature of X. Developer A Checks
X and Y back in with no changes recorded as being made to X. Developer B also is
working on X and Y and changes both X and Y. However, the changes made to X mean
that the assumptions made by Developer A no longer hold. However, incompatibility is
not detected as there has only been a single change made to component X. With more
than 2 components, the problem becomes even worse because of the chains of
dependencies that can be introduced. These can be very difficult or impossible to detect
automatically.

5. Suggest five possible problems that could arise if a company does not develop effective
configuration management policies and processes.
Ans).
1. New versions of software systems cannot be created effectively as they change.
Developers cannot keep track of the changes to the software.
2. Controlling the costs and effort involved in making changes to a system is difficult.
3. Wrong version of a system may be delivered to the customers or forget where the
software source code for a particular version of the system or component is stored
4. If someone leaves the company, protecting investments in software and the ability to
reproduce a build with the correct components or continue development on a project is
difficult.
5. Ineffective quality management process because configuration management may be
seen as part of a more general quality management process.

3|Page
4|Page

You might also like