Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Definitions
Software development is the process by which a company, team, or individual
devises and implements an overall plan to create a new software program. This
process can also be applied to an established program to create a new version of
that software. Numerous steps are involved in this process, beginning with
understanding what is needed from software, developing a plan for creating it, writing
the code, and bug testing prior to launch. Software development can be a process
that involves anything from a single programmer to dozens or hundreds of
individuals.
The process of software development usually begins with research or a general
understanding of what type of software is needed in the marketplace. This may be
an entirely new program that addresses an unfulfilled need or a new piece of
software in an existing market. As software development begins, this research
establishes the purpose of the software being developed and the overall goals of the
development.
Client/server Diagram
Information exchange between clients and servers is strictly through messages (i.e.,
no information is exchanged through global variables). The service request and
additional information is placed into a message that is sent to the server. The
server's response is similarly another message that is sent back to the client. This is
an extremely crucial feature of C/S model.
Higher security. All data is stored on the server, which generally offers a
greater control of security than client machines.
Scalability
Other disadvantages include; lack of scalability, higher than anticipated costs and
the causation of network congestion.
Physical Requirements
A centrally based server is a specific type of computer and it requires specialized
hardware and large power supply. When the server does encounter a problem, it
must be able to recover gracefully, without causing the system to crash. The
hardware that makes this possible is expensive. Since the server is running without
shutting down, the electricity costs also add to the overall expense of running a
server.
Network Congestion
When traffic to the server increases, the client server model reveals a weakness.
The server or group of servers must be able to negotiate heavy traffic quickly and
efficiently. Different kinds of traffic may clog the network, such as spam or hacking
attempts. A server must also be able to differential between the legitimate traffic and
the wasteful traffic.
Support Personnel
Sustaining an operational business class server is a full-time job and can require the
attention of many specialized professionals. Systems engineers create programs
and patch operating systems as changes in design take place. Security
professionals work to create a safe environment for clients and the servers to
operate in. In addition to the high cost of the physical components of running a
server, the labor required only increases the cost.
Conclusion
While client/server technology offers many benefits, moving to it can be expensive.
Each engineering paradigm has a distinct purpose for communicating a specific
understanding in software development. A software developer has the responsibility
to understand the different types of engineering concepts and employ them by
representing the information that has been gathered.
Having looked at both the advantages and disadvantages, it can be seen that the
advantages seem to outweigh the disadvantages hence the necessity to have
client/server engineering in software development.
References
http://www.ehow.com/list_7442450_disadvantages-clientserver.html#ixzz2f3d9bLG2
http://www.ehow.com/list_7442450_disadvantages-clientserver.html#ixzz2f3cwr3aa