0% found this document useful (0 votes)
4 views17 pages

SE UNIT-3 Question Bank

The document provides an overview of the software design process, detailing its three main phases: Interface Design, Architectural Design, and Detailed Design. It also discusses user interfaces, including Command Line and Graphical User Interfaces, and explains Data Flow Diagrams (DFD) at Level 0 and Level 1. Additionally, it covers Extreme Programming (XP), the concepts of cohesion and coupling, and their respective types.

Uploaded by

Hemanth Atla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views17 pages

SE UNIT-3 Question Bank

The document provides an overview of the software design process, detailing its three main phases: Interface Design, Architectural Design, and Detailed Design. It also discusses user interfaces, including Command Line and Graphical User Interfaces, and explains Data Flow Diagrams (DFD) at Level 0 and Level 1. Additionally, it covers Extreme Programming (XP), the concepts of cohesion and coupling, and their respective types.

Uploaded by

Hemanth Atla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

UNIT-3

1. Give an overview of the design process.


Ans: The design phase of software development deals with transforming the customer
requirements as described in the SRS documents into a form implementable using a
programming language. The software design process can be divided into the following three
levels or phases of design:

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.

Here's a breakdown of the process as shown in the image:

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.

How to characterize good Software design:


1. Correctness: The design must implement all the required features and functionalities
correctly.

2. Understandability: The design must be easy to understand.

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.

The software becomes more popular if its user interface is:

1. Attractive

2. Simple to use

3. Responsive in a short time

4. Clear to understand

5. Consistent on all interface screens

Types of User Interface:

1. Command Line Interface

2. Graphical User Interface

1. Command Line Interface:

 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.

3. Graphical User Interface:


 Graphical User Interface provides a simple interactive interface to interact with the
system.
 GUI can be a combination of both hardware and software. Using GUI, the user interprets
the software.
 GUI provides a set of components to interact with software or hardware.
 Every graphical component provides a way to work with the system. A GUI system has
following elements such as:
o Window: A window is a box on the screen where an application shows its
content. It can display files as icons or lists, making it easier to explore them.
You can resize, move, minimize, or maximize a window. Some applications
allow smaller windows inside the main one, called child windows.
o Tabs: If an app can open multiple files or pages, each one usually opens in a
separate window. However, modern apps use tabs to keep everything in the
same window, making it more organized. Web browsers use tabs so you can
switch between websites easily.
o Menu: A menu is a list of commands that help you use an application. It is
usually at the top of the window and can appear or disappear when clicked.
o Icon: An icon is a small image that represents a program or file. Clicking or
double-clicking it opens the program. Icons make it easier to find and open
applications on a computer.
o Cursor: The cursor (or pointer) is the small arrow or symbol that moves when
you use a mouse, touchpad, or digital pen. It helps you select menus,
windows, and other features on the screen.
3.Explain about level-0 and level-1 DFD diagrams with example.
Ans: Data flow diagram: Data flow diagrams(DFD) provide a graphical representation of data
flow of a system that can understood by both technical and non technical users.

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.

- No detailed internal processes are shown.


Flow of the Process:
1. The User sends a request for admission to the Admission process.
2. The Admission process forwards a check request to the Admin to verify or process the
admission request.
3. The Admin responds with the result of the check (e.g., approval or rejection) to the
Admission process.
4. The Admission process then sends the response back to the User.

2. Level 1 DFD:

- Expands the main process from Level 0 into multiple subprocesses.


- Shows major functions or modules of the system.

- Data stores may be introduced at this level.

Flow of the process:


1. External Entities:

User- Provides student information and submit applications for admission.


Admin- Requests report from the system and receives generated reports.
2. Processes:

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):

- It is an agile software development methodology.


- Extreame Programming is one of the most important software development
frameworks of agile models.
- It is used to improve software quality and responsiveness to customer requirements.

XP values: It is built on 5 key values that guide teams in their work.

1. Communication: Effective communication among team members, customers and


stakeholders is essential for success.

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.

7. Coincidental Cohesion: Elements are grouped arbitrarily; there is little to no relationship


between them. This is the weakest form of cohesion and should be avoided.

Coupling: Coupling in software engineering refers to the degree of interdependence between


software modules. It indicates how closely related different modules are, which can affect the
system's maintainability, flexibility, and scalability. Lower coupling is generally preferred, as it
makes systems easier to understand and modify. A good software will have low coupling.

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.

2.Explain design review.


Ans: Design review is a formal evaluation of a software system’s design by a team to check for
correctness, quality, and adherence to requirements. It helps find and fix issues early in
development.

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.

You might also like