Understanding Software Engineering Concepts

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 are the three components that compose software?

Instructions for execution, data structures, and descriptive information.

In what main sense is software not manufactured?

Software is developed or engineered, not manufactured in a classical sense.

How is software longevity connected to its user base?

As the perceived value of an application grows, the likelihood of its user base and longevity also increases.

What is the primary goal of application software?

<p>Solution of a specific business need.</p> Signup and view all the answers

Describe the purpose of embedded software.

<p>To implement and control features for the end user and the system itself.</p> Signup and view all the answers

What does IEEE say that software engineering is?

<p>The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.</p> Signup and view all the answers

Within the layered technology view, what element sits above 'process'?

<p>Methods.</p> Signup and view all the answers

Name the five generic activities in a generic process framework for software engineering.

<p>Communication, Planning, Modeling, Construction, and Deployment.</p> Signup and view all the answers

What is the purpose of 'umbrella activities' in the software process?

<p>They oversee the process, ensuring quality and progress.</p> Signup and view all the answers

List the four key actions embodying software engineering practice.

<p>Understand the problem, plan a solution, carry out the plan, examine the result for accuracy.</p> Signup and view all the answers

Software engineering involves wider responsibilities than simply what?

<p>The application of technical skills.</p> Signup and view all the answers

Name two components of 'Professional Responsibility'.

<p>Confidentiality, competence, intellectual property rights, and computer misuse.</p> Signup and view all the answers

What is a key challenge associated with legacy software systems?

<p>Maintaining the software and evolving it to meet new business needs.</p> Signup and view all the answers

What pressures do managers with software responsibilities often face?

<p>Maintaining budgets, keeping schedules from slipping, and improving quality.</p> Signup and view all the answers

In the discussion of 'customer myths', what is the customer defined to be?

<p>A person at the office, a technical group, the marketing/sales department, or an outside company that has requested software under contract.</p> Signup and view all the answers

What is a 'practitioner's myth' surrounding software?

<p>Software myths are still believed by software practitioners, often fostered by years of programming culture.</p> Signup and view all the answers

What general problem starts a software project?

<p>A business need.</p> Signup and view all the answers

Explain how an AI software is useful.

<p>AI Software is helpful for solving more complex computing problems.</p> Signup and view all the answers

How does software act as a 'vehicle used to deliver products'?

<p>Software acts as the basis for the control of the computer operating systems as well as communication networks.</p> Signup and view all the answers

Why should software engineers behave honestly and ethically?

<p>To be well respected as professionals.</p> Signup and view all the answers

What is the primary focus of scientific software?

<p>Algorithms centered around number crunching.</p> Signup and view all the answers

Software engineering requires an engineering approach. What is it used for?

<p>Software engineering is systematic in the engineering field.</p> Signup and view all the answers

Product line software is designed to allow what?

<p>Designed to allow specific capability for many different customers.</p> Signup and view all the answers

How is software quality assured?

<p>Through software quality assurance.</p> Signup and view all the answers

Are software engineering ethics important?

<p>Yes, ethics play a crucial role in software engineering.</p> Signup and view all the answers

What is the main difference between software and hardware?

<p>Software is developed and engineered. Hardware is manufactured.</p> Signup and view all the answers

How is data processed through 'system software?'

<p>System software processes complex data to provide useful tools.</p> Signup and view all the answers

Legacy software presents challenges. What proliferation presents headaches for organizations.

<p>Legacy systems are causing organizations headaches to maintain and are risky.</p> Signup and view all the answers

Should managers with software responsibilities be aware of slipping?

<p>Yes, they should also improve quality.</p> Signup and view all the answers

Should Practitioners foster culture? If not, what types of myths should they be aware of?

<p>Practitioners should be aware of all culture myths such as, customer myths, and management myths.</p> Signup and view all the answers

Flashcards

What is Software?

Instructions that, when executed, provide desired features, and data structures to manipulate information, and descriptive information about operation.

Unique Software characteristics

Developed/engineered; not mass-produced. Doesn't 'wear out'. Often custom-built, moving towards component-based.

System Software

Programs servicing other programs, process complex data. Examples: Compilers, editors, operating system components.

Application Software

Programs which solve specific business problem. Process business/technical data to facilitate business operations or decision making.

Signup and view all the flashcards

Engineering/Scientific Software

Algorithms involving number crunching with applications ranging from astronomy to automated manufacturing.

Signup and view all the flashcards

Embedded Software

Software which resides within a system, implementing and controlling features for end-users.

Signup and view all the flashcards

Web Applications

Category spanning Web-based applications and functionalities, from hypertext files that use text and limited graphics.

Signup and view all the flashcards

AI Software

Uses algorithms to solve complex problems not suited to straightforward analysis. Includes robotics and expert systems.

Signup and view all the flashcards

Software as a Product

A computing product embodied by HW by computer or network.

Signup and view all the flashcards

Software as a Vehicle

Basis for computer control, information communication and the creation and control of other programs.

Signup and view all the flashcards

Software Engineering

Approach on its development, analyzing user needs, designing, constructing, testing apps via software programming languages.

Signup and view all the flashcards

Software Engineering (IEEE)

Application of a systematic, disciplined, quantifiable approach to software development, operation, and maintenance.

Signup and view all the flashcards

Communication

A software engineering activity which focuses on user communication.

Signup and view all the flashcards

Planning

A software engineering activity which sets a road map.

Signup and view all the flashcards

Modeling

A software engineering activity which creates representations of reality.

Signup and view all the flashcards

Construction

A software engineering activity which generates code from design.

Signup and view all the flashcards

Deployment

A software engineering activity which involves testing and QA.

Signup and view all the flashcards

Software Project Tracking and Control

Tracking and control project status while planning ahead.

Signup and view all the flashcards

Risk Management

Identifying and mitigating potential problems.

Signup and view all the flashcards

Software Quality Assurance

Monitoring adherence to standards.

Signup and view all the flashcards

Technical Reviews

Code inspection and reviews

Signup and view all the flashcards

Measurement

Application of proper engineering principles

Signup and view all the flashcards

Software Configuration Management

Managing changes and versions

Signup and view all the flashcards

Reusability Management

Incorporating existing aspects

Signup and view all the flashcards

Work Product Preparation and Production

Producing artifacts like diagrams, documentation

Signup and view all the flashcards

Essence of practice

Understanding needs, planning solution, creating and testing

Signup and view all the flashcards

How it All Starts

The need to adapt a 'legacy system' creates an extension of a system

Signup and view all the flashcards

Study Notes

Learning Outcomes

  • Explain software engineering’s nature
  • Comprehend the software process
  • Determine how software engineering started

Software and Software Engineering Topics

  • Nature of Software
  • Software Engineering
  • Software Process
  • Software Engineering Practice
  • Software Engineering Myths
  • It All Starts

The Nature of Software

  • Software comprises instructions that provide features, functions, and performance when executed.
  • Software includes data structures that enable programs to manipulate information and descriptive information for operation and use.

Software Characteristics

  • Software is developed or engineered, not manufactured like hardware
  • Software does not wear out
  • Software is custom-built, despite the industry’s move toward component-based construction

Software Application Domains

  • System Software: Programs written to service other programs that process complex & determinate info (e.g. compilers, editors) or indeterminate data (operating system components, drivers).
  • Application Software: Stand-alone programs addressing specific business needs processing data to facilitate operations or decision-making.
  • Engineering/Scientific Software: Characterized by "number crunching" algorithms, used in areas from astronomy to manufacturing.
  • Embedded Software: Resides within a product/system, implementing end-user control features, functions, and system itself.
  • Product-line Software: Provides specific capabilities for use by many different customers.
  • Web Applications: Network-centric software spanning a wide array of applications, including linked hypertext files with text and limited graphics.
  • Artificial Intelligence (AI) Software: Employs nonnumerical algorithms for complex problem-solving, covering robotics, expert systems, pattern recognition, and game playing.

The Evolving Role of Software

  • As a Product: Delivers computing potential by computer hardware or networks.
  • As a Vehicle: Acts as the basis for control of the computer (operating systems), communication of information (networks) creation and control of other programs (software tools and environments).

Software Engineering

  • Software has become deeply embedded in virtually every aspect of Our Lives
  • The information technology requirements demand by individuals, businesses, and governments grow increasingly complex with each passing year
  • Individuals, businesses, and governments increasingly rely on software for strategic and tactical decision-making as well as day-to-day operations and control.
  • As the perceived value of a specific application grows, the likelihood is that its user base and longevity will also grow.
  • An approach to software development of systematic application is analyzed, designed, constructing, and testing end-user applications to fill these needs via software programming languages.

Software Engineering (IEEE Definition)

  • Application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
  • The study of approaches to software engineering.

A Layered Technology

  • Quality Focus (Base Layer)
  • Process
  • Methods
  • Tools (Top Layer)

Software Process

  • A generic process framework for software engineering encompasses five activities; Communication, Planning, Modeling, Construction, and Deployment.
  • Typical Umbrella Activities include: Software project tracking and control, Risk management, Software quality assurance, Technical reviews, Measurement, Software configuration management, Reusability management, and Work product preparation and production.

Software Engineering Practice

  • The essence of practice: Understand the Problem (communication and analysis), Plan a Solution (modeling and software design), Carry out the Plan (code generation), and Examine the Result for Accuracy (testing and assurance)

Software Engineering Ethics

  • Ethical Behavior: Involves upholding the law but following principles that are morally correct.
  • Software Engineering Involvement: Wider than technical skill application
  • Ethical Responsibility: Software engineers must be honest and ethically responsible as professionals

Issues of Professional Responsibility

  • Includes confidentiality, competence, intellectual property rights, and computer misuse.

Legacy Software

  • The proliferation of systems developed decades ago causes headaches for large organizations, who find them costly to maintain and risky to evolve due to business and computing changes.

Software Myths

  • Managers, customers, and practitioners all hold various myths about software development

Management Myths

  • Managers with software responsibility are pressured to maintain budgets, keep schedules, and improve quality.

Customer Myths

  • Customers requesting computer software may be internal people, groups, departments or outside companies under contract.

Practitioner's Myths

  • Software development myths are still believed by software practitioners, fostered by 50 years of programming culture.

How it Starts

  • Every project starts by some business need to correct a defect, to adapt or extend legacy systems, or to create new products, services, or systems.

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