Study your flashcards anywhere!

Download the official Cram app for free >

  • Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off

How to study your flashcards.

Right/Left arrow keys: Navigate between flashcards.right arrow keyleft arrow key

Up/Down arrow keys: Flip the card between the front and back.down keyup key

H key: Show hint (3rd side).h key

A key: Read text to speech.a key


Play button


Play button




Click to flip

50 Cards in this Set

  • Front
  • Back

Generic Products

Stand alone systems that are produced by a development organization and sold on the open market. Examples: PC's, word processors, drawing packages, and project-management tools.

Customized Products

Systems that are commissioned by a particular customer. A software contractor develops the software especially for that customer. Examples: Control systems for electronic devices, systems written to support a particular business process, and air traffic control systems.

Engineering Discipline

Engineers make things work by applying theories, methods, and tools where they are appropriate. They also try to find solutions when there is no applicable theory or method.

Aspects of software production

Technical processes and activities such as project management and the development of tools, methods, and theories to support software production.

General Issues with different types of Software

Heterogeneity, Business/Social Change, and Security/Trust


Integrating new software with older legacy systems written in different programming languages. Challenge is to develop techniques for building dependable software that is flexible enough to cope with this heterogeneity.

Business and Social Change

Business and society are changing incredibly quickly as emerging economies develop and new technologies become available.

Security and Trust

As software is intertwined with all aspects of our lives, it is essential that we can trust that software. We have to make sure that malicious users cannot attack our software and that information security is maintained.

Software Engineering Diversity

Deciding which software engineering methods and techniques to use depending on the application being developed.

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. Examples: Office applications on a PC, photo manipulation software, word processor, etc.

Interactive transaction-based Applications

Applications that execute on a remote computer and that are accessed by users from their own PCs or terminals. Examples: e-commerce applications where users use a remote system to buy and sell goods and services, cloud based services, etc.

Embedded Control Systems

Software control systems that control and manage hardware devices. Examples: software in a mobile cellphone, software in a microwave to control cooking process, software that controls anti-locking brakes in a car.

Batch processing systems

Business systems designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs. Examples: periodic billing systems, such as phone billing systems and salary payment systems.

Entertainment systems

Systems that are primarily for personal use and which are intended to entertain the user. Examples: games for N64 or Gamecube

Systems for modeling and simulation

Systems designed by scientists and engineers to model physical processes or situations.

Data collection systems

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

System of Systems

Systems that are composed of a number of other software systems. Could be a generic product, such as a spreadsheet program.

Software Engineering Ethics

Confidentiality, Competence, Intellectual property rights, and Computer misuse.


You should normally respect the confidentiality of your employer or clients regardless if you have not signed a formal confidentiality agreement.


The ability to do something successfully.

You should not misrepresent your level of competence. You should not knowingly accept work outside of your competence.

Intellectual property rights

You should be aware of local laws governing the use of intellectual property such as patents and copyright. You should be careful to ensure that the intellectual property of employers and clients is protected.

Computer misuse

You should not use your technical skills to misuse other people's computers. Computer misuses range from relatively trivial (game playing on an employers computer) to extremely serious (dissemination of viruses or other malware).

Software specification

The functionality of the software and its constraints on its operations must be defined.

Software design and implementation

The software to meet the specification must be produced.

Software validation

The software must be validated to ensure that it does what the customer wants.

Software evolution

The software must evolve to meet changing customer needs.

Waterfall Model

Incremental stages of Requirements Definition, System & Software Design, Implementation & Unit Testing, Integration & System Testing, and Operation & Maintenance. If you need to go back, you start back from the beginning.

Waterfall Model Diagram

Incremental Development

This system develops as a series of increments, with each version adding functionality to the previous version.

Incremental Development Diagram


Reuse-oriented software engineering

System is based on the existence of a significant number of re-usable components. The system development process focuses on integrating these components into a system rather than developing them from scratch.

4 main activities in the requirements engineering process

Feasibility Study, Requirements elicitation & Analysis, Requirements Specification, and Requirements Validation.

Feasibility Study

An estimate is made of whether the identified user needs may be satisfied using current software and hardware technologies. The study considers whether the proposed system will be cost-effective from a business point of view and if it can be developed within the budget.

Requirements elicitation and analysis

This is the process of deriving the systems requirements through observation of existing systems, discussions with potential users, task analysis, and so on.

Requirements Specification

The activity of translating the information the information gathered during the analysis into a document that defines a set of requirements. Two types of requirements, User & System.

Requirements validation

This activity checks the requirements for for realism, consistency, and completeness. Errors will be discovered and corrected.

Architectural Design

You identify the overall structure of the system, the principal components their relationships, and how they are distributed.

Interface Design

You define the interfaces between system components. This specification has to be unambiguous so that a component can be used without other components having to know how it is implemented.

Component Design

You take each system component and design how it will operate.

Database Design

You design the system of data structures and how these are to be represented in a database. Work here is based on whether an existing database is to be reused or a new database is to be created.

Stages in the Testing Process

Developmental Testing, System Testing, and Acceptance Testing.

Developmental Testing

The components making up the system are tested by the people developing the system. Each component is tested independently.

System Testing

System components are integrated to create a complete system. This process is concerned with finding errors that result from unanticipated interactions between components and component interface problems.

Acceptance Testing

Final stage in testing process before the system is accepted for operational use. The system is tested with data supplied by the system customer rather than with simulated data.

Boehm's Spiral Model

4 Sectors of Boehm's Spiral Model

Objective setting, Risk assessment & reduction, Developmental & validation, and Planning.

Objective Setting

Specific objectives for that phase of the project are defined. Constraints on the process and the product are identified and a detailed management plan is drawn up.

Risk assessment and reduction

For each of the identified project risks, a detailed analysis is carried out. Steps are taken to reduce the risk.

Developmental and validation

After risk evaluation, a developmental model for the system is chosen.


The project is reviewed and a decision is made whether to continue with a further loop of the spiral. If it is decided to continue, plans are drawn up for the next phase of the project.