Understanding Software Engineering Principles

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

What is the primary goal of software engineering?

  • To prioritize speed of delivery over all other considerations.
  • To use the latest technology, even if it's not suitable for the project.
  • To minimize development costs regardless of quality.
  • To create a framework for developing software with high quality. (correct)

Software is solely a product and does not act as a vehicle for delivering other products.

False (B)

Which of the following is an example of a generic software product?

  • An embedded control system in a car.
  • A traffic monitoring system designed for a particular city.
  • Air traffic control software for a specific airport.
  • PC software such as graphics programs sold to any customer. (correct)

What are the three elements typically included in software?

<p>instructions, data structures, documentation</p>
Signup and view all the answers

Software maintenance costs are typically less than the cost of initial software development, especially for long-term systems.

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

Which statement best describes the lifespan of software versus hardware?

<p>Software deteriorates rather than wears out, primarily due to changes and fixes. (C)</p>
Signup and view all the answers

Match the software application type with its description:

<p>System Software = Provides core functions such as compilers and file management. Application Software = Stand-alone programs designed for specific user needs. Embedded Software = Resides within a product or system to control operations. Web Apps = Network-centric software accessed over the internet.</p>
Signup and view all the answers

Which of the following is NOT a characteristic of Web applications?

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

According to the IEEE definition, software engineering is the application of what type of approach?

<p>systematic, disciplined, and quantifiable</p>
Signup and view all the answers

In software engineering, ethical behavior is solely about adhering to the laws and regulations.

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

The three aspects of the layered approach to software engineering are: tools, methods and ______.

<p>process model</p>
Signup and view all the answers

Which of the following is the foundation of software engineering that provides a framework for effective delivery of software?

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

A software process should rigidly adhere to a fixed version and not be adaptable to the needs of the team.

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

Match the term with the correct description:

<p>Process Framework = Identifies a minimal set of process activities. Umbrella Activities = Activities which complement the process framework activities.</p>
Signup and view all the answers

Which of the five generic process framework activities involves code generation and testing?

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

In adapting a process model, the degree of process strictness remains constant across different projects.

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

______ process models emphasize detailed planning and adherence to the process description.

<p>prescriptive</p>
Signup and view all the answers

Which of the following is a focus of agile process models?

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

Name at least one of the main point about "Understand the Problem"?

<p>who are the stakeholders</p>
Signup and view all the answers

What do correctness proofs help ensure?

<p>The algorithms do precisely what they are supposed to do. (D)</p>
Signup and view all the answers

Software application is more closely related to theory and fundamental principles

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

What is the first step in problem solving?

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

Ethical considerations should not be a point of concern in software engineering.

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

Why can't the industry produce software in a traditional way?

<p>quality</p>
Signup and view all the answers

What best describes the difference between generic and customer software?

<p>Customer is specifically requested, while generic are for a wider audience. (B)</p>
Signup and view all the answers

It is cheaper to change after the release of product rather than during the definition phase.

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

A WebApp resides on a ______ and must serve the needs of a diverse community of clients.

<p>network</p>
Signup and view all the answers

What is the final of the four examination steps?

<p>Does the solution produce results that conform to the data, functions, and features that are required? (C)</p>
Signup and view all the answers

Hooker's practices provide no value to users.

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

Match the number to its name?

<p>1 = The Reason It All Exists: provide values to users 2 = KISS (Keep It Simple, Stupid! As simple as possible) 3 = Maintain the Vision (otherwise, incompatible design)</p>
Signup and view all the answers

Which of the following best describes software?

<p>A set of instructions that tells a computer what to do. (C)</p>
Signup and view all the answers

Software, unlike hardware, never deteriorates over time.

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

What is characterized by the number algorithms being crunched?

<p>engineering scientific software</p>
Signup and view all the answers

Which of these needs is not related to change in legacy software?

<p>Adapting to calculate needs. (C)</p>
Signup and view all the answers

Good software is reliable.

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

Hooker's practices will help someone determine a clear thought process before any ______ is done.

<p>action</p>
Signup and view all the answers

Which of the following best describes ethical behavior?

<p>Meeting standards beyond the rules. (B)</p>
Signup and view all the answers

A process is not a single version.

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

What can a team not directly affect?

<p>progress</p>
Signup and view all the answers

What is part of the 5 steps

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

Flashcards

What is Software?

The product that software professionals build and then support over the long term.

Software as a Product

Software delivers computing potential and handles information.

Software as a Vehicle

Software supports functionality and enables communication.

Generic software products

Independent software sold to any customer.

Signup and view all the flashcards

Customized software products

Software made to order for a specific client.

Signup and view all the flashcards

Features of Software

Developed/engineered-not traditionally 'produced'-and has unique quality challenges.

Signup and view all the flashcards

Software Costs

Software costs often exceed hardware costs, especially long term.

Signup and view all the flashcards

Maintainability

Software should evolve to meet changing needs and be easy to modify.

Signup and view all the flashcards

Dependability and Security

Software should be reliable, secure, and safe from critical errors.

Signup and view all the flashcards

Efficiency

Software should use system resources wisely and operate efficiently.

Signup and view all the flashcards

Acceptability

Software should be understandable, usable, and compatible for its target users.

Signup and view all the flashcards

Ethical Responsibility

Software engineers must act ethically, beyond technical skills.

Signup and view all the flashcards

The Process layer

A process that provides a framework of activities for delivering software.

Signup and view all the flashcards

The Method layer

It provides the technical 'how-to' for building software.

Signup and view all the flashcards

The Tools layer

Automated support for processes and methods.

Signup and view all the flashcards

Quality Focus

Software development should deliver needed functionality effectively.

Signup and view all the flashcards

Software Process

A set of actions to create a software product.

Signup and view all the flashcards

Process Framework

A structure providing context for software development activities.

Signup and view all the flashcards

Communication activity

Determine objectives and gather needs.

Signup and view all the flashcards

Planning activity

Establish a plan for the work.

Signup and view all the flashcards

Modeling activity

Create a design sketch.

Signup and view all the flashcards

Construction activity

Generate code and test.

Signup and view all the flashcards

Deployment activity

Deliver to the customer for feedback.

Signup and view all the flashcards

Umbrella Activities

Overarching actions that help manage the process, quality and risks.

Signup and view all the flashcards

Tracking progress

Evaluate performance and act.

Signup and view all the flashcards

Managing risk:

Find and mitigate possible project risks.

Signup and view all the flashcards

Ensuring quality

Ensure that quality standards are being maintained.

Signup and view all the flashcards

Performing reviews

Assess products to remove flaws.

Signup and view all the flashcards

Measuring

Check process, project, and product measures.

Signup and view all the flashcards

Managing change

Plan for and control effects of any changes.

Signup and view all the flashcards

Managing reuse

reuse criteria in software.

Signup and view all the flashcards

Product Creation

Create models, docs, lists, and forms during the project.

Signup and view all the flashcards

Prescriptive Process Models

Detailed and structured with complete activity definitions.

Signup and view all the flashcards

Agile Process Models

Focus on speed; light formal process; adapt quickly.

Signup and view all the flashcards

Stakeholders

Known or unknown people using your system.

Signup and view all the flashcards

Requirements

Data needed and the outcome.

Signup and view all the flashcards

Validate Solutions

Confirm match between planned software and implementation

Signup and view all the flashcards

Test Solutions

Have reasonable, logical, complete software testing.

Signup and view all the flashcards

Why Test Software?

Ensure your software does what it must.

Signup and view all the flashcards

Why Software Exists

provide values to users.

Signup and view all the flashcards

Study Notes

  • Software consists of programs, data, and documentation, each with its configurations
  • Software engineering involves technologies, methods, and tools based on engineering principles used in software development
  • A core objective of software engineering is to provide a structure for developing high-quality software

What Is It?

  • Software is what software professionals build and support long-term.
  • It includes instructions (computer programs), which provide features, functions, and performance during code execution.
  • Data structures let programs store and manipulate data.
  • Documentation describes how the program works and is used.

Dual Role

  • Software serves as a product.
  • It delivers computing potential.
  • It produces, manages, obtains, alters, shows, or sends out data.
  • Software acts as a vehicle for product delivery.
  • It directly supports system functionality.
  • It controls other programs like operating systems.
  • It influences communication through networking software.
  • It facilitates the creation of other software through tools.

Products

  • Generic products are independent and available to any customer.
  • Examples include PC software for editing, graphics, project management tools, CAD software, and appointment systems for specific markets like dentists.
  • Customized products are made to order for a specific client.
  • Examples are embedded control systems, air traffic control software, and traffic monitoring systems.

Features

  • Software is engineered or developed, not manufactured, which avoids the quality issues of traditional manufacturing.
  • It does not wear out like hardware but can degrade.
  • The industry shifts toward component-based software, most software remains custom-built.

Costs

  • Software costs often exceed hardware costs
  • Software maintenance costs surpass development costs, particularly in long-lived systems.
  • Software engineering seeks cost-effective software development and is more expensive.

Cost of Change

  • Definition is 1x more expensive
  • Development is 1.5 - 6x more expensive
  • After release 60 - 100x more expensive

Software Applications Categorize

  • System software includes compilers, editors, and file management tools.
  • Application software is stand-alone programs for specific needs.
  • Engineering/scientific software is characterized by heavy use of algorithms.
  • Embedded software resides within a product or system.
  • Product-line software offers specific capabilities for diverse users.
  • Web Apps network-centric software.
  • AI software uses non-numerical algorithms for complex problem-solving.

New Categories

  • Open world computing enables pervasive, ubiquitous, distributed computing with wireless networks.
  • Net sourcing uses the Web as a computing engine.
  • Open source provides "free" source code to the computing community. Data mining, grid computing, cognitive machines and software for nanotechnologies are also included

Legacy Software

  • It must change to adapt to new computing environments and technologies.
  • It needs to implement new business requirements.
  • There is a need to expand to interface with modern systems and databases.
  • It is necessary to re-architect to survive in a networked environment.

Characteristics of Web Apps

  • It sits on a network and serves various client communities
  • Many users can access at once
  • The amount of users can vary greatly each day
  • Users will leave if access is too slow
  • Users demand constant access
  • Many WebApps use hypermedia for text, graphics, audio, or video
  • Quality of content matters as do aesthetics
  • Conventional applications evolve over time
  • WebApps must get software to market fast
  • Difficult to restrict who can use the application
  • The look and feel of a WebApp matters

IEEE Definition

  • Software engineering includes a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
  • It also examines methods for the systematic, disciplined, and quantifiable development, operation, and maintenance of software.

Attributes

  • Good software should be easy to change to meet customer needs and to correct when needed.
  • It should include reliability, security, and safety features to prevent errors and protect data.
  • Software should use system resources efficiently.
  • It must be understandable, usable, and work with all other systems.

Ethical Responsibility

  • It involves responsibilities beyond technical skills.
  • They must behave honestly and ethically
  • Ethical behavior involves professional accountability

Definition

  • Software engineering emphasizes quality
  • It consists of a process model, methods, and tools.
  • The process model offers a framework
  • The methods give specific tactics
  • The tolls support and speed up processes and methods

Process

  • Its a collection of activities to create one product
  • No one version of software development, constantly being updated
  • Aimed at helping those involved to pick what best suites their needs
  • Aims at delivering software with good quality in the time restraints

Framework

  • The framework serves to manages and builds software
  • Consists of a work tasks, work products, milestones and deliverables and QA checkpoints

5 Activities

  • Communication to understand the clients goals
  • Programing to define the project needs and work products
  • Modelling to sketch how the architecturally the system looks
  • Creation to create the code and test it
  • Deployment to get to the customer so they can use it and give feedback
  • These 5 steps can be applied to many projects
  • Applied over and over with projects
  • With each iteration, builds upon previous version

Umbrella

  • Complements the 5 framework activities and management of team and project
  • Includes program assessment for quality and risks
  • Technical reviews and collects project and product aspects
  • Manage the effects of changing software
  • Make reusable components that are created out models, etc

Adapting a Process Model

  • The process has to be flexible to changing needs
  • Can be different from project to project
  • The differences are in activities, definitions of phases, work products, how to control quality, how strict the process is

Process Models

  • Focuses on a definition with the goal of improving quality and manageable project
  • Also can be high, with a large degree of bureaucracy.
  • Agile promotes flexibility with web applications
  • They are based on a series of rules that lead to less emphasis on process.

Prescriptive or Agile?

  • Prescriptive includes documentation and has a planned process
  • Agile is less formal with teams
  • Prespective has clear control when in a team environment
  • Agile can be hard to scale
  • Prespective is good for large or dangerous items
  • Agile is small, easy to manage

1 - Understanding

  • Figure out who the stakeholders are
  • What do the stakeholders want and how can that objective get met
  • Do you already know which functions are needed
  • Can the function break down into parts
  • Does the data exist
  • Is the item easy to handle

2 - Solution

  • Have similar problems been seen before
  • Were there similar problems solved
  • Can sub issues define solutions
  • Can a solution be efficiently implemented

3 - Plan

  • Is their code readable
  • If the product has been tested
  • If the solution helps the user reach their goal
  • Is there a similar solution already

Principles:

  • Why is it there
  • Keep It Simple, Stupid
  • Maintain the Vision
  • What You Produce, Others Will Consume
  • Open to the Future
  • Plan Ahead for Reuse
  • Think before you do

Software Myths

  • Erroneous beliefs about the product
  • Easy to build or add to
  • Believing in a myth will lead to bad choices
  • It is important to be grounded in reality
  • If you have problems, just add more developers

Some myths

  • Once it is running, job is done, not the whole 80%
  • Assessing its quality must be assessed during testing
  • Software will take too long, better to have less and get a quality output for less

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Software Engineering and Development
12 questions
CSC 303 Software Engineering 1
16 questions

CSC 303 Software Engineering 1

NoblePrehistoricArt4993 avatar
NoblePrehistoricArt4993
Software Engineering Overview
40 questions
Use Quizgecko on...
Browser
Browser