Software Engineering: Introduction and Overview

ReadableSitar avatar
ReadableSitar
·
·
Download

Start Quiz

Study Flashcards

10 Questions

What is the primary concern of software engineering?

Developing and delivering useful software

Which type of software is developed for a single customer according to their specification?

Bespoke (custom) software

What does computer science primarily focus on?

Theory and fundamentals

Which discipline is concerned with all aspects of software production?

Software engineering

How can new software be created?

By developing new programs

What is the primary difference between software engineering and system engineering?

Software engineering focuses on developing the software infrastructure, control, applications, and databases, while system engineering is concerned with all aspects of computer-based systems development including hardware, software, and process engineering.

What is a software process model?

A representation of software processes from different perspectives such as workflow, data-flow, and role/action.

What are the attributes of good software according to the text?

Deliver required functionality and performance, maintainable, dependable, and acceptable.

What are the generic activities in all software processes according to the text?

Specification, development, validation, and evolution.

What is CASE (Computer-Aided Software Engineering) according to the text?

Software systems intended to provide automated support for software process activities.

Study Notes

  • Software: A collection of computer programs and associated documentation, including requirements, design models, and user manuals. Software can be developed for specific customers or for a general market. Types of software include generic software like Excel or Word, and bespoke (custom) software developed for a single customer. New software can be created through developing new programs, configuring existing software, or reusing existing software.
  • Software Engineering: An engineering discipline focused on producing software. Software engineers should adopt a systematic approach, using appropriate tools and techniques. Differences between software engineering and computer science: Computer science deals with theory and fundamentals while software engineering focuses on practical software development. Theories of computer science do not fully underpin software engineering.
  • Software Engineering vs System Engineering: System engineering deals with all aspects of computer-based systems development, including hardware, software, and processes. Software engineering is a part of this process, responsible for developing software infrastructure, control, applications, and databases within the system. System engineers handle system specification, architectural design, integration, and deployment.
  • Software Process: A set of activities aimed at developing or evolving software. Activities include specification, development, validation, and evolution.
  • Software Process Model: A simplified representation of a software process, presented from a specific perspective. Common process perspectives include workflow, data-flow, and role/action. Generic process models include Waterfall, Iterative Development, and Component-Based Software Engineering.
  • Computer-Aided Software Engineering (CASE): Systems designed to support software process activities. Upper-CASE tools focus on early process activities, such as requirements and design, while Lower-CASE tools support later activities, like programming, debugging, and testing.
  • Good Software Attributes: Software should meet user requirements, offer desired performance, maintainability, dependability, efficiency, and acceptability. Maintainability refers to adapting software to changing needs; dependability ensures trustworthiness; efficiency reduces wasteful resource use; and acceptability means software must be understood, usable, and compatible with other systems.
  • Challenges in Software Engineering: Heterogeneity, delivery, and trust. Heterogeneity requires techniques to build software for diverse platforms and execution environments; delivery focuses on faster software delivery; trust involves demonstrating software trustworthiness.

Learn about the fundamentals of software engineering, including the definition of software, types of software products, and associated documentation. Explore the differences between generic and bespoke software development.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free

More Quizzes Like This

Use Quizgecko on...
Browser
Browser