CO531 Software Engineering

Card Set Information

CO531 Software Engineering
2013-05-12 16:06:51
Software Engineering

Revision cards for CO531 Software Engineering
Show Answers:

  1. What is the difference between a Standalone product and a Customised product in terms of software?
    Standalone - Systems that are made, marketed and sold to any customer who wishes to buy them

    Customised - Systems that are made, marketed and sold to a specific customer to meet the customer's needs.
  2. What is software?
    Computer programs and associated documentation.
  3. What are the attributes of good software?
    • Should deliver the required functionality
    • Should deliver the required performance
    • Should be maintainable
    • Should be usable
  4. What is software engineering?
    Software engineering is an engineering discipline that is concerned with all aspects of software production.
  5. What are the fundamental software engineering activities?
    • Software Specification
    • Software Development
    • Software Validation
    • Software Evolution
  6. What is the difference between software engineering and computer science?
    Computer Science focuses on theory and fundamentals

    Software Engineering focuses on the practicalities of developing and delivering useful software.
  7. What are the key challenges facing software engineering?
    • Increased diversity
    • Demands for reduced delivery times
    • Developing trustworthy software
  8. What are the costs of software engineering? (In terms of development - testing %)
    • 60% development costs
    • 40% testing costs

    (In custom hardware, sometimes evolution costs can exceed development costs)
  9. List the four essential attributes of good software?
    • Maintainability
    • Dependability (Security)
    • Efficiency
    • Acceptability
  10. Define 'Maintainability' as an essential attribute of good software.
    • Software should be written in such a way so that it can evolve to meet the changing needs of customers.
    • Software change is inevitable because the business environment it lies within will forever be changing.
  11. Define 'Dependability (Security)' as an essential attribute of good software.
    • Reliability
    • Security
    • Safety
  12. Define 'Efficiency' as an essential attribute of good software.
    Software should not make wasteful use of system resources such as memory or processor cycles.
  13. Define 'Acceptability' as an essential attribute of good software.
    • Software must be acceptable to the type of users for which it is designed. 
    • Understandable
    • Usable
    • Compatible
  14. What is Software Specification?
    Where customers and engineers define the software that is to be produced and the constraints on its operation.
  15. What is Software Development?
    Where the software is designed and programmed.
  16. What is Software Validation?
    Where the software is checked to ensure that it is what the customer wanted.
  17. What is Software Evolution?
    Where the software is modified to reflect changing customer and market requirements.
  18. General issues that affect most software:

    What is Heterogeneity?
    Where systems are required to operate as distributed systems across networks that include different types of computer and mobile devices.
  19. General issues that affect most software:

    How do 'business and social change' affect software?
    • Business and society are changing incredibly quickly
    • They both need to be able to change their existing software and to rapidly develop new software.
    • Competition with other developing economies.
  20. General issues that affect most software:

    How do 'security and trust' affect software?
    As software is intertwined with all aspects of our lives, it is essential that we can trust that software.
  21. What underlying principles apply to all types of software system, irrespective of the development techniques used?
    • Systems should be developed using a managed and understood development process.
    • Dependability and performance are important for all types of system.
    • Understanding and managing the software specification and requirements are important.
    • Where appropriate, you should reuse software that has already been developed rather than write new software.
  22. How is the web important in Software Engineering?
    • Organisations are increasingly developing web-based systems rather than local systems.
    • Cloud computing is an approach where applications run remotely on the 'cloud'.
  23. What are software process descriptions?
    Software Process Descriptions include the individual processes needed to create a system with optional accompanying information such as which team member will be assigned to these tasks and the outcomes of each activity. 

    • Examples:
    • Specifying a data model
    • Designing a user interface
  24. What are plan-driven processes?
    Plan-driven processes are processes that have all of the process activities planned in advance and progress is measured against this plan.
  25. What are agile processes?
    Planning is incremental and it is easier to change the process to reflect changing customer requirements.
  26. Describe the Waterfall model.
    • Plan-driven model.
    • Separation of specification and development.
  27. Describe Incremental Development
    • Specification, development and validation are interleaved.
    • May be plan-driven or agile.
  28. What is reuse-oriented software engineering?
    • The system is assembled from existing components.
    • May be plan-driven or agile.
  29. What are the problems with the Waterfall model?
    • It is difficult to respond to changing customer requirements.
    • It is harder to get user feedback on the product during development
  30. Outline some benefits of Incremental development
    • The cost of accommodating changing customer requirements is reduced.
    • It is easier to get customer feedback during the development stages.
    • More rapid delivery and deployment of useful software to customers is possible.
  31. Outline the problems of Incremental Development
    • The process is not visible. (There is not a lot of documentation involved due to the rapid nature of the development).
    • Regular change tends to corrupt its structure. Future changes to the software quickly become difficult and costly.
  32. Describe the requirements engineering process
    • Feasibility study: Is the project technically or financially feasible?
    • Requirements elicitation: What do the stakeholders want from the system?
    • Requirements specification: Defining the requirements in detail
    • Requirements validation: Checking the validity of the requirements
  33. Testing methods:
    What is system testing?
    Testing of the system as a whole. Testing of emergent properties is particularly important.
  34. Testing methods:
    What is component testing?
    Individual components are tested independantly.
  35. Testing methods:
    What is acceptance testing?
    Testing with customer data to check that the system meets the customer's needs
  36. What is incremental delivery?
    Where parts of the system are delivered to the customer in incremental parts, rather than the final system being delivered as a whole.
  37. Outline the principles behind the Data Protection Act.

    Personal information should be:...
    • Fairly and lawfully processed
    • Processed for limited purposes
    • Adequate, relevant and not excessive
    • Accurate and up to date
    • Not kept for longer than is necessary
    • Processed in line with your rights
    • Secure
    • Not transferred to other countries without adequate protection
  38. If information is being help about a person, what are those person's rights with regards to that data?
    • Access
    • Correction
    • Preventing processing if distressing/damaging
    • Preventing unsolicited marketing
    • Preventing automated decision making
    • Compensation
    • Complaining
  39. Define the four criminal offences that can be committed according to the computer misuse act.
    • 1. Unauthorised access to computer material 
    • 2. [1]... with intent to commit or facilitate commission of further offences
    • 3. Unauthorised acts with intent to impair operation of computer
    • 4. Making, supplying or obtaining articles for [1] or [3]
  40. What is a patent?
    An agreement between an individual and the state to prevent anyone from making, using, selling or importing the individuals invention for up to 20 years
  41. What is a trademark?
    A trade mark is a symbol or sign used by a trader to distinguish his or her product or service from those of other traders.
  42. What is copyright?
    Unauthorises reproduction, display, distribution.
  43. What is the equality act?
    An act that says you are not allowed to discriminate against the disabled.
  44. What is the regulation of investigatory power act?
    An act which gives administrators the power to investigate personal information under the following circumstances:

    • - To establish compliance with UK legislation
    • - To investigate or detect unauthorised use of the organisation's facilities.
    • - To secure effective system operation 
    • - To prevent or detect crime
    • - In the interests of national security
  45. What does the RIP act entitle government to do?
    It can allow government to intercept an individual's communications without the individual being told.