Software engineering Flashcards
(12 cards)
What is software?
Computer programs and associated documentation
SOF T WARE PROJECT FAILURE
- Increasing system complexity
Failure to use software engineering method
SOF T WARE PRODUCTS
Generic products
* Stand-alone systems that are marketed and sold to any customer who wishes to buy
them.
* Examples – PC software such as graphics programs, project management tools; CAD
software; software for specific markets such as appointments systems for dentists.
* Customized products
* Software that is commissioned by a specific customer to meet their own needs.
* Examples – embedded control systems, air traffic control software, traffic monitoring
systems.
AT TRIBUTES OF GOOD SOF T WARE
Maintainability Software should be written in such a way so that it can evolve to
meet the changing needs of customers.
Dependability and
security
Software dependability includes a range of characteristics
including reliability, security and safety. Dependable software
should not cause physical or economic damage in the event of
system failure. Malicious users should not be able to access or
damage the system
Efficiency Software should not make wasteful use of system resources such
as memory and processor cycles
Acceptability Software must be acceptable to the type of users for which it is
designed
SOF T WARE ENGINEERING
Software engineering is an engineering discipline that is concerned with
all aspects of software production from the early stages of system
specification through to maintaining the system after it has gone into
use
IMPORTANCE OF SOF T WARE ENGINEERING
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 they were a personal programming
project.
SOF T WARE PROCESS ACTIVITIES
Software specification, where customers and engineers define
the software that is to be produced and the constraints on its
operation.
* Software development, where the software is designed and
programmed.
* Software validation, where the software is checked to ensure
that it is what the customer requires.
* Software evolution, where the software is modified to reflect
changing customer and market requirements.
APPLICATION T YPES
Stand-alone applications
* These are application systems that run on a local computer, such as a PC. They
include all necessary functionality and do not need to be connected to a
network.
* Interactive transaction-based applications
* Applications that execute on a remote computer and are accessed by users
from their own PCs or terminals. These include web applications such as ecommerce applications.
* Embedded control systems
* These are software control systems that control and manage hardware devices.
Numerically, there are probably more embedded systems than any other type of
system.
* Batch processing systems
* These are business systems that are designed to process data in large batches.
They process large numbers of individual inputs to create corresponding
outputs.
* Entertainment systems
* These are systems that are primarily for personal use, and which are intended
to entertain the user.
* Systems for modelling and simulation
* These are systems that are developed by scientists and engineers to model
physical processes or situations, which include many, separate, interacting
objects.
ISSUES OF PROFESSIONAL RESPONSIBILIT
- Confidentiality
- Engineers should normally respect the
confidentiality of their employers or clients
irrespective of whether a formal confidentiality
agreement has been signed. - Competence
- Engineers should not misrepresent their level
of competence. They should not knowingly
accept work which will outwit their
competence. - Intellectual property rights
- Engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc. They should be
careful to ensure that the intellectual property of employers and
clients is protected. - Computer misuse
- Software engineers should not use their technical skills to misuse
other people’s computers. Computer misuse ranges from relatively
trivial (game playing on an employer’s machine, say) to extremely
serious (dissemination of viruses).
What are the key challenges facing
software engineering?
Coping with increasing diversity, demands for reduced
delivery times and developing trustworthy software.
What differences has the web made to
software engineering?
The web has led to the availability of software services and
the possibility of developing highly distributed service-based
systems. Web-based systems development has led to
important advances in programming languages and
software reuse.