Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
perceive it.
Software engineering methods provide the technical “how to’s “ for building
a software, that include gathering data for project planning and estimation,
system and software requirements analysis, design of data structure,
program architecture and algorithm procedure, coding, testing, and
maintenance. Often a special language-oriented or graphical notation is
introduced, along with criteria for ensuring software quality.
Software engineering procedures are the glue that holds the methods and
tools together and they enable rational and timely development of computer
software. Procedure define the sequence in which the methods will be
applied, the deliverables(documents, reports, forms, etc.) that are required,
the controls that help ensure quality and coordinate change, and the
milestones that enable software managers to assess progress.
The classical model for software building is sometimes called “the waterfall
model”, which is a systematic approach to software development that starts
at the system level and progresses through analysis, design, coding, testing
and maintenance.
Coding: This involves translating the design into the actual code, which is the
actual software. Many a times, the coding process is divided into various
parts, such that each individual process can be coded in a simpler and less
tedious way, but ensuring that the communication between the various parts
remains hassle free. This, at times may reduce the complexity of software
development, at the same time maintaining the complexity of the overall
software problem at hand.
Testing: This involves testing the code developed, of errors, and making sure
that the defined input will produce the actual results that agree with required
results.
Maintenance: change is a part of life, and it holds for software too. There will
be errors encountered which need to be attended to. Then most software
models are a part of reality, and as the reality evolves the software should do
the same if it doesn’t want to become obsolete. At times, changes may be
required because of the advent of a new software or a new peripheral device,
or the customer requires functional or performance enhancements. Software
maintenance reapplies each of the preceding life-cycle steps to an existing
program rather than a new one.
Apart from the above mentioned points, there are various aspects of
software engineering which cannot be overlooked. For example the
efficiency with which software is developed is of crucial importance. Total
cost and development time of software projects is high. Regular cooperation
between people is an integral part of programming in the large. Since the
problems are large, many people have to work together at solving those
problems. There must be clear arrangements for the distribution of work,
methods of communication, responsibilities, and so on. Discipline is one of
the keys to the successful completion of a software development project.
The software has to support its users effectively. The software is developed
in order to support users at work. The software should be user friendly and fit
user’s tasks. User manuals and training material may have to be written, and
attention must be given to developing the environment in which the new
system is going to be installed. Software engineering is a field in which
members of one culture create artifacts on behalf of members of another
culture. Software engineers are expert in programming one or more areas
such as programming in Java, software architecture, testing, or UML, but they
are not experts in areas such as library management, or banking or petrol
pump management etc. but still, they have to develop systems for such
domains. Lack of knowledge of these real life domains is a common source of
problems in software development projects.