Software Engineering Principles questions
and answers 2025/2026 latest update
1.Software engineering - answerengineering discipline that is concerned with all aspects of software
production (Design, development and maintenance)
2.Good software should deliver the - answerrequired functionality and performance to the user and
should be maintainable, dependable and usable
3.Software Eng vs System Eng vs Computer Science - answerComputer science focuses on theory and
fundamentals
Software engineering is concerned with the practicalities of developing and delivering useful software.
System engineering is concerned with all aspects of computer-based systems development including
hardware, software and process engineering. Software engineering is part of this more general process.
4.Good software requires good programming, but remember: - answerProgramming quality is the
means to the END not the END ITSELF
5.The CRAFT of software development is to select the appropriate methods for each project and apply
them - answerEFFECTIVELY
6.Functionality, Cost, Time - answertrade off
7.Main Stakeholders - answer- Clients
- Customers
- Users
8.Who is the client? - answerThe person for whom the software development team creates the software
The person who provides resources and expects some product in return
Often a member of the funding organization
,9.Who is the customer? - answerThe person who buys the software or selects it for use in their
organization
10.Who is the User? - answerThe person who actually uses the software
Customer = user in some cases
11.How to minimize risks? - answerFeasibility study: whether to begin a project or not
Separation of requirements ( = what client want) from design (how the developers meet those
requirements)
Milestones: progress reports or releases
Acceptance (client tests the software to see if it meets the requirements) and user testing (done jointly
with developers)
Handover: ensure the client is empowered to operate and maintain the product
12.Visibility - answerThe people who take responsibility must know what is
happening
13.Professional Responsibility - answerCompetence: Software that does not work effectively
can destroy an organization.
Confidentiality: Software developers and systems administrators may have access to highly confidential
information (e.g., trade secrets, personal data).
Legal environment: Software exists in a complex legal environment (e.g., intellectual property,
obscenity).
Acceptable use and misuse: Computer abuse can paralyze an organization (e.g., the Internet worm).
14.These steps may be repeated many times during the development cycle - answerRequirements
User Interface Design
System and program design
Implementation (coding)
Acceptance and release
,15.feasibility - answerA feasibility study precedes the decision to begin a project
16.Requirements - answerdefine the function of the system from the client's viewpoint.
The requirements establish the system's functionality, constraints, and goals
by consultation with the client, customers, and users.
Failure to agree on the requirements and define them adequately is one of the biggest causes of
software projects failing.
17.Usability - answergreat importance in many modern applications and software systems. That requires
good user interface design.
User interfaces need to be evaluated with users.
18.Design - answerdescribes the system from the software developers' viewpoint
19.System design: - answerEstablish a system architecture, both hardware and software, that
matches the requirements
into one or more executable programs
Preliminary user testing is often carried out as part of the design step
Models are used to represent the requirements, system architecture and program design (for ex: UML)
20.User testing - answerVersions of the user interface are tested by users. Their experience may lead to
changes in the requirements or the design.
21.Program testing - answerThe development team tests components individually (unit testing) or in
combination (system testing) against the design to find bugs, etc.
22.Acceptance testing - answerThe client tests the final version of the system or parts of the system
against the requirements.
, 23.Iterative refinement - answerGo quickly through all the steps to create a rough system, then repeat
them to improve the system
-EXAMPLE:
Create a prototype system early in the process Review the prototype with clients and test it with users,
to improve
the understanding of the requirements and clarify the design Refine the prototype in a series of
iterations
Note: Requirements are hard to understand until there is an operational system, particularly with user
interfaces. Mistakes in the requirements are expensive to correct.
medium weight process with documentation created during the process
Iterative refinement uses various techniques that enable the client to review the planned system early
during development:
-User interface mock-up
-Throw-away software components
- Dummy modules Rapid prototyping Successive refinement
Get something working as quickly as possible, for client and user evaluation, but do not release it.
Spiral (made popular by MS with OS) - answerA variant of iterative refinement in which new and
updated
components are added to the developing system as they are completed
Agile/ Incremental Development - answerSmall increments of software are developed in a sequence of
sprints,
each of which creates a deployable code
and answers 2025/2026 latest update
1.Software engineering - answerengineering discipline that is concerned with all aspects of software
production (Design, development and maintenance)
2.Good software should deliver the - answerrequired functionality and performance to the user and
should be maintainable, dependable and usable
3.Software Eng vs System Eng vs Computer Science - answerComputer science focuses on theory and
fundamentals
Software engineering is concerned with the practicalities of developing and delivering useful software.
System engineering is concerned with all aspects of computer-based systems development including
hardware, software and process engineering. Software engineering is part of this more general process.
4.Good software requires good programming, but remember: - answerProgramming quality is the
means to the END not the END ITSELF
5.The CRAFT of software development is to select the appropriate methods for each project and apply
them - answerEFFECTIVELY
6.Functionality, Cost, Time - answertrade off
7.Main Stakeholders - answer- Clients
- Customers
- Users
8.Who is the client? - answerThe person for whom the software development team creates the software
The person who provides resources and expects some product in return
Often a member of the funding organization
,9.Who is the customer? - answerThe person who buys the software or selects it for use in their
organization
10.Who is the User? - answerThe person who actually uses the software
Customer = user in some cases
11.How to minimize risks? - answerFeasibility study: whether to begin a project or not
Separation of requirements ( = what client want) from design (how the developers meet those
requirements)
Milestones: progress reports or releases
Acceptance (client tests the software to see if it meets the requirements) and user testing (done jointly
with developers)
Handover: ensure the client is empowered to operate and maintain the product
12.Visibility - answerThe people who take responsibility must know what is
happening
13.Professional Responsibility - answerCompetence: Software that does not work effectively
can destroy an organization.
Confidentiality: Software developers and systems administrators may have access to highly confidential
information (e.g., trade secrets, personal data).
Legal environment: Software exists in a complex legal environment (e.g., intellectual property,
obscenity).
Acceptable use and misuse: Computer abuse can paralyze an organization (e.g., the Internet worm).
14.These steps may be repeated many times during the development cycle - answerRequirements
User Interface Design
System and program design
Implementation (coding)
Acceptance and release
,15.feasibility - answerA feasibility study precedes the decision to begin a project
16.Requirements - answerdefine the function of the system from the client's viewpoint.
The requirements establish the system's functionality, constraints, and goals
by consultation with the client, customers, and users.
Failure to agree on the requirements and define them adequately is one of the biggest causes of
software projects failing.
17.Usability - answergreat importance in many modern applications and software systems. That requires
good user interface design.
User interfaces need to be evaluated with users.
18.Design - answerdescribes the system from the software developers' viewpoint
19.System design: - answerEstablish a system architecture, both hardware and software, that
matches the requirements
into one or more executable programs
Preliminary user testing is often carried out as part of the design step
Models are used to represent the requirements, system architecture and program design (for ex: UML)
20.User testing - answerVersions of the user interface are tested by users. Their experience may lead to
changes in the requirements or the design.
21.Program testing - answerThe development team tests components individually (unit testing) or in
combination (system testing) against the design to find bugs, etc.
22.Acceptance testing - answerThe client tests the final version of the system or parts of the system
against the requirements.
, 23.Iterative refinement - answerGo quickly through all the steps to create a rough system, then repeat
them to improve the system
-EXAMPLE:
Create a prototype system early in the process Review the prototype with clients and test it with users,
to improve
the understanding of the requirements and clarify the design Refine the prototype in a series of
iterations
Note: Requirements are hard to understand until there is an operational system, particularly with user
interfaces. Mistakes in the requirements are expensive to correct.
medium weight process with documentation created during the process
Iterative refinement uses various techniques that enable the client to review the planned system early
during development:
-User interface mock-up
-Throw-away software components
- Dummy modules Rapid prototyping Successive refinement
Get something working as quickly as possible, for client and user evaluation, but do not release it.
Spiral (made popular by MS with OS) - answerA variant of iterative refinement in which new and
updated
components are added to the developing system as they are completed
Agile/ Incremental Development - answerSmall increments of software are developed in a sequence of
sprints,
each of which creates a deployable code