Software Engineering Overview and Paradigms
48 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Which characteristic is NOT typically associated with good software?

  • Maintainability
  • Efficiency
  • Usability
  • Wearability (correct)

What type of software product is specifically tailored for a unique customer need?

  • Commercial Software
  • Bespoke Software (correct)
  • Open-source Software
  • Generic Software

In software testing, which strategy focuses on evaluating the functionality of the software without looking at the internal code structure?

  • Unit Testing
  • White Box Testing
  • Integration Testing
  • Black Box Testing (correct)

Which model is characterized by incremental development and continual refinement of the product?

<p>Spiral Model (A)</p> Signup and view all the answers

What term is used to describe software development that emphasizes the modularity and abstraction of components?

<p>Object-Oriented Design (B)</p> Signup and view all the answers

Which of the following is NOT a characteristic of software engineering?

<p>Manufactured as a physical product (B)</p> Signup and view all the answers

Which type of maintenance is focused on correcting defects after the software has been delivered?

<p>Corrective Maintenance (C)</p> Signup and view all the answers

What is one of the main focuses of software project scheduling?

<p>Allocating resources effectively (D)</p> Signup and view all the answers

What is the primary purpose of a Work Breakdown Structure (WBS)?

<p>To provide a hierarchical decomposition of a project (B)</p> Signup and view all the answers

Which statement accurately describes PERT methodology?

<p>It is an event-oriented technique developed by the U.S. Navy (B)</p> Signup and view all the answers

What does the Critical Path Method (CPM) primarily help determine?

<p>The total duration of the project (D)</p> Signup and view all the answers

Which of the following is classified under Project Risks in software risk classification?

<p>Delays in the project schedule (D)</p> Signup and view all the answers

What distinguishes a Grantt chart from a PERT chart?

<p>Grantt charts are deterministic, PERT charts are probabilistic (B)</p> Signup and view all the answers

What is the purpose of the PNR curve in software project management?

<p>To indicate the relationship between effort and delivery time. (B)</p> Signup and view all the answers

What is a characteristic of both the PERT and Grantt charts?

<p>They can be utilized for cost and time management (D)</p> Signup and view all the answers

Which principle is NOT part of software project scheduling?

<p>Cost Estimation (C)</p> Signup and view all the answers

Which type of software risk includes issues such as schedule slips and increased costs?

<p>Project Risks (C)</p> Signup and view all the answers

What does the 40-20-40 rule refer to in software project management?

<p>The recommended distribution of effort in the software process. (A)</p> Signup and view all the answers

What term describes risks that can be anticipated within a project?

<p>Known Risks (A)</p> Signup and view all the answers

Which task is involved in the Concept Development phase of a project?

<p>Preliminary Concept Planning (A)</p> Signup and view all the answers

What is a Work Breakdown Structure (WBS) primarily used for?

<p>Separating total work into manageable sections or activities. (A)</p> Signup and view all the answers

What is the primary focus of risk resolution in project management?

<p>Executing the action plan to address each risk (A)</p> Signup and view all the answers

What outcome does a Critical Path Method (CPM) primarily focus on?

<p>Identifying essential tasks that impact project completion. (B)</p> Signup and view all the answers

Which of the following is a potential issue in planning a software project?

<p>Frequent changes in system requirements. (A)</p> Signup and view all the answers

Which output is NOT associated with the risk resolution phase?

<p>Requirements documentation (C)</p> Signup and view all the answers

What is a key component of the Risk Mitigation, Monitoring, and Management (RMMM) plan?

<p>Organizing risk management steps (C)</p> Signup and view all the answers

What does Effort Distribution refer to in software project scheduling?

<p>The quantifiable distribution of workforce effort throughout a project. (B)</p> Signup and view all the answers

Which type of requirement specifies how the system should behave under specific conditions?

<p>Functional requirements (B)</p> Signup and view all the answers

What is a common problem associated with functional requirements?

<p>Incompleteness and inconsistency (D)</p> Signup and view all the answers

What do non-functional requirements primarily relate to?

<p>System's operational constraints (B)</p> Signup and view all the answers

Which of the following is a problem related to user requirements?

<p>Requirements confusion (C)</p> Signup and view all the answers

In the context of requirements, what are domain requirements concerned with?

<p>Characteristics of the application domain (D)</p> Signup and view all the answers

What is the main purpose of the design phase in software development?

<p>To transform requirements into a structure for implementation (B)</p> Signup and view all the answers

Which of the following does NOT represent a disadvantage of the Prototype Model?

<p>Good user feedback (B)</p> Signup and view all the answers

What characterizes the Rapid Application Development (RAD) model?

<p>Fast development and delivery of functional systems (B)</p> Signup and view all the answers

In the Spiral Model, which phase is NOT included?

<p>Analysis (D)</p> Signup and view all the answers

What is a key advantage of the Iterative Waterfall Lifecycle model?

<p>Feedback paths from each phase to preceding phases (C)</p> Signup and view all the answers

Which of the following is a disadvantage associated with the Spiral Model?

<p>Cost and risk dependency (A)</p> Signup and view all the answers

Which characteristic is associated with the Win-Win Spiral Model?

<p>Achieves a balance between customer satisfaction and developer deadlines (C)</p> Signup and view all the answers

In terms of user interaction, what is a potential drawback of the RAD model?

<p>Can be unsuitable for users who prefer slower-paced environments (D)</p> Signup and view all the answers

What is meant by unpredictable risks in project management?

<p>Risks that are challenging to identify in advance. (C)</p> Signup and view all the answers

Which of the following is NOT considered a risk principle?

<p>Reactive strategies (B)</p> Signup and view all the answers

What does the formula $P = r * s$ represent in risk prioritization?

<p>The priority score based on likelihood and consequence. (A)</p> Signup and view all the answers

Which of the following is true regarding reactive risk strategies?

<p>They focus on responding to risks after they have occurred. (A)</p> Signup and view all the answers

What is the primary focus during the risk analysis phase?

<p>To assess and estimate identified risks. (A)</p> Signup and view all the answers

Which activity is involved in the risk identification phase?

<p>Documenting the risks (C)</p> Signup and view all the answers

What is the consequence of poorly defined requirements in a software development project?

<p>Higher chance of scope creep. (D)</p> Signup and view all the answers

What does risk management planning involve?

<p>Developing strategies for each significant risk. (C)</p> Signup and view all the answers

Flashcards

PNR Curve

A representation of the relationship between the effort put into a software project and the time it takes to deliver the project. It shows that as effort increases, delivery time decreases up to a certain point, after which diminishing returns set in, and further effort may not significantly reduce delivery time.

Work Breakdown Structure (WBS)

A method of breaking down a software project into smaller, manageable activities. It helps identify dependencies between activities and estimate the time required for each activity.

Critical Path Method (CPM)

A technique for scheduling projects using interconnected activities and their dependencies. It helps identify the critical path, which is the sequence of activities that determines the overall project duration.

Project Evaluation Review Technique (PERT)

A scheduling technique used to estimate project duration and identify potential delays by considering the average, optimistic, and pessimistic estimates for each activity.

Signup and view all the flashcards

Task Set

A collection of software engineering work tasks, milestones, and work products that must be accomplished to complete a specific project.

Signup and view all the flashcards

Activity Charts

A scheduling technique that visualizes the dependencies between activities and their durations on a chart.

Signup and view all the flashcards

40-20-40 Rule

A commonly used rule of thumb for effort distribution in software development, allocating 40% of effort to requirements gathering, 20% to design, and 40% to implementation and testing.

Signup and view all the flashcards

Effort Validation

The effort required to complete a specific task within a given time frame.

Signup and view all the flashcards

What is a Work Breakdown Structure (WBS)?

A hierarchical breakdown of a project into smaller, manageable tasks. It's used to organize and visualize all the work that needs to be completed.

Signup and view all the flashcards

What is a PERT chart?

A project management tool used to schedule, organize, and coordinate tasks within a project. It's focused on events and uses a probabilistic model.

Signup and view all the flashcards

What is a Gantt chart?

A horizontal bar chart used to visualize project plans, schedules, and task progress. It's named after Henry L. Gantt, an American engineer and social scientist.

Signup and view all the flashcards

What is the Critical Path Method (CPM)?

A project management technique that identifies the critical path, which is the longest sequence of activities in a project, to determine the minimum project duration. It's activity-oriented and uses a deterministic model.

Signup and view all the flashcards

What is a software risk?

A potential problem or threat that could negatively impact a software project. These can be related to schedule, resources, customers, or requirements.

Signup and view all the flashcards

What are the classifications of software risks?

A classification of risks based on their nature and origin. This includes project risks (schedule, resources), technical risks (technology challenges), business risks (market changes), and known, predictable, and unpredictable risks.

Signup and view all the flashcards

What is risk analysis and management?

The process of identifying, analyzing, and responding to potential risks within a software project to minimize their impact.

Signup and view all the flashcards

What are risk mitigation strategies?

A set of steps taken to mitigate or control identified risks, involving actions like avoidance, mitigation, transfer, and acceptance.

Signup and view all the flashcards

Technical Risk

The possibility of something negative happening during a software development project, potentially impacting the project's success.

Signup and view all the flashcards

Business Risk

The possibility of something negative happening in the business area of a software development project, potentially impacting the project's success.

Signup and view all the flashcards

Known Risks

These risks are identified after carefully examining the project plan.

Signup and view all the flashcards

Predictable Risks

These risks are predicted based on past experiences with similar projects.

Signup and view all the flashcards

Unpredictable Risks

These risks are unexpected and difficult to predict, like surprises.

Signup and view all the flashcards

Risk Management Process

A systematic process of identifying, analyzing, planning, tracking, and controlling project risks.

Signup and view all the flashcards

Risk Assessment

The process of determining the importance of a risk based on its potential impact.

Signup and view all the flashcards

Risk Control

The steps taken to manage and reduce the impact of identified risks.

Signup and view all the flashcards

Software Engineering

The process of designing, developing, and maintaining software systems; it involves applying engineering principles to create reliable, efficient, and user-friendly software.

Signup and view all the flashcards

Coding and Unit Testing

Translates software design into source code, involving individual components and testing their functionality.

Signup and view all the flashcards

Integration and System Testing

Combines different unit-tested modules, ensuring they work together seamlessly and the entire system functions smoothly.

Signup and view all the flashcards

Waterfall Model

A well-defined, multi-step process for developing software, often used for larger projects. It involves sequential phases like requirement gathering, design, implementation, testing, deployment, and maintenance.

Signup and view all the flashcards

Spiral Model

A flexible and iterative software development model that emphasizes risk management and prototyping. It involves cycles of planning, risk analysis, prototyping, and implementation.

Signup and view all the flashcards

Acceptance Testing

Involves collecting feedback from users and stakeholders to ensure the software meets their needs and expectations.

Signup and view all the flashcards

Iterative Waterfall Model

An iterative approach where each phase feeds back into the previous one, enabling adjustments based on feedback and learnings from each stage.

Signup and view all the flashcards

Prototype Model

A software development approach where a working prototype is created early in the process to gather feedback and refine requirements. It's often used when the requirements are unclear.

Signup and view all the flashcards

Prototype Model

A development approach where a working prototype is built, tested, and refined iteratively until an acceptable version is achieved.

Signup and view all the flashcards

Fourth Generation Techniques

A set of tools and techniques that automate various aspects of software development, often used for rapid application development. They provide high-level abstractions for common coding tasks.

Signup and view all the flashcards

Maintainability

The ability of a software product to be easily modified and enhanced; a crucial aspect of software quality.

Signup and view all the flashcards

RAD Model

A rapid software development model that emphasizes short development cycles and focuses on delivering a fully functional system quickly.

Signup and view all the flashcards

Spiral Model

A model that combines iterative development with risk analysis, using a spiral approach to build and refine the system while managing potential risks.

Signup and view all the flashcards

Dependability

The trustworthiness and reliability of a software product; it guarantees that the software performs as expected without errors.

Signup and view all the flashcards

Win-Win Spiral Model

A variation of the Spiral model that focuses on achieving a win-win situation for both the customer and developer, meeting requirements within budget and deadlines.

Signup and view all the flashcards

Efficiency

The efficiency of a software product in terms of resource usage, such as CPU time, memory space, and network bandwidth.

Signup and view all the flashcards

Risk Resolution

The process of carrying out the plan for handling each identified risk. It's about taking action to address the risk and preventing potential issues.

Signup and view all the flashcards

Risk Monitoring

Continuously evaluating and re-assessing risks throughout the project as things change. It's about staying vigilant to identify new risks or changes to existing ones.

Signup and view all the flashcards

Requirements Engineering

Gathering, organizing, and documenting the requirements of a software system. It's about clearly defining what the system should do and how it should behave.

Signup and view all the flashcards

System Requirements

Requirements that specify the system's functions, services, and operational constraints in detail. Often part of the agreement between the system buyer and developer.

Signup and view all the flashcards

Functional Requirements

Describe how the system should respond to specific inputs and achieve desired outputs. They focus on the 'what' the system does.

Signup and view all the flashcards

Non-Functional Requirements

Describe the system's properties, constraints, and quality attributes. They focus on the 'how' the system works.

Signup and view all the flashcards

Domain Requirements

Requirements that reflect the specific characteristics and terminology of the domain or industry the system is being built for.

Signup and view all the flashcards

User Requirements

Requirements written using natural language and diagrams to ensure clarity and understanding for all users, including clients, managers, engineers, and users.

Signup and view all the flashcards

Study Notes

Software Engineering Overview

  • Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; it's a structured approach, not just coding.
  • Software is developed or engineered, not manufactured in a traditional sense, and doesn't wear out. However, its maintenance is often significantly more challenging than initial development.
  • Software products can be developed for specific customers (bespoke) or for a general market (generic).
  • Good software should be maintainable, dependable, efficient, and usable.
  • Computer science focuses on theory, while software engineering focuses on the practical application of that theory to create useful software and address complex problems.

Software Engineering Paradigms

  • Software engineering paradigms include different approaches or models for software development.
  • Waterfall model, iterative waterfall model, prototyping model, spiral model, RAD (Rapid Application Development) model are examples of distinct paradigms.

Software Life Cycle Models

  • Waterfall Model: A linear, sequential process where each phase must complete before the next begins. Requirements are well-defined and stable for this model to work effectively. It's good for simple projects with clearly specified requirements. Features include: planning, modelling, construction, deployment.
  • Prototyping Model: A build-test-revise approach. A prototype is built quickly, tested, and revised based on feedback until a satisfactory prototype emerges. Suitable for situations where customers or requirements are less certain.
  • Spiral Model: Combines iterative development and sequential linear processes (like waterfall), with a strong focus on risk analysis and iterative development. This model is better during development for risk-prone projects. It's broken down into four phases: planning, design, construction, and evaluation.
  • RAD Model (Rapid Application Development): An incremental approach prioritizing speed. Multiple teams work on different functions concurrently. Emphasis on efficient user interaction and rapid development.

Project Planning

  • Key aspects of project planning include estimating project size, resource needs, and timelines to produce a schedule. During planning, the project often gets broken into more manageable activities. Defining timelines is key, as is considering how much effort each activity will require, time needed, and cost.
  • Project planning objectives involve understanding the problem scope, using historical data, estimating effort and size, and defining a project schedule. Planning accounts for project scope, resources, time, quality, and risk.
  • The project plan details the project in order to prevent a crucial issue: failure to accurately estimate the necessary resources.
  • Various project plan types include a software development plan, Quality Assurance Plan, Validation Plan, Configuration Management Plan, Maintenance Plan, and Staff development plan.

Requirements Engineering

  • Requirements engineering involves eliciting, organizing, and documenting the requirements for a software system.
  • It's distinct from design: it focuses on what the system should do, not how it should do it.
  • Types of requirements include functional requirements (what the system should do, like inputs and outputs), non-functional requirements (properties like reliability, performance, security, maintainability), domain requirements (special requirements from specific applications), and user requirements (natural language depictions and diagrams).

Risk Analysis and Management

  • Risk analysis and management encompass the process of identifying potential problems, estimating their impact, and developing strategies to mitigate them. The processes, include both proactive methods (identifying and planning for situations in advance) and reactive ones (acting when a problem arises).
  • Risks in software development often stem from poorly defined requirements, changing client requirements, uncertain cost estimations, or relying on specific developer skills.
  • Risks are categorized in different ways: Project risks, technical risks, and business risks are part of one classification, whereas know risks, predictable risks, and unpredictable risks are part of another classification.
  • The Risk Management Process is a method of identifying, analyzing, planning, tracking, and controlling risks; further including assessing, monitoring, and resolving risks as they come up during projects or programs. Specific tools, like risk matrices and checklists, are commonly used during these stages.

Software Project Scheduling

  • Software project scheduling involves distributing estimated efforts and timeframes across a project to efficiently manage milestones. The process often breaks down a project into activities and estimates how much time each will take to complete.
  • Scheduling generally uses methodologies similar to other engineering efforts. Tools and methods include the Work Breakdown Structure (WBS) for organizing and defining tasks, Activity Charts and Network Diagrams for visual representations of tasks and dependencies.
  • PERT (Project Evaluation Review Technique) is a probabilistic model, while CPM (Critical Path Method) is a deterministic approach, both valuable for project schedule creation and resource allocation.

Fourth Generation Techniques

  • Fourth-generation techniques use tools that automate the code generation process based on user specifications. This automation can streamline development to produce code quickly or in response to changes. Common tools include: non-procedural database query languages, report generators, data manipulation tools, and code generators.
  • A benefit could be a reduction in development time for smaller projects. However, generated code can sometimes be less efficient than code written by a developer.

Software Metrics

  • Scope - classification of metrics - measuring process and product attributes. Direct and indirect measurements, cost estimation, and software quality standards (like COCOMO model).

Software Configuration Management (SCM)

  • Software configuration management encompasses the procedures of controlling and managing changes to software over its entire lifecycle. Essential components involve version control and management of software configuration items.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Software Engineering PDF

Description

This quiz covers the fundamental concepts of software engineering, including its systematic approach, development processes, and maintenance challenges. It also explores various software engineering paradigms such as the waterfall model, prototyping, and iterative development strategies. Test your knowledge on the principles that guide the creation and maintenance of software.

More Like This

Use Quizgecko on...
Browser
Browser