Software Engineering - 2
Software Engineering - 2
1
a) State difference between structure & unstructured Interviews.
Structured Interviews:
Predefined set of questions for all candidates.
Consistent and objective evaluation.
Easier to compare candidates.
Less flexible, may not uncover unexpected insights.
Unstructured Interviews:
Flexible, open-ended questions.
More conversational and natural flow.
Can uncover deeper insights and personality traits.
Harder to compare candidates and ensure consistency.
c) Explain umbrella activities of software engineering.
Umbrella activities are ongoing processes that support the core software engineering activities. They provide a framework for
managing the entire software development lifecycle. Here are some key umbrella activities:
Software Project Management:
Planning, organizing, and managing software projects.
Tracking progress, allocating resources, and managing risks.
Software Quality Assurance:
Ensuring the quality of the software through testing, reviews, and inspections.
Developing and implementing quality standards and procedures.
Software Configuration Management:
Managing changes to the software and its artifacts.
Tracking versions, controlling changes, and ensuring consistency.
Software Engineering Process:
Defining, establishing, and maintaining the software engineering process.
Developing and following best practices for software development.
Technical Reviews:
Conducting reviews of software work products, such as code, design documents, and test cases.
Identifying defects, improving quality, and ensuring adherence to standards.
These activities are essential for the successful development and maintenance of software systems. They provide a structured
approach to managing the entire software development lifecycle.
a) List the activities of spiral model in detail.
The Spiral Model is an iterative development model that combines the iterative nature of prototyping with the systematic aspects of
the waterfall model. Its key activities are:
Planning: Defining objectives, alternatives, and constraints.
Identifying stakeholders and their requirements.
Risk Analysis:
Identifying potential risks and analyzing their impact.
Developing strategies to mitigate or eliminate risks.
Engineering:
Designing, coding, and testing the software.
Creating prototypes and incrementally developing the system.
Evaluation:
Evaluating the results of the development phase.
Gathering feedback from users and stakeholders.
Planning the next iteration of the spiral, including any necessary adjustments.
b) Explain any four symbols of class diagram.
Here are four key symbols used in class diagrams:
Class:
Represented as a rectangle divided into three parts:
Class Name: The name of the class in bold font.
Attributes: The properties or characteristics of the class, listed with their data types.
Operations: The methods or functions that the class can perform.
Interface:Represented as a rectangle with a <<interface>> stereotype.
Defines a set of operations that a class must implement.
Association:
Represents a relationship between two classes.
Can be bidirectional (a line between two classes) or unidirectional (a line with an arrowhead).
Can have multiplicity (e.g., one-to-one, one-to-many, many-to-many).
Inheritance (Generalization):
Represents an "is-a" relationship between a superclass and a subclass.
A subclass inherits the attributes and operations of its superclass.
Depicted as a hollow triangle pointing from the subclass to the superclass.
2.2
a) Define terms:
1) Agile Method
Agile methodologies are a group of software development approaches that emphasize iterative development, collaboration, and
customer satisfaction. They prioritize flexibility and adaptability, allowing for changes in requirements throughout the development
process.
ii) Agile Process
Agile is a project management framework that emphasizes collaboration, improvement, and adapting to change:
Iterative: Agile breaks projects into phases, called sprints, and teams reflect on each sprint to improve their strategy.
Collaborative: Agile prioritizes collaboration over top-down management. Stakeholders and developers work together daily.
Adaptable: Agile embraces changing requirements, even late in the project.
Quick delivery: Agile prioritizes quick delivery of useful software.
Continuous feedback: Agile provides continuous feedback so teams can adjust to challenges as they arise.
b) What is (SRS) software requirement specification?
A Software Requirement Specification (SRS) is a formal document that outlines all the functional and non-functional requirements of
a software system. It serves as a blueprint for the development team and acts as a contract between the client and the developer.
The SRS ensures that all stakeholders have a clear understanding of the system's objectives, features, and constraints. It typically
includes detailed descriptions of user needs, system functions, performance requirements, design constraints, and other relevant
information. The SRS helps in effective communication, project planning, design, development, testing, and maintenance of the
software. It also helps in managing expectations and risks associated with the project.
c) What is modularity? Explain its benefits.
Modularity is the process of breaking down a large software system into smaller, independent modules or components.
Each module has a specific function and can be developed, tested, and maintained independently.
Benefits of Modularity:
Improved Code Reusability: Modules can be reused in different parts of the same application or even in other projects.
Enhanced Code Maintainability: Changes or bug fixes can be made to specific modules without affecting the entire system.
Increased Team Productivity: Multiple teams can work on different modules simultaneously, accelerating development.
Simplified Testing: Modules can be tested individually, making the testing process more efficient.
Better Scalability: Modular systems can be easily scaled by adding or removing modules.
Improved Code Understandability: Breaking down a complex system into smaller, more manageable modules makes the code easier
to understand and analyze.
a) Explain spiral model in detail.
The Spiral Model is a risk-driven software development process model. It combines the iterative nature of prototyping with the
controlled and systematic aspects of the linear sequential model. Each cycle of the spiral involves four phases:
Planning: Goals, alternatives, and constraints are defined.
Risk Analysis: Potential risks are identified and analyzed.
Engineering: The software is developed and tested.
Evaluation: The product is evaluated, and the next cycle is planned.
The Spiral Model is suitable for large, complex projects with high risk. It allows for early identification and mitigation of risks, making
it a flexible and adaptable approach.
b) Explain different approaches for requirements elicitation.
Here are some common approaches for requirements elicitation:
Interviews: One-on-one or group interviews with stakeholders to gather information about their needs and expectations.
Surveys and Questionnaires: Structured questionnaires to collect quantitative data from a large number of stakeholders.
Workshops and Focus Groups: Facilitated sessions with stakeholders to brainstorm ideas, discuss requirements, and reach
consensus.
Document Analysis: Reviewing existing documents like business process models, user manuals, and system specifications to identify
requirements.
Observation: Observing users in their work environment to understand their tasks and pain points.
Prototyping: Creating early prototypes to gather feedback and refine requirements.
The choice of approach depends on factors like the project complexity, the number of stakeholders, and the desired level of detail.
Often, a combination of techniques is used to ensure comprehensive requirements gathering.
c) What is an agile process model?
An Agile process model is a software development approach that emphasizes iterative development, collaboration, and customer
satisfaction. It breaks down a project into smaller iterations or sprints, typically lasting 2-4 weeks. Each sprint involves:
Planning: The team defines the goals and tasks for the sprint.
Design and Development: The team designs and develops the software incrementally.
Testing: The team tests the developed features.
Review: The team reviews the completed work and gathers feedback.
Agile processes prioritize flexibility and adaptability, allowing for changes in requirements throughout the development process.
This iterative approach leads to faster delivery of working software and increased customer involvement. Popular Agile
methodologies include Scrum, Kanban, and Extreme Programming (XP).
2.3
a) Explain RAD model with diagram.
Rapid Application Development (RAD) Model
The RAD model is a software development approach that emphasizes rapid prototyping and iterative development. It's particularly
suitable for projects with well-defined requirements and a strong emphasis on user involvement.
2. Decision Node
Symbol: A diamond shape
Purpose: Represents a decision point where the flow of control can diverge based on a condition.
Example: "Is the product in stock?"
3. Merge Node
Symbol: A diamond shape with multiple incoming edges and a single outgoing edge
Purpose: Merges multiple control flows into a single flow.
Example: Combining different paths of a decision-making process.
2.8
b) Explain water fall model with diagram.
The Waterfall Model is a linear sequential life cycle model. In this model, each phase must be completed before the next phase can
begin. There is no overlapping in the phases.
Phases of Waterfall Model
Requirement Gathering and Analysis:
This phase involves understanding the customer's requirements.
The requirements are documented in a Software Requirement Specification (SRS) document.
System Design:
The system design is created based on the requirements.
This includes both the architectural design and detailed design.
Implementation:
The system is implemented based on the design.
This phase involves writing the code.
Testing:
The system is tested to ensure it meets the requirements.
This includes unit testing, integration testing, and system testing.
Deployment:
The system is deployed to the production environment.
Maintenance:
The system is maintained to fix bugs and add new features
Dashed Line:
A dashed line is used to represent the extend relationship.
Open Arrowhead: The arrowhead points from the extending use case to the base use case.
«extend» Stereotype: The keyword «extend» is often placed near the arrowhead to explicitly denote the relationship.
2.11
Draw UML use case diagram for online shopping.