COMP201 - Software Engineering Flashcards
What are the four fundamental activities in all software processes?
Specification - what the system should do and its development constraints
Development - production of the software system
Validation - checking the software is what the customer wants
Evolution - changing software in response to change in demands
What is CASE?
Computer-Aided Software Engineering - software systems intended to provide automated support for software process activities (e.g. requirement analysis)
What are the essential attributes of software products and documentation?
Maintainability - software must be (easily) evolvable to meet changing needs
Dependability - software must be trustworthy (work with all data)
Efficiency - software shouldn’t be wasteful with system resources
Usability - software must be usable by the users it was design for
What are the responsibilities involved in software engineering?
Confidentiality, competence, intellectual property rights, computer misuse
What are processes?
A series of activities with specific characteristics
What are the characteristics of processes?
Prescribe all major activities
Use resources and produce intermediate and final products
May include sub-processes and have entry and exit criteria
Activities organised in a sequence
Constraints or controls may apply to activities
What are generic process models?
Models describing the organisation of software processes
What are some examples of generic software process models?
The waterfall model (distinct phases of specification & development) Evolutionary development (specification & development interleaved) Formal systems development (mathematical system model formally transformed to an implementation) Reuse-based development (system assembled from existing components)
What are iterative process models?
Models describing the software process as a cycle of activities
What is requirement engineering?
The process of developing a software specification
What activities are in the design process?
Architectural design Abstract specification Interface design Component design Data structure design Algorithm design
What happens in architectural design?
The subsystems making up their relationships are identified and documented
What happens in abstract specification?
An abstract specification of each subsystem’s operational constraints and services is produced
What happens in interface design?
An unambiguous interface with other subsystems is designed and documented for each subsystem.
What happens in component design?
Services are allocated to components and the interfaces of these components are designed
What happens in structure design?
The data structures used in the system implementation are designed in detail and specified
What happens in algorithm design?
The algorithms used in components to provide services are designed and specified
What is a model?
A graphical view of the operation/structure of a system - can be dynamic or static
Why use models?
Formalises the type and format of required information
Easier to get big picture than with text documents
Do not rely heavily on natural language
Some can be translated automatically to a software implementation
Can be tested for validity automatically
What are design methods?
Design (structured) methods are systematic approaches to developing a software design)
What are the 5 testing stages?
Unit testing Module testing Subsystem testing System testing Acceptance testing
What does unit testing test?
Individual components
What does module testing test?
Related collections of dependent component
What does subsystem testing involve?
Modules integrated into subsystems and tested, focus on interface testing