0% found this document useful (0 votes)
5 views8 pages

Oose 1

The document provides an overview of key concepts in software engineering, including software processes, evolutionary prototypes, and the characteristics of a good Software Requirements Specification (SRS). It discusses project management techniques like PERT and the importance of DevOps, as well as testing methodologies such as white box and black box testing. Additionally, it covers configuration management practices and the significance of system testing in ensuring software quality.

Uploaded by

aakashdev2503
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)
5 views8 pages

Oose 1

The document provides an overview of key concepts in software engineering, including software processes, evolutionary prototypes, and the characteristics of a good Software Requirements Specification (SRS). It discusses project management techniques like PERT and the importance of DevOps, as well as testing methodologies such as white box and black box testing. Additionally, it covers configuration management practices and the significance of system testing in ensuring software quality.

Uploaded by

aakashdev2503
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/ 8

1. What is a Software Process?

A software process refers to a set of activities, methods, practices, and transformations applied
during the development of software systems. It provides a structured approach to building, testing,
and maintaining software to ensure quality and efficiency.

2. Define Evolutionary Prototype


An evolutionary prototype is a working model of a software product that is developed incrementally
with active user involvement. It is constantly refined and updated based on user feedback to meet
evolving requirements.

3. Characteristics of a Good Software Requirements Specification (SRS)


1. Clarity: Clearly defined and understandable requirements.
2. Completeness: All necessary features and functions are included.
3. Consistency: No conflicting requirements within the document.
4. Correctness: Accurate and error-free specifications.
5. Traceability: Ability to trace requirements throughout the development process.

4. Define Petri Net


A Petri Net is a mathematical modeling tool used to describe and analyze concurrent systems. It
consists of places (circles), transitions (bars), and arcs (arrows) representing the flow of tokens in a
system.

(include bar diagram)

5. What is Inheritance?
Inheritance in software development refers to the mechanism where a new class (derived class)
inherits attributes and behaviors from an existing class (base class). It promotes code reusability and
establishes a parent-child relationship between classes.

6. Comparison of Testing and Debugging

Testing Debugging

To identify and prevent defects before


To locate and correct defects after they occur
deployment
Conducted throughout the development Done after the completion of the code or during
process testing

Testers are responsible for testing activities Developers are responsible for debugging activities
Testing Debugging

Planned activities Reactive activities

7. What is a Test Case?


A test case is a detailed procedure or set of conditions under which a tester will determine
whether a system, software, or application works as intended.
It helps ensure that the software functions correctly under various scenarios.

8. Need for System Testing


1. Ensuring Quality: System testing validates the entire software system to ensure it meets
specified requirements and standards.
2. Identifying Defects: It helps in detecting and fixing bugs, errors, and performance issues
before releasing the software to users.

9. Project Scheduling Techniques


1. Critical Path Method (CPM): A technique used to identify the longest sequence of
dependent tasks to determine the minimum time needed to complete a project.
2. Program Evaluation and Review Technique (PERT): A method for analyzing and
representing the tasks involved in completing a project.

10. Need for DevOps in Software Engineering


1. Faster Time-to-Market
2. Continuous Integration and Delivery (CI/CD)
3. Improved Collaboration
4. Enhanced Quality and Reliability
5. Scalability and Flexibility
6. Risk Mitigation
7. Cost Efficiency
Aspect Interviews Workshops

Interaction One-on-one conversations Group sessions involving multiple


Format between analyst and stakeholders participants

Depth of Allows for in-depth exploration Generates ideas and consensus through
Information of individual perspectives group dynamics

Can be structured or unstructured Can be tailored to specific goals and


Flexibility
as needed activities

Generally requires more time per Can be completed in a shorter timeframe by


Time
stakeholder due to individual engaging multiple stakeholders
Requirement
sessions simultaneously
Necessitates planning for logistics,
Resource Requires scheduling and
facilitation, and accommodating multiple
Intensity coordination for each session
participants
May be susceptible to
Might encounter dominance from certain
Bias Potential interviewer bias or
voices or conformity to group opinions
misinterpretation by stakeholders
Stakeholders participate Involves participation from multiple
Level of
individually, allowing for stakeholders, fostering collaboration and idea
Participation
focused attention exchange

Feedback Direct and personal, allowing for Indirect, as feedback might need to be
Mechanism immediate clarification solicited from the group or facilitator

Higher initial cost due to logistics and


Generally lower cost per session
facilitation but may be more cost-effective
Cost but can add up depending on the
for engaging multiple stakeholders
number of stakeholders
simultaneously

Can lead to decisions based on Facilitates consensus-building and collective


Decision Making
individual perspectives decision-making

Skill Requires strong interviewing and Demands facilitation skills to manage group
Requirement interpersonal skills dynamics and ensure participation

Results in individualized records Generates collective documentation of ideas,


Documentation
of stakeholder input discussions, and decisions

Engages multiple stakeholders


Stakeholder Allows for tailored engagement
simultaneously, promoting a sense of
Involvement with individual stakeholders
ownership and collaboration

Or
Aspect Interviews Workshops

Interaction Format One-on-one chats with stakeholders Group sessions with many people

Generate lots of ideas from group


Depth of Information Delve deep into individual opinions
discussions

Flexibility Can be structured or casual Can adapt to different activities

Faster because many people


Time Requirement Takes more time per person
participate at once

Requires planning but can be more


Resource Intensity Needs scheduling for each person
efficient

May have bias from interviewer or Might favor louder voices or


Bias Potential
stakeholders groupthink

Level of Participation Individual attention Everyone contributes together

Feedback Mechanism Immediate and direct Indirect, might need follow-up

Cost Can be affordable per session Initial setup cost, but can save time

Decision Making Based on individual views Aims for group agreement

Skill Requirement Needs good interview skills Requires skillful facilitation

Documentation Individual records of opinions Group records of discussions

Stakeholder
Tailored to individuals Engages many people at once
Involvement
Project Scheduling Technique: Program Evaluation and Review Technique (PERT)
1. PERT
• Definition: PERT is a project management technique used to analyze and represent the tasks
involved in completing a project.
2. Steps in PERT
• Identifying Activities:
• Listing all tasks required to complete the project.
• Defining dependencies between tasks.
• Estimating Task Durations:
• Using three time estimates for each task: optimistic, pessimistic, and most likely.
• Calculating the expected duration using weighted averages.
• Constructing the Network Diagram:
• Drawing a network diagram representing the sequence of tasks and their
dependencies.
• Using nodes to represent tasks and arrows to represent dependencies.
• Calculating Expected Time and Variance:
• Determining the expected time for each task based on the weighted average.
• Calculating the variance to measure the uncertainty or risk associated with each task.
• Identifying Critical Path:
• Finding the longest path through the network diagram based on expected durations.
• Tasks on the critical path have zero slack or float.
• Determining Project Duration:
• Total duration of the critical path represents the expected project duration.
Benefits of PERT:
1. Visual Representation: Graphical depiction aids in understanding project flow.
2. Time Estimation: Provides estimates for project duration and completion time.
3. Identifies Critical Path: Highlights the longest sequence of dependent tasks.
4. Resource Allocation: Facilitates optimal allocation of resources based on task
dependencies.
5. Risk Management: Assists in identifying and mitigating potential risks throughout the
project lifecycle.
Limitations of PERT:
1. Complexity: Complex calculations and analysis can be time-consuming.
2. Assumption Dependency: Relies heavily on assumptions, which may impact accuracy.
3. Resource Constraints: Limited resources may affect the accuracy of estimates.
4. Limited Flexibility: Less adaptable to changes in project scope or schedule.
5. Overemphasis on Critical Path: May overlook non-critical activities, leading to skewed
priorities.

SCM
1. Identify What Needs Managing:
• What: List all software components like code, documents, libraries, and third-party
dependencies that need to be managed.
• Dependencies: Identify interdependencies between components to ensure comprehensive
management.
2. Keep Track of Changes:
• How: Use tools like Git to track changes to these components over time.
• Branching Strategy: Implement a structured branching strategy to manage parallel
development efforts effectively.
3. Set Baselines for Stability:
• When: Establish fixed points (baselines) after key milestones to mark stable versions.
• Tagging Releases: Tag each stable release to facilitate easy reference and rollback if
necessary.
4. Control Changes:
• Process: Put in place a system for requesting, reviewing, and approving changes
methodically.
• Change Impact Analysis: Perform a thorough analysis of proposed changes to assess their
potential impact on the overall system.
5. Track Configuration Status:
• Record Keeping: Keep records of all components, versions, and changes for easy reference.
• Configuration Item Identification: Assign unique identifiers to configuration items for
accurate tracking and management.
6. Regular Audits and Reviews:
• Purpose: Check if everything matches the set standards regularly.
• Compliance Checks: Conduct periodic audits to ensure compliance with regulatory
requirements and industry standards.
7. Plan and Coordinate Releases:
• Before Release: Make sure that the correct components are included in the software release.
• Release Planning Meetings: Hold regular meetings to plan and coordinate release
activities, including feature prioritization and scheduling.
8. Use Configuration Management Tools:
• Automation: Leverage tools to automate and simplify the management process.
• Integration with CI/CD: Integrate configuration management tools with Continuous
Integration/Continuous Deployment pipelines for seamless software delivery.

Aspect White Box Testing Black Box Testing

Tests based on external


Visibility Tests internal code structure and logic.
requirements and behavior.

Requires knowledge of code and its No knowledge of internal code


Knowledge
implementation. structure is needed.

Focuses on program logic, paths, and code Focuses on inputs, outputs, and
Focus
coverage. functionality.

Includes unit testing, code coverage Includes functional testing, system


Testing Types
analysis. testing.

Conducted by developers and testers with Conducted by testers based on


Implementation
coding insight. specifications.

Efficient in finding logic errors and Validates against user expectations


Advantages
weaknesses. and requirements.

Complex and time-consuming due to May overlook certain system logic


Disadvantages
detailed knowledge requirements. errors.
Path Testing:
• What is Path Testing?
Path testing is a white-box testing technique where test cases are designed to execute all
possible paths in a program.
• Example:
Suppose you have a function that calculates the total salary of an employee based on their
base salary and bonuses. In path testing, you would create test cases that go through all
possible paths in the function. For example, one test case might cover the path where the
base salary is above a certain threshold and the bonus is negative, ensuring that the function
handles this scenario correctly.
Regression Testing:
• What is Regression Testing?
Regression testing is re-running functional and non-functional tests to ensure that previously
developed and tested software still performs correctly after a change.
• Example:
Imagine you have an e-commerce website with a checkout feature. After making
improvements to the checkout process, regression testing involves re-testing not only the
checkout process but also other parts of the website to ensure that the changes did not
introduce new bugs in areas that were previously working fine. For instance, you would test
the search functionality, product pages, and user account settings to catch any unintended
side effects of the checkout process enhancements.

You might also like