subsections:


The software life-cycle

With an increase in the number of software products not satisfying user needs, prototyping has become quite popular!


slide: The software life-cycle


Requirements -- user needs are constantly evolving


slide: Requirements -- RAMP


Software development models


slide: Software development models


Object-Oriented Analysis

The problem domain -- complex reality
Communication -- with domain experts
Continual change -- user requirements
Reuse -- of analysis results


slide: Object-oriented analysis


%:@ Principles for managing complexity


Abstraction -- procedural / data
Encapsulation -- information hiding
Inheritance -- expression of commonality
Message passing -- consistent interface
Organization -- object / attributes
Scale -- components, frameworks
Behavior -- actors, servers, agents


slide: Managing complexity


Analysis methods


slide: Analysis methods


Object-Oriented Design

  • design for maintenance and reuse!

Software quality

  • correctness, robustness, extensibility, compatibility

Design projects


slide: Object-oriented design


  Requirements change --  41.8% 
  Data format change --  17.4% 
  Emergency fixes --  12.4% 
  Routine debugging --  9% 
  Hardware changes --  6.2%
  Documentation --  5.5% 
  Efficiency improvements -- 4%
  

slide: Software quality


IDA

An Interior Design Assistant (IDA) is a tool to support an interior design architect. When designing the interior of a house or building, the architect proceeds from the spatial layout and a list of furniture items. IDA must allow for placing furniture in a room. It will check for constraints. For example placing a chair upon a table will be prohibited. For each design, IDA must be able to give information with respect to pricing and the time it takes to have the furniture items delivered. In addition to the design facilities, IDA must also offer a showroom mode, in which the various designs can be inspected and compared with respect to price and delivery time.


slide: IDA


MASS

An Agenda Support System assists the user in maintaining a record of important events, dates and appointments. It moreover offers the user various ways of inspecting his or her agenda, by giving an overview of important dates, an indication of important dates on a calendar, and (more advanced) timely notification.

A Multi-user Agenda Support System extends a simple Agenda Support System by providing facilities for scheduling a meeting, taking into account various constraints imposed by the agendas of the participants, as for example a special event for which a participant already has an entry in his or her agenda. A minimal Multi-user Agenda Support System must provide facilities for registering important dates for an arbitrary number of users. It must, moreover, be able to give an overview of important dates for any individual user, and it must be possible to schedule a meeting between an arbitrary subset of users that satisfies the time-constraints for each individual in that particular group.

This minimal specification may be extended with input facilities, gadgets for presenting overviews and the possibility of adding additional constraints. Nevertheless, as a piece of advice, when developing a Multi-user Agenda Support System, follow the KISS principle: Keep It Simple ...


slide: MASS


Errors, bugs

TeX



slide: TeX errors and bugs


Smalltalk -- a radical change in programming

Eiffel -- a language with assertions

C++ -- is much more than a better C

Java -- the dial-tone of the Internet

DLP -- introduces logic into object orientation


slide: Object-oriented languages