R. and S. La, relation appe/(obj1! obj2), obj1 EX, objz E S existe si et seulement si le module ob}l appelle directement le sous-programme Obj2' (R3) valeur-de-retour:-{S, T} La relation valeur-de-retour(obj, ob} E S, t E T existe si et seulement si la fonction obj renvoie après exécution une valeur de type t

W. La-requête and W. La-requête, IF est la plus importante parmi les trois types de requêtes définies. C'est elle qui permet l'analyse d'impact et de sa propagation. La syntaxe globale est la suivante: WHAT-IF( identificateur, niveau, type-de-changement) où identificateur et niveau sont définis comme dans WHAT-IS, et type-de

. Cette-requête-contient-quatre-variantes, Ada( identificateur) type-de-changement) , -WHAT-IF-HOOD( identificateur) type-de-changement) , -WHAT-IF-Local( identificateur, et -WHAT-IF-Global(identificateur, niveau)

W. La-requête, . Ada, W. La-requête, . Les-objets-du-niveau, and . Hood, Nous avons défini ces deux variantes de WHAT-IF d'une part parce que les types de changement ne sont pas identiques pour les deux niveaux. D'autre part, il existe des objets qui n'ont pas de correspondance

W. La-requête, Local s'adresse à tous les objets à un niveau donné Elle agit sur les objets qui ne dépendent pas d'un type de changement quelconque et qui n'ont pas de correspondance au niveau global. IS. Loosely Synchronous Execution Request (Requêtes faiblement synchrones) 19, Highly Synchronous Execution Request

S. Ajila and L. Fonction, What If" dans le cycle de vie du logiciel, 1991.

S. Ajila, H. Basson, and E. N. Boudjlida, Software Process Assistance: a case study of the impact of object modification during software development, 1st African Conference on Research in Computer Science, pp.73-84, 1992.

S. Ajila, J. C. Derniame, and E. H. Basson, WHAT-IF : A Function to Estimate the Impacts of Potential Changes in a Software without First Putting them into Actual Practice, Rapport Interne: CRIN 93-R-lOO, 1993.

S. Ajila, Software P:rocess Assistance: Management of objetcs modifications in an Integrated Software Engineering Envzronment, Nigerian Journal of Science, vol.28, 1993.

S. Ajila, H. Basson, and J. C. Derniame, WHAT-IF: A function to estzmate the impacts of potential changes in a software, Second International Conference on Software Quality Management (SQM 94, pp.26-28, 1994.

S. Aji1a, J. C. Derniame, and E. H. Basson, A Logic-Based Approach to Impact Analysis of Objects Change, Third International Conference on the Practical Application of Prolog PAP'95, 1995.

J. Ambras and V. O. Day, MicroScope: a knowledge-based programming environment, IEEE Software, vol.5, issue.3, pp.50-58, 1988.
DOI : 10.1109/52.2024

G. Arango, L. Baxter, P. Freeman, and C. Pidgeon, TMM: Software Maintenance by Transformation, IEE Software, pp.27-39, 1986.
DOI : 10.1109/ms.1986.233411

G. Avellis, A. Iacobbe, D. Palmisano, G. Semeraro, and C. Tinelli, An Analysis of IncrementaI Assistant Capabilities of a Software Evolution Expert System, Proc. of the Conference on Software Maintenance '91, p.91, 1991.

G. Avellis, CASE support for software evolution: a dependency approach to control the change process, [1992] Proceedings of the Fifth International Workshop on Computer-Aided Software Engineering, pp.62-73, 1992.
DOI : 10.1109/CASE.1992.200132

H. Basson and J. C. Derniame, Towards an evolutive Kernel of Assessments on Ada Objects hosted in integrated Software Engineering Environment, ACM Proceedings of the 7th Washington Ada Symposium, pp.37-53, 1990.

H. Basson, M. C. Haton, and J. C. Derniame, Characteristics graph of software quality, International symposium on Computer and Information Sciences VII, pp.455-461, 1992.

A. Basu and R. W. Blanning, Enterprise Modeling Using Metagraphs , DECISION SUPPORT SYSTEMS: Expriences and Expectations, 1992.
DOI : 10.1016/b978-0-444-89673-5.50019-7

G. Booch, Software Engineering with Ada The Benjamin, 1988.

L. C. Briand, S. Morasca, and V. R. Basili, Measuring and assessing maintainability at the end of high level design, 1993 Conference on Software Maintenance, 1993.
DOI : 10.1109/ICSM.1993.366952

D. W. Bustard and A. C. Winstanley, Making Changes to FormaI Specifications: Requirements and an Example, IEEE Transaction on Software Engineering, vol.20, issue.8, 1994.
DOI : 10.1007/3-540-57209-0_9

URL : http://eprints.maynoothuniversity.ie/8073/1/AW-Making-1994.pdf

G. Caldiera, Domain Factory and Software Reusability, Proc. of Software Engineering Symposium, S.E.SY.91, 1991.

G. Canfora, A. Cimitile, and . Ugo-de-carlini, A Logic-Based Approach to Reverse Engineering Tools Production, IEEE Transaction on Software Engineering, vol.18, issue.12, 1992.

S. Cerf and S. Crespi-reghizzi, Relational Data Bases in the Design of program construction systems, SIGPLAN Notices, vol.18, issue.11, 1983.

N. Chapin, Changes in change control, Proceedings. Conference on Software Maintenance, 1989, pp.246-253, 1989.
DOI : 10.1109/ICSM.1989.65217

T. Y. Chen and Y. Y. Cheung, Dynamic program dicing, 1993 Conference on Software Maintenance, pp.378-385, 1993.
DOI : 10.1109/ICSM.1993.366925

P. Chen, The Entity-Relationship model -Towards a unified view of Data, ACM Transactions on Databases systems, vol.1, 1976.

J. Cheng, The Task Dependence Net in Ada Software

I. Cross, Reverse Engineering and Design Recovery: A Taxonomy, IEEE Software, 1990.

J. Choi, R. Cytron, and E. J. Ferrante, On the Efficient Engineering of Ambitious Program Analysis, IEEE Transactions on Software Engineering, vol.20, issue.2, 1994.

W. C. Chu, A re-engineering approach to program translation, 1993 Conference on Software Maintenance, pp.42-50, 1993.
DOI : 10.1109/ICSM.1993.366957

A. Clarke and D. J. Rïchardson, Symbolic Evaluation Methods for Program Analysis, in Program Flow Analysis

S. D. Cooper and M. Munro, Software Change Information for _Maintenance lvfanagement, Proc. of IEEE Conference on Software Maintenance, CSM89, pp.279-289, 1989.

D. D. Dankel, I. , and F. Report, The Intelligent Programming Environment , SERC-TR-30-F, 1989.

B. K. Das, A knowledge-Based Approach to the Analysis of Code and Progmm Design Language (PDL), Proc. of IEEE Conference on Software Maintenance, CSM89, pp.290-298, 1989.

C. G. Davis and P. J. , Rules to Govern Change in JSD-Based Systems, Proe. of IEEE Conference on Software Maintenace, CSM88, Phoenix AZ, pp.34-40, 1988.

G. Debalbine, Better Manpower Utilization Using Automatic Restructuring, AFIPS Proceedings of the 1975 National Computer Conference, 1975.

S. Delmas, XF: Designe and Implementation of a Programming Environment for Interactive Construction of Graphical User Interfaces , Users Manual, 1993.

F. Deremer, H. Hans, and . Kron, Programming-in-the-Large Versus Programming-in-the-small, IEEE Trans. on Software Engineering, issue.22, pp.80-86, 1976.

P. T. Devanbu, LASSIE-a Knowledge-based Software Information System, Proe. of 12th International Conference on Software Engineering, pp.249-261, 1990.
DOI : 10.1145/103167.103172

J. Donahoo and D. Swearingen, Software Maintenance Technology, Proceedings IEEE COMPSAC, vol.80, pp.394-400, 1980.

M. Dowson, Iteration in the software process: review of the 3rd International Software Process Workshop, Proc. 9th Int. Conf. on Software Eng, pp.36-39, 1987.

A. Escudié, P. Y. Lamboley, J. P. Quille, F. Sedes, and J. F. Voidrot, A Traceability-based ModeZ for an Integrated Maintenance Environment, Proc. of the RIAO'94 Conference, 1994.

D. , S. Fayet, and G. D. Holme, He/plI Have to Update an Undocumented Program, Proceedings of the conference on Software Maintenance, pp.194-202, 1985.

J. Ferrante, K. J. Ottenstein, and J. D. Warren, The program dependence graph and its use in optimization, ACM Transactions on Programming Languages and Systems, vol.9, issue.3, pp.319-349, 1987.
DOI : 10.1145/24039.24041

P. Fillon, N. Mitsuda, A. Sawada, T. Ajisaka, and Y. Matsumoto, A Facility to Trace Dependencies Betweew PCTE Objects for Software Maintenance, Proc. of the PCTE '94 Conference, California, 1994.

L. A. Lehman and . Belady, Program evolution, Information Processing & Management, vol.20, issue.1-2, 1985.
DOI : 10.1016/0306-4573(84)90037-2

K. J. Lieberherr and L. Holland, Tools for preventive software maintenance, Proceedings. Conference on Software Maintenance, 1989, pp.2-13, 1989.
DOI : 10.1109/ICSM.1989.65188

B. Lientz and E. Swanson, Software maintenance management: a study of the maintenance of computer application software in 487 DP organizations, 1980.

P. Linos, . Ph, L. Aubet, Y. Dumas, P. Helleboid et al., Tulula, CARE: An Environment for Understanding and Reengineering C Progmms, Proc. of IEEE Conference on Software Maintenance, CSM93, pp.130-139, 1993.

M. Lejter, S. Meyers, and S. P. Reiss, Support for Maintaining Objed-Oriented Programs, J In IEEE Transaction on Software Engineering, vol.18, issue.12, 1992.
DOI : 10.1109/icsm.1991.160325

URL : http://www.cs.brown.edu/research/pubs/pdfs/1992/Lejter-1992-SMO.pdf

J. P. Loyall and S. A. Mathisen, Using Dependence Analysis ta Support the Software II/laintenance Process, Proceedings of Conference on Software Maintenance, 1993.
DOI : 10.1109/icsm.1993.366934

A. K. Mackworth, Consistency in networks of relations, Consistency in Networks of Relations, pp.99-118, 1977.
DOI : 10.1016/0004-3702(77)90007-8

N. and H. Madhavji, Environment evolution: the Prism model of changes, IEEE Transactions on Software Engineering, vol.18, issue.5, pp.380-392, 1992.
DOI : 10.1109/32.135771

R. Meyer, The Software Knowledge Base, Proceedings of the Eighth International Conference on Software Engineering, 1985.

. Bieman, Effects of Software Changes on Module Cohesion, Proc. of IEEE Conference on Software Maintenance, CSM93, pp.345-353, 1992.

G. Parikh, Restructuring Your Cobol Programs, Computerworld

D. L. Parnas, Designing Software for Ease of Extension and Contraction, IEEE Transactions on Software Engineering, vol.5, issue.2, pp.128-138, 1979.
DOI : 10.1109/TSE.1979.234169

M. H. Penedo and E. Stuckle, A Project Master Database for Software Engineering Environments, Proceedings of the Eighth International Conference on Software Engineering, pp.150-157, 1985.
DOI : 10.1145/24208.24209

J. Plaice and W. W. Wadge, A Unix Tooi for Managing Reusable Software Components, Software-Practice and Experience, pp.933-948, 1993.

D. E. Perry, Problems of scale and process models, Proc. 4th InL Software Process Workshop, UK, pp.126-128, 1988.
DOI : 10.1145/75111.75133

J. Queille, J. Voidrot, N. Wilde, and M. Munro, The impact analysis task in software maintenance: a model and a case study, Proceedings International Conference on Software Maintenance ICSM-94, 1994.
DOI : 10.1109/ICSM.1994.336771

J. Queille, J. Richermo, C. Voidrot, and . Chrisment, A Generie Model for the Exploitation of Traceability Links between Documents of the Software Development Cycle, Proc. of IEEE Conference on Software Maintenance, CSM93, 1993.

V. Ramamoorthy, A. Garg, and . Prakash, Programming in the large, IEEE Transactions on Software Engineering, vol.12, issue.7, pp.769-783, 1986.
DOI : 10.1109/TSE.1986.6312978

S. T. Redwine, Constructing enactable models (or process models for process models): session summary, Proc. 4th Int. Software Process Workshop, UK, pp.17-22, 1988.

R. G. Reynolds, Automatic, Rapid generation of design prototypes from Logic specifications, International Jounal of Software Engineering and Knowledge Engineering, vol.1, issue.4, pp.331-350, 1991.

C. Rich and R. C. Waters, Knowledge intensive software engineering tools, IEEE Transactions on Knowledge and Data Engineering, vol.4, issue.5, 1992.
DOI : 10.1109/69.166985

URL : http://www.merl.com/papers/docs/TR1991-03.pdf

]. G. Rothermei93, M. J. Rothermel, . Harrold, and . Safe, Efficient Algorithm for Regression Test Selection, Proc. of IEEE Conference on Software Maintenance, CSM93, pp.358-367, 1993.

S. Rugaber, S. B. Ornburn, and R. J. Leblanc, Recognizing design decisions in programs, IEEE Software, 1990.
DOI : 10.1109/52.43049

URL : http://www.cc.gatech.edu/reverse/repository/software.ps

S. Rugaber and S. Doddapaneni, The transition of application programs from COBOL to a fourth generation language, 1993 Conference on Software Maintenance, pp.60-70, 1993.
DOI : 10.1109/ICSM.1993.366955

]. B. Ryder, ISMM: the incremental software maintenance manager, Proceedings. Conference on Software Maintenance, 1989, pp.142-164, 1989.
DOI : 10.1109/ICSM.1989.65205

G. and L. Stucki, New Directions Automated Tools for Improving Software Quality, in Current Trends in Programming Methodology, II: Program Validation, pp.80-91, 1977.

A. Taha and S. M. Thebaut, Program Change Analysis Using Incremental Data Flow Techniques, SERC-TR-14-F, 1987.

S. Thebaut and N. Wilde, Program Change Analysis: Improving the Reliability of Modified Programms) SERC-TR-1-F, CIS Depart ment, 1986.

8. L. Vanek, M. N. Vanek, and . Cuip, Static analysis of program source code using EDSA, Proceedings. Conference on Software Maintenance, 1989, pp.192-199, 1989.
DOI : 10.1109/ICSM.1989.65209

M. Ward, F. W. Calliss, and . Munro, The 111ainteainer's Assistant, Proc. of IEEE Conference on Software Maintenance, CSM89, pp.307-317, 1989.

M. Weber, Elaboration Order Issues in Ada 9X) ACM Ada Letters, 1993.
DOI : 10.1145/156345.156348

. Wilde, Software Maintenance Management)

N. Wilde and A. Chapman, Describing Object Oriented Software: What Maintainers Need to [(now, 1992.

N. Wilde and R. Huitt, A Data-Base Program Representation for Software Maintenance Tools, SERC-TR-25-F

N. Wilde, E. S. Huitt, and . Huitt, Dependency analysis tools: reusable components for software maintenance, Proceedings. Conference on Software Maintenance, 1989, pp.126-131, 1989.
DOI : 10.1109/ICSM.1989.65203

N. W. Wilde, S. Thebaut, S. , and C. Department, The }lfainienance Assistant: Work in Progress, 1987.

G. Williams, Emerging issues: session summary, Proc. 4th Int. Software Process Workshop, UK, pp.29-31, 1988.

S. S. Vau and J. S. Collofello, Some Stability Measures for Software Maintenance, IEE Trans. on Software Engineering, vol.5, issue.5, pp.545-552, 1980.

S. S. Vau and P. Grabow, A model for representing programs using hierarehieal graphs, IEEE Trans. Software Eng, vol.7, pp.556-574, 1981.

S. S. Vau, J. P. Tsai, and R. A. Nicholl, Knowledge representation of software life-cycle information using .first-order logie, Proc. COMPSAC 85, pp.268-277, 1985.

S. S. Vau, R. Nicholl, J. P. Tsai, and S. Liu, An Iniegrated Life-Cycle Model for Software Maintenance, IEEE Trans. on Software Engineering, vol.14, issue.8, 1988.

S. Vau and S. Liu, Some Approaehes to Logical Ribble EjJect Analysis SERC-TR-24-F, 1988.

A. Annexe and . Rood, Une méthode de conception hiérarchisée orientée objets -La réutilisation et l'affinement jusqu'au code des descriptions des structures de contrôle des objets et des opérations, pp.exprimées en ADA-PDL

. Re-c-ord_contains_var, record_contains_var(reÏerence, document) . record_contains_var(reÏerence, next) . record_contains_var(reÏerence, page) . record_contains_var(status_record, percent). record_contains_var(status_record, total). record_contains_var(unit_record, programmer) . record_contains_var(unit_record, s tatus). record_contains_var(unit_record, unit_name)

. Re-c-ord_contains_var, rename_as renaming(programmer_type) task_body uses(active_records, assignment_statement, 186) . uses(active_records, assignment_statement, 40). uses(active_records, assignment_statement, 44). uses(active_records, assignment_statement, 44). uses(active_records, Ïunction_or_library_call_statement, 213) . uses(active_re cords, loop_statement, 178). uses(active_records, loop_statement, 234) . uses(close, Ïunction_or_library_call_statement, 47). uses(collect_statistic s, case_statement, 25 2 ) . uses(collect_statistics, Ïunction_or_library_call_statement, 255) . uses(command_io, Ïunction_or_library_call_statement, 150) . uses(criteria, c ase_statement, 73). uses(unit_name, Ïunction_or_library_call_statement, 229) . uses(unit_name, iÏ_statement, 236). uses(unit_name, iÏ_statement, 236) . uses(unit_name, iÏ_statement, 74) . uses(unit_name, iÏ_statement, 74) . uses(user_inquiry, Ïunction_or_library_call_statement , 150). uses(user_inquiry, return_statement, 152). uses(version, Ïunction_or_library_call_statement, 125). uses(~idth, Ïunction_or_library_call_statement, 119) . uses(~idth, Ïunction_or_library_call_statement, 121) . uses(~idth, Ïunction_or_library_call_statement, 123). uses(~idth, Ïunction_or_library_call_statement, 125) . uses(~idth, function_or_library_call_statement, 127) . uses(~idth, Ïunction_or_library_call_statement, 187). variable ([] ) . variable(absolute) . variable(active_records) . variable(command) . variable(data) . variable(data_Ïile) . variable(Ïile_type) . variable(Ïrequence) . variable(name_type) . variable(record_index) . sensor_set set_package C, La base de faits actual_param([]). array( (]). array(limit_check). array(sensor_group). array(sensor_list). calls «(], []). constant ([]) . constant(bits). constant (bits) . constant(minutes). constant (vords). constant (vords). entry( []), p.3

. Entry_for_paramcof_sensor, entry_for_param(on_sensor) entry_for_param(sensor) entry_for_param(sensor) formal_param imports(collection_of_sensors, sansor_set). importsCcollection_of_sensors, set_package). importsCcollection_of_sensors, system), importsCmonitor_temperatures, command_io). importsCmonitor_temperatures, sensor_name_io). importsCmonitor_temperatures, sensor_value_io). imports(monitor_temperatures, system). importsCmonitor_temperatures, text_io). imports(monitor_tempera.ures, text_io). imports(recording_device, device_io). instantiates instan~iates(command_io, enumeration_io). instantiatesCsensor_name_io, enumeration_io). instantiatesCsensor_set, set_package), instantiatesCsensor_value_io, fixed_io). is_parameter _ofC object_declared_inCactive_sensors, collection_oT_sensors). object_declared_inCalarm, monitor_temperatures), object_declared_in(alarm, text_io), object_declared_inCbits, alarm). object_declared_in(bits, collection_oI_sensors). object_declared_in(collection_of_sensors, monitor_temperatures). object_declared_in(collection_of_sensors, text_io). object_declared_in(command, monitor_temperatures). object_declared_inCcommand_io, monitor_temperatures). object_declared_in(disable, collection_of_sensors). object_declared_inCenable, collection_of_sensors). object_declared_in(fault_light, alarm). object_declared_inCfor_sensor, collection_of_Bensors). object_declared_inCforce_record, collection_of_sensors). object_declared_in(high_bound, monitor_temperatures). object_declared_in(high_limit, collection_oI_sensors). objeet_declared_inChigh_limit, collection_of_sensors). object_declared_inCinterrupt, timer). object_declared_inCinterval, timer)

C. Annexe and . Global-exemple, Surveillance d'environnement object_declared_in(out_oT_limits_light, alarm). object_declared_inCpost_Tault_in_sensor, alarm) object_declared_in(post_out_of_limits, alarm) object_declared_in(recording_device, text_io). object_declared_in(sensor, collection_oT_sensors). object_declared_in(sensor, collection_of_sensors>. object_declared_in(sensor, collection_oT_sensors). object_declared_in(sensor_group, collection_oT_sensors). object_declared_in(sensor_list, collection_of_sensors). object_declared_in(sensor_map, collection_of_sensors). object_declared_in(sensor_name, monitor_temperatures). object_declared_in(sensor_name_io, monitor_temperatures). object_declared_in(sensor_port, collection_of_sensors). object_declared_in(sensor_record, collection_oT_sensors) object_declared_in(sensor_set, collection_of_sensors). object_declared_in(sensor_state, monitor_temperatures) object_declared_in(sensor_value, monitor_temperatures). object_declared_inCsensor_value_io, monitor_temperatures

. Procedure_spec, procedure_specCmonitor_temperatures, 3). rec_type_var([]). rec_type_varChigh_limit). rec_type_varClow_limit)

. Record, record_contains_var(sensor_record, high_limit). record_contains_var(sensor_record,low_limit). record_contains_var(sensor_record, value). rename_as renaming( [] ) . task_body( []) . task_body(alarm). tasK_body(collsction_of_sensors). task_bodyCrecording_device). tasK_bodyCtimer). tasK_spec task_spec(alarm, 19). tasK_spec(collection_of_sensors, 24). tasK_spec(timer, 33). type( []). type_return_value, p.235

C. Annexe and . Global-exemple, Surveillance d'environnement variable (name) variable(out_of_limits_light) variable(sensor). variable(sensor_map). variable(sensor_name). variable(sensor_port). variable(sensor_state). variable(sensor_value). variable(ticks) . variable(user_command) variable(value)