Introduction to Software Engineering

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

What is the primary focus of software engineering as an engineering discipline?

  • Developing aesthetically pleasing user interfaces irrespective of cost.
  • Designing software for entertainment purposes only.
  • The cost-effective development of large and complex software-intensive systems. (correct)
  • Creating software as quickly as possible, regardless of reliability.

Which of the following is NOT a core focus area of software engineering?

  • Ensuring systems are developed in an economical manner.
  • Maximizing short-term profits by minimizing initial development costs. (correct)
  • Analyzing the real-world goals, services, and constraints of a system.
  • Specifying system structure and behavior precisely.

What is the significance of 'real-world goals' in the context of software engineering?

  • They dictate the specific coding languages to be used.
  • They help define the services provided by a system and the constraints on it. (correct)
  • They ensure the software runs only on the latest hardware.
  • They guarantee the software's popularity among end-users.

Why is software engineering important for producing software systems?

<p>It provides methods for developing reliable and trustworthy systems quickly and economically. (C)</p> Signup and view all the answers

In the context of the London Ambulance Service (LAS) example, what critical feature was lacking in the developed system?

<p>A reliable automatic vehicle locating system (AVLS). (C)</p> Signup and view all the answers

What was a key factor contributing to the failure of the London Ambulance Service (LAS) dispatch system?

<p>A lack of consultation with users and clients during the development process. (A)</p> Signup and view all the answers

Which activity is typically associated with the 'Specification' phase of software engineering?

<p>Identifying features/constraints and setting deadlines. (A)</p> Signup and view all the answers

During the 'Validation' phase of software engineering, what primary question needs to be answered?

<p>Does the system do what the customer wants? (A)</p> Signup and view all the answers

Which of the following is the main goal of the 'Evolution' phase in software engineering?

<p>To adapt the system in response to changing user needs. (B)</p> Signup and view all the answers

Considering the LAS system failure, in which software engineering process activities did the project primarily fail?

<p>Across 'Specification', 'Design and Implementation' and 'Validation'. (C)</p> Signup and view all the answers

What is the key purpose of the Software Development Life Cycle (SDLC)?

<p>To provide a systematic and iterative approach to develop high-quality software. (A)</p> Signup and view all the answers

Which of the following is NOT typically considered an advantage of using a Software Development Life Cycle (SDLC)?

<p>It eliminates the need for code reviews. (B)</p> Signup and view all the answers

What is the focus of the 'Planning' phase (Inception) in the SDLC?

<p>Defining the project problem, high-level features, and solution scope. (D)</p> Signup and view all the answers

What is the main purpose of the 'Analysis' phase (Requirement Engineering) in the SDLC?

<p>To elicit, analyze, specify, and validate functional and non-functional requirements. (C)</p> Signup and view all the answers

In which phase of the SDLC is the solution architecture defined, along with the components needed to meet requirements?

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

Which activity is central to the 'Implementation' phase of the SDLC?

<p>Transforming the design into code. (B)</p> Signup and view all the answers

What is the primary goal of the 'Testing' phase in the SDLC?

<p>Verifying that the software meets functional and non-functional requirements. (C)</p> Signup and view all the answers

What activities are included in the 'Maintenance and Evolution' phase of the SDLC?

<p>Updating, modifying, and improving the solution after deployment to fix issues. (B)</p> Signup and view all the answers

In a scenario where a product manager is working with customers to prioritize requirements, which SDLC phase is most likely being addressed?

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

During which SDLC phase would a QA team typically assess code against use cases on a staging platform?

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

Which role is MOST likely to be involved in the 'Analysis' phase of the SDLC?

<p>Business Analyst (B)</p> Signup and view all the answers

Which role typically focuses on the system's infrastructure and deployment during the SDLC?

<p>Data Administrator (A)</p> Signup and view all the answers

Which software development methodology is characterized by sequential phases where each activity is separate and receives feedback from another phase?

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

Under which conditions is the Waterfall model MOST appropriate for software development?

<p>When the requirements are well-understood and changes will be fairly limited. (C)</p> Signup and view all the answers

What is a primary disadvantage of using the Waterfall model in software development?

<p>Lack of flexibility to respond to changing requirements. (C)</p> Signup and view all the answers

In Incremental Development, what role does the initial implementation play?

<p>It acts as a prototype that gets evolved through user feedback and multiple versions. (B)</p> Signup and view all the answers

Which of the following characteristics is typically associated with Incremental Development?

<p>Requirements are likely to change during the development process. (D)</p> Signup and view all the answers

What is a key advantage of using Incremental Development?

<p>Rapid delivery and deployment of software increments. (C)</p> Signup and view all the answers

What is the primary focus of the Spiral model in software development?

<p>Minimizing project risk by breaking a project into smaller segments and focusing on risk assessment. (C)</p> Signup and view all the answers

Which of the following is NOT a key aspect of each cycle in the Spiral model?

<p>Each cycle focuses on a different programming language. (D)</p> Signup and view all the answers

What is a potential drawback of using the Spiral model for software development?

<p>The risk analysis phase may continue indefinitely. (D)</p> Signup and view all the answers

What is a core principle of Agile methodologies?

<p>Emphasizing continuous collaboration and improvement. (C)</p> Signup and view all the answers

In Agile, what does the development cycle primarily consist of?

<p>Planning, executing, and evaluating. (C)</p> Signup and view all the answers

Which of the following are popular agile frameworks?

<p>Scrum, Kanban, XP (C)</p> Signup and view all the answers

What is a key characteristic of Scrum methodology?

<p>Breaking the product into smaller components for iterative development. (D)</p> Signup and view all the answers

What happens after each increment in the Scrum methodology?

<p>The team inspects and adapts. (A)</p> Signup and view all the answers

What parameters define a Sprint in Scrum?

<p>Its duration is fixed. (C)</p> Signup and view all the answers

What does the Product Backlog in Scrum contain?

<p>A list of features needed in the final product. (D)</p> Signup and view all the answers

What is the primary purpose of acceptance criteria in an Agile story?

<p>To define when a story is considered 'ready' for planning. (A)</p> Signup and view all the answers

What represents the work items on a Kanban board?

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

In software engineering, what factor is MOST crucial when balancing 'real-world goals' and system 'constraints'?

<p>Achieving an economical and timely development process. (A)</p> Signup and view all the answers

In the context of the Software Engineering Process, how does the 'Validation' phase relate to the 'Specification' phase?

<p>Validation ensures the system meets specified features/constraints. (A)</p> Signup and view all the answers

Considering the phases of the Software Engineering Process, what distinguishes the 'Evolution' phase from the 'Implementation' phase?

<p>Evolution modifies the system based on user needs, while implementation focuses on coding. (C)</p> Signup and view all the answers

Which of the following reflects a critical consideration for a project manager during the 'Planning' (Inception) phase of the SDLC?

<p>Defining the project problem, target users, and solution scope. (B)</p> Signup and view all the answers

What is the MOST important goal of the 'Analysis' phase (Requirement Engineering) in the SDLC?

<p>Eliciting, analyzing, and validating functional and non-functional requirements. (B)</p> Signup and view all the answers

How does the 'Design' phase of the SDLC influence the 'Implementation' phase?

<p>It defines the solution architecture and components to guide implementation. (B)</p> Signup and view all the answers

In the Software Development Life Cycle (SDLC), how does 'Integration testing' in the testing phase differ from 'unit testing'?

<p>Integration testing focuses on how components work together, while unit testing focuses on individual components. (B)</p> Signup and view all the answers

During the 'Maintenance and Evolution' phase of the SDLC, why is it important to address 'new and changing requirements'?

<p>To ensure the software continues to meet user needs and remains relevant. (A)</p> Signup and view all the answers

What is the PRIMARY goal of iterative development in the context of Software Development Methodologies?

<p>To incrementally develop the project, incorporating feedback for continuous improvement. (D)</p> Signup and view all the answers

What aspect DISTINGUISHES the Spiral model from other software development methodologies?

<p>Its rigorous focus on minimizing project risk through iterative risk analysis and prototyping. (C)</p> Signup and view all the answers

In Agile methodologies, what role does 'continuous integration' play in responding to change?

<p>It allows for rapid adaptation by frequently merging code and testing. (D)</p> Signup and view all the answers

What is the KEY distinction in managing tasks between Scrum and Kanban frameworks?

<p>Scrum uses fixed-length sprints while Kanban focuses on continuous flow. (D)</p> Signup and view all the answers

What is the significance of the Daily Scrum meeting in the Scrum methodology?

<p>To inspect progress toward the sprint goal and adapt the plan. (B)</p> Signup and view all the answers

Within an Agile story, how do 'acceptance criteria' primarily function?

<p>They establish the conditions that must be met for the story to be considered complete. (C)</p> Signup and view all the answers

In Kanban, what does 'WIP Limit' indicate regarding workflow management?

<p>The maximum number of work items permitted in a workflow state. (D)</p> Signup and view all the answers

Flashcards

Software Engineering

Engineering discipline to develop large and complex software systems cost-effectively.

Software Development Life Cycle (SDLC)

A systematic, iterative approach to develop high-quality software that meets requirements.

SDLC: Planning Phase

Defining project goals, features and determining if the project is viable.

SDLC: Analysis Phase

Eliciting, analyzing, specifying, and validating the software’s functional and non-functional requirements.

Signup and view all the flashcards

SDLC: Design Phase

Defining solution architecture and components in relation to the requirements.

Signup and view all the flashcards

SDLC: Implementation Phase

Transforming the design into code according to business rules and application logic.

Signup and view all the flashcards

SDLC: Testing Phase

Verifying the software meets functional and non-functional requirements.

Signup and view all the flashcards

SDLC: Maintenance & Evolution

Updating and improving the solution after deployment in response to new requests.

Signup and view all the flashcards

Waterfall Model

A sequential approach where each phase must be completed before the next begins.

Signup and view all the flashcards

Incremental Development

Breaking down software development into small increments or parts.

Signup and view all the flashcards

Spiral Model

Focuses on risk assessment and minimizing project risk by breaking a project into smaller segments. Each cycle passes through the same sequence of steps.

Signup and view all the flashcards

Agile

Breaking the project in phases while emphasizing continuous collaboration.

Signup and view all the flashcards

Scrum

Framework that breaks product development into smaller components.

Signup and view all the flashcards

Scrum: Sprint

A short development cycle to produce a shippable product increment.

Signup and view all the flashcards

Scrum Sprint Retrospective

What can be improved and how?

Signup and view all the flashcards

Scrum: Sprint Backlog

A list of all tasks the scrum team work from.

Signup and view all the flashcards

Kanban

WIP and other task details visualized through the use of cards.

Signup and view all the flashcards

Study Notes

Introduction to Software Engineering

  • Software Engineering is an engineering discipline that deals with the cost-effective development of large and complex software-intensive systems
  • Software development follows a systematic approach that includes design, build and test

Core Focuses of Software Engineering

  • Software engineering focuses on the real-world goals, services, and constraints of the systems, as well as the precise specification of the systems' structure and behaviour
  • It involves the activities required to develop assurance that the specifications and real-world goals are met
  • The field addresses the evolution of these systems over time and across system families, including the methods, processes, and tools for developing software-intensive systems economically and in a timely way

Importance of Software Engineering

  • It allows systems to be produced, reliably and in a trustworthy way, both economically and quickly
  • Provides development methods and techniques for software systems

London Ambulance Service (LAS) example

  • A computer-aided dispatching system was developed, including an automatic vehicle locating system (AVLS) and mobile data terminals (MDTs) to support automatic communication with ambulances
  • The system was to replace the existing manual system.
  • Features included receiving calls, dispatching ambulances based on call nature and resource ability, and monitoring response progress
  • In October 1992, the computer-aided dispatch (CAD) system deployed by LAS failed
  • One ambulance arrived to find the patient dead, and another answered a 'stroke' call after 11 hours
  • The AVLS could not keep track of unit location and status, so incorrect messages were sent
  • As a consequence, units were dispatched non-optimally and multiple units were assigned to some calls resulting in large numbers of error messages, and the system slowed because the message queue grew
  • The IWSSD-8 case study, "Report of the Inquiry into the LAS" concluded the software was incomplete and untested, the implementation approach was high risk, and inappropriate assumptions were made during specification
  • There was also a lack of user and client consultation during development, impacting system ownership, and the system had a poor fit with the organizational structure

Software Engineering Process

  • This is the list of activities that develop a software system
  • Consists of specification, design, implementation, validation, and evolution
  • Specification includes identifying features/constraints, task allocation, and setting deadlines
  • System design is to meet the requirements
  • Validation occurs when the system does what the customer wants
  • Evolution involves system modification in response to user needs

Software Development Life Cycle (SDLC)

  • It's a systematic and iterative process to develop high-quality software to meets requirements
  • Uses tools, phases (processes/deliverables), and duties. to minimise development risks and costs.
  • Improves efficiency, reduces risks and overlapping responsibilities, which facilities communication among stakeholders and responds to changing requirements, plus solves problems early

SDLC Phases

  • Phase 1: Planning defines the project problem, high-level features, feasibility, target users, and solution scope
  • Phase 2: Analysis elaborates, analyzes, specifies, and validates functional and non-functional requirements of the system (Requirements Engineering)
  • Phase 3: Design defines the solution architecture and components
  • Phase 4: Implementation turns the design into code using business rules and application logic
  • Phase 5: Testing validates the software system to ensure that it meets functional and non-functional requirements.
    • This includes unit, integration, system and user acceptance testing
  • Phase 6: Maintenance and Evolution involves updating, modifying, and improving the solution after deployment to fix issues, including code improvements and addressing user interface issues

SDLC Personnel Roles

  • Analysis phase involves product owners, project managers, business analysts, and CTOs
  • System architects and UX/UI designers are typically active during design
  • Front-end and back-end developers implement the system
  • Solutions architects, QA engineers, and testers cover the testing phase
  • Data administrators and DevOps engineers are part of the deployment phase
  • Users, testers, and support managers get involved during maintenance

Software Development Methodologies

  • Methodologies include formal, sequential, evolutionary, and informal strategies
  • V model and Waterfall are examples of formal approaches
  • Spiral and Iterative & Incremental models are considered evolutionary
  • Scrum, XP, and Kanban are considered informal approaches

Waterfall Model

  • Each activity is a separate phase and has a sequential approach that receives feedback from another phase.
  • Used where requirements are well-understood, with little changes to the design process (critical, embedded and large software applications)
  • Requires defining services and constraints, implementing executable code with unit testing, and testing the system with customer data before deployment, maintenance, and evolution
  • Is well-planned and scheduled, estimates budgets easily, handles strict budgets, but lacks flexibility on changing requirements, and phases must be completed before the next, so is available only at the end of the process

Incremental Development

  • Develop an initial implementation, get user feedback, and evolve through several versions.
  • Requirements change during the development process, and is ideal for systems and software products.
  • Requirements are split and incrementally delivered, with high-priority requirements in early increments, and these all act as a prototype and refined capabilities
  • Risks are lower, and customer feedback incorporated for flexible debug and test, allowing customer feedback and delivery and deployment, however it is costly for planning, is costly, and needs very well defined module interfaces

Spiral Model

  • Focuses on risk assessment and minimizing project risk by breaking a project into smaller segments, with each cycle passing through the same sequence of steps
  • Involves identifying objectives, assessing risks, generic development for validation, and project review
  • Is used when development is possible, has later features, avoids risks, good on critical project, however is costly for low risk and may be difficult due to endless analysis

Agile

  • Breaks projects into phases and emphasizes collaboration and improvement and constantly cycles between planning, executing, and evaluating
  • Very popular agile frameworks are Scrum, Kanban, Hybrid, Lean, Bimodal, and XP

Scrum

  • Scrum breaks the end product into smaller components
  • Team members inspect and adapt after each increment, with 3 team roles and 5 events and 3 artifacts
  • A Sprint is a short development cycle to produce a shippable product increment, and can last 1-4 weeks
  • Daily Scrum planning lasts around 15 min, and is for the day
  • Sprint Retrospective reviews what happened in sprints to what can be improved
  • The Sprint Backlog consists of tasks that delivers sprints
  • Sprint Planning prioritizes that works gets done
  • Agile requires ready, acceptance and outline of subtasks

Kanban

  • Work items are represented as cards on the board to track work and maintain transparency for continuous communication

Scrum vs Kanban

  • Scrum has a defined roles, sprint cycle and change policy, while Kanban has no defined roles and is continues. Kanban can be incorporated every time

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser