Information Technology Reference
In-Depth Information
alteration in the system design from the system architect. This ongoing, flexible
planning scheme allows a project to be both well managed and easily adjusted,
which makes a timeline oriented process easier to establish. Furthermore, effective
planning allows a project to be broken down into separate modules by providing a
well understood definition of how the system is supposed to function as a whole,
and at what point in the timeline each part is to be completed. Finally, planning is
also invaluable in cost estimation and time-requirements computation, as it sets a
schedule from which to work.
1.3.2 Problem Solving
Software engineering is, in essence, a form of problem solving. Every existing
piece of software and, indeed, every man made tool ever to have existed, can be
thought of as a solution to some sort of problem. A client, for example, might
request some intuitive application for text entry, storage, reading and editing. The
solution: a word processor. In another scenario, a client could be seeking a way to
market and sell their merchandise throughout the country without building brick-
and-mortar stores in each state. A potential solution could come in the form of an
online store that provides a way to view the product, a secure method of payment,
and a proper tracking for product orders. In yet a third example, the client might be
a videogame firm looking to take their single-player videogame into the realm of
multiplayer-gaming. For this client, a software engineering firm might offer two
potential solutions; the first could be a peer-to-peer based solution whereby one of
the players in a multiplayer session takes on the role of the host, and allows his or
her computer to act as a server, collecting, computing and transmitting data to the
other players. The second could be a client-server style solution in which all of the
players in a session connect to a dedicated server whose sole purpose is to handle
the computations and client communications for the game. As these examples
above illustrate, the ''problem'' in problem solving is not necessarily an error to
correct or a failure to fix. Rather, it refers to a challenge proposed by the client, for
which the software firm implements a software engineering project to create a
solution in the form of a software product.
The problem solving methods described here are, of course, not quick and easy
jumps from problem to solution. Instead, software engineers use a set of paradigms
to work their way through the phases of the software development process. These
phases will be discussed in detail in the next two chapters. For now it is sufficient
to say that a software engineer must analyze the initial problem, develop a list of
possible solutions and evaluate that list to select the best of the group. The soft-
ware engineer must then design a system to reflect that solution and implement
that design into a software product (Blum 1992 ).
Search WWH ::




Custom Search