1/25
Flashcards for key vocabulary and concepts in Software Engineering.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Software Engineering
An engineering discipline concerned with all aspects of software production, from initial conception to operation and maintenance.
Software
Computer programs and associated documentation; can be developed for a particular customer or a general market.
Good Software Attributes
Should deliver required functionality and performance, be maintainable, dependable, and usable.
Fundamental Software Engineering Activities
Software specification, software development, software validation, and software evolution.
Heterogeneity (in Software Engineering)
The need for systems to operate across diverse networks with different computer types and mobile devices. Integrating new software with older legacy systems is a key challenge.
Software Engineering Diversity
The methods, tools, and techniques used depend on the organization, software type, and people involved in development. There are no universal methods suitable for all systems and companies.
Stand-alone applications
Application systems that run on a personal computer or apps that run on a mobile device.
Interactive transaction-based applications
Applications that execute on a remote computer and are accessed by users from their own computers, phones, or tablets.
Embedded control systems
Software control systems that control and manage hardware devices.
Batch processing systems
Business systems that are designed to process data in large batches.
Entertainment systems
Systems for personal use that are intended to entertain the user.
Systems for modeling and simulation
Systems that are developed by scientists and engineers to model physical processes or situations.
Data collection and analysis systems
Systems that collect data from their environment and send that data to other systems for processing.
Systems of systems
Systems, used in enterprises and other large organizations, that are composed of a number of other software systems.
Software engineering ethics
Software engineers must behave ethically and morally responsible, upholding confidentiality, competence, intellectual property rights, and avoiding computer misuse.
Software Process
A set of related activities that leads to the production of a software system.
Plan-driven processes
Processes where all of the process activities are planned in advance and progress is measured against this plan.
Agile processes
Planning is incremental and continual as the software is developed. It is therefore easier to change the process to reflect changing customer or product requirements.
Waterfall model
Takes the fundamental process activities of specification, development, validation, and evolution and represents them as separate process phases such as requirements specification, software design, implementation, and testing.
Incremental development
This approach interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with each version adding functionality to the previous version.
Integration and configuration
This approach relies on the availability of reusable components or systems. The system development process focuses on configuring these components for use in a new setting and integrating them into a system.
Software specification
The functionality of the software and constraints on its operation must be defined.
Software development
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.
Agile Development
Rapid software development.