Announcements

Grades

  • hopefully midterm marked by friday then mark assignment 1

Assignment 2

  • “straight forward assignment”
  • it’s all about writing the tests
  • use java 17
  • write 1 or more tests for every method (including constructors)
  • CREATE YOUR OWN EXCEPTIONS (not stated in assignment, but he said he wants it)
  • test custom exceptions
    • just do a try catch (try method, assert true if correct exception is caught, fail if wrong exception is thrown)
  • V
  • Vector(3,0); -> V = (0,0,0)
  • module settings global libraries from maven org.junit.jupiter:junit-jupiter-api:5.10.0

Assignment 3

  • partners!

Software Evolution

Software change

  • software change is inevitable
    • new requirements emerge when the software is used
    • business environment changes
    • errors must be repaired
    • new computers and equipment is added to the system
    • performance or reliability of the system may have to be improved
  • a key problem for all organizations is implementing and managing change to their existing software system
  • components are added or updated with each release most releases are a condensed version of a development cycle
  • development team & maintenance team may be different
  • COBOL does not translate to 4th generation languages (COBOL is procedural, 4th generation are all object-oriented)

Evolution

  • Evolution: effectively deals with software that has already been written & in service life
    • should the software be maintained or retired?
      • 60-90% of the cost of software is maintenance due to large investment in development & business importance
      • business models change
      • large budgets to keeping software relevant in the business
      • typically maintenance is a continuous “development cycle”
  • Servicing: the software remains useful but only changes made are those that are required to keep it operational (bug fixes) no new functionality is added
  • Phase-out: software may still be used but not further changes are made to it
  • Urgent change requests: changes that may have to be implemented without going through all the stages of the software engineering process
    • serious system faults, change to the system environment, business changes (e.g. release of a competing product)

Legacy system components

  • System hardware: legacy systems may have been written for hardware that is no longer available
  • Support software: legacy system may rely on a range of support software, which may be obsolete or unsupported
  • Application software: application system that provides the business services is usually made up of a number of application systems
  • Application data: data that is processed by an application system may be inconsistent, duplicated, or held in different databases

Note

Ended slide 22 (but skipped half of them)