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”
- should the software be maintained or retired?
- 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)