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

Software Enggenering Ans

The document defines key concepts in software engineering including abstraction, design patterns, negotiation, agility, and software requirement specifications. It explains the importance of artifacts in the development process and categorizes design patterns into creational, structural, and behavioral types. Each concept is described with a focus on its role and significance in software development.

Uploaded by

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

Software Enggenering Ans

The document defines key concepts in software engineering including abstraction, design patterns, negotiation, agility, and software requirement specifications. It explains the importance of artifacts in the development process and categorizes design patterns into creational, structural, and behavioral types. Each concept is described with a focus on its role and significance in software development.

Uploaded by

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

define abstration in software enggnereing in simple word

ans:
In software engineering, abstraction means focusing on the important details of
something while hiding the unnecessary or complex parts. It's like simplifying a
big idea into something easier to understand and use.

define pattern software engenring


ChatGPT said:
In software engineering, a pattern is a reusable solution to a common problem that
occurs within a specific context in software design. Patterns are like blueprints
or templates that can be adapted to solve similar problems in different situations.

what is negotiation in software enggerng


ChatGPT SAID:
In software engineering, negotiation is the process of discussing and agreeing on
requirements, expectations, and constraints between stakeholders, such as clients,
developers, and other team members. The goal is to find a mutually acceptable
solution that satisfies everyone's needs while staying within project limitations
like time, budget, and resources.

define agility
ChatGPT said:
ChatGPT
In the context of software engineering, agility refers to the ability to adapt
quickly and efficiently to changes in requirements, technology, or market
conditions during the development process. It emphasizes flexibility,
collaboration, and iterative progress to deliver value to the customer as early and
as often as possible.

list any two agile principle


ChatGPT said:
ChatGPT
Here are two key Agile principles from the Agile Manifesto:

Welcome Changing Requirements:


Agile values embracing changes, even late in development, as they provide an
opportunity to deliver a better product that aligns with customer needs.

Deliver Working Software Frequently:


Agile emphasizes delivering small, functional increments of the product regularly,
from a couple of weeks to a few months, to ensure continuous progress and feedback

define process flow


ChatGPT said:
ChatGPT
Process flow refers to the sequence of steps or activities that are performed to
complete a task, achieve a goal, or deliver a product or service. It visually
represents how tasks move through different stages, roles, or systems within a
process, ensuring clarity and efficiency.

what is ASD
ChatGPT said:
ChatGPT
ASD stands for Adaptive Software Development, which is an iterative and agile
approach to software development. It emphasizes flexibility, continuous learning,
and adaptation to change rather than following a rigid plan.

define software requirement specification


ChatGPT said:
ChatGPT
A Software Requirement Specification (SRS) is a formal document that describes the
expected functionality, features, and constraints of a software system. It serves
as a blueprint for both the development team and stakeholders, ensuring everyone
understands what the system is supposed

define software requirement specificatiion in brief


ChatGPT said:
ChatGPT
A Software Requirement Specification (SRS) is a detailed document that defines the
functionality, features, and constraints of a software system. It serves as a
contract between stakeholders and the development team, ensuring clear
understanding of what the system must do and how it should perform.

The SRS typically includes:

Functional Requirements: What the system must do.


Non-Functional Requirements: Performance, security, and other system qualities.
System Interfaces: Interactions with other systems or hardware.
Constraints: Limitations such as technology, budget, or regulatory requirements.
The SRS is essential for guiding the development process, ensuring alignment with
client needs, and providing a basis for testing and validation.

define artificat
ChatGPT said:
ChatGPT
In software engineering, an artifact refers to any work product or document
produced during the software development lifecycle. These can be tangible items or
outputs created at different stages of the process, such as design, coding,
testing, and deployment. Artifacts help in documenting the system's development and
provide essential resources for maintenance and future improvements.

Types of Software Artifacts:


Requirements Documents:
Detailed descriptions of the system's expected functionality (e.g., Software
Requirement Specification).

Design Documents:
High-level architecture and detailed design of the system, including diagrams,
models, and prototypes.

Source Code:
The actual code written by developers that implements the system's features.

Test Plans and Test Cases:


Documentation detailing how the system will be tested, including test cases,
testing scripts, and results.

User Documentation:
Guides and manuals for end-users on how to use the software.

Configuration Files:
Files used for system setup, environment configurations, or database schema.

Release Notes:
Documents describing changes, updates, or fixes in a new version of the software.

Importance of Artifacts:
Communication: Artifacts help in communication between team members, stakeholders,
and clients.
Traceability: They provide a record of decisions and changes throughout the
software development process.
Quality Assurance: Artifacts like test cases and test results help ensure the
system meets its requirements and functions as expected.
Artifacts play a key role in the structured and organized development of software,
ensuring clarity and consistency across the project lifecycle.

explain type of design pattern


ChatGPT said:
ChatGPT
Design patterns in software engineering are reusable solutions to common problems
that occur during software design. These patterns provide general templates that
can be adapted to fit specific needs, improving code modularity, maintainability,
and scalability. There are three main categories of design patterns:

1. Creational Design Patterns:


These patterns deal with object creation mechanisms, trying to create objects in a
manner suitable to the situation. They aim to make the process of object creation
more flexible and efficient.

Common Creational Patterns:

Singleton: Ensures a class has only one instance and provides a global point of
access to it.
Factory Method: Defines an interface for creating objects, but allows subclasses to
alter the type of objects that will be created.
Abstract Factory: Provides an interface for creating families of related or
dependent objects without specifying their concrete classes.
Builder: Separates the construction of a complex object from its representation,
allowing the same construction process to create different representations.
Prototype: Creates new objects by copying an existing object, known as the
prototype, rather than creating a new instance from scratch.
2. Structural Design Patterns:
These patterns are concerned with how classes and objects are composed to form
larger structures. They simplify the design by identifying simple ways to realize
relationships between entities.

Common Structural Patterns:

Adapter: Allows incompatible interfaces to work together. It "adapts" one interface


to another.
Bridge: Decouples an abstraction from its implementation so that the two can vary
independently.
Composite: Treats individual objects and compositions of objects uniformly, often
used for tree-like structures.
Decorator: Adds behavior to an object dynamically, without modifying its code.
Facade: Provides a simplified interface to a complex subsystem, making it easier to
interact with.
Flyweight: Reduces memory usage by sharing common parts of the state of objects,
especially when many similar objects are created.
Proxy: Provides a surrogate or placeholder for another object, controlling access
to it.
3. Behavioral Design Patterns:
These patterns focus on communication between objects, making it easier to define
how objects interact and how responsibility is distributed.

Common Behavioral Patterns:

Chain of Responsibility: Allows a request to pass along a chain of handlers, giving


each handler a chance to process it.
Command: Encapsulates a request as an object, allowing for parameterization of
clients with queues, requests, and logs.
Interpreter: Defines a grammar for interpreting sentences in a language and
provides a way to interpret sentences according to that grammar.
Iterator: Provides a way to access elements of a collection sequentially, without
exposing the underlying structure.
Mediator: Defines an object that centralizes communication between objects,
reducing direct connections between them.
Memento: Captures and externalizes an object's internal state so that it can be
restored later.
Observer: Defines a one-to-many dependency, where a change in one object triggers
updates in dependent objects.
State: Allows an object to change its behavior when its internal state changes,
appearing as if the object has changed its class.
Strategy: Defines a family of algorithms and allows the client to choose one at
runtime.
Template Method: Defines the structure of an algorithm but lets subclasses
implement specific steps.
Visitor: Defines a new operation to be performed on elements of an object
structure, allowing for adding new operations without modifying the classes of the
elements.
Summary of Key Design Patterns:
Creational Patterns: Focus on object creation (e.g., Singleton, Factory).
Structural Patterns: Focus on the organization and composition of classes (e.g.,
Adapter, Composite).
Behavioral Patterns: Focus on communication and responsibility distribution between
objects (e.g., Observer, Command).
These patterns provide standardized solutions for recurring design challenges and
help developers build more maintainable, scalable, and flexible software systems.

You might also like