Chapter 1 Flashcards
(131 cards)
What does this unit investigate regarding software systems?
The characteristics of a good software system and the necessary development process to build such software.
Why is it important to focus on users’ needs in software development?
To ensure that the software effectively meets the requirements and expectations of its users.
What are replaceable and reusable components in software development?
Components that can be used in different systems or applications, promoting efficiency and reducing redundancy.
What are the different approaches to software development introduced in the unit?
Plan-driven and agile approaches.
What is software?
A collection of computer programs and related data that provide instructions to tell a computer what to do.
Define software engineering.
It is concerned with the theories, methods, and tools needed to develop reliable and efficient software.
What is a system in the context of software development?
An assembly of components that are connected together in an organized way.
What defines a system boundary?
A conceptual line that divides the system being studied from everything else.
What is the system’s environment?
The things not part of the system that can affect or be affected by it.
What is a domain in software development?
A particular area of interest.
List the important characteristics of software that affect its development.
- Malleability
- Complexity
- Size
What is malleability in software?
The ease with which software can be changed.
How does complexity affect software development?
Increased complexity often leads to more errors.
What characteristics define a good software system?
- Useful
- Usable
- Reliable
- Flexible
- Available
- Affordable
What does it mean for a software system to be maintainable?
It should be written and documented in a way that allows changes to be made easily.
What are legacy systems?
Systems that are usually large, critical to the business, have been changed multiple times, and are often difficult to maintain.
What is modularization in software development?
The process of decomposing a system into smaller subsystems or modules.
What are the two forms of decomposition?
- Projection
- Partitions
What is coupling in software engineering?
The degree of interdependence among different modules.
Define circular dependency in software.
A relation where two or more modules depend on each other to function properly.
What is cohesion in a module?
How closely related the activities within a single module are to each other.
What is a highly cohesive module?
A module that performs one task or achieves a single objective.
What does a good software system aim for in terms of coupling and cohesion?
Low coupling and high cohesion.
What is software architecture?
The structure of the items that make up a complete software system.