SE UNIT-3 Question Bank
SE UNIT-3 Question Bank
1. Interface Design
2. Architectural Design
3. Detailed Design
1. Interface Design:
- This phase focuses on defining how the software will interact with users, other
systems, or components.
- It involves designing the user interface (UI) and external interfaces.
2. Architectural Design:
- Architectural design involves defining the overall structure of the system.
- It focuses on breaking the system down into major components and specifying how
these components will work together.
3. Detailed Design:
- This phase dives into the specifics of how each component or module, defined in the
architectural design, will be implemented.
- It focuses on the low-level design details.
The image depicts a Software Design Process in a flowchart format. It outlines the sequential
steps involved in designing a software system, emphasizing documentation and evaluation at
each stage.
Analyze the problem: The process begins with understanding and analyzing the problem that
the software aims to solve. This involves gathering requirements, defining the scope, and
identifying constraints. The outcome of this stage is documented.
Generate the system interface: Based on the problem analysis, the next step is to design the
system interface, which defines how users will interact with the software. This includes
designing user interfaces, APIs, and communication protocols. This stage is also documented.
Evaluate the system document: The documentation created for the system interface is then
evaluated to ensure it is clear, complete, and meets the requirements. This evaluation may
involve reviews, inspections, and testing. The evaluation results are documented.
Generate the Architecture: The overall structure and components of the software system are
defined in the architecture design phase. This includes choosing architectural patterns, defining
modules, and specifying how they interact with each other. This stage is documented.
Evaluate the Architecture: The architecture design is evaluated to ensure it is sound, scalable,
and meets the system's performance and reliability requirements. This may involve architectural
reviews and analysis. The evaluation results are documented.
Generate the detailed design: Each component or module defined in the architecture is further
detailed in this phase. This includes specifying algorithms, data structures, and implementation
details. This stage is documented.
Evaluate the detailed design: The detailed design is evaluated to ensure it is correct, efficient,
and meets the design specifications. This may involve code reviews, simulations, and testing.
The evaluation results are documented.
Review the design: The entire design process is reviewed to ensure consistency, completeness,
and adherence to standards. This may involve stakeholders, experts, and independent reviewers.
3. Efficiency: The design should optimize the use of resources, time, and cost.
4. Maintainability: The design should make it easy to change the system as requirements
evolve.
2. What is user Interface. Explain types of user interfaces.
Ans: The user interface is the front-end application view to which the user interacts to use the
software.
1. Attractive
2. Simple to use
4. Clear to understand
The Command Line Interface provides a command prompt, where the user types the
command and feeds it to the system.
The user needs to remember the syntax of the command and its use.
CLI uses less amount of computer resource as compared to GUI.
A text-based command line interface can have the following elements:
o Command Prompt: It is a text-based notifier that mostly shows the context in
which the user is working. It is generated by the software system.
o Cursor: It is a small horizontal line or a vertical bar of the height of line, to
represent the position of character while typing. Cursor is mostly found in
blinking state. It moves as the user writes or deletes something.
o Command: A command is an executable instruction. It may have one or more
parameters. Output on command execution is shown inline on the screen. When
output is produced, command prompt is displayed on the next line.
DFD Elements:
External entities:
Data flow:
Processes:
Data stores:
Levels of DFD:
1. Level 0:
- Represents the entire system as a single process.
- Shows external entities (sources and destinations of data) and data flow between them
and the system.
2. Level 1 DFD:
Perform Intake Procedure- this process handles student admission, including approval or
rejection.
Maintain Student Information- Stores and manages the approved student records in the
system.
Generate reports- Produces reports based on student data, which can be requested by the admin.
3.Data stores:
Student data- Stores student records and information.
4.Data flow:
- User submits student information which goes to the perform intake procedure process.
- If the application is approved, it is forworded to the maintain student information process
for storage.
- The admin can make a report request, which is processed by generate reports.
- The generate rports process fetches the required student data and provides a report to the
admin.
4.Discuss about extreme programming (XP) in detail.
Ans: Extreme programming (XP):
2. Simplicity: Developers focus on writing the simplest code that works, avoiding
unnecessary complexity.
3. Feedback: XP relies on frequent and fast feedback from customers, tests and team
members. This helps to teams to adjust their work early and improve software quality.
4. Courage: Developers must have the courage to make necessary changes, ask
difficulty questions and refactor the code when needed.
5. Respect: Team members respect each other’s contributions, ideas, efforts. A culture
of mutual respect ensures collaboration, trust, positive work environment.
XP Process:
Planning:
- Planning activity begins with listening.
- The team estimates the effort required for each story.
- Releases and iterations are planned based on priorities.
- The goal is to get an overview of the required features and functionality through user
stories.
Design:
- XP follows keep it simple (KISS) Principle, that means the design should be as simple as
possible.
- Uses CRC(Class - Responsibility - Collaboration) cards to model classes.
- CRC cards introduced by the scientists Kent Beck and Ward.
- Structure of CRC card: It represents a class and contains 3 key elements.
1. Class name – Name of the class
2. Responsibilities – The main features or duties of the class should perform.
3. Collaborations – The class interacts with other classes to fulfil its
responsibilities.
- If a difficulty design problem arises, spike solution prototypes(experimental code) is
created to test the concept before committing to the final design.
- Spike solution is small, quick experiment used to explore an unknown technical or design
problem in software development.
Coding:
- Developers implement features using pair programming for improving the code quality.
- Pair programming is a technique where two developers work together at the same work
station.
- Refactoring ensures continuous improvement and maintainability.
- Refactoring means improving the structure of code without changing its functionality.
Testing:
- Perform Unit testing to verify individual components.
- Continuous Integration (CI) ensures that whenever new code is added, it is automatically
tested and merged with the existing code.
- Perform Acceptance test that ensures the software meets business requirements and
works as expected.
Release:
- Delivers a software increment, a working version of product.
- Computes project velocity, measuring progress for future iterations.
5.Define cohesion and coupling. Explain its types.
Ans: Cohesion: Cohesion refers to the degree to which the elements of a module or
component in a software system belong together. It is a measure of how closely related and
focused the responsibilities of a single module are. Higher cohesion within a module is generally
desirable, as it enhances readability, maintainability, and reusability. A good software design
will have high cohesion.
Types of Cohesion
1.Functional Cohesion: Every essential element for a single computation is contained in the
component. A functional cohesion performs the task and functions. It is an ideal situation.
2.Sequential Cohesion: An element outputs some data that becomes the input for other
element, i.e., data flow between the parts. It occurs naturally in functional programming
languages.
3. Communicational Cohesion: All parts operate on the same data or contribute to a single task
but may not be sequentially connected. This is useful but can lead to less clarity.
4. Procedural Cohesion: Elements are grouped because they always follow a certain sequence
of execution, but they may not necessarily work towards a common goal.
5. Temporal Cohesion: Elements are grouped because they are related by timing, meaning they
are activated at the same time, but do not necessarily interact with each other.
6. Logical Cohesion: Elements are grouped logically, often by a shared category, even though
they serve different purposes. This can lead to confusion and is generally less desirable.
Types of Coupling:
1. Content Coupling: One module directly modifies or relies on the internal workings of another. This is
the highest level of coupling and is generally discouraged.
2. Common Coupling: Multiple modules share access to the same global data. Changes in the shared
data can affect all modules, making it difficult to manage.
3. external Coupling: In external coupling, the modules depend on other modules, external to the
software being developed or to a particular type of hardware. Ex- protocol, external file, device format,
etc.
4. Control Coupling: One module controls the behavior of another by passing control information (like
flags or parameters). This can lead to dependencies on the internal workings of the other module.
5. Stamp Coupling: Modules share a composite data structure, but they only use a portion of it. This can
lead to unnecessary dependencies if changes occur in the structure.
6. Data Coupling: Modules share data through parameters, but only the data necessary for their
operation. This is a more desirable form of coupling.
1.What are types of user interfaces.
Ans: The user interface is the front end application view to which the user interacts to use the
software.
There are two types of user interfaces:
1. Command Line Interface: This interface allows users to interact with a system by
typing
commands into a command prompt.
2. Graphical User Interface: This interface allows users to interact with a system by
graphical
elements like icons, buttons and menus instead of text based commands.
3.What is coupling.
Ans: Coupling refers the degree of dependency between different modules or components of a
software system it describes how closely connected different parts of the system.
Types of coupling:
1.Data coupling
2.Stamp coupling
3.Control coupling
4.What is Cohesion.
Ans: Cohesion refers the degree in which the elements within a single module or class or
components of a System are closely related to each other.
Types of cohesion:
1.Function cohesion
2.Sequential cohesion
3.Communication cohesion
4.Procedural cohesion
5.Temporal coheson
6.Logical cohesion
7.Coincidential cohesion
4.What is agility.
Ans: In software engineering agility refers to the ability to quickly and efficiently respond to
change in requirement,market conditions and customer needs.