Software Engineer Module 1

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/92

flashcard set

Earn XP

Description and Tags

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

93 Terms

1
New cards
all
The economies of _______ developed nations are dependent on software. (some, most, or all)
2
New cards
theories methods tools
Software engineering is concerned with ______, _______, and _____ for professional software development.
3
New cards
GNP or gross national product
Expenditure on software represents a significant fraction of ______ in all developed countries
4
New cards
computer system
Software costs often dominate ______________ costs.
5
New cards
software
The costs of ________ on a PC are often greater than the hardware cost.
6
New cards
maintain
Software costs more to _______ than it does to develop
7
New cards
cost-effective
Software engineering is concerned with ________ software development
8
New cards
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.
9
New cards
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.
10
New cards
Software
Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.
11
New cards
attributes of good software
_________ should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.
12
New cards
software engineering
an engineering discipline that is concerned with all aspects of software production.
13
New cards
fundamental software engineering activities
Software specification, software development, software validation and software evolution.
14
New cards
Computer science
it focuses on theory and fundamentals
15
New cards
software engineering
it is concerned with the practicalities of developing and delivering useful software
16
New cards
system engineering
it is concerned with all aspects of computer-based systems development including hardware, software and process engineering
17
New cards
60% 40%
Roughly ___% of software costs are development costs, __% are testing costs.
18
New cards
evolution
For custom software, ________ costs often exceed development costs
19
New cards
web
The ____ has led to the availability of software services and the possibility of developing highly distributed service-based systems.
20
New cards
Web-based
__________ systems development has led to important advances in programming languages and software reuse.
21
New cards
Generic Products
Stand-alone systems that are marketed and sold to any customer who wishes to buy them
22
New cards
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?
23
New cards
Customized products
Software that is commissioned by a specific customer to meet their own needs
24
New cards
Customized products
embedded control systems, air traffic control software, traffic monitoring systems. What kind of products are these?
25
New cards
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.
26
New cards
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.
27
New cards
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.
28
New cards
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.
29
New cards
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.
30
New cards
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.
31
New cards
Engineering discipline
Using appropriate theories and methods to solve problems bearing in mind organizational and financial constraints.
32
New cards
Software specification
where customers and engineers define the software that is to be produced and the constraints on its operation
33
New cards
Software development
where the software is designed and programmed
34
New cards
Software validation
where the software is checked to ensure that it is what the customer requires
35
New cards
Software evolution
where the software is modified to reflect changing customer and market requirements
36
New cards
Heterogeneity
Increasingly, systems are required to operate as distributed systems across networks that include different types of computer and mobile devices.
37
New cards
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.
38
New cards
security and trust
As software is intertwined with all aspects of our lives, it is essential that we can trust that software.
39
New cards
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.
40
New cards
universal
There are many different types of software system and there is no _______ set of software techniques that is applicable to all of these
41
New cards
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
42
New cards
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
43
New cards
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.
44
New cards
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
45
New cards
Entertainment systems
These are systems that are primarily for personal use and which are intended to entertain the user
46
New cards
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
47
New cards
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
48
New cards
Systems of systems
These are systems that are composed of a number of other software systems
49
New cards
managed understood
§Systems should be developed using a ______ and _____ development process. Of course, different processes are used for different types of software.
50
New cards
Cloud computing
_______ is an approach to the provision of computer services where applications run remotely on the ‘cloud’.
51
New cards
use
Users do not buy software but pay according to _____
52
New cards
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
53
New cards
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.
54
New cards
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
55
New cards
Service-oriented systems
__**Web software engineering**__

where the software components are stand-alone web services
56
New cards
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.  
57
New cards
morally correct
__**Software engineering ethics**__

Ethical behaviour is more than simply upholding the law but involves following a set of principles that are _________.
58
New cards
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.
59
New cards
competence
__**Software engineering ethics**__

Engineers should not misrepresent their level of _______. They should not knowingly accept work which is out with their blank.
60
New cards
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.
61
New cards
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).
62
New cards
**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?
63
New cards
public
__**Eight Principles of the Code of Ethics:**__

Software engineers shall act consistently with the ____ interest.
64
New cards
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.
65
New cards
products
__**Eight Principles of the Code of Ethics:**__

Software engineers shall ensure that their ______ and related modifications meet the highest professional standards possible
66
New cards
judgment
__**Eight Principles of the Code of Ethics:**__

Software engineers shall maintain integrity and independence in their professional _______.
67
New cards
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.
68
New cards
profession
__**Eight Principles of the Code of Ethics:**__

Software engineers shall advance the integrity and reputation of the ________ consistent with the public interest
69
New cards
colleagues
__**Eight Principles of the Code of Ethics:**__

Software engineers shall be fair to and supportive of their _______
70
New cards
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
71
New cards
software process
A structured set of activities required to develop a \n software system
72
New cards
abstract
A software process model is an ______ representation of a process. It presents a description of a process from some particular perspective.
73
New cards
Products
__**Process descriptions**__

which are the outcomes of a process activity
74
New cards
roles
__**Process descriptions**__

which reflect the responsibilities of the people involved in the process
75
New cards
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.  
76
New cards
plan-driven processes
are processes where all of the process activities are planned in advance and progress is measured against this plan
77
New cards
agile processes
are processes where planning is incremental and it is easier to change the process to reflect changing customer requirements
78
New cards
Waterfall model
__**Software process models**__

Plan-driven model. Separate and distinct phases of specification and development
__**Software process models**__

Plan-driven model. Separate and distinct phases of specification and development
79
New cards
Incremental development
__**Software process models**__

Specification, development and validation are interleaved. May be plan-driven or agile
__**Software process models**__

Specification, development and validation are interleaved. May be plan-driven or agile
80
New cards
Integration and Configuration
__**Software process models**__

The system is assembled from existing configurable components. May be plan-driven or agile
81
New cards
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.
82
New cards
Waterfall model
Which model has this drawback: Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements
83
New cards
Waterfall model
this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process
84
New cards
Waterfall model
this model is mostly used for large systems engineering projects where a system is developed at several sites.
85
New cards
Incremental development
Which model has this benefit: The cost of accommodating changing customer requirements is reduced
86
New cards
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
87
New cards
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.
88
New cards
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
89
New cards
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.
90
New cards
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).
91
New cards
Stand-alone application systems
__**Types of reusable software**__

(sometimes called COTS) that are systems that are configured for use in a particular environment.
92
New cards
.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 ___
93
New cards
web services
__**Types of reusable software**__

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