Results 11 -
18 of
18
Declarative Solutions to Partitioned-Grid Problems
, 1998
"... The problem of partitioning grid-based applications for parallel computing can be solved easily and intuitively in a logic programming language such as Prolog, using only the single assignment property of the logic variable, and not the backtracking. ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The problem of partitioning grid-based applications for parallel computing can be solved easily and intuitively in a logic programming language such as Prolog, using only the single assignment property of the logic variable, and not the backtracking.
Refine "Refine"
"... The quality of the Software Refinery TM KBSE environment derives significantly from the quality of its embedded Refine programming language. While Refine provides strong support for many modern high-level programming paradigms (functional, logic, object-oriented and metaprogramming), a number of i ..."
Abstract
- Add to MetaCart
The quality of the Software Refinery TM KBSE environment derives significantly from the quality of its embedded Refine programming language. While Refine provides strong support for many modern high-level programming paradigms (functional, logic, object-oriented and metaprogramming), a number of improvements seem appropriate. These improvements are motivated through analysis of Refine's existing capabilities, embodied in suggested language changes, and validated by implementation feasibility studies. 2 1. INTRODUCTION Other work [1] has concentrated on explaining why a particular software engineering environment - Reasoning Systems' "Software Refinery" - has attained preeminent status as an enabling technology for Knowledge-Based Software Engineering (KBSE), and in particular for what we might term Knowledge-Based Software Reengineering (KBSR). In order to perfect this capability, it is appropriate for us now to concentrate on how a key component of Software Refinery - the Refine...
Software Engineering
, 1997
"... specification. Describe their functions and constraints ffl Interface design. Precisely define how they fit together ffl Component design. Recursively design each block Source: Sommerville, Software Engineering, 1992 Top-down design involves repeatedly breaking down the problem into smaller compon ..."
Abstract
- Add to MetaCart
specification. Describe their functions and constraints ffl Interface design. Precisely define how they fit together ffl Component design. Recursively design each block Source: Sommerville, Software Engineering, 1992 Top-down design involves repeatedly breaking down the problem into smaller components, until their implementation becomes obvious. Interfaces must be precisely defined so that each component can be designed and coded separately. Modifying or replacing a component should not affect the rest of the system provided the component still meets its specification. Other components must not depend on a component's internal variables or data representation. Such information hiding requires programming language support: modules, packages, etc. Many design methods have been promoted. Computer-Assisted Software Engineering (CASE) tools support some of them. They are typically based on graphical notations. The data flow approach tracks data as it moves through the system. The entity-r...
Software Engineering
, 1997
"... specification. Describe their functions and constraints ffl Interface design. Precisely define how they fit together ffl Component design. Recursively design each block Source: Sommerville, Software Engineering, 1992 Top-down design involves repeatedly breaking down the problem into smaller comp ..."
Abstract
- Add to MetaCart
specification. Describe their functions and constraints ffl Interface design. Precisely define how they fit together ffl Component design. Recursively design each block Source: Sommerville, Software Engineering, 1992 Top-down design involves repeatedly breaking down the problem into smaller components, until their implementation becomes obvious. Interfaces must be precisely defined so that each component can be designed and coded separately. Modifying or replacing a component should not affect the rest of the system provided the component still meets its specification. Other components must not depend on a component's internal variables or data representation. Such information hiding requires programming language support: modules, packages, etc. Many design methods have been promoted. Computer-Assisted Software Engineering (CASE) tools support some of them. They are typically based on graphical notations. The data flow approach tracks data as it moves through the system. The entit...
Software Engineering II
, 1999
"... Contents 1 Program Refinement 1 2 Loop Design 11 3 Fault Avoidance, or Preventing Bugs 20 4 Formal Methods in Software Development 29 5 Introduction to the Z Specification Language 37 6 Proving ML Programs Correct 46 I Software Engineering II 1 Engineering, as it is properly understood, is not poss ..."
Abstract
- Add to MetaCart
Contents 1 Program Refinement 1 2 Loop Design 11 3 Fault Avoidance, or Preventing Bugs 20 4 Formal Methods in Software Development 29 5 Introduction to the Z Specification Language 37 6 Proving ML Programs Correct 46 I Software Engineering II 1 Engineering, as it is properly understood, is not possible for software. An engineer can design a bridge, confident that it will meet its requirements when built. Our theory and tools are not yet good enough to let us build software to this standard of reliability. This course has less ambitious goals. It introduces methods for designing software systematically. It also introduces the emerging theory that may one day make Software Engineering a reality. No textbooks follow this course at all closely. Fundamentals of Software Engineering [7] is similar in spirit and has more content than much larger books. ML for the Working Programmer [12] covers structural induction, used in the
Software Engineering II
, 2002
"... Contents 1 Program Refinement 1 2 Loop Design 11 3 Fault Avoidance, or Preventing Bugs 22 4 Formal Methods in Software Development 32 5 Introduction to the Z Specification Language 41 6 Proving ML Programs Correct 50 Engineering, as it is properly understood, is not possible for software. An engine ..."
Abstract
- Add to MetaCart
Contents 1 Program Refinement 1 2 Loop Design 11 3 Fault Avoidance, or Preventing Bugs 22 4 Formal Methods in Software Development 32 5 Introduction to the Z Specification Language 41 6 Proving ML Programs Correct 50 Engineering, as it is properly understood, is not possible for software. An engineer can design a bridge, confident that it will meet its requirements when built (most of the time!). Our theory and tools are not yet good enough to let us build software to this standard of reliability. This course has less ambitious goals. It introduces methods for designing software systematically. It also introduces the emerging theory that may one day make Software Engineering a reality. No textbooks follow this course at all closely. Fundamentals of Software Engineering [8] is similar in spirit and has more content than much larger books. ML for the Working Programmer [16] covers structural induction, used in the last lecture. Past examination questions on Software Engineering II from

