Software Engineering
Software Engineering
Waterfall Model :
The Waterfall Model is a linear and sequential SDLC approach, where each
phase depends on the deliverables of the previous phase. It follows a fixed
sequence:
- Requirements Analysis : Gather and document software requirements.
- System Design : Create a system design based on gathered requirements.
- Implementation : Write code based on the design.
- Testing : Conduct various tests to ensure the software meets specifications.
- Deployment : Deliver the final product to users.
Each phase has well-defined goals and outputs, and once a phase is
completed, development moves on to the next phase. The Waterfall Model is
easy to understand and use but may face difficulties in accommodating
changes after the project has progressed to later stages.
6 a)Explain “Software myth”? Discuss on various types of software myths and the true
aspects of these myths.
a) Software Myth and Types
Software Myth : A software myth is a common misconception or misbelief
about software development, often leading to unrealistic expectations or
misunderstandings regarding the development process, cost, effort, or
outcomes.
Types of Software Myths :
- Myth of Maintenance : Assuming that maintenance is a minor activity
compared to initial development.
- Silver Bullet Myth : Belief in a single technology or approach that can solve
all software development problems.
- Myth of Perfect Software : Expecting that software can be defect-free and
entirely flawless.
Unit-2
1 Discuss about functional and non-functional requirements with an
example.
Functional requirements describe what the system should do, or what
functionality it should provide. They are the core requirements of the
system, and they are what the system users and stakeholders are
primarily interested in.
Non-functional requirements describe how the system should perform,
or what qualities it should have. They include requirements such as
performance, reliability, security, usability, and maintainability.
Example:
Functional requirements:
o The user should be able to browse and search for
products.
o The user should be able to add products to their cart.
o The user should be able to checkout and pay for their
cart.
Non-functional requirements:
o The website should load quickly.
The SRS document for the online shopping application would include the
following sections:
UNIT-3
1 Discuss briefly the following fundamental
concepts of software design:
i) Abstraction ii) Software Architecture iii) Information
hiding.
i) Abstraction: Abstraction in software design involves the
process of hiding complex implementation details and
emphasizing the essential features of an object or system. It
allows focusing on what an object does rather than how it
achieves its functionality. Through abstraction, designers
create a simplified representation that serves as a blueprint
for the actual software components.
ii) Software Architecture: Software architecture refers to
the high-level structure of a software system. It
encompasses the design of components, their relationships,
and the guidelines for their interaction. Effective software
architecture ensures scalability, flexibility, and maintainability,
providing a foundation for the development and evolution of
a system.
iii) Information Hiding: Information hiding is a design
principle that involves encapsulating the internal details of an
object or module, exposing only the essential information
needed for interaction. This enhances the system's
modularity and reduces complexity, enabling changes to one
part without affecting others.
2 Discuss briefly the following fundamental concepts
of software design:
i) Structural Partitioning ii) Modularity iii) Data Structure
i) Structural Partitioning: Structural partitioning, also
known as hierarchical decomposition, involves breaking
down a complex system into smaller, manageable
subsystems or modules. Each module represents a specific
functional unit, simplifying development, debugging, and
maintenance.
ii) Modularity: Modularity is the concept of organizing a
software system into separate, independent modules that
can be developed and maintained separately. Each module
has a well-defined interface, promoting reusability and ease
of integration.
iii) Data Structure: Data structures are essential elements
in software design, defining how data is organized, stored,
and accessed within a program. Effective selection and
implementation of data structures are critical for achieving
optimal performance and efficient algorithm design.
---