401 lecture 2
37 Questions
5 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 type of requirement focuses on defining the specific tasks and functionalities a software system must perform?

  • Functional requirements (correct)
  • Non-functional requirements
  • Scalability requirements
  • Usability requirements

A software system needs to process a large number of transactions quickly. Which non-functional requirement does this primarily address?

  • Performance (correct)
  • Maintainability
  • Usability
  • Security

What type of requirement ensures that a system can handle an increasing number of users without a significant drop in performance?

  • Portability
  • Security
  • Scalability (correct)
  • Reliability

Which non-functional requirement is most concerned with making a system easy to learn and use for its intended users?

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

If a company requires that all user data be encrypted using AES-256, which non-functional requirement are they addressing?

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

A system that is expected to operate continuously with minimal downtime is primarily focusing on which non-functional requirement?

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

Which non-functional requirement is directly related to ensuring a system can be easily transferred to and function correctly on different operating systems?

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

A web application that needs to comply with GDPR is addressing which type of non-functional requirement?

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

Which of the following scenarios best exemplifies a 'complete' requirement in the context of software development?

<p>A requirement detailing that 'the system shall process payments using encrypted sessions with 256-bit keys and provide transaction confirmation to the user.' (D)</p> Signup and view all the answers

In the MoSCoW prioritization technique, what does the 'Should have' category typically represent?

<p>Requirements that are important but can be deferred if time or resources are limited. (D)</p> Signup and view all the answers

Which of the following is the best example of a non-functional requirement for a mobile application?

<p>The application must load all pages in under 2 seconds on a 4G network. (D)</p> Signup and view all the answers

Consider the requirement: 'The system should prevent unauthorized access.' Which characteristic of good requirements does this MOST need to be improved to adhere to?

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

Which of the following is least likely to be considered a functional requirement?

<p>Ensuring compliance with GDPR regulations (B)</p> Signup and view all the answers

During the software crisis era, what was the primary challenge faced by the software industry?

<p>Difficulties in creating and maintaining software systems. (C)</p> Signup and view all the answers

Which of the following best describes the purpose of software development?

<p>To produce software that meets or exceeds customer expectations through a systematic process. (D)</p> Signup and view all the answers

In a typical software development lifecycle, which of the following sequences represents the core tasks?

<p>Analysis, Design, Construction, Testing, Delivery (D)</p> Signup and view all the answers

How does software architecture primarily influence a software system?

<p>By defining the high-level structure, components, and their interactions. (D)</p> Signup and view all the answers

What is the primary motivation for establishing a well-defined software architecture?

<p>To ensure long-term impacts on cost and quality by managing complexity and facilitating future modifications. (B)</p> Signup and view all the answers

What is a 'reference architecture' in the context of modern system development?

<p>A set of principal decisions that guide the structure and interaction of system components. (A)</p> Signup and view all the answers

In the context of software architecture, what is the key question addressed during the 'design' phase, following the 'analysis' phase?

<p>How do we fix the problem? (D)</p> Signup and view all the answers

Which aspect of software development focuses on both the 'planning' and 'design' aspects?

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

Which category of design decisions involves choices that are subject to change over time and affect the system's behavior during different periods?

<p>Temporal design decisions (A)</p> Signup and view all the answers

In the context of software architecture for a banking application, which of the following is most likely considered a principal design decision rather than a temporal one?

<p>The specific biometric authentication method implemented for user login (C)</p> Signup and view all the answers

Which of the following best describes the primary role of requirements engineering in software development?

<p>To gather, document, and manage stakeholder needs throughout the project lifecycle. (D)</p> Signup and view all the answers

In the context of software development, why is understanding 'who' relates to requirements important?

<p>Because the development team needs to identify all stakeholders and their specific needs. (D)</p> Signup and view all the answers

What is the MOST significant reason for prioritizing requirements in software development?

<p>To manage scope effectively, focusing on delivering the most valuable features first. (A)</p> Signup and view all the answers

Which of the following is NOT a typical concern addressed during requirements gathering?

<p>The specific programming language to use for development. (C)</p> Signup and view all the answers

What impact did Margaret Hamilton have on the field of software development during the Apollo missions?

<p>She led the team that developed the Apollo mission's flight software and coined the term 'software engineering'. (B)</p> Signup and view all the answers

Why did Margaret Hamilton introduce the term 'software engineering'?

<p>To emphasize the need for a systematic and rigorous approach to software development. (D)</p> Signup and view all the answers

Which of the following best describes the relationship between user stories and use cases in system requirements specification?

<p>User stories are short, simple descriptions of a feature from the user's perspective, while use cases are a methodology used to identify and organize system requirements. (A)</p> Signup and view all the answers

In the context of non-functional requirements, which of the following examples primarily addresses an ethical concern?

<p>The system should ensure fairness in route suggestions without bias. (A)</p> Signup and view all the answers

Consider a system requirement: 'As a VIP user I want to back up all of my messages so that I restore them whenever I need.' Which of the following categories does this best fall into?

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

Which of the following is the most likely 'Actor' within a 'Use Case' for sending a message?

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

What is the primary purpose of listing a 'precondition' in a use case description?

<p>To specify the state the system must be in before the use case can be initiated. (A)</p> Signup and view all the answers

In the context of system requirements, which of the following examples is most clearly a functional requirement?

<p>The system should allow users to send messages to their contacts. (D)</p> Signup and view all the answers

What is the maximum character limit for a user to send a message?

<p>250 characters long. (C)</p> Signup and view all the answers

Which of the following is most associated with use cases?

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

Flashcards

Software Crisis

Challenges faced in software creation and maintenance, 1960s-1980s.

Software Development

A systematic, phased process from project start to completion, structured for success.

Core Tasks

Analyze the software, design it, build it up, test every component, and deliver the software to user.

Software Architecture

High-level structure defining components and interactions, foundation of design and implementation.

Signup and view all the flashcards

Analysis (Software)

Understanding the problem that the software is trying to solve.

Signup and view all the flashcards

Design (Software)

The activity of of how to resolve the problem.

Signup and view all the flashcards

Role of Software Architecture

Long-term cost and quality impacts, complexity management, and ensuring parts work together.

Signup and view all the flashcards

Reference Architecture

Principal decisions influencing system development

Signup and view all the flashcards

Architecture Patterns

Standardized guidelines and proven solutions for efficient, consistent, and reliable system architecture.

Signup and view all the flashcards

Design Decisions

Choices made during the planning phase of a system regarding structure, behavior, technologies, configurations, and interaction.

Signup and view all the flashcards

Principal Design Decisions

Critical or fundamental choices that influence the overall architecture, functionality, or behavior of a system.

Signup and view all the flashcards

Temporal Design Decisions

Choices made or unmade over time, involving aspects related to periods within a system.

Signup and view all the flashcards

Stakeholders

Individuals or groups with an interest in, or impacted by, the development, deployment, or utilization of a software system.

Signup and view all the flashcards

Requirements Engineering

The process of gathering, documenting, analyzing, prioritizing, validating, and managing requirements throughout the project lifecycle.

Signup and view all the flashcards

Motivation of Requirements Engineering

Ensures that a project delivers the desired outcomes, meets stakeholder needs, and aligns with organizational goals.

Signup and view all the flashcards

Why Requirements Matter?

Requirements define WHAT, HOW and WHO is using it. It also has implications for COST and TIME

Signup and view all the flashcards

Software Requirements

Specifications defining what a software system should do and how it should behave.

Signup and view all the flashcards

Functional Requirements

Requirements describing specific tasks and functionalities a software system must perform.

Signup and view all the flashcards

Non-Functional Requirements

Requirements describing behaviors and characteristics a software system must possess.

Signup and view all the flashcards

Performance (NFR)

How quickly a system responds or processes tasks.

Signup and view all the flashcards

Scalability (NFR)

A system's ability to handle increasing loads without performance degradation.

Signup and view all the flashcards

Usability (NFR)

The system's ease of use and learning curve for end-users.

Signup and view all the flashcards

Security (NFR)

Ensuring a system is protected from unauthorized access or attacks.

Signup and view all the flashcards

Reliability (NFR)

A system's ability to perform consistently under expected conditions.

Signup and view all the flashcards

Unambiguous Requirements

Requirements that are clear, precise, and have only one possible interpretation.

Signup and view all the flashcards

Complete Requirements

Requirements that include all necessary information and cover all possible scenarios or aspects of the system.

Signup and view all the flashcards

Coherent Requirements

Requirements that do not contradict each other and work together harmoniously.

Signup and view all the flashcards

Verifiable Requirements

Requirements that can be tested and validated to ensure they have been met.

Signup and view all the flashcards

MoSCoW Method

MoSCoW stands for Must have, Should have, Could have, and Won't have. It is a prioritization technique.

Signup and view all the flashcards

Ethics (in Systems)

Ensures that the system adheres to moral principles like fairness and transparency.

Signup and view all the flashcards

Requirements

Statements specifying what a system should do (functional) and how it should perform (non-functional).

Signup and view all the flashcards

User Story

A short, simple description of a software feature from the perspective of the user.

Signup and view all the flashcards

Use Case

A methodology used to identify, clarify, and organize system requirements.

Signup and view all the flashcards

User Story (Details)

Informal description, written for users, influencing system functionality.

Signup and view all the flashcards

Use Case (Definition)

A list of actions or event steps defining the interactions between a user (actor) and the system.

Signup and view all the flashcards

Actor (in Use Case)

The user/entity that interacts with the system to achieve a goal.

Signup and view all the flashcards

Main Scenario

The normal sequence of events in a use case that leads to a successful outcome.

Signup and view all the flashcards

Study Notes

  • This lecture provides an introduction to Software Architecture for SENG 401. It is presented by Dr Ronnie de Souza Santos.

Software Crisis

  • This was a period when the software industry faced significant challenges in creating and maintaining software systems.
  • This crisis occurred in history of Software Development.
  • During this period, software development was difficult, inefficient, often resulted in overtime, and frequently exceeded budgets
  • The Software Engineering discipline came out of this period (1960-1970)

Software Development

  • This is a systematic process that outlines the phases that a software project goes through from initiation to completion and maintenance.
  • This process should be structured and based on quality communication
  • Software development includes management of the project, resources and tasks
  • The motivation of the development methodology is to produce software that meets or exceeds customer's expectations

Software Development Core Tasks

  • Include Analysis, Design, Construction, Testing and Delivery.
  • Also includes Management of costs, people, resources and time

Software Architecture

  • This defines the high-level structure of a software system
  • It defines components and their interactions
  • It sets the foundation for the design and implementation phases of software development
  • Analysis focuses on "what" is the problem
  • Design focuses on "how" to fix the problem

The Role of Software Architecture

  • Architecture decisions have a large effect on the long-term cost and quality of a system
  • Software architecture can influence the ease of future modifications
  • It aids in managing complexity, especially in large systems
  • The planning and design ensures different parts of the program work together and function well

Reference Architecture

  • This is the set of principal decisions that are simultaneously applicable to multiple related systems
  • Reference architecture is typically within an application domain
  • It provides explicit definitions of points of variation
  • In addition, it provides standardized guidelines and proven solutions for efficient, consistent and reliable system architectures

Design Decisions

  • Design decisions are choices that are made during the creation or planning phase of a system
  • Kinds of decisions to be made include what approaches, methods, technologies and configurations to use
  • Also includes structure, behavior and interaction

Principal and Temporal Design Decisions

  • Principal decisions are critical or fundamental choices that influences the overall architecture, functionality, or behavior of a system
  • Technologies and Data are Principal
  • Temporal decisions include the choices made or unmade and involve aspects related to periods within the system
  • Interface is Temporal

Banking App Design Decisions

  • The Operating System, Biometrics and Cloud are Principal
  • Push notifications, engaging users, and optimization are Temporal

Stakeholders

  • These are individuals or groups interested in, or impacted by, the development, deployment or utilization of a software system architecture and design
  • Includes architects, developers, testers, managers, clients and users

Software Engineering

  • Margaret Hamilton coined the term "Software Engineering" in the 1960s.
  • She led NASA's team that developed the Apollo Mission's flight software.
  • She introduced the term to emphasize the rigorous, systematic approach that was needed for software development which was then viewed as less formal than hardware engineering

Requirements Engineering

  • This is the process of gathering, documenting, analyzing, prioritizing, validating, and managing requirements throughout the project lifecycle
  • The stakeholders needs are central
  • There is motivation to ensure project delivers desired outcomes while reducing risks
  • Includes Change Management

Care About Requirements

  • Defining Requirements involves considering the What, the How, the Who, and the Costs Vs Time

Types of Requirements

  • Software requirements define what a software system should accomplish and how it should behave
  • It provides the basis for designing, building, and testing software solutions
  • It can then be categorized as Functional, Non-Functional and Domain specific

Basic Requirements

  • Functional requirements focus on the specific Tasks and Functionalities that the software system must perform
  • Non-Functional requirements describe the behaviors and characteristics that the software must possess

Non-Functional Requirements Examples

  • Performance specifies how quickly the system should respond or process tasks (e.g. system should process 1,000 transactions per second)
  • Scalability defines the system's ability to handle increasing loads without performance degradation (e.g. system should handle 10,000 concurrent users without degradation)
  • Usability focuses on the system's ease of use and learning curve for end users (e.g. user interface should be intuitive and require minimal training)
  • Security ensures system is protected from unauthorized access or attacks (e.g. all data encrypted using AES-256 encryption)
  • Reliability specifies the system's ability to perform consistently under expected conditions (e.g. system should have 99.9% uptime)
  • Availability indicates how often system should be available for use without downtime (e.g. system should be available 24/7 no more than 1 hour of downtime per year)
  • Maintainability describes the ease which system can be modified or updated (e.g. system should be able to update features without downtime)
  • Portability ensures system can be easily moved or adapted to different environments (e.g. system should run on both Windows and Linux platforms)
  • Accessibility focuses on system usability for people with disabilities (e.g. websites should support screen readers for visually impaired users)
  • Compliance ensures system complies with laws and regulations (e.g. GDPR) (e.g. system must comply with the GDPR for data protection)
  • Interoperability describes how system interacts with other systems or components (e.g. system should integrate with third-party payment gateways)
  • Ethics ensures the system adhere to ethical standards (e.g. system ensures fairness in route suggestions without bias)

Requirements Examples in a Message App

  • Functional: Create a profile, Login into the system, add a photo to the profile, send message to contact, delete profile
  • Non-Functional: New Profile is confirmed via SMS, Login required Email/Password for Validations, Photo is up to 2GB, message is 250 characters long, deleting profile is confirmed via a call

Requirements Specification

  • User Stories: Short, simple descriptions of a feature, told from the perspective of the person who will use it
  • Use Cases: A methodology, clarify and organize system requirements, used in system analysis to identify

User Stories

  • These are informal, natural language descriptions of features of the software
  • They are written by or for users or customers
  • They influence the functionality of the system being developed
  • Follows a format : As a (type of user), I want (some goal) so that (some reason)

Use Cases

  • This documents the user interface with the system in actions / events
  • Use cases use UML (Unified Modeling Language)

Good Requirements

  • Unambiguous
  • Complete
  • Coherent
  • Verifiable
  • Feasible
  • Prioritizable
  • Validatable

Requirements prioritization

  • Mo: These are non-negotiable, the minimum viable product, unable to deliver the end product without this, not legal without it, unsafe without it, and without this project is not viable
  • S: These are importunate, but not vital May be painful to leave out But solution is still viable. May need to implement a workaround
  • Co: Desirable but not essential, to have extra time and budget, important after should have.
  • W: Will not be able to implement at all, Out of budget, if no real impact.

Examples of Functional Vs Non-Functional Requirements

  • Functional: The app should allow users to search for products by name, category or keywords
  • Non-Functional: The app should load product pages in under 3 seconds, even during peak traffic times
  • Functional: Users should be able to register and log in using their email or social media accounts
  • Functional: The app must support multiple languages for global users
  • Functional: Users should have the ability to add terms to a shopping cart and update quantities
  • Non-Functional: The app must be available on both iOS and Android Platforms
  • Non-Functional: The user interface should be intuitive, requiring no more than 3 clicks to complete a purchase
  • Functional: The app must provide real-time order tracking after purchase
  • Non-Functional: All user data, including payment information, should be encrypted using industry-standard methods
  • Non-Functional: The system should have automatic daily backups, recover data within 30 minutes
  • Functional: Users should be able to create wish lists for future purchases
  • Non-Functional: The App to be optimised for mobile devices responsive to display on all screen sizes
  • Functional: The app should support users submitting requests for eligible items through a return or refund
  • Non-Functional: App Comply with Data Privacy Regulations
  • Functional: Admins can manage product inventory an receive alerts for low stock products an be able
  • Non-Functional: Supp screen readers and have high contrast mode for visually impaired users
  • Non-Functional: Push notifications alerting users to new product or sale announcements discount / updates
  • Non-Functional: Support App load up to 100,000 concurrent users during major sales events

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Enzymes: Concepts Lecture 9 BCMB 401 Spring 2024
19 questions
401 Lecture 4
16 questions

401 Lecture 4

CleanestJasper9407 avatar
CleanestJasper9407
401 Lecture 6
24 questions

401 Lecture 6

CleanestJasper9407 avatar
CleanestJasper9407
Use Quizgecko on...
Browser
Browser