Software Engineer Module 1

studied byStudied by 0 people
0.0(0)
Get a hint
Hint

all

1 / 92

flashcard set

Earn XP

Description and Tags

93 Terms

1

all

The economies of _______ developed nations are dependent on software. (some, most, or all)

New cards
2

theories methods tools

Software engineering is concerned with ______, _______, and _____ for professional software development.

New cards
3

GNP or gross national product

Expenditure on software represents a significant fraction of ______ in all developed countries

New cards
4

computer system

Software costs often dominate ______________ costs.

New cards
5

software

The costs of ________ on a PC are often greater than the hardware cost.

New cards
6

maintain

Software costs more to _______ than it does to develop

New cards
7

cost-effective

Software engineering is concerned with ________ software development

New cards
8

Increasing system complexity

As new software engineering techniques help us to build larger, more complex systems, the demands change. Systems have to be built and delivered more quickly; larger, even more complex systems are required; systems have to have new capabilities that were previously thought to be impossible.

New cards
9

Failure to use software engineering methods

It is fairly easy to write computer programs without using software engineering methods and techniques. Many companies have drifted into software development as their products and services have evolved. They do not use these in their everyday work. Consequently, their software is often more expensive and less reliable than it should be.

New cards
10

Software

Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.

New cards
11

attributes of good software

_________ should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.

New cards
12

software engineering

an engineering discipline that is concerned with all aspects of software production.

New cards
13

fundamental software engineering activities

Software specification, software development, software validation and software evolution.

New cards
14

Computer science

it focuses on theory and fundamentals

New cards
15

software engineering

it is concerned with the practicalities of developing and delivering useful software

New cards
16

system engineering

it is concerned with all aspects of computer-based systems development including hardware, software and process engineering

New cards
17

60% 40%

Roughly ___% of software costs are development costs, __% are testing costs.

New cards
18

evolution

For custom software, ________ costs often exceed development costs

New cards
19

web

The ____ has led to the availability of software services and the possibility of developing highly distributed service-based systems.

New cards
20

Web-based

__________ systems development has led to important advances in programming languages and software reuse.

New cards
21

Generic Products

Stand-alone systems that are marketed and sold to any customer who wishes to buy them

New cards
22

Generic Products

PC software such as graphics programs, project management tools; CAD software; software for specific markets such as appointments systems for dentists. What kind of products are these?

New cards
23

Customized products

Software that is commissioned by a specific customer to meet their own needs

New cards
24

Customized products

embedded control systems, air traffic control software, traffic monitoring systems. What kind of products are these?

New cards
25

Generic Product

Product Specification The specification of what the software should do is owned by the software developer and decisions on software change are made by the developer.

New cards
26

Customized products

Product Specification The specification of what the software should do is owned by the customer for the software, and they make decisions on software changes that are required.

New cards
27

Maintainability

Essential attributes of good software Software should be written in such a way so that it can evolve to meet the changing needs of customers. This is a critical attribute because software change is an inevitable requirement of a changing business environment.

New cards
28

Dependability and security

Essential attributes of good software 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.

New cards
29

Efficiency

Essential attributes of good software Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilisation, etc.

New cards
30

Acceptability

Essential attributes of good software Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable and compatible with other systems that they use.

New cards
31

Engineering discipline

Using appropriate theories and methods to solve problems bearing in mind organizational and financial constraints.

New cards
32

Software specification

where customers and engineers define the software that is to be produced and the constraints on its operation

New cards
33

Software development

where the software is designed and programmed

New cards
34

Software validation

where the software is checked to ensure that it is what the customer requires

New cards
35

Software evolution

where the software is modified to reflect changing customer and market requirements

New cards
36

Heterogeneity

Increasingly, systems are required to operate as distributed systems across networks that include different types of computer and mobile devices.

New cards
37

Business and social change

Business and society are changing incredibly quickly as emerging economies develop and new technologies become available. They need to be able to change their existing software and to rapidly develop new software.

New cards
38

security and trust

As software is intertwined with all aspects of our lives, it is essential that we can trust that software.

New cards
39

scale

Software has to be developed across a very wide range of scales, from very small embedded systems in portable or wearable devices through to Internet-scale, cloud-based systems that serve a global community.

New cards
40

universal

There are many different types of software system and there is no _______ set of software techniques that is applicable to all of these

New cards
41

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

New cards
42

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 e-commerce applications

New cards
43

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.

New cards
44

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

New cards
45

Entertainment systems

These are systems that are primarily for personal use and which are intended to entertain the user

New cards
46

Systems for modeling and simulation

These are systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects

New cards
47

Data collection systems

These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing

New cards
48

Systems of systems

These are systems that are composed of a number of other software systems

New cards
49

managed understood

§Systems should be developed using a ______ and _____ development process. Of course, different processes are used for different types of software.

New cards
50

Cloud computing

_______ is an approach to the provision of computer services where applications run remotely on the ‘cloud’.

New cards
51

use

Users do not buy software but pay according to _____

New cards
52

Web-based

______ systems are complex distributed systems but the fundamental principles of software engineering discussed previously are as applicable to them as they are to any other types of system

New cards
53

Software reuse

Web software engineering

It is the dominant approach for constructing web-based systems. When building these systems, you think about how you can assemble them from pre-existing software components and systems.

New cards
54

Incremental and agile development

Web software engineering

Web-based systems should be developed and delivered incrementally. It is now generally recognized that it is impractical to specify all the requirements for such systems in advance

New cards
55

Service-oriented systems

Web software engineering

where the software components are stand-alone web services

New cards
56

Rich Interfaces

Web software engineering

Interface development technologies such as AJAX and HTML5 have emerged that support the creation of this within a web browser.

New cards
57

morally correct

Software engineering ethics

Ethical behaviour is more than simply upholding the law but involves following a set of principles that are _________.

New cards
58

confidentiality

Software engineering ethics

§Engineers should normally respect the ______ of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.

New cards
59

competence

Software engineering ethics

Engineers should not misrepresent their level of _______. They should not knowingly accept work which is out with their blank.

New cards
60

intellectual property rights

Software engineering ethics

Engineers should be aware of local laws governing the use of _______, such as patents, copyright, etc. They should be careful to ensure that the rights of employers and clients are protected.

New cards
61

Computer misuse

Software engineering ethics

§Software engineers should not use their technical skills to misuse other people’s computers. _______ ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses).

New cards
62

ACM/IEEE Code of Ethics

The professional societies in the US have cooperated to produce a code of ethical practice. What is the name of the code?

New cards
63

public

Eight Principles of the Code of Ethics:

Software engineers shall act consistently with the ____ interest.

New cards
64

client and employer

Eight Principles of the Code of Ethics:

Software engineers shall act in a manner that is in the best interests of their _______ consistent with the public interest.

New cards
65

products

Eight Principles of the Code of Ethics:

Software engineers shall ensure that their ______ and related modifications meet the highest professional standards possible

New cards
66

judgment

Eight Principles of the Code of Ethics:

Software engineers shall maintain integrity and independence in their professional _______.

New cards
67

management

Eight Principles of the Code of Ethics:

Software engineering managers and leaders shall subscribe to and promote an ethical approach to the _______ of software development and maintenance.

New cards
68

profession

Eight Principles of the Code of Ethics:

Software engineers shall advance the integrity and reputation of the ________ consistent with the public interest

New cards
69

colleagues

Eight Principles of the Code of Ethics:

Software engineers shall be fair to and supportive of their _______

New cards
70

self

Eight Principles of the Code of Ethics:

Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession

New cards
71

software process

A structured set of activities required to develop a \n software system

New cards
72

abstract

A software process model is an ______ representation of a process. It presents a description of a process from some particular perspective.

New cards
73

Products

Process descriptions

which are the outcomes of a process activity

New cards
74

roles

Process descriptions

which reflect the responsibilities of the people involved in the process

New cards
75

pre- and post-conditions

Process descriptions

which are statements that are true before and after a process activity has been enacted or a product produced.

New cards
76

plan-driven processes

are processes where all of the process activities are planned in advance and progress is measured against this plan

New cards
77

agile processes

are processes where planning is incremental and it is easier to change the process to reflect changing customer requirements

New cards
78

Waterfall model

Software process models

Plan-driven model. Separate and distinct phases of specification and development

<p><u><strong>Software process models</strong></u></p><p>Plan-driven model. Separate and distinct phases of specification and development</p>
New cards
79

Incremental development

Software process models

Specification, development and validation are interleaved. May be plan-driven or agile

<p><u><strong>Software process models</strong></u></p><p>Specification, development and validation are interleaved. May be plan-driven or agile</p>
New cards
80

Integration and Configuration

Software process models

The system is assembled from existing configurable components. May be plan-driven or agile

New cards
81

Waterfall model

Which model has this drawback: difficulty of accommodating change after the process is underway. In principle, a phase has to be complete before moving onto the next phase.

New cards
82

Waterfall model

Which model has this drawback: Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements

New cards
83

Waterfall model

this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process

New cards
84

Waterfall model

this model is mostly used for large systems engineering projects where a system is developed at several sites.

New cards
85

Incremental development

Which model has this benefit: The cost of accommodating changing customer requirements is reduced

New cards
86

Incremental development

Which model has this benefit: easier to get customer feedback on the development work that has been done

*Customers can comment on demonstrations of the software and see how much has been implemented

New cards
87

Incremental development

Which model has this benefit: More rapid delivery and deployment of useful software to the customer is possible

*Customers are able to use and gain value from the software earlier than is possible with a waterfall process.

New cards
88

Incremental development

Which model has this drawback: The process is not visible.

Managers need regular deliverables to measure progress. If systems are developed quickly, it is not cost-effective to produce documents that reflect every version of the system

New cards
89

Incremental development

Which model has this drawback: System structure tends to degrade as new increments are added

Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly.

New cards
90

Integration and Configuration

This model is based on software reuse where systems are integrated from existing components or application systems (sometimes called COTS -Commercial-off-the-shelf) systems).

New cards
91

Stand-alone application systems

Types of reusable software

(sometimes called COTS) that are systems that are configured for use in a particular environment.

New cards
92

.NET or J2EE

Types of reusable software

Collections of objects that are developed as a package to be integrated with a component framework such as __or ___

New cards
93

web services

Types of reusable software

______ that are developed according to service standards and which are available for remote invocation

New cards

Explore top notes

note Note
studied byStudied by 15 people
... ago
5.0(1)
note Note
studied byStudied by 48 people
... ago
5.0(1)
note Note
studied byStudied by 18 people
... ago
5.0(1)
note Note
studied byStudied by 2650 people
... ago
4.9(37)
note Note
studied byStudied by 34 people
... ago
5.0(3)
note Note
studied byStudied by 76 people
... ago
5.0(2)
note Note
studied byStudied by 55 people
... ago
5.0(1)
note Note
studied byStudied by 18 people
... ago
5.0(1)

Explore top flashcards

flashcards Flashcard (162)
studied byStudied by 7 people
... ago
5.0(1)
flashcards Flashcard (52)
studied byStudied by 31 people
... ago
5.0(1)
flashcards Flashcard (109)
studied byStudied by 22 people
... ago
5.0(1)
flashcards Flashcard (36)
studied byStudied by 1 person
... ago
5.0(1)
flashcards Flashcard (57)
studied byStudied by 884 people
... ago
4.4(7)
flashcards Flashcard (25)
studied byStudied by 5 people
... ago
5.0(1)
flashcards Flashcard (27)
studied byStudied by 9 people
... ago
5.0(1)
flashcards Flashcard (193)
studied byStudied by 20 people
... ago
5.0(2)
robot