SE (P1/C1) - Introduction to Software engineering

0.0(0)
Studied by 5 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/16

encourage image

There's no tags or description

Looks like no tags are added yet.

17 Terms

1
New cards

Software failures are a consequence of?

  • Increasing system complexity: There is pressure to build and deliver larger, more complex software systems in shorter timeframes.

  • Failure to use software engineering methods.

2
New cards

The full scope of delivering Software products

software is not just the computer programs themselves but also all associated documentation, libraries, support websites, and configuration data that are needed to make these programs useful.

  • This is one of the important differences between professional and amateur software development. If you are writing a program for yourself, no one else will use it

  • if you are writing software that other people will use and other engineers will change, then you usually have to provide additional information as well as the code of the program.

3
New cards

What is the difference between software engineering and computer science?

Computer science focuses on theory and fundamentals.

Software engineering is concerned with the practicalities of developing and delivering useful software.

4
New cards

What is the difference between software engineering and system engineering?

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

Software engineering is part of this more general process.

5
New cards

What are the 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.

6
New cards

What are the attributes of good software?

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

7
New cards

There are two kinds of software products

  1. Generic 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. Ex: apps for mobile devices, software for PCs such as databases, word processors, drawing packages, and project management tools.

  2. Customized (or bespoke) software: software These are systems that are commissioned by and developed for a particular customer. A software contractor designs and implements the software especially for that customer. Examples of this type of software include control systems for electronic devices, systems written to support a particular business process, and air traffic control systems.

8
New cards

The critical distinction between Generic products & Customized software

  • in Generic products, the organization that develops the software controls the software specification. This means that if they run into development problems, they can rethink what is to be developed.

  • For custom products, the specification is developed and controlled by the organization that is buying the software. The software developers must work to that specification.

9
New cards

Software 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.

10
New cards

Engineering discipline

Engineers make things work. They apply theories, methods, and tools where these are appropriate.

However, they use them selectively and always try to discover solutions to problems even when there are no applicable theories and methods.

Software engineering also includes activities such as software project management and the development of tools, methods, and theories to support software development.

11
New cards

Software process.

A software process is a sequence of activities that leads to the production of a software product. Four fundamental activities are common to all software processes.

  1. Software specification, where customers and engineers define the software that is to be produced and the constraints on its operation.

  2. Software development, where the software is designed and programmed.

  3. Software validation, where the software is checked to ensure that it is what the customer requires.

  4. Software evolution, where the software is modified to reflect changing customer and market requirements.

12
New cards

How Software engineering is related to computer science.

Computer science is concerned with the theories and methods that underlie computers and software systems, whereas software engineering is concerned with the practical problems of producing software.

Some knowledge of computer science is essential for software engineers.

However, computer science theory is often most applicable to relatively small programs. Elegant theories of computer science are rarely relevant to large, complex problems that require a software solution.

13
New cards

The four related issues that affect many different types of software

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

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

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

  4. 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.

14
New cards

Software engineering diversity

Each type of system requires specialized software engineering techniques because a software has different characteristics.

15
New cards

List some of different types of applications


  1. Interactive transaction apps: Run on remote servers, accessed via computers or mobile devices.

  2. Embedded control systems: Manage hardware devices like mobile software or car systems.

  3. Entertainment systems: For personal enjoyment, like games on consoles.

  4. Modeling and simulation: Simulate physical processes, often on high-performance systems.

  5. Data collection and analysis: Gather data from sensors, analyze it, sometimes in the cloud.

  6. Systems of systems: Complex setups in large organizations, combining various software.

16
New cards

What are the Software Engineering fundamentals that apply to all types of software systems?

  1. Well managed development process: They should be developed using a managed and understood development process.

  2. Dependability and performance are important for all types of system. Software should behave as expected, without failures.

  3. Understanding and managing the software specification and requirements (what the software should do) are important.

  4. Maximize resource efficiency by reusing existing software when suitable rather than creating new solutions.

17
New cards

Internet software engineering

Internet Software Engineering refers to the discipline of developing software applications and systems specifically for use on the internet. This discipline started around 2000s.

This made it much cheaper to change and upgrade the software, as there was no need to install the software on every PC. It also reduced costs, as user interface development is particularly expensive.

The fundamental ideas of software engineering, discussed in the previous section, apply to web-based software, as they do to other types of software.