Professional Documents
Culture Documents
Software Engineering
As software engineers, we use our knowledge of computer-and computing to
help solve problems. Often the problem with which we are dealing is related to a
computer or an existing computer system, but sometimes the difficulties underlying
the problem have nothing to do with computers. Therefore, it is essential that we first
understand the nature of the problem. In particular, we must be very careful not to
impose computing machinery on every problem that comes our way. We must solve
the problem first. Then, if need be, we can use technology as a tool to implement our
solution.
1
Software Engineering - Lecture1
2
Software Engineering - Lecture1
Solving problems:
Most problems are large and sometimes tricky to handle, especially if they
represent something new that has never been solved before. So we must begin
investigating it by:
a) Analyzing: Breaking the problem into pieces that we can understand and try to
deal with. We can thus describe the larger problem as a collection of small
problems and their interrelationships. Figure (1.2) illustrates how analysis
works.
b) Synthesis: construct our solution from components that address the problem's
various aspects, (putting together of a large structure from small building
blocks). Figure (1.3) illustrates this reverse process. Software engineers use’s
tools techniques, procedures and paradigms to enhance the quality of their
software products.
3
Software Engineering - Lecture1
• More and more, individuals and society rely on advanced software systems.
We need to be able to produce reliable and trustworthy systems economically
and quickly.
• It is usually cheaper, in the long run, to use software engineering methods and
techniques for software systems rather than just write the programs as if it was
a personal programming project. For most types of system, the majority of
costs are the costs of changing the software after it has gone into use