Two operations are presented for a modular approach to the definition
of frameworks for
rigorous development of software, formally represented as institutions.
The first generalizes models, allowing them to have more structure than
the minimum
required by their declared signatures, as happens for software modules,
which may have
local routines that do not appear in their interface.
The second extends sentences, and their interpretation in models, allowing
sentences on
richer signatures to be used as formulae for poorer ones.
Combining the application of these operations, powerful institutions
can be defined, like
those for very abstract entities, or for hyper-loose
algebraic specifications.
The compatibility of different sequential applications of these operations
and properties of
the resulting institutions are also studied.