Software Development - OVERVIEW

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

1/63

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.

64 Terms

1
New cards
Software Engineering
A discipline that studies the overall life cycle of software - such as development, operation, and maintenance - systematically, descriptively and quantitatively.
2
New cards
Method (Software Engineering)
Composed of project planning and estimation, system and software analysis, data structure, program structure, algorithm, coding, testing, and maintenance tasks.
3
New cards
Tool (Software Engineering)
An automated or semi-automated method that is used to improve productivity or consistency when performing a task.
4
New cards
Procedure (Software Engineering)
Combines a method and a tool so that they can be used to develop software in a rational and timely fashion.
5
New cards
Software Development Lifecycle
The entire process from understanding the user environment and problems to operation and maintenance. Generally composed of Feasibility review — Development planning — Requirements analysis — Design — Implementation — Test — Operation — Maintenance activities.
6
New cards
V model
A software lifecycle model that clearly shows the activities that should be performed while implementing the project to project managers and developers; helps customers understand software development principles.
7
New cards
Waterfall model
A software lifecycle model that proceeds with analysis, design, and implementation sequentially.
8
New cards
Prototype model
A software lifecycle model where a sample product (prototype) is created in advance, and then the user's new requirements or corrections are reflected to improve the prototype for developing a complete product.
9
New cards
Incremental model
A software lifecycle model in which the entire system is divided into increments, and each increment is developed and delivered sequentially.
10
New cards
Evolutionary model
A software lifecycle model that develops an initial version of the software, then refines and enhances it through multiple versions based on user feedback.
11
New cards
Software Development Methodology
Defines each development phase, the activities to perform in each phase, the deliverables, the verification procedure and completion criteria, and then defines the standardized method and procedure, and support tool for the development plan, analysis, design, and implementation phase.
12
New cards
Agile Development Methodology
A software development approach that focuses on iterative development, collaboration, and rapid response to change. Examples include XP (Extreme Programming) and Scrum.
13
New cards
XP (Extreme Programming)
An agile methodology that emphasizes customer satisfaction, teamwork, and frequent releases of working software.
14
New cards
Scrum
An agile project management framework in which a small team works in short cycles (sprints) to deliver increments of a product.
15
New cards
Software Reuse
The process of using existing software artifacts (code, designs, documentation) to build new software systems.
16
New cards
Reverse Engineering
The process of analyzing a subject system to identify the system's components and their interrelationships and to create representations of the system in another form or at a higher level of abstraction.
17
New cards
Data Structure
A way of organizing and storing data in a computer so that it can be accessed and modified efficiently.
18
New cards
Stack
A linear data structure that follows the Last-In-First-Out (LIFO) principle.
19
New cards
Queue
A linear data structure that follows the First-In-First-Out (FIFO) principle.
20
New cards
Tree
A hierarchical data structure with a hierarchical relationship between elements.
21
New cards
Graph
A data structure that expresses the many-to-many relationship between connected elements, consisting of a set of vertices and edges.
22
New cards
Algorithm
A finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation.
23
New cards
Abstraction (Software Design)
The process of identifying the essential characteristics of an object or system while ignoring irrelevant details.
24
New cards
Information Hiding (Software Design)
A principle that modules should be designed so that information contained within a module is inaccessible to other modules that have no need for such information.
25
New cards
Stepwise Refinement (Software Design)
A top-down design strategy in which a system is broken down into smaller, more manageable parts.
26
New cards
Modularization (Software Design)
The process of dividing a software system into separate modules that can be developed and tested independently.
27
New cards
Cohesion
A measure of the degree to which the elements inside a module belong together.
28
New cards
Coupling
A measure of the degree of interdependence between modules.
29
New cards
Data Coupling
Coupling where modules interact by passing only data.
30
New cards
Stamp Coupling
Coupling where modules interact by passing a data structure.
31
New cards
Control Coupling
Coupling where one module passes control information to another.
32
New cards
Software Architecture
A set of important decision-making rules about the software structure (Booch). It can be regarded as a blueprint to systematically handle factors affecting software development and complexity.
33
New cards
MVC (Model-View-Controller) Structure
An architectural pattern that separates an application into three main logical components
34
New cards
Client-Server Model
A distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients.
35
New cards
Object (Object-Oriented Design)
An instance of a class, representing a specific entity with state and behavior.
36
New cards
Class (Object-Oriented Design)
A blueprint for creating objects, providing initial values for state (member variables or attributes) and implementations of behavior (member functions or methods).
37
New cards
Encapsulation (Object-Oriented Design)
The bundling of data with the methods that operate on that data, or the restricting of direct access to some of an object's components.
38
New cards
Inheritance (Object-Oriented Design)
A mechanism where a new class derives properties and characteristics from an existing class.
39
New cards
Polymorphism (Object-Oriented Design)
The ability of an object to take on many forms, allowing a single interface to represent different underlying forms (data types).
40
New cards
Design Pattern
A general reusable solution to a commonly occurring problem within a given context in software design.
41
New cards
Singleton Pattern
A creational design pattern that ensures a class has only one instance and provides a global point of access to it.
42
New cards
Factory Method Pattern
A creational design pattern that provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.
43
New cards
Adapter Pattern
A structural design pattern that allows objects with incompatible interfaces to collaborate.
44
New cards
Decorator Pattern
A structural design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the same class.
45
New cards
Facade Pattern
A structural design pattern that provides a simplified interface to a library, a framework, or any other complex set of classes.
46
New cards
User Interface (UI)
The means by which the user and a computer system interact, in particular the use of input devices and software. Key principles include consistency, user-centered design, feedback, and confirming destructive behavior.
47
New cards
User Experience (UX)
The overall experience of a person using a product such as a website or computer application, especially in terms of how easy or pleasing it is to use.
48
New cards
Programming Language
A formal language comprising a set of instructions that produce various kinds of output.
49
New cards
Interpreter Language
A type of programming language for which most of its implementations execute instructions directly and freely, without previously compiling a program into machine-language instructions.
50
New cards
Compiler Language
A type of programming language where the source code is translated into machine code by a compiler before execution.
51
New cards
Software Development Framework
A platform for developing software applications, providing a foundation on which software developers can build programs for a specific platform.
52
New cards
Spring Framework
An application framework and inversion of control container for the Java platform.
53
New cards
Integrated Development Environment (IDE)
A software application that provides comprehensive facilities to computer programmers for software development.
54
New cards
Continuous Integration (CI)
A development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run.
55
New cards
Software Testing
A method of checking or confirming that the operation, performance and stability of an application or system satisfies the demands of the user or customer, by identifying or detecting defects or faults etc.
56
New cards
Refactoring
The process of restructuring existing computer code—changing the factoring—without changing its external behavior.
57
New cards
Code Smell
Any characteristic in the source code of a program that possibly indicates a deeper problem.
58
New cards
Requirements Management
The process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders.
59
New cards
Requirements Traceability
The ability to describe and follow the life of a requirement, in both a forwards and backwards direction.
60
New cards
Software Configuration Management (SCM)
A systems engineering process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life.
61
New cards
Software Maintenance
The modification of a software product after delivery to correct faults, to improve performance or other attributes.
62
New cards
Open-Source Software (OSS)
Software with source code that anyone can inspect, modify, and enhance.
63
New cards
Open-Source Software License
A type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions.
64
New cards
Microservice Architecture
An architectural style that structures an application as a collection of small, autonomous services, modeled around a business domain. Key features include high development productivity and flexible deployment.