i - introduction Flashcards
essential for the functioning of national and international
societies.
software engineering
abstract and intangible
Software systems
2 factors that are consequences to so-called software failures
- increasing demads
- low expectations
Systems have to be built and delivered more quickly; larger, even more complex systems are required;
which factor of consequence of software failures
increasing demands
They do not use software engineering methods in their everyday work. Consequently, their software is often more expensive and less reliable than it should be.
which factor of consequence of software failures
low expectations
The notion of ‘software engineering’ was first proposed in [1] at a conference held to discuss what was then
called the ‘[2]’ ([3]).
fill in the blanks
- 1968
- ‘software crisis’
- (Naur and Randell, 1969)
Throughout the [1] and [2], a variety of new software engineering techniques and methods were
developed, such as structured programming, information hiding and object-oriented development
fill in the blanks
- 1970s
- 1980s
[1], intended for use by someone apart from its developer, is usually developed by teams rather than individuals.
fill in the blanks
- Professional
software
intended to support professional software development,
rather than individual programming
Software engineering
includes techniques that support program specification, design, and evolution, none of which are normally relevant for personal software development.
software engineering
not just the programs themselves but also all associated documentation and configuration data that is required to make these programs operate correctly
software
enumeration
what does a system typically include of?
- system documentation
- user documentation
- websites for users to download product information
Computer programs and associated documentation.
Software products may be developed for a particular
customer or may be developed for a general market.
software
enumerate
attributes of good software
Good software should deliver the required functionality and performance to the user and should be maintainable, dependable, and usable.
[1] is an engineering discipline that is concerned with all aspects of software production.
- Software engineering
enumerate
fundamental software engineering activities
- Software specification
- software development
- software validation
- software evolution.
[1] focuses on theory and
fundamentals; [2] is concerned
with the practicalities of developing and delivering
useful software.
- Computer science
- software engineering
[1] is concerned with all aspects of
computer-based systems development including
hardware, software, and process engineering. [2] is part of this more general process.
- System engineering
- Software
engineering
key challenges facing software engineering?
Coping with increasing diversity, demands for reduced
delivery times, and developing trustworthy software.
costs of software engineering
Roughly __60%__ of software costs are __development
costs__
__40%__ are __testing costs__.
For __custom software__, evolution costs often exceed development costs.
What are the best software engineering techniques
and methods?
While all software projects have to be professionally
managed and developed, different techniques are
appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems
require a complete and analyzable specification to be
developed. You can’t, therefore, say that one method
is better than another.
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.
2 kinds of software products
- generic products
- customized (or bespoke) products
These are stand-alone systems that are produced by a development organization and sold on the open market to any customer who is able to buy them.
generic products
example of generic product software
databases, word processors, drawing packages, and project-management tools; __vertical applications__ designed for some specific purpose such as library information systems, accounting systems, or systems for maintaining dental records.
These are systems that are commissioned by a particular customer.
customized products