L02: What is Software? Flashcards

1
Q

What is a program?

A

Set of instructions written in a particular language

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is software engineering?

A
  • Software engineering is an engineering discipline that is
    concerned with all aspects of software production
  • All or part of the programs, procedures, rules, and
    associated documentation of an information processing
    system
  • Computer programs, procedures and possibly associated
    documentation and data pertaining to the operation of a
    computer system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

In the context of an abstraction model, where is software?

A
  • Application Layer
  • Middleware Layer
  • Operating System
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Who creates software?

A
  • Software companies
  • Public/private organisations with software divisions
  • Academic/research groups
  • Individual developers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the features of professional software development?

A

Professional software development is not for personal use, interest, or enjoyment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Who is software for?

A
  • Specific customers
  • Organisations or individuals
  • General market
    The customer or developers usually decide the specification of what is required of the software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are some types of applications?

A

There are many different types of software system. Each requires appropriate software engineering tools and
techniques for its development.

  • Standalone (can operate by itself without relying on other servers)
  • Interactive, transaction based, e.g. online banking
  • Embedded control, e.g. car, washing machine
  • Entertainment, e.g. games
  • Modelling and simulation
  • Data collection and analysis
  • System of systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the attributes of good software?

A
  • The software should deliver the required functionality and
    performance to the user and should be maintainable,
    dependable and acceptable
  • Maintainability
    Software must evolve to meet changing needs
  • Dependability
    Software must be trustworthy
  • Efficiency
    Software should not make wasteful use of system resources
  • Acceptability and usability
    Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.
  • Ethical
  • Secure
  • Accessible
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are some goals of software development?

A

The fundamental ideas of software engineering are
applicable to all types of software system

  • Good quality software
  • Delivered on time
  • Produced within budget
  • Satisfies customer requirements
  • Meets legal, ethical and professional standards
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are some challenges of software development?

A
  • Increasing reliance of individuals/organisations/governments on software for support
  • Increasing diversity and complexity of systems
  • Demand for faster delivery times and other business pressures
  • Heterogeneity (software must run on different devices, OSs)
  • Business and social change (software must be relevant to current market trends and practices)
  • Security and trust
  • Scale
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the 3 layers of software engineering?

A
  1. Software engineering process
    Forms the basis for structuring activities for production of software and managing the project
  2. Software engineering methods
    Determine how different stages of developing software are accomplished
    Choice of methods depend on organisational and regulatory constraints
  3. Software engineering tools
    Provide automated/semi-automated support for processes and methods used
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the 4 software engineering activities?

A
  • Software specification
    What the system should do and its development constraints
  • Software development
    Production of the software system
  • Software validation
    Checking that the software is what the customer wants
  • Software evolution
    Changing the software in response to changing demands
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the rough division of software engineering costs?

A
  • 60% Development
  • 40% Testing
  • Software costs more to maintain than develop, especially for systems with a long life
  • Software engineering is concerned with cost-effective software development
  • Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is software engineering?

A
  • Software engineering is an engineering discipline that is concerned with all aspects of software production.
  • Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the difference between software engineering and computer science?

A
  • Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.
  • Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the importance of professional and ethical responsibility in software engineering?

A
  • Software engineering involves wider responsibilities than simply the application of technical skills.
  • Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals.
  • Ethical behaviour is more than simply upholding the law.
  • Confidentiality
    Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.
  • Competence
    Engineers should not misrepresent their level of competence. They should not knowingly accept work which is outside their competence.