Software Engineering Fundamentals

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 factor primarily influences the software engineering methods and tools applied in a project?

  • The type of application being developed. (correct)
  • The hardware specifications of the server.
  • The project manager’s personal preferences.
  • The programming language used.

What is the primary economic concern that software engineering addresses regarding software costs?

  • Avoiding the purchase of CASE tools.
  • Minimizing the initial hardware expenses.
  • Reducing the costs associated with software maintenance. (correct)
  • Lowering the salaries of software developers.

What distinguishes software engineering from computer science?

  • Computer science is concerned with all aspects of computer-based systems, while software engineering is a small part.
  • Computer science focuses on the theoretical foundations of computing, while software engineering addresses the practical aspects of developing useful software. (correct)
  • Software engineering deals with theoretical computing principles, while computer science focuses on practical application.
  • There is no distinction; the terms are interchangeable.

In the context of software engineering, what does software dependability encompass?

<p>A range of characteristics including reliability, security, and safety. (D)</p> Signup and view all the answers

Why do many companies not use software engineering methods in their everyday work?

<p>Many companies have gradually drifted into software development without adopting formal software engineering practices. (C)</p> Signup and view all the answers

What is the significance of software evolution in the software process?

<p>It addresses the ability of software to adapt to changing customer and market requirements. (B)</p> Signup and view all the answers

What is a key characteristic of 'generic' software products?

<p>They are marketed and sold to any customer, regardless of specific needs. (C)</p> Signup and view all the answers

Which activity is part of the SDLC Analysis Phase?

<p>Studying current organizational procedures and information systems. (A)</p> Signup and view all the answers

When does the SDLC Planning Phase typically occur?

<p>At the beginning of a project. (D)</p> Signup and view all the answers

What tool is used to provide product and tool integration of SDLC activities?

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

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

<p>An air traffic control system. (A)</p> Signup and view all the answers

In the SDLC, what is the main focus of the Design Phase?

<p>To define how the system will operate in terms of hardware, software, and infrastructure. (B)</p> Signup and view all the answers

What is the major goal of the Software Validation stage in the software process?

<p>To ensure that the software is what the customer requires. (C)</p> Signup and view all the answers

Which of the following best describes the relationship between software engineering and system engineering?

<p>System engineering is the broader discipline that encompasses all aspects of computer-based systems development, including software engineering. (C)</p> Signup and view all the answers

What is the primary focus of the SDLC Implementation Phase?

<p>Coding, validating, and installing the system. (C)</p> Signup and view all the answers

What is the major key challenge that software engineering faces today concerning heterogeneity?

<p>Developing techniques for building software that can cope with heterogeneous platforms and execution environments. (B)</p> Signup and view all the answers

What does it mean when software must be 'acceptable'?

<p>The software is understandable, usable, and compatible with other systems. (C)</p> Signup and view all the answers

During which SDLC phase is the technical feasibility (can we build it?) of a project evaluated?

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

What is the role of a Project Manager in the SDLC Planning Phase?

<p>To create a work plan and staff the project. (B)</p> Signup and view all the answers

Which of the following is an example of a 'stand-alone application'?

<p>A PC software such as a graphics program. (A)</p> Signup and view all the answers

How does the SDLC Maintenance Phase differ from the other SDLC phases?

<p>It is a separate phase but a repetition of the other life cycle phases. (A)</p> Signup and view all the answers

Which of the following attributes is essential for good software?

<p>The software is easy to maintain and evolve. (A)</p> Signup and view all the answers

What is the primary purpose of 'requirements structuring' during the SDLC Analysis Phase?

<p>To document relationships between project requirements and eliminating redundancy. (A)</p> Signup and view all the answers

What type of application is an airline reservation system?

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

Which phase of the SDLC involves transforming logical specifications into technology-specific details?

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

Computer-Aided Software Engineering (CASE) tools are designed to:

<p>Support different activities of the SDLC. (D)</p> Signup and view all the answers

What is the primary goal of software engineering?

<p>To manage the design and evolution of software to meet user needs in a timely and cost-effective manner. (B)</p> Signup and view all the answers

What is the purpose of Diagramming tools in CASE?

<p>Enable system process, data, and control structures graphically. (C)</p> Signup and view all the answers

Which of the following is NOT a described phase in SDLC?

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

What are 'deliverables' in the context of SDLC?

<p>Specific outcomes and results of each phase that provide input to other phases. (B)</p> Signup and view all the answers

If a company requires a software system to manage and control its hardware devices, which application is being developed?

<p>An embedded control system. (A)</p> Signup and view all the answers

When can CASE tools be used?

<p>In multiple phases of the SDLC. (A)</p> Signup and view all the answers

Which of the following is NOT a key challenges facing software engineering?

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

Roughly what percentage of software costs are development?

<p>Approximately 60%. (A)</p> Signup and view all the answers

What is the purpose of 'report generators' in CASE tools?

<p>Help prototype how systems look and feel. (B)</p> Signup and view all the answers

Which type of application is a Telecom company calculating monthly job charges?

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

Is this statement true about essential attributes of good software: Software should make wasteful use of system resources such as memory and processor cycles

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

Flashcards

Software engineering

An engineering discipline concerned with all aspects of software production.

Software costs

The cost of software often outweighs the cost of hardware in computer systems.

Fundamental software engineering activities

Software specification, development, validation, and evolution

Computer science

Theory and fundamentals

Signup and view all the flashcards

Software engineering

Developing and delivering useful software

Signup and view all the flashcards

System engineering

Concerned with all aspects of computer-based systems development including hardware, software and process engineering

Signup and view all the flashcards

Generic vs. Customized products

Generic products are ready-made; customized products are commissioned.

Signup and view all the flashcards

Maintainability

Software should evolve to meet changing customer needs.

Signup and view all the flashcards

Dependability and security

Software should be reliable, secure, and safe.

Signup and view all the flashcards

Efficiency

Software should not waste system resources.

Signup and view all the flashcards

Acceptability

Software should be understandable, usable, and compatible.

Signup and view all the flashcards

Software engineering

All aspects of software production, from specification to maintenance.

Signup and view all the flashcards

Software specification

Customers and engineers define the software and its constraints.

Signup and view all the flashcards

Software development

Software is designed and programmed.

Signup and view all the flashcards

Software validation

Software is checked to ensure it meets customer requirements.

Signup and view all the flashcards

Software evolution

Software is modified to reflect changing needs.

Signup and view all the flashcards

Software engineering methods depend on

Consider type of application, requirements & team background.

Signup and view all the flashcards

Stand-alone applications

Run on a local computer and do not connect to a network

Signup and view all the flashcards

Interactive transaction-based applications

Run on a remote computer and accessed by users from their own PCs.

Signup and view all the flashcards

Embedded control systems

Software systems controlling hardware devices.

Signup and view all the flashcards

Batch processing systems

Designed to process data in large amounts.

Signup and view all the flashcards

Entertainment system

Primarily for personal use and entertainment.

Signup and view all the flashcards

Systems for modelling and simulation

Used to model physical processes or situations.

Signup and view all the flashcards

Data collection systems

Collect data from their environment using sensors.

Signup and view all the flashcards

Systems of systems

Composed of a number of other software systems.

Signup and view all the flashcards

SDLC

traditional methodology for developing, maintaining, and replacing information systems

Signup and view all the flashcards

SDLC Planning Phase Why

information system should be built.

Signup and view all the flashcards

SDLC Planning Phase How

project team will go building it

Signup and view all the flashcards

Project Initiation

Business needs and how the system creates a business value.

Signup and view all the flashcards

Technical feasibility

Can we build it?

Signup and view all the flashcards

Economic feasibility

Will it provide business value?

Signup and view all the flashcards

Organizational feasibility

If we build it, will it be used?

Signup and view all the flashcards

SDLC Analysis Phase Who What Where

will use the system, will the system do, and when it will be used.

Signup and view all the flashcards

Requirements Determination

study of organization current procedures and the information systems used

Signup and view all the flashcards

SDLC Design Phase

Convert recommended solution to system specifications.

Signup and view all the flashcards

SDLC Implementation Phase

Code, validate, install and support the information system.

Signup and view all the flashcards

SDLC Maintenance Phase

Systematically repair and improve the information system.

Signup and view all the flashcards

Computer-Aided Software Engineering (CASE)

Support a wide variety of SDLC activities

Signup and view all the flashcards

Repository

Integrated and standard database

Signup and view all the flashcards

Study Notes

Introduction to Software Engineering

  • Software Engineering 10th Edition by Ian Sommerville can be used as a textbook

Course Outline

  • Software Engineering Fundamentals
  • Software Process Models
  • Requirements Engineering
  • System Modeling
  • Architectural Design
  • User Interface Design
  • Agile Software Development
  • Software Testing

Course Assessment

  • Final Exam: 40 marks
  • Midterm Exam: 25 marks
  • Quizzes: 15 marks
  • Project: 20 marks
  • The total marks for this course is 100.

Computer Science Career Path

  • Careers include Software Analyst (System Analyst), Software Designer, Software Developer (Programmer) and Quality Engineer (Software Tester)
  • Many positions/titles exist in Cyber Security, Artificial Intelligence, etc.

Software Engineering

  • The economies of all developed nations are dependent on software.
  • More and more systems are software controlled.
  • Software engineering is an engineering discipline that is concerned with all aspects of software production.

Software Costs

  • Software costs often dominate computer system costs.
  • With PCs, software costs are often greater than the hardware cost.
  • Software costs more to maintain than it does to develop.
  • Software engineering is concerned with cost-effective software development.

Software Project Failure

  • Increasing system complexity and demands that change drive even more complex systems that require new capabilities.
  • Failure to use software engineering methods leads to expensive, less reliable software.

FAQ

  • Software constitutes computer programs and associated documentation.
  • Fundamental software engineering activities include software specification, development, validation and evolution.
  • Computer science focuses on theory and fundamentals; software engineering focuses on the practicalities of developing and delivering useful software.
  • System engineering includes all aspects of computer-based systems development, including hardware, software, and process engineering.
  • Key challenges facing software engineering are coping with increasing diversity and demands for reduced delivery times, and developing trustworthy software.
  • Development costs comprise about 60% of software costs, and testing accounts for 40%. Custom software sees evolution costs that exceed development costs.
  • No software engineering technique is the best, as different techniques are appropriate for different types of systems

Software Products

  • Generic products are stand-alone systems marketed and sold to any customer.
  • Examples of generic products are PC software such as graphics programs, project management tools; CAD software.
  • Customized products are commissioned by specific customers to meet their own needs.
  • Examples of customized products include embedded control systems, air traffic control software, and traffic monitoring systems.

Product Specification

  • For generic products, the software developer owns the software specification and decides on software changes.
  • The customer owns the software specification and decides on changes to customized software products.

Essential Attributes of Good Software

  • Maintainability: Software evolves to meet changing customer needs.
  • Dependability and security: Software should not cause physical or economic damage in the event of system failure, Malicious users should not be able to access or damage the system. Dependability incudes reliability, security and safety.
  • Efficiency: Software should not make wasteful use of system resources
  • Acceptability: Software must be understandable, usable and compatible with other systems.

Software Engineering Definition

  • Software engineering is an engineering discipline concerned with all aspects of software production from the early stages of system specification through maintenance.

Importance of Software Engineering

  • Society relies more and more on advanced software systems.
  • Software engineering methods and techniques help produce reliable and trustworthy systems economically and quickly.
  • It is usually cheaper in the long run to use software engineering methods.
  • The majority of costs for most systems are the costs of changing the software after it has gone into use.

Software Process Activities

  • Software specification is where customers and engineers define the software to be produced with constraints on its operation.
  • Software development is where the software is designed and programmed.
  • Software validation is where the software is checked to ensure that it is what the customer requires.
  • Software evolution is where the software is modified to reflect changing customer and market requirements.

Software Engineering Diversity

  • There are many different types of software system
  • There is no universal set of software techniques that is applicable to the different types of software system.
  • The software engineering methods and tools used depend on the type of application being developed, the requirements of the customer, and the background of the development team.

Application Types

  • Stand-alone applications run on local computers with all necessary functionality without needing a network.
  • Interactive transaction-based applications execute on a remote computer and are accessed by users from their own PCs.
  • Embedded control systems control and manage hardware devices, and are probably more numerous than any other type of system.
  • Batch processing systems refers to business systems designed to process data in large batches and create outputs.
  • Entertainment systems refers to systems primarily for personal use intended to entertain the user.
  • Systems for modelling and simulation refers to systems developed by scientists and engineers to model physical processes or situations.
  • Data collection systems collect data from their environment using a set of sensors and send that data to other systems for processing.
  • Systems of systems are composed of a number of other software systems.

Software Engineering Challenges

  • Key challenges include Heterogeneity, delivery and trust:
  • Heterogeneity concerns building software that can cope with heterogeneous platforms and execution environments.
  • Delivery involves developing techniques for faster software delivery.
  • Trust involves developing methods that demonstrate software can be trusted by its users.

Systems Development Life Cycle (SDLC)

  • A traditional methodology for developing, maintaining, and replacing information systems.
  • An orderly set of activities conducted and planned for each development project.
  • Each phase has specific outcomes and deliverables that feed important information to other phases.
  • SDLC phases include Planning, Analysis, Design, Implementation, Maintenance
  • Outputs include software, documentation, and training for users.

SDLC Planning Phase

  • Purpose: To determine why an information system should be built (need) and how the project team will build it (plan).
  • Consists of two steps: Project Initiation and Project Management
  • Project Initiation defines the business needs and how the system create a business value and includes a Feasibility Analysis (Technical, Economic, and Organizational)
  • Project Management: Involves the project manager creating a work plan and staffing the project.

SDLC Analysis Phase

  • Focuses on who will use the system, what the system will do, and where and when it will be used.
  • Sub-phases include Requirements Determination and Requirements Structuring
  • Requirements Determination consists of a careful study of organization current procedures and the information systems used to perform organizational tasks.
  • Requirements Structuring focuses on relationships between requirements and eliminating redundancy

SDLC Design Phase

  • Converts the recommended solution to system specifications
  • Defines how the system will operate regarding hardware, software, network, user interface, forms, reports, programs, databases, and files.
  • Includes Logical design by describing functional features independently of a specific computer platform
  • Includes Physical design by transforming logical specifications to technology-specific details.

SDLC Implementation Phase

  • Involves coding, validating, installing, and supporting the information system.

SDLC Maintenance Phase

  • Systematically repairs and improves the information system
  • Maintenance is not a separate phase but a repetition of other life cycle phases.

Computer-Aided Software Engineering (CASE)

  • CASE tools support various SDLC activities.
  • They assist in multiple phases of the SDLC: project identification and selection, initiation and planning, analysis, design, implementation, and maintenance.
  • Product and tool integration are made possible via an integrated and standard database called a repository.
  • Example products: Oracle Designer, Rational Rose
  • Diagramming tools: Enable graphical representation of system process, data, and control structures.
  • Computer display and report generators: Help prototype how systems "look and feel.”
  • Analysis tools: Automatically check for incomplete, inconsistent, or incorrect specifications in diagrams, forms, and reports.
  • Central repository: Enables integrated storage of specifications, diagrams, reports, and project management information.
  • Documentation generators: Produce technical and user documentation in standard formats.
  • Code generators: Enable the automatic generation of program and database definition code directly from design documents, diagrams, forms, and reports.

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