0% found this document useful (0 votes)
20 views10 pages

ASE Question Bank Answer

The document provides an overview of Software Development Life Cycle (SDLC), detailing its phases such as requirement gathering, design, implementation, testing, deployment, and maintenance. It distinguishes between processes and methods in software development, explains characteristics of software, and compares prototyping techniques. Additionally, it covers various software categories, models, the importance of requirement engineering, Software Requirements Specification (SRS), UML diagrams, and concepts like module cohesion and coupling.

Uploaded by

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

ASE Question Bank Answer

The document provides an overview of Software Development Life Cycle (SDLC), detailing its phases such as requirement gathering, design, implementation, testing, deployment, and maintenance. It distinguishes between processes and methods in software development, explains characteristics of software, and compares prototyping techniques. Additionally, it covers various software categories, models, the importance of requirement engineering, Software Requirements Specification (SRS), UML diagrams, and concepts like module cohesion and coupling.

Uploaded by

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

1. What is SDLC? Explain in brief.

SDLC (Software Development Life Cycle) is a structured process that outlines the steps
involved in the development of software. The objective of SDLC is to produce high-quality
software that meets customer expectations and is delivered on time and within budget. It
consists of the following phases:

• Requirement Gathering and Analysis: This is the most crucial stage, where
developers gather and analyze user requirements to understand what the client expects
from the software.
• System Design: In this phase, developers create the architecture of the system based
on the requirements. It involves designing both the high-level system components and
the low-level details.
• Implementation (Coding): Once the design is ready, the actual coding of the
software takes place. Developers write the source code in this phase.
• Testing: The system is tested to find defects and ensure that it meets the user
requirements. Various testing methods, like unit testing, integration testing, and
system testing, are conducted.
• Deployment: The software is deployed into the production environment, making it
available for the end users.
• Maintenance: After deployment, the software may need modifications or
improvements to correct issues or adapt to new requirements over time.

2. Distinguish between process and methods.

• Process: A process refers to the overall series of steps involved in developing


software. It is a high-level framework that describes what needs to be done in each
phase of development. Examples of processes include Waterfall, Agile, and V-Model.
A process provides a clear structure for managing projects and ensuring quality.
• Methods: Methods refer to the specific techniques or tools used to carry out the steps
defined by the process. Methods deal with how to perform tasks such as requirements
gathering, design, coding, and testing. For example, Object-Oriented Design (OOD) is
a method used within the process of software design, and Test-Driven Development
(TDD) is a method used during the coding phase.

3. Explain the characteristics of software.

Software has unique characteristics that distinguish it from other engineering products:

• Intangibility: Software does not have a physical form. Unlike hardware, you cannot
touch software—it is a collection of programs and procedures.
• Correctness: Software must meet the requirements and perform the tasks it was
intended for without any errors.
• Flexibility: One of the major advantages of software is its flexibility. It can be easily
modified or enhanced over time to accommodate new requirements, fix bugs, or
improve performance.
• Maintainability: Software needs to be maintained over time to fix bugs, improve
performance, and add new features. A well-designed software system is easy to
maintain and extend.
• Reusability: Parts of software, such as functions, libraries, or entire modules, can
often be reused in other projects, improving efficiency.
• Portability: Software should be able to operate on different platforms or
environments without significant modification.

4. Write any two characteristics of software as a product.

1. Intangibility: Unlike physical products, software cannot be seen or touched. Its value
lies in the functionality it provides, not in any physical form.
2. Dependability: Software as a product must be dependable, meaning it should
function consistently without failure, especially in critical applications such as
banking, healthcare, or transportation systems.

5. Compare evolutionary and throwaway prototyping.

• Evolutionary Prototyping: In evolutionary prototyping, the prototype is gradually


improved based on user feedback until it evolves into the final system. This approach
is best suited for systems where the requirements are not well understood from the
beginning, allowing iterative development.
• Throwaway Prototyping: In this approach, a rough prototype is built quickly to
understand the requirements better, but it is discarded after its purpose has been
served. The final system is then built from scratch based on the insights gained from
the prototype. It is used when the prototype is not meant to be part of the final system.

6. What is the prototyping technique? How are prototype models prepared for
a software process? Discuss.

The prototyping technique is a software development method where a prototype (an early
working version of the system) is built, demonstrated to the users, and refined based on
feedback. This iterative process helps in better understanding the user's requirements and
refining them over time.

How prototype models are prepared:

1. Initial Requirements Gathering: Developers gather a set of initial requirements


from users to get an idea of what the system should do.
2. Quick Design: A simple and quick version of the system is designed, which includes
only the core functions to demonstrate the basic flow.
3. Building the Prototype: The design is implemented into a working prototype that
users can interact with.
4. User Feedback: The prototype is demonstrated to the users, and their feedback is
gathered to understand if the system meets their needs.
5. Refinement: Based on user feedback, the prototype is refined, adding new features or
adjusting existing ones.
6. Final System Development: Once the prototype has gone through several iterations,
the final system is developed based on the refined requirements.

7. What are the various categories of software?

1. System Software: This software manages and controls the hardware components of a
computer system. Examples include operating systems (Windows, macOS) and
device drivers.
2. Application Software: Software designed to perform specific tasks for end users,
such as word processors, spreadsheets, and web browsers (e.g., Microsoft Word,
Excel, Google Chrome).
3. Embedded Software: Software designed for specific devices that are not generally
considered computers, such as the software that runs in a microwave oven, washing
machine, or an automobile's braking system.
4. Web-Based Software: These are applications that run on web browsers and are
accessed through the internet (e.g., Google Docs, Gmail).

8. Describe the following models:

• (a) Waterfall Model: A linear and sequential approach to software development.


Each phase (requirements, design, implementation, testing, deployment, and
maintenance) must be completed before moving to the next. It is suitable for projects
with clearly defined requirements.
• (b) Spiral Model: Combines the iterative nature of prototyping with the structured
aspects of the Waterfall model. It emphasizes risk analysis at every phase. Each loop
in the spiral represents a phase, such as planning, risk assessment, development, and
evaluation.
• (c) RAID Model: Stands for Risks, Assumptions, Issues, and Dependencies. It is
primarily used in project management to keep track of potential problems (risks),
assumptions that impact the project, unresolved issues, and dependencies on other
teams or projects.
• (d) Scrum: An Agile methodology that focuses on iterative development with short,
fixed-duration sprints (usually 2-4 weeks). The team holds daily stand-up meetings to
track progress, and there are well-defined roles like the Scrum Master and Product
Owner.
• (e) Prototyping Model: Focuses on building a working prototype early in the
development process. The prototype is shown to the user for feedback and
refinements are made until the final system is developed.
• (f) Agile: A development methodology that emphasizes flexibility, collaboration, and
customer satisfaction through continuous delivery of software. Agile works in short
cycles called iterations, which allow frequent feedback and adaptations.
• (g) Extreme Programming (XP): A type of Agile methodology that focuses on
customer satisfaction, frequent releases, pair programming, and rigorous testing. Its
key advantage is the emphasis on simplicity and continuous feedback, which helps in
building high-quality software.

9. Explain Software Engineering.

Software Engineering is the application of engineering principles to the development,


maintenance, and testing of software. It ensures that software is reliable, efficient, and
scalable. The process involves using established engineering methodologies, best practices,
and tools to manage the complexity of large-scale software projects. The goal of software
engineering is to produce high-quality software within time and budget constraints.

I'll continue with the remaining questions in a similar detailed manner.

10. Explain function and non-function oriented design. Explain the objective
of software design.

• Function-oriented design: This approach focuses on identifying the major functions


that the system must perform. The design process revolves around these functions and
the data flow between them. This type of design is used in procedural programming,
where the system is decomposed into a set of interacting functions. Example:
Structured Design.
• Non-function-oriented design: This design approach focuses on the attributes of the
system that are not related to specific functions but are essential for overall system
performance, such as security, reliability, usability, and maintainability. These non-
functional requirements ensure the quality of the system.

Objective of software design:

• To transform the software requirements into a system blueprint.


• To ensure that all functional and non-functional requirements are met.
• To define system architecture, components, modules, and data flow.
• To create a design that is easy to implement, test, and maintain.

11. Explain the importance of requirement engineering and eliciting


requirement specification in software engineering.

Requirement engineering involves defining, documenting, and maintaining the


requirements for the software. It is essential for the successful development of a software
project as it helps in aligning the final system with user needs and business goals.

• Importance of requirement engineering:


o It reduces misunderstandings and ensures that all stakeholders have a clear
understanding of the project.
o It helps in managing scope changes by clearly defining the initial
requirements.
o It acts as the foundation for all other stages of the software development life
cycle (SDLC).

Eliciting requirement specification is the process of gathering the requirements from


stakeholders, users, and customers to understand what the system should achieve. It involves
techniques like interviews, surveys, workshops, and observation.

• Importance:
o Ensures that all the requirements are captured accurately and
comprehensively.
o Helps in prioritizing requirements based on user needs and business impact.
o Reduces the chances of costly revisions later in the project.

12. What is SRS? Describe the importance of a good SRS.

SRS (Software Requirements Specification) is a detailed document that outlines all the
functional and non-functional requirements of a software system. It serves as a contract
between the developers and the stakeholders, ensuring that both parties are aligned on what
the system should do.

Importance of a good SRS:

• Clarity: A good SRS provides clear and unambiguous requirements, reducing the
chances of miscommunication.
• Feasibility: It helps in assessing whether the project can be developed with the
available resources and technologies.
• Basis for design and development: The SRS acts as a blueprint for the design,
development, and testing phases.
• Foundation for testing: The requirements outlined in the SRS serve as the basis for
creating test cases and validating the final system.
• Change management: It makes it easier to manage scope changes by providing a
clear reference for the original requirements.

13. Explain different types of UML Diagrams.

UML (Unified Modeling Language) is used to visualize the design of a system. It provides
a standard way to create blueprints for software development.

Types of UML diagrams:

• Class Diagram: Describes the static structure of a system by showing its classes,
attributes, methods, and relationships.
• Use Case Diagram: Shows the interactions between users (actors) and the system,
focusing on what the system will do.
• Sequence Diagram: Illustrates how objects interact with each other over time. It
shows the sequence of messages exchanged between objects.
• Activity Diagram: Represents the flow of activities within a system, used to model
workflows or business processes.
• State Diagram: Describes the states that an object can be in and how it transitions
from one state to another in response to events.
• Component Diagram: Depicts the organization and dependencies of software
components.
• Deployment Diagram: Models the physical deployment of artifacts (software) on
hardware nodes, showing how the system will be executed in the real world.

14. Design activity diagrams for library management system and withdraw
money from bank ATM.

Library Management System Activity Diagram:

1. User logs in.


2. Search for a book.
3. Select a book to borrow.
4. Check book availability.
5. Borrow or reserve a book.
6. Receive confirmation.
7. Log out.
ATM Withdrawal Activity Diagram:

1. Insert card.
2. Enter PIN.
3. Select withdrawal option.
4. Enter amount.
5. Confirm transaction.
6. Dispense cash.
7. Retrieve card and receipt.

15. What is module cohesion and module coupling? Describe various types of
cohesion and coupling with suitable diagrams. Explain the importance of
maximizing cohesion and minimizing coupling.

• Module Cohesion: Refers to how closely related the functions within a single module
are. High cohesion is desirable because it makes the module easier to maintain and
understand. Types of cohesion:
o Functional Cohesion: All elements contribute to a single, well-defined task.
o Sequential Cohesion: One module’s output is another module’s input.
o Communicational Cohesion: All functions in a module operate on the same
data set.
• Module Coupling: Refers to the degree of dependency between two modules. Lower
coupling is preferred as it promotes modularity and independence. Types of coupling:
o Data Coupling: Modules share only the necessary data.
o Control Coupling: One module controls the behavior of another by passing
control flags.
o Common Coupling: Modules share global data (undesirable).

Importance: Maximizing cohesion within a module makes it more robust, readable, and
easier to maintain. Minimizing coupling between modules ensures that changes in one
module have minimal impact on others, enhancing modularity and making the system easier
to test and scale.
16. What is risk management? Explain the risk management process.

Risk management in software development refers to identifying, analyzing, and mitigating


risks that could negatively affect the project. Risks can include cost overruns, schedule
delays, or technical failures.

Risk management process:

1. Risk Identification: Identifying potential risks that could affect the project.
2. Risk Analysis: Assessing the likelihood and impact of each risk.
3. Risk Prioritization: Ranking the risks based on their severity and likelihood.
4. Risk Mitigation: Developing strategies to reduce or eliminate the impact of risks.
5. Risk Monitoring: Continuously tracking risks and ensuring mitigation strategies are
effective throughout the project lifecycle.

17. Explain use case diagram. Draw a use case diagram for the Airlines
Management System.

A use case diagram models the interactions between actors (users) and the system. It
captures the functional requirements by showing what the system does without specifying
how it does it.

Airlines Management System Use Case Diagram:

• Actors: Passengers, Airline Staff, Administrator.


• Use Cases:
o Booking a flight.
o Canceling a reservation.
o Checking flight status.
o Managing passenger information.
o Handling luggage.
Railway System Class Diagram
Rapid Application Development model

You might also like