Topic_1_Introduction_to_Software_Engineering

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

1/40

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

41 Terms

1
New cards
Software Engineering
An engineering discipline concerned with all aspects of software production, from system specification to maintenance.
2
New cards
Waterfall Model
A sequential design process that is often used in software development where progress flows in one direction through phases.
3
New cards
Incremental Development
A software development process where the software is developed in small increments or parts.
4
New cards
Agile Development
A methodology that promotes continuous iteration of development and testing throughout the software development lifecycle.
5
New cards
Functional Requirements
Specifications that define what features or functions a system must have.
6
New cards
Non-functional Requirements
Specifications that define system attributes like performance, usability, scalability, etc.
7
New cards
Software Validation
The process of checking whether the software meets the specifications and fulfills its intended purpose.
8
New cards
Software Evolution
The process of developing software over time to adapt to changing requirements.
9
New cards
Maintainability
The ease with which software can be modified to correct faults, improve performance, or adapt to a changed environment.
10
New cards
Reliability
The ability of software to perform its required functions under stated conditions for a specified period.
11
New cards
Risk Management
The identification, assessment, and prioritization of risks followed by coordinated efforts to minimize, monitor, and control the probability of unfortunate events.
12
New cards
Iterative Development
An approach to software development where the system is developed through repeated cycles (iterations) and smaller portions of the software are produced.
13
New cards
Software Specification
The process of defining the requirements and constraints of a software project.
14
New cards
User Interface Design
The process of designing the way users interact with a software system, ensuring its usability and aesthetic.
15
New cards
ACM/IEEE Code of Ethics
A set of guidelines that outlines ethical principles for software engineers to ensure integrity and professional conduct.
16
New cards
Dependability
The attribute of software that reflects its reliability, availability, and security.
17
New cards
Testing
The process of evaluating a system or its components to determine whether it meets the specified requirements.
18
New cards
Debugging
The process of identifying, isolating, and fixing problems or bugs in the software.
19
New cards
Software Process Model
A structured representation of the software development process.
20
New cards
Prototype
An early sample or model of a product used to test a concept or process.
21
New cards
Software Maintenance
The process of updating and improving existing software to adapt it to new requirements or correct problems.
22
New cards
Batch Processing Systems
Systems that process large volumes of data at once, usually without manual intervention.
23
New cards
Interactive Transaction-based Applications
Applications that process transactions in real-time, often used in online shopping and banking systems.
24
New cards
Embedded Control Systems
Computer systems that are part of a larger device and are often used to control the device's operation.
25
New cards
Quality Metrics
Measurements used to assess the quality attributes of a software product, like maintainability and performance.
26
New cards
Software Ethics
The responsibility of software engineers to ensure their work is carried out honestly, ethically, and with respect to the public good.
27
New cards

What does Incremental Development entail?

A software development process where the software is developed in small increments or parts.

28
New cards

What is Agile Development?

A methodology that promotes continuous iteration of development and testing throughout the software development lifecycle.

29
New cards

What is software?

Computer programs and associated documentation. Products are developed for a market

30
New cards

What are the attributes of a good software?

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

31
New cards

What are the fundamental software engineering activities?

Software specification, software development, software validation and software evolution

32
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

33
New cards

What is the difference between software engineering and system engineering?

System engineering: computer-based systems which are hardware, software and process engineering.
Software engineering: part of the more general process

34
New cards

What are the key challenges facing software engineering?

Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software

35
New cards

What are the costs of software engineering?

Roughly 60% of software costs are development costs. 40% for testing costs

36
New cards

Why do projects fail?

Not having a good understanding of the requirements & poor communication

37
New cards

Maintainability

The ease with which software can be modified to correct defects, improve performance, or adapt to a changed environment.

38
New cards

Dependability and security

Reliability, security and safety of software systems, ensuring they operate correctly and protect against threats.

39
New cards

Efficiency

Software not wasteful of system resources. Responsiveness, processing time, memory utilisation

40
New cards

Acceptability

Software must be understandable, usable and compatible with other systems

41
New cards

Components of Software Engineering

Processes: Framework for task
Tools: Tools to make development easier and more efficient.
Notations: UML Diagrams
Product: Software product or system built and put into operation