if you can fill this hole]
Nothing that Ross Ashby and JSD didn't know about already
looks a little like hypertalk, but notation not of the essence.
-ve: some small Z errors -ve: Includes filter's state as part of model of filter. amow: should use IO relations
Event-System style: invoked, announced, methods, events, states, start,... NOT classes
Analysis, special cases,....
Adamatzky10 if you can fill this hole]
| Old\New | Alive | Null | Out of scope |
|---|---|---|---|
| Alive | * new | NULL | } |
| Null | new | NULL *X | } |
| Out of scope | 0 | 0 | declare |
| Old\New | Alive | Null | Out of scope | Dead |
|---|---|---|---|---|
| Alive | * new Z | NULL Z | } Z | delete ε |
| Null | new | NULL *X delete | } | 0 |
| Out of scope | 0 | 0 | 0 | declare |
| Dead | new | NULL | } | * X delete X |
1986..87: Logical Data base Design
1992: First technologically independent logical data model
1993: LDM has 362 entities and 1318 data elements
| User | X | 0 | 0 | 0 | |
| X | Interface | 1 | 0 | rare | |
| 0 | 0 | 0 | Business | OOCRUD | some |
| 0 | 0 | 0 | 0 | Persistence | often |
| 0 | 2 | 2 | 2 | 2 | System |
system & persistence: wrap well defined technical features, so mostly code and debug
Business: analysis, understand first
Interface: prototyping... coding trivial
[...]
Engineering methodologies are much more methodical than development methodologies. Consideration of past, present, and future, as well as adherence to standards and practices are all core principles of software engineering. Although not perfect, these methodologies facilitate the design of systems with intent and that embody the characteristics of reliability, maintainability, and scalability. Such results come at a price however.
Claims experience shows that process control loops need to be replaced by OO designs(SEI Teh report CMU/SEI-93-TR-14 Aug 1993)
People help in the retrieval via newsgroups. "self appointed intelligent librarians".
Products and services.
informations borkers/librarians on the net.
Willl need to keep a software technology watch over assets standards services trends.
NEED: standards and Processes... like the news eg.
A is_a_kind_of B that does V in a special way
A has_a B class A:... { ... B name; ...} A refers_to_a B class A:...{ B* name; ...} A implemented_using B class A: private B {....} Don't!
A is_like_a B For some C, A and B come from a template C
Good objects are difficult to write because: behaviors and components are sometimes complex + likely to be used in unimagined contexts + depend on non-OO software with nonencapsulated sideeffects + C++ object model does not expand (without care) across client-server or peer-peer environments
Testing is easier: hierarchies reuse code - reexercise + public interfaces defined early allowing earlysimilar test drivers -> automation
Clashes: C++ vs DCE exceptions + extant non-thread-safe libraries + thread support in C++ practically non-existant
Reccommend: Use code analysis tools to aid code review, self-istrumenting tools to detect bugs, prepare to develop in house tools, make development environment that encourage cosistent testing.
Convergence is a liveness property: If faults stop occuring then the system eventually reaches an OK state
OK state = legal.
atomic commitment (two-phase commit), data transfer, Byzantyne agreement, sliding window, delay insensitivity, impossible requirements, design methods.
if you can fill this hole]
p97: "The 'cowboy' or 'big magic' model. In this view, gifted people create software through apparent magical means, with no particular guidance or support"
Can integrate process and heroism by taking a people centred view and seeing software production as a dynamic, complex, etc. system for solving problems.
Reply: John Henry or Pecos Bill, trial by cold pizza,...
Risk management - prevent failure vs Goals - maximize success
Risk{identification<=>planning<=>resolution}.
V^ V^ V^
Goal setting<=>Task Planning<=> Task completion
Risk based evolution.
[Grosberg93] [ArnoldK94] (C++ advice)
Class of objects without actions<>class of objects with some actions.
Failure to find epistomological foundations of the IS-A link - six different generic-generic and four kinds of generic-individual relation
"The point here is that the concepts in the real world, which programs attempt to model, do not come in neatly packaged hierarchies." (cf GoldsteinAlger92)
"There are no standard conceptual hierachies. Given a domain and a specific PURPOSE, certain concept hierarchies would be clearly preferable than others, but such policy decisions are best left to the USER of the programming language[...] What a PL provides is a set of mechanisms [...] restrict what can be implemented[but] they do not themselves validate some view of inheritance or other[...]" these are also just implemented concepts and do not not have a universal objective meaning....upto the designers to choose suitable mechanisms.
Two modes: asynchronous- after sending the sender does not wait, semi-synchronous - the sender will not send a message of the same type to the same receiver before the first message has been acknowledged by the receiver.
Assumes arbitrary delays and that messages can get out of order.
TLA formalization via send[a](M)::=net:| a><M.... Conclusions Now need to investigate inheritance. must spec both components and protocols...
[Hall96a]
[Barlas96]
Includes Floating point IEEE TSE paper -- where is it?
[ schwartz ]
Examples Booch C++(400 distinct DSs) and Gnu C++...
The GenVoca Model [Bat92b: BatoryO'Malley92, "The design and Implementtion of hierarchical software systems with reusable components", ACM Trans Softw Eng Methodol October 1992] , not OOP. Layered software components.
Analyse libg++: does not use inheritance to capture similar algorithms..
BoochC++: 18 varieties of deques! But can not use inheritance because need to carefully integrate concurrency guards and deque algorithms.
layered, high level, standardized abstraction
example P1 The P2 generator: the typex statement, container cursor,...
Results. on spell checking Decl Indep... Using Booch C++,libg++, P1,P2.... on 4 structures: Unordred linked list, unordered array, sorted array, binary tree P1 P2 had smaller LOC. P1 and P2 faster on all but sorted array.
Modification of P1/P2 easier.
software template
Example: Data Structures in terms of containers, cursors, and links.
[ paper.html ]
Walking through a scenario: tracing an "application assigning each activity to some component". each CRC card held by a different member of the team Often a cycle of What/Who questions: #(what_next; who_does_it).
[ http://www.math.utah.edu/ftp/pub/tex/bib/toc/ ] Nelson H. F. Beebe Center for Scientific Computing University of Utah Department of Mathematics, 322 INSCC 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA beebe@math.utah.edu [ http://www.math.utah.edu/~beebe/ ]
Ithaca Project,
Basic problm is identifying matching components.
"Final document contains the set of graphical representations, the component documentation, and a trace of the steps."
150 people almost all coding, feb92..94, 2MLOC C++ 14K classes, 142Kattributes 90K methods, 10K children, 5k overloaded method names. Use R/6000AIX/Motif. two days to compile and link. 10 minutes per class. Used Booch (all but one S_M team) increased functionallity and flexibillity heightened management. LOC tracked project but quality and delivery-on-time rewarded developers.
Iterative and incremental life cycle. Used a weekly build cycle. encouraged defensive coding and defect avoidance and preserving interface stability. Should have had recesses every three months when work is frozen and reveiwed. Wanted more incentives for code reviews, detailed documentation, internal consistency checks, and separate est teams.
classroom training: 120 hours OOA, design, patterns, programming + 50% design sessions with mentor. Spread out and reinforced. it takes application to learn to do inheritance correctly. 6 to 9 months before they get fully proficient in the new paradigm: 80% ok coders, 15% respectable journeyman designers, 5% top performaers at analysis and design. Biggest culture shift was from code to design.
Put best talent to work on tuning RAM and speed.
Systems requirements should include explicit flexibillity/extensibility criteria: Requirements Mutation Analysis. Use lowtech tools first, when design session ideas slow down then use computer-based tools to capture the ideas. Keep a strong link between requirements and design decisions.
Code bloat and instruction count goals. Each path through code had a goal of so many instructions.
Multiple inheritence not used much.
Integration with old upper level code because it made numerous undocumented assumptions about entry points into new code.
if you can fill this hole]
[WileRaming99] pp347-362
pp458-459 distinguishing extention, contraction, refining, abstracting, relaxing, constraining by comparing Vocabulary, Granularity and Behavior.
pp447-448: The derivation Lattice/poset to explain designs -- configuration management for specs?
General
[Oman94] [MaddenRhone84] [ Billingsetal94.html ]
if you can fill this hole]
Mentions levels of abstraction, virtual machines, SWR, functional decomposition, structured design, coupling, cohesion, structure chart, information hiding, structured programming, proofs of correctness, algebraic specification, ADTs, structured analyisi, DFDs PSL/PSA, ERM(ERD), STD. petrie nets, warnier LCS (not LCP), JSP, JSD, VDM (not Z), OOP, OOA, Modern structured analysis, no silver bullets. ?? mathematical means top-down? isomorphism between problem and solution tension in development between need for subjective designs and formal programs.... top-down vs outside in, data flow vs data structure.
[JazayeriSchauer97] pp20-39
Recent developments in the software architecture field show a change in how software architecture is perceived. There is a shift from viewing architecture as only structure to a broader view of `architectural knowledge` that emphasizes the treatment of architectural design decisions as first-class entities. From this emerging perspective we argue that there is no fundamental distinction between architectural decisions and architecturally significant requirements. This new view on the intrinsic relation between architecture and requirements allows us to identify areas in which closer cooperation between the architecture and requirements engineering communities would bring advantages for both.
[SCI2002] V1(Jul 2002)
| Artifact | Syntax | Semantics | Pragmatics |
|---|---|---|---|
| Use Case Diagram | bad notation | bad extends | cases too small? |
| Use Case Description | mismatch name with diagram | MIssing and ambiguous steps, invalid extension | steps too small and implementation dependent |
| Class Diagrams | not listing operations in sequence diagram or listing implicit operations | wrong multiplicity, mislocated attributes and operations, unrealizable operation | Subclasses not distinguished, showing inherited attributes |
| Sequence Diagram | missing "found" signal, return to wrong object, class not on class diagram | missing parameters, parameters used before set, missing classes | Responsibility misallocated to wrong object [Larman05] |
OO{programming, methods, infrastructure}
Increasing focus on architectures rather than just classes
Includes RDBMSs as OO.
Booch07 if you can fill this hole]
systematic documentation of results and structure of arguments
The usefulness of diagrams...systematic diagrams.
[SCI2002] V1(Jul 2002)pp23-27
[Parnas93]
FMs mentioned in standards: CCS(2), CSP(2), HOL(2), LOTOS(2), OBJ(2), Temporal Logic(2), VDM(3), Z(4)
"Ten Commandments of Formal Methods" by J.P. Bowen and M.G. Hinchey is scheduled for the April (1995) issue of IEEE Computer. "Ten Commandments of Formal Methods" is available as a University of Cambridge Computer Laboratory Technical Report (no. 350). The IEEE Computer version will not differ significantly. http://www.cl.cam.ac.uk/users/mgh1001/TECHREPORTS/10cs.ps.Z (warning: even compressed it's 230K)
Notes problems:
p38: Notes resources: internet forums for Z, VDM, Larch, OBJ. FTP archives, Periodicals. Courses.
p40: Quotes BBC Interview: "If you want to build systems with ultra-high reliability whcih provide complaxe functionallity and you want to guarantee that they are going to work with very high reliability...you can't do it"
apply to get increased cofidence, to conuer complexity, to satisfy standards few tools
not enough education and training(apply math to practical problems)
| Then | Now |
|---|---|
| I. Thou shalt Choose an Appropriate Notation. | More now. Hybrids. |
| II. Thou shalt Formalize but not Overformalize. | 3 levels: specs, Proofs, machine checked. |
| III. Thou shalt Estimate Costs. | |
| IV. They shalt have a Formal Methods Guru On Call. | Plus a domain expert early on. |
| V. Thou shalt not Abandon Traditional methods. | |
| VI. Thou shalt Document Sufficiently. | Iterative. Including why & when decided. |
| VII. Thou shalt not Compromise thy QUALITY Standards. | Notation & method. |
| VIII. Thou shalt not be Dogmatic. | Gap between analysis & specification. |
| IX Thou shalt Test, Test, and Test again. | |
| X. Thou Shalt Reuse. |
reinvention of LDST
[ICSE'97]
The Law of Fallibility
The Law of Intellectual Gravity
The Law of Permannence
[McCarthyJ95a] MS Process: Jim McCarthy of Microsoft power of teams owning a set of features and controlling define+biuld+ship. 4..5 specialities: testing, writing, building. Settle own squabbles. Effect not reported.
if you can fill this hole]
[ ysmhist.pdf ]
[Harandi97] pp182-189
Multiple{languages, platforms(IBM), uses, data/tools}
ISEA Integrated SoftwareEngineering Applications tools platform OS/2 + VM + MVS, Distributed client &/| server
CodeNavigator helps programmers {undertand software, analying change requests, Diagnosis} {what, where, how}-used, flows{logic, calling,...}, annotations, source code brousing
p369 "Program analysis can create databases that may grow to many times the size of the original source library"
500KLOC -> too big for wkstn DB
Staged analysis, raw vs derived data
flexible USER interfaces
linking program data - HIPO | lexical afinity |Data model attributes
p389: "Lost in Hyperspace" - "loosing track of what they are looking at or how they got there"
[CRC] cards Other documentation: arguments pro/con design decisions, project log and schedule, user manual. All evolve.
Isolate sources of change.
Reduce coupling.
Isolate hardware dependencies.
Software Component
Names:
Top down SWR:
[SCI2002] V1(Jul 2002)pp
[CR] also provides a classification of subjects for each item -- CCS. For example D.2.1 is for Requirements/Specifications
BACCII uses MS windows helps students design algorithms by using Icons, intuitive gudance, and top-down methodology Ref to Scanlan88 & Scanlan89
Implemented on silicon/UNSW Prolog.
Assignment axiom:
| Personality types | System analysis | Software design | Programming | Testing | Maintenance |
|---|---|---|---|---|---|
| Extroversion (E) | x | ||||
| Introversion (I) | x | ||||
| Sensing (S) | x | x | x | ||
| Intuition (N) | x | ||||
| Thinking (T) | x | x | |||
| Feeling (F) | x | ||||
| Judging (J) | x | ||||
| Perceiving (P) | x |
if you can fill this hole]
[Carlson02c] and [Carlson01]
finding dependencies, gnerating clusters, NuProlog, tools set for analysis of Z etc
Formula for cohesion and closeness(roughly cohesion)
promotion can hide the simplicity of connections at lower levels. Example p92-93... tables with rd, wr, ...
Also include analysis of psychological effects of technical decision: IN <situation> <a feature> CAUSES < + effect> BUT MAY ALSO CAUSE < - effect>
UML model. KitchenhamHughesLinkman01. Criteria can be linked: synergy, conflict, ... Tool [ http://www.lsi.upc.edu/~gessi/DesCOTS/ ]
Charles08 if you can fill this hole]
Chen08 if you can fill this hole]
Header
returns
requires
modifies
ensures
Trait specs
includes
introduces
Asserts
... generated by ...
... partitioned by ....
Axioms
if you can fill this hole]
if you can fill this hole]
Applies Rawls Theory of Justice.
Concludes possibility of suits under theories of negligence, misrepresentation, strict liability, & malpractice. Notes that malpractice applies the standard of care of the appliction area, not that of software production!
Does not ref Mumford refs McFarland91
Hypercard shows no differences due to associativity over 60 iterations!
Assumes that floating point is computing?
Putting data and process in one box makes it look neater and lets it hold more - so we can make bigger things with it!
Reccommends Eiffel for learning OO
assert( oldx > x && x > 0 );
oldx:=x;
sum(1/fact( [0,...,N]))in SequenceL.
Tested on Message Router Problem and Two Slot Buffer Router problem studied in the 6th Intarnational Workshop on Software Specification and Design
For each scenario:
requirements volatillity, tracebillity, specification completeness
I/O ADO
\ / ||
ADV1 ADV2MVC suggests use of dynamic objects!
ADV2 are relations!
Claims OMT is an modernized version of JSD!(RUBBISH)
Quotes Kazman et al: Metaphors as first class objects.
Reccommends developing graphic notations
The 12 industrial applications ranged from reverse engineering to system certification; code scale ranges from 1 KLOC to 10 KLOCS. Applications included a software infrastructure for oscilloscopes; a shutdown system for a nuclear generating station; a train protection system; an airline collision avoidance system; an engine monitoring system for shipboard engines; attitude control of satellites; security properties of both a smartcard device and a network; arithmetic units; transaction processing; a real-time database for a medical instrument; and a restructuring program for COBOL.}
"[A] critical element is the formulation of the top-level specification[...] focussing on I/O properties[...]selecting the "right" notation. [..] One does not stumble upon appropriate notation. Experience, exploration, and some looking ahead can provide the required insight. [...] True design, however, never makes such pretense[of being mechanistic]. Looking ahead and back-tracking are a part of the method. [...] selection of auxilary variables was one of the key decisions."
"[...]small refinements proved helpful."
"It was relatively easy to separate the formal treatment of the proofs from the refinement process itself. [... many trial refinements,...final design proved]. [...] design and verification can actually be carried out by different people."
Scale up hacker culture to many small concurrent teams with frequent synchronisation and periodic stabilization. Aim to "Grow" rather than Design Software.
Focus on the production of code (not design vs documentation). Minimal optional high level architectures. Some implementation decisions (data structures) may be documented. "One document. One. It's the Source code."
Costs:1 tester for each developer PLUS >1 customer-support engineer per developer
systems always change[pp128-129].
engineering uses a similar process but has different aims to scientific discovery[pxvii, p8, pp353ff...]
Need formal requirements, feedback implementation & design to requirements[p170].
compilers [pp324-331], PR vs T = functional vs implementation requirements(p165)
multiple constraints[pp234-237,249-253,272-276]
scientific method: conceptual problems->change, many design methods,
1.3 Intractabillity,
1.5 designs are Hypotheses [ch12]
layout problems intractable pp73-74
Plausibility documents reasons, evidence, and evolution of documentation [chapter 9]
software=hardware, Simon, complexity of design paradigms: ASE synthetic rule-based algorithmic... plausibillity,
Pearce, Kuhn, Popper,...
if you can fill this hole]
Tom Adams letter describes methodology life cycle
Richard Wells
Instead-
[students think] "the purpose of the exercise is to write a 'program' to include as many of the esoteric aspects of the notation that they can squeeze in"
student are angry working with simulation of real requirements(!)
force students to re-express clever (but wrong) Z specs in english until ambiguities show up.
Instructor must act the part of customer: dismissing formal specs, and forcing students to include English explanations.
RE\Smore deterministic Parallel composition of object types. They use "||" for interleaving type semantics
DeMarcoHruschkaEtAl08 if you can fill this hole]
The central claim explored here is that the standard engineering design process produces a fundamental blindness to the domains of action in which the customers of software systems live and work. The connection between measurable properties of the software and the satisfaction of those customers is, at best, tenuous. We propose a broader interpretation of design that is centered on observing the work processes of a community of customers in a domain and connecting those processes to supportive software technologies. The skill that a designer needs to have to observe work processes and begin making the connections is here called ontological mapping. This skill can be learned and is the basis of a discipline of software design.
Annotations of form @name(classes_to_which_it_applies).
Typical rule:
if you can fill this hole]
(MATHS suitable for expressing the Problem and perhaps the Spec as well.)
Proposes a new notation.
if you can fill this hole]
(dick)|-comment
page-number:"..."
p61. " dataflow[...]seems to be a natural way for people to think about [processes]. After surveying several process-definition efforts, we found that almost all of them used some sort of dataflow notation as a first approximation -- and sometimes as final documentation".
Vol2 "Abstrakter Datentyp, Algebraische Spezifikation, Constraint, Modul"
advocates OSA as OOA, book Embleyetal92 claims design features have contaminated other OOA methods... that they are preliminary design methods. Defines Systems analysis as "the study of a system for the purpose of understanding and documenting its essential characteristics"
OSA: formal semantics, executable, no attributes, all sets of {objects, relationships, states, transitions,...), high level(abstract) views. semantics of the real world(ERD+ isa+part-of), object behavior(FSD+time+exceptions, concurrent), object interaction(digraph(classes, messages)), properties(cardinallity), real-time constraints, allowing degrees of formalism, choices of notations, top-down or not,...
p20: "relationship sets, together with high-level object classes, can represent the information captured by attributes, but attributes can not represent arbitrary relationship sets. Attributes, however, let us represent important design optimisations".
OSA has been used to model itself.
Comparison of features of several methods: subjective.
p25: "All systems are embedded, either in the way we normally think about embedded computer systems or are in an organisation such as a business[so] the larger environment should always be considered, especially for analysis, which emphasizes the comprehension and documentation of entire systems."
p32: Goal: "A software-engineering environment based on a single formal model.
Millions of lines of code.
Formal methods: VDM & Harlan Mills. Complete training. Added tools. Used method+tool to separate module specification from module implementation... hance C++ and Ada rather than a separate language for design
Reuse. Has to be planned for. Rules: encapsulation, parameterized, generalized. Opposite of old technique. Centrally maintained Boeblingen Building blocks - zero defects, in use through out IBM.
Process: Well documented, publicized (Radice) and now online.
Academe vs practice? Also no sharing of practices.
EricksonA09 if you can fill this hole]
Abstraction is a mixture of code and specification
invariant, require, and ensure assertions
Automatic initializations
IntegerSet example
Quantification for Q x:1..alloc( ... R[x] ....) Variable x (an object of exported type) is replaced by R[x] inside. Assume and Confirm statements MetaTheory ??Lamport/Lam Shankar?? ->p304: "A valid program is a collection of valid modules in which each item imported by a module is exported by precisely one other module, and in which the specs of imported and exported items are compatible"
Reccommend a special reuse team - interacting with (groups and individuals) and prioritized by by customer teams. Must be respected programmers. sample solutions. Provides documentation.
| Usage | % of time |
|---|---|
| Required | 83% |
| Sketch | 78% |
| Blueprint | 76% |
| Language | 38% |
[SPC93]
[SPC93] Reality QUALITY PURPOSE graphic formal non-algorithmic readable rigorous mathematics virtual machines
Objects encapsulate design decisions
Context, ERD, STD, forms for objects, Independent of any format, standard or notation.
**disputed in correspondence** Colberts ws succssful, but SAD not defined map from analysis to design, or use of Ada Packages. S-M: 2 months for ERA, rules:uniformit, more than name, no Ors, more than a list. Tangibles|roles|incidents|interactions|specifications
[Racko95d]
λ-π
Case study: Atomic multicast cf CSP and CCS FSM
compare with MATHS manual on Modal Logic
Question: They prove a liveness property of the philosophers by proving a liveness property for one fork. Is this circular?
Semantic tableaus for proof and for history checking
two releases.
if you can fill this hole]
refs to: R A De Millo R J Lipton, Defining Software by Continuous Smooth Functions, IEEE Trans SE 17 n4(Apr 1991)pp383-384.
[SCI2002] V1(Jul 2002)
Proces vs empowerment
PL/1 and assembler may discourage reuse. UNIX is reused most.
p17: Insufficient reliable data on the benefits and costs of reuse
p18: Japan's experience: critical factors: senior management, selection of domain, modules systematically derived from the domain, several years effort.
2. Interfaces
3. Composition
4. Parametrization
Show current model as basis for interviews! Review models! mulitple perspectives. Group interviews. Intertwine modeling with information gethering. encourage domain experts to model their perceptions of concepts and note the notations used. Don't tie up their time. Go beyond the developers.
Scoping was the hardest part.
Need presentations that are clear, precise, and communicate understanding of the domain to those expert in the domain.
Abstract space and transtisions model. found common behavior.
Table 1
25 refs
must record the rationale why design solution is appropriate.
p97 "You don't just take things out of academis and apply them. You use the industrial experience as a guide. Thats the experiment. That's what computer science *is* at the moment -- one large experiment. And its a very uncontrolled experiment. The whole richness of the subject comes from the interplay between practice and theory.."[p97 ]
p97 "Computer Science is not only the study of a basic theory, and it is not just the business of making things happen. Its actually a study of how things happen. So the advice is: Don't lose the link."[p97 ]
A data-driven rule is one that is activated when a database's data items are modified. A rule discribes the insertion deletion or modification of data in a data base.
Semantic primitives and describing what the USER wants to do, not how it will be done by the system.
ECA: Event-Condition-Action style
programming-by-invariants.
p36: Advantages::= clarity, uniformity, abstraction, data independence, deterministic, ....
Reviewed IEEE Softare Magazine by Tom Demarco (May 1995) CR: not casual reading 3 types of pattern: structural, behavorial & creational introduction, case study, catalog(3 chapters), conclusion. each pattern inludes sample code Inside covers have summaries and pointes, ER diagram(!)
Only VDM mentioned in Blurb
p121: "We don't need to tell people "the program can perform the following twenty-three thousand kinds of analysis.: We can show them a picture whose structure mirrord their own concept of the problem, their own mental picture: a low level, a high level, a high level. The lines on the picture show you what depends on what. Again, they mirror your thinking:"
espalier fixing an ensemble to an architecture. architectureS. Trellis- DAG DFD - predictable timing
Probes attached to data streams(p124)
p155: plunge: collect similar cases from memory pool p159: Induction squish set of cases together into exemplar Replunge... CR(A A Mullin) "Here is computer science imitating art imitating computer science. [...]So-called mirrorworlds will be the Great Pyramids of tomorrow: enduring monuments of technology and art.[...]expresses numerour opinions, some of which he defends[...] it resembles the non-visual presentation style found in the Kabbalah. Each of the authors 20 figures approaches surrealist art[...]attempts to explicate object -oriented programming[...]
[SamadzadehZand95] pp72-80
"some time after the original knowledge-based system was built and put into use at Westinghouse, the entire process by which engineers configured elevators was radically changed, and the task description changed..." [ http://camis.stanford.edu/protege/sysyphus-2/ ]
Conclusions
p27:"Mathematics involved in most formal methods is elementary, so the greater challenge may lie in teaching users how to model systems properly and carry design through."
p28: primarily used for
Platitudes instead of quantitive specs make engineering logically impossible.
Optimal inspections rate is 1.0 +/- 0.9 pages/hour Defines major defect as one that will probably cost an order of magnitude to fix down the line than here. Averge is 9.3 times longer to fix later than find and fix now.
Procedures find several dozen defects per page
Mainly ambiguties
Necessary to get sample pages from document an inspect at the optimal rate.
Derive Root Causes of defects
Keep records in management oriented terms that show improvement.
Distinguishes 4 kinds of research:
Inheritted from pure vs applied maths: a disdain for the practical. Costs of trying new ideas out by academics
p46: "no one stepped back to reanalyse the field's approaches to it to see that a new model was needed."
Praises the government sponsored consortium of academe and industry at the software engineering laboratory. Ignores similar project carried out earlier with Oxford, IBM and HMG UK on applying forml methods. p46: "A researcher working alongside a practitioner, being open to adjusting and improving ideas"
Notes need to "...getting rid of the schedule-driven approach to building software..."
"a new research idea would by analysed by researcher after researcher, advocated thoroughly, and never used in practice."
p46-47: quotes Fentonetal94 attak on "Formal Methods". See also DavisA94a, Fentonetal94, Glass94a
Experience factories, postdelivery reviews, postimplementation audit ... BOP="Best of Practice"... conferences 2008 ISOBOP: Promissing ideas from research and development...but still lacked practical application.
"has lead som to disdain research, as the more radical practirioners argue that researchers who held sway for so long are not worth listening to now"... "a marriage of theory and practice was the surest way forward for the software industry". p57: The re-establishment of practioner self-belief has led some to disdain research, as the more radical practitioners argue that the researchers who held sway for so long are not worth listening to now. Most practitioners realise however, that such backlash would be ruinous to the future of both researchers and practitioners. [ISOBOP] for example, could have emerged only from the level-headed thinking of those who recognised that a marriage of theory and practice was the surest way forward for the software industry".
Compares polar opposites: reading it is like having an argument.
Different types of software project require different approaches
Claims that Formal methods are underdefined, underevlauated, and may be in the wrong direction, and can not lead to any breakthough.
if you can fill this hole]
if you can fill this hole]
Reality + anthropomorphism + scenarios and Categories... gives a method. Defines Solution Based Modeling(SBM).
Refers to Booch, Wirfs-Brock, Rumbaugh. and good cyber/philos stuff
separate content from interface and environment
Objects from: S, syntheisis, decompose, what if, generalize, follow responsibilities and collaboration
Heisenberg Prototypes: deliberately jiggling the problem...
Categories are conceptual, class are physical
Ownership is defined as the right to create and destroy and object
Multiple implementations
applied to Boehm Spiral model
Proposes 2 1/2 D flowcharts
Descartes method developed and succeeded because of the hard problems in geometry that he applied it to.
The heart of the method was:
needs copyeditting and indexing properly. no exercises not enough syntactic/semantic C++ details
p45"In Summary, Software engineering, Computing, and Computing education all suffer from a lack of basic mathematical skills that are needed in dealing with algorithmic concepts.", "Calculational proofs", "overhauling the CS Magor",
calculational proofs
logic is a tool not a panacea
Also treats ≡ as an associative (serial) operator, and equals as a parallel operator.
Unified notation for all quantification, summation, etc:
Formal notation is a repository of facts and a means of clarification. It provides rules for judging the soundness of inference and detecting and eliminating ambiguity.
July 1993: LCLint is available on internet
Three layers: run-time, storage, within-component
Storage layer
Figure 5 p35. SGML interchange format
Lockheead avionics software C130J using Spark(Ada) Core(SPC) - added quality and saved testing money. SW correct by construction.
Correct qn: What can FM do to improve quality and decrease cost.
D[1],...D[2], S |- R
D(p)[o]^c = N : E
R[r]^c = N : E.
Nice to quantify the feeling that lots of passed tests somehow tell you the the software is good.
p133: "A physical-system hazard rate is a function of time because the system changes. Software changes only if it is changed. Hence a time-dependant failure intensity is appropriate for describing the development process, or maintenance activities"
using analyis vs operational profile to measure the likelihood of a fault showing up if it is present. Using other randomized tests to show that failure is actually unlikely in the same operational profile. Hence conclude that since faults are likely to cause the tests to fail and that the tests did not fail... conclude that the faults are 'not in hiding'
[Howden76]
Simulation can help determine the process that is best for a particular situation ... guide management
Processes are too complex to be measured by LOC, function-points or informaed guesses. Too many interraltionships. Simple policy changes can completely change the mix of costs, time-to-market, and bugs
Does his model fit with: [BradacPerryVotta94]?
[RE'97] pp184-185
The author used simple reasoning about weakest preconditions, postconditions, invariants and logic to find and fix errors in real C code for TCP/IP and other communications software. A nice example of a pragmatic use of formal methods for program derivation and verification.
Quality Gates
My analysis by formallity: None: 6 results, range 2 to 100 Faults/Kloc some: 2 results, range 0.5 to 3.4 Yes: 2 results, range 1.25 to 1.4
Cumulative precision loss of 1% per 4KLOC(per 3KExecLOC)
[FSE8] pp110-119
Specifications for: symbol table, sorting, telephone networks, unix file system, hotel room booking, Data Dictionary, Flexitime, Authentication, Time services, Reservation services, CICS and TP
Examples of: Promotion p24..., not recursive schema in p37, honesty p67, generallity and specification libraries p80, representational abstraction and procedural abstraction p147, raising questions early p190, encourages more precise use of English p208, exposes alternative readings p209, forgotten problems come up again p221
Tools: GML and syntax checker, type checker
Which is available by ftp from ftp.cs.man.ac.uk as UMCS 89-12-1
recommended to instructors not beginners
The "oral tradition", assumptions
discovering mismatches, few tools, enormous task for legacy systems
nteresting semantic information is context dependent, changes over time
metadata
needs management
Heitmeyer02a if you can fill this hole]
[ICSE'97]
[ http://control.cs.berkeley.edu ]
[CRC]
[BeckCunningham89]
(FOOM): (Formal Object Oriented Methodology): Swatman95
(Fusion): Colemanetal94
MartinOdell95
(MOSES): (Methodology for Object-Oriented Software Engineering of Systems):
[Henderson-SellersEdwards94]
OMT: Rumbaughetal91
(OORAM): (Object-oriented Role Analysis Method): Reenskaugetal96
(OOSE): (Object Oriented Software Engineering): Jacobsenetal92
(RDD): (Responsibillity Driven Design): Wirfs-Brocketal90
(ROOM): (Realtime Object-Oriented Method): Selicetal94
(Syntropy): CookDaniels94
(SOMA): (Semantic Object Modeling Approach): Graham95
p49: "For example, a designer of a facility to reply to E-Mail messages begins with an ill-defined, superficial notion of how to do this[how to solve problem]. As the design unfolds, the designer's understanding of the problem and potential solutions improves, and he refines and elaborates the roblem definition until a satisfactory design emerges."
significant speed up in delivery, productivity and 30% decraes in the number of faults/LOC.
Also used incremental delivery to validate and improve GUI.
Claims that there is much to be said for starting out with reusing what you have on the way to developing a new process.
Use of good design, and C++. Design elements are about 20 classes. functional set(subsystem has 30..100 design elements).
Reuse 20..50%, faults down 15%..50% as well.
Compares history to the philosophy of science: Phil/Sc went thru a logical positivist phase of (axioms, maps, theories) before people studied what real scientists do...
Humanistic ideas about math: human, fallible, rigor varies, empirical clues and numerical experiments and probabilities help more than logic, objects as social-cultural-historical objects
p593: "Study of the lawful, predictable parts of the physical world has a name. That name is 'physics'. Study of the lawful, predictable parts of the social-conceptual world has a name. The name is 'mathematics'."
STACK. Figure 1, page 236, introducing the state and structures is creative and has to be verified.
INVENTORY
[JazayeriSchauer97] pp450-467
Formal Methods Technology Transfer: Impediments and Innovation. Dan Craigen, Susan Gerhart and Ted Ralston. An innovation diffusion model is used to analyze the data collected during an international survey of industrial applications of formal methods. The model provides a structured means for determining the likely adoption trajectory of formal methods. We conclude that formal methods will only be slowly diffused into industry and provide examples and recommendations on how to ease impediments to diffusion.
HoekstraKrocSloot10 if you can fill this hole]
Reason
Experience
Pronouncements with little logic or experiemne.
Resistance to data collection in projects ....
showed impediments: tools, examples, expectations that tools sell themselves.
need to provide guidance for executives on matching method to applications. unbiased assessments.
Turing has migrated to Object Oriented Turing and is now a full object oriented programming language system and environment that runs under X-Windows under Unix as well as MS Windows, DOS and the Macintosh. It is used as the primary teaching language at several universities and about half of the high schools in the province of Ontario. [...] Jim Cordy -- Prof. James R. Cordy Software Technology Laboratory cordy@qucis.queensu.ca Dept. Computing & Information Science +1 (613) 545 6054 / FAX +1 (613) 545 6513 Queen's Univ., Kingston, Canada
Pre/postcondition approaches and relational approaches are two groups of influential rigorous techniques. Both of them use classical mathematical concepts to describe and simplify programming objects. To further propel the application of these approaches, their relative strengths and limitations in terms of practicability and accessibility need to be identified and elaborated.
In this thesis, we conduct a comparative study between the pre/postcondition approaches, proposed by Floyd, Hoare, Dijkstra and Baber, and the relational approaches, proposed by Mills and Parnas. We investigate aspects related to their mathematical models. Their abilities of specifying different termination behaviours, dealing with non-determinism, distinguishing between specifications and descriptions, etc. are discussed. Some practical issues, such as considerations on common programming constructs, side effects, verification procedures, etc. are reviewed. The comparison criteria are grouped into two categories - theory and practice. Under each criterion, we illustrate and evaluate the strength or weakness of each approach. Suggestions regarding the applications of these approaches are also presented.
equation (in strange monoids), generating non CF languages
Finite intersections.
"chipping away at the language block without driving a stake through its center is a characteristic of "[the 1970's]
Automata - infinite state have a revealing structure: N dimensional!
Context Free Expressions for nonCFLs!
Interleaving is like processing concurrently.
Liu and Wiener
Comments like X is P, X is and only is P, ... So
if you can fill this hole]
[Hsia93]
Points out lack of any training at the systems engineering level - hence need to develop a discipline for ssytem engineering and dividing software from hardware - "We need{...]a notation that everyone, including the naive customer, can understand"
Reply: The letter exposes a problem they forgot: "The industry's inability to recognise that requirements and design are very different activities, although you must often iterate between them in practice"
| Labels | Rules | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| C1 | He knows | N | N | Y | Y |
| C2 | He knows C1 | N | Y | N | Y |
| A1 | Shun him | X | - | - | - |
| A2 | Teach him | - | X | - | - |
| A3 | Wake him | - | - | X | - |
| A4 | Follow him | - | - | - | X |
COBOL program 52KLOC had 179 errors in testing and 10 errors in customer use. - 0.2 error/kloc "which is 10 to 50 times better than industry norms"
A disciplined way for individuals and small software teams to address process improvement. Currently taught at 6 univeristies, tested out by 4 corporate software groups.
Includes logic and statistics! Goal-Question-Metric. Tables("Templates") in chapter 10 "software design".
See [Humphrey95b] for quick summary.
Reviewed by Tom DeMarco: revolutionary idea that individuals should be responsible for estimation and measurement, not institutions. Weakest in low-level design. IEEE Computing Magazine Oct 1995 pp82-83
Follow ups: Textbook on PSP: [Humphrey97;] the Team Software Process( [TSP] ), introduction [Humphrey00]
Lots of good (but not new) advice
(reason, reason, ...)|-(label): statement.to record such connections but does not allow the same freedom in abandonning and adjusting the logic.
They got as far as publishing a description of methods, which goes into 21 "approaches". I call them approaches because some are methodology-oriented, some are process guides, and some are notations, while many include combinations of the three.
[Baker97]
[SullivanSocha] Marchukov97
[Wile97]
[WilsonRosenberg] Hyatt97
I do have a copy of the standard. And it does address the question. You may find it to be a bit of overkill. The intent was for users of the standard to use the parts they needed. Overall, it's a good standard.
[ISO8613] (July 1988)
[ISO8879] (October 1986)
architectural styles, types of problem. focussing on the problem and not the technique. refers to Polya... Problems in context, understand problem::=mapped into set of frames, solutions within and to frames, recombined solutions.
Need for specialisms within engineering.
Three frames:
->>Engineering disciplines should not focus on a material so much as a network of connected sets of problems and solutions: Personal transport<net>automobiles. MassTransit<net>railway engines.
See also session at ICSE95
Quite separately, it has been observed that architecture, and patterns, should explicitly be preserved in the implementation.
My conclusion is that we should work towards the kinds of implementation infrastructure that would support multiple, superimposed, architectures, and multiple, superimposed, typing of elementary phenomen that pin these architectures together"
Answer to questions: No notation for info not in "the diagram", "There is no calculus. Different and parallel abstractions of the problem exist and in each of these abstractions you are concerned with some subset". "There is no need to put the problem frame back together in any sense at all. That is, problem frames are not hierrchical. Furthermore, the decomposition into a hierarchy of procedures is a very poor way to about solving a problem." "Decomposition into subproblems that are not solvable is pointless". "You are making the assumption that you make a chunk of software for each of the boxes, but it is not like that. Implementation as a hierarchy of procedures in *not* the right way. Procedures can't be combined with conjunctions."
Not whole+part decomposition, no master representation, no need to reconcile multplie viewpoints/perspectives [ZaveJackson94]
[FSE8] pp120-139
Checks properties by enumerating possibilitis(within bounds) and displaying first counterexample. Not animation so no constructive description of transitions but is completely automatic and can cover enormous numbers of cases by using reduction mechanisms
[FSE8] pp149-158
p105: "User attempt operations that are interlocked... Users may select operations in any sequence they wish, subject only to the sequencing constraints imposed by the preconditions. There is no 'flow of control'". Interlock Preconditions Some safety conditions need special treament because they depend on variables(sensor inputs) that are inputs and so not under constraint - and so not constrained in a precondion (or post-condition).
Op=Safe_Op or Invariant(System).
May need to add extra interlocks on transitions that are not in raw requirements.
Did not need an OO version of Z. Defined classes of components all sharing a common schmer and separted by their identifiying names.
Useful Idioms: promotion, multiple comp ops,
p27:"A use case is simply a way to use a system" Usecases->interaction diagrams...
p29:"Describing Objects with text alone is ineffective. We make it difficult for ourselves because we are obliged to use text." p29
p510-511 "use cases": A special sequence of transactions in a dialogue between a user & the system. Each usecase is thus a specific way of using the system. A use-case may have one basic course and several alternative courses.
p486: Responsibility in WirfsBrock are parts of use-cases alocated to an object. Scenarios are step by step descriptions of use-cases
Use SDL-like notation for dynamics.
[CRL] Report 355 Telecommunications Research Institute of Ontario(TRIO) McMaster University Hamilton Ontario Canada 1997
Lists 7 kinds of support for a rule:
Stacks Queues Priority Qs Keyed Tables
Notes that Trees and lists can be treated as special graphs.(!)
Can not place sets of Hash Tables in hierarchy.
| Author | Title | Note/link |
|---|---|---|
| Robert C Martin | Professionalism and test-driven development | |
| Scott W Ambler | Test-driven Development of Relational Databases | refactoring may temporally lead to duplicated fields and special synchronisation methods/triggers. [Ambler03] |
| Thomas Dohmke & Henrik Gollee | test_driven Devlopment of a PID Controller | |
| Alex Ruiz & Yvonnee Wang Price | Test-Driven GUI development with testNG and Abbot | |
| Jennitta Andrea | Envisioning the NExt Generation of Functional Testing tools | |
| Johnson & Maximillien & Ho & Williams | Incorporating Performance testing in a Test-Driven Development | |
| Bas Vodde & Lasse Koskela | Learning Test-Driven Development by Counting Lines | See [VoddeKoskela07] |
[Harandi97] pp136-145
automated or computer aided transform abstract into concrete graphical facilities
Automation can improve planning and estimating -
QUALITY estimation linked to a 70% reduction in USER complaints
Tools used in leaders: project planning, cost/size estimating, quality est, defect tracking, resource and milestone tracking, measurement & analysis
Specialized industry that produces tools to help.
Percentage of maintenance programmers varies from 67%(cobol) to 84%(Assembly).
Software rot.
Japan can have open plan because the Japanese culture helps people to talk quietly.
"Programming is an intense mental activity that requires some periods of quiet concentration without interuptions." So office space effects US productivity.
suggests need of hypertext.
lists deliverables: requirements, plans, cost estimates, contracts, designs, code, user documentation, test cases, test results, letters, memos, presentations, progress reports... all with text, illustrations, graphics
requirements changes get more expensive as more work is done. Errors are expensive. "the information volume associated with software bugs is the largest of any software artifact".p82
"I have had bad expreriences seeing systems architects propose designs in natural language and ask others to foramlize them. The inevitable effect was that the people constructing the formal document generated many questions and corrections to the architect's natural languag description and were thanked only with more pages of ambiguous and inconsistent natural language. ... follow pattern of OR.... team of domain specialists and foramlist
Education in the use of abstraction.
out of Level 2 CMM has half a dozen Key Process Areas (KPA).
Depends on the maturity of the organisation.
(1) developing an optimization algorithm with 10 constraints took one staff month with a theory that has eight object types, 30 predicates, 50 axioms and 20 pages. Highly modifiable. Adding a constraint typically took one day.
(2) Specification on a 43 state machine, 83 transitions, 40 state variables... and a theory with 150 predicates and functions. "in software engineering, inference methods are not intended to prove isolated deep theorems by reasoning from a few laws, but rather to prove lots of trivial theorems in a sea of axioms and facts.
(3) The theory of static Ada Arrays - 17 axioms. Ada Integers 60 axioms. Able to automatically analyse 30,000 lines of Ada code and enumerate all 200,000 feasible paths through 200 conditions. Took 10 DAYS on a SparcStation2. "synthesis technology should spawn good analysis technology"[because]"Good synthesis technology requires sophisticatedsoftware representation and analysis capabilities"
Frames: See also TsaiWiegertJang92, RichFeldman92, BrownP91
frames are objects that can inherit values like knowledge acquisition
p6: in a closed loop
p6:IBM uses CUPRIMDSO(capability, usability, performance, reliabillity, installabillity, maintainabillity, docs/info, service, overal satisfaction). **cf Kanetal94: CUPRIMDA
HP use FURPS(Functionallity, usabillity, reliabillity, performance and supporatbility).
No silver bullets: put quality improvement techniques and solutions into preactice systematically and persistently
Ballance customer needs with development resources
CUPRIMDA **cf KanBasiliShapiro94: CUPRIMDSO A: Availability(Non-outage time)
Fig 6: Reliability curve has typical burn in + peaks at each new release, improved by customer burn-in No of fixes in 193 is <10 and 30 products had none
p75-76: People are the most important element...Maslow,...conscientious programmer striving for self-actualization
Many actions from the development teams
not checklists, requirements and process steps...simplify process!
Motivation: incentives+public recognition, rewards review team!
[JazayeriSchauer97] pp519-520
p629: Rely/garantee works without extra conditions as long as: (1)No safety constraints on inputs and (2) every component polls its all its inputs
p638: "Our main objective was to prove that desirable things happen within a given time"
p635: "...proofs often revealed faults in our proposed design" Uses DFD-like diagrams
p630:"The first version of the specification, as is inevitable in any non-trivial application, did undergo a certain amount of change during the design phase"
p625: "Masses of useless formal scribblings" avoided by "CSP specification style of giving predicates over sets of traces of the system (and its components) can result in more abstract specifications than those in a state/transition style, and hence are less detailed" "Components do not have behave correctly in every invironment, but if each component satisfies its individual specification the behavior of the composite system is not compromised" ..."The rely and guarantee parts of the specification are collected to form interface specifications, making for a high level of organisation with the minimum of effort".
Has ref to Cliff Jones D. Phil thesis Oxon Jun 1981 Should have ref to [Lamport90b] perhaps.
rely and guarantee
P O T S: Spec with 24 rely/guarantee pairs
The more links the better (diminishing returns),
Reduce reliance on indirect links - surrogates, Surrogates are widely used but poorly rated,
Consider new types of links: each has a favorite that someone else does not use
Custom vs package: Custom work has a real maintenance phase
Customers as an extension of the development team
| Control seen as | Low | High |
|---|---|---|
| Importance seen as | ||
| High | Customer Mandate | Scope+Requirements |
| Moderate | Environment | Execution |
[YSM] meets Prolog
CASE was over hyped (James Martin),.... snake oil, crash. No agreed standard methods supported.
CASE needed to find a niche that would get it across the chasm.
p30: "A technology in search of an application rather than a toolset crafted to meet customers' known needs" p32:"we should sell no technology before its time"
Ref to ICSE17, Pascal94, and [CusumanoSelby95]
[SCI2002] V1(Jul 2002)pp
[ISO9126] on page 19
The Organisation Game: Cards describing specific situations, user discusiion taped.
Draw map of work area and invite users to write comments on map.
Different USER have diffeent interests.
"The unique is at least as interesting as the general"
[WileRaming99] pp378-386
Kleppe08 if you can fill this hole]
Phased: specialists, not all at one time, in a planned sequence, also parrallel
Experiments
Table
| Phase | Seeded | Found | Hours |
|---|---|---|---|
| 3 | 12 | 24 | 9 |
| 4 | 10 | 31 | 13 |
| 5 | 7 | 8 | 5 |
| 6 | 12 | 32 | 21 |
[Knuth68]
The Knuth-Bendix algorithm for equivalence classes.
[Knuth92]
Chemical engineers have Perry's Handbook: 100 authors, highlevel, principles and then guidelines. Not a textbook. Chemical engineers have a common language in mathematics and chemical formulae and graphical symbols for process flow charts. They have a shared ontology of objects problems and relations. Also licensable processes.
Author recommends internal design standards plus (1) an online handbook on the internet, and (2) licensing for designs on the internet.
STARS SPMS IBM SEE
p99: "It was concluded tht current CASE tools are ineffective because they treat the proceses modeled in a naive and incomplete fashion"
[SCI2002] V1(Jul 2002)pp
theory for LDM
OO data model that generalizes the relational hierarchical and network
review of 7 other attempts
none provide both conceptual data and a well defined retrieval mechanism/query language
defines a DB schema as a digraph. leaves are dta, internal nodes are connections from objects with separate names and values.
sect 2 intro, sectn 3 math defs, sectn 4 logic og LDM, sectn 5 & 6 query languages
Strong theoretical foundation for future DBMSs
[Harandi97] pp54-64
Q.E.D. is a step representing what needs to be proved:
Theorem <statement>
PROOF SKETCH: <english style proof scetch>
ASSUME: <label>. <predicate> ...
PROVE: <predicate>
NumberedList( <number>. <step|predicate> )
<number>. Q.E.D.
LET: <definitions>
Choose .... such that....
CASE: statement of assumptionis short for
ASSUME: Statemnt of assumption
PROVE: Q.E.D.
Like FSA(states=>predicates, transactions => actions) out(n):edges out of n, d(e) :nodes=destination of edge e, P(n) :=predicate on node n, P'(n) :=primed predicate... disjoint_predicate:=for all nodes n1,n2(not(P(n1) and P(n2)).
A(n) :=for some e:out(n)(action(n) and P'(d(e))) two possible formula for meaning of transitions:
Proposes a formal model of the ways that modules interface. Defines what it means for a module to satisfy an interface(M offers I, and M offers I using L). Assumes this forms a DAG. Shows that such systems can be composed.
Interfaces are two sided - providers and consumers of services. Both sides are designed to not perform badly if the other side performs ok. The provider is designed to guarantee that the service is provided some time after it is requested. Providing a service is a conditional progress properties.
Object-oriented programming only specifies safety (lack of bad results).
[JazayeriSchauer97] pp294-309
if you can fill this hole]
Critics standard reliabillity theory depending on number of remaining faults - one fault can be highly visible in the field.
ref 6 Lehman 78 Infoech state of the art
ref 12 Lehman FEAST workshop 1994 IC London UK
p1050: "No alternative to modifying a C++ Compiler to output the appropriate database"
"Pragmatic concerns of day-to-day life"
"Feeling...the time and effort to understand a system drops significantly..."
"Users claim that the abillity to follow a series of function calls throught the source code by simply pointing at a function and switching to an edit window on the defintion of that function reduces some of the drudgery of maintaining a system"
"C++ programmers have freely chosen to XREF even when the package was incomplete[had] nontrivial bugs[and]rather lacklustre performance"
Separate the mission from safety requirements
distinguish Physical Reality from System
Use logic for R and Petrie Nets for System.
Timed History Logic
if you can fill this hole]
p89: Gamma distribution forms a good fit to coding productivity - some people have a low mean and a high chance of finishing quickly, others have a high mean and a chance of a long time delay, Many are close to exponential. Thus the tasks have no memory and so when interupted are essentially restarted - make tasks small, and reduce interuptions.
Weak stats!
Strong parallels.
Distinction between "invention" and "science".
Safety features no better than the science underlying them.
Operators and managers overriding safety mechanisms.
Experts advocating simple and proved safe technology.
Do not abandon old principles when adopting software: "no single point of failure"
Need validated knowledge about what techniques work (and how they work) in different environments.
Including human interface problems.
p684: "not only the computer" "a blackbox model separates the specification of requirements from design, simplifying the model and making the requirements model easier to construct, review, and formally analyse"
FSM with superstates, substates, AND, arrays, connectives(C), plus encapsulated broadcast internal events plus directed communication (visible events), interface definitions, inputs+chart+output boxes, transition definitions, AND/OR tables, Macros and functions, transitions Busses, Xrefs and indentifiers (page refs on transitions), identity transitions, Timing, step semantics
p704: Graphics and tables
[NierstraszLemoine99] pp126-145
"Interestingly, object-oriented programs rarely change their overall structure, but rather objects continue to evolve."
Software productivity is improving slower than other. Compares historical trends for different SwEng technologies. CASE and tools(slower) vs Visual tools and OODBMSs(faster). C/C++ declining, FORTRAN,COBOL, VBASIC, Smalltalk increasing market share. Access+Oracle+Delphi starting up fast.
"Software is the Dismal Science of the 20th Century" "We still need a Sw technology that will put us on a learning curve to compare with that of Moore's Law."
Continues [LewisT94c]
Software as Steam for the future.
Quotes Capers Jones on programmer productivity increasing 3-5% per year ($/fp).
Shows comparison of power of languages.
reates an oportunity for new ideas etc.
Predicts large MIS will go for visual tools and object tools rather than languages. (compare Keuffel96? - the bubble sort effect). OT as a stepping stone, discarding functional decomposition and hiding if-then-else logic.
selected 5 industrial projects with separate users and developers, with explicit planned prototyping.
Interviews during and after...
1 success, 1 pilot ok, 2 abandonned, 1 never used.
Descriptions of problems and successes.
Important to know the questions that a prototype is going to answer.
p830: "The evolutionary adaption of existing information processing infrastructures to the changing needs of their organisation, and thereby a need for a more experience-based and evolutionary strategy[...]"
Adopting prototypes with bad technical qualiies cn be dsastrous.
p831: "the central problem to be solved is the difference between application knowledge and information processing knowledge. This gap is clearly visible at the gap between application-specific and the resulting software architecture."
p319: The common approach today is to define methods and to attach them to specific classes. Our experience with large software systems shows that it is far better to leave the assignment of methods to classes to a tool. In stead of writing methods ourselves, we write abstract descriptions called propagation patterns, of an unspecified number of methods.
evolution histories.
Incremental growth of software.
Class dictionary: labeled_digraph(classes, relations,...)
Propagation graphs
incomprehensible! Check [LieberherrXiao93]
The commonsense law of inertia
An implementation is correct if it satisfies the algebra and never make equivalent two observable results that can not be shown to be equal in the spec.
shows that if observables are those generated by a subset of functions then proofs are finite
[ICSE'97]
models: syntax(language used), semantics(Domain), pragmatics(audience)
"The goal is not to make the model easy to understand but to ensure that it is understood"
"Always need some gut instinct" to judge feasibility.
| Requirements | Design Implementation Testing.Row Fault density | Design defect density | Code defect density | Failure rat e.Row Requirements spec change rate Cyclomatic complexity Design defect densi ty code defect density |
|---|---|---|---|---|
| Error distribution Fault density | Cyclomatic complexity | Coverage factor |
| Project | Simple | Complex |
|---|---|---|
| Uncertain | Colt | Bull |
| Certain | Skunk/Dog | Cow |
Dependencies:= (Z+>O | Z+>S | Z+>V | O+>T | S+> T | S+>V | T+>C | V+>C ).
Example dependency: the correctness of the oracle O depends on the correctness of the specification (Z).
Example dependency: the parameters of the distribution of S depend on whether the specification is correct(Z).
In general, for each dependency XY+>W tabulate for each X&Y value the probability of each W value given the XY values. If W is a continuous random variable then tabulate the probability density functions. The table is called a conditional probability table. See paper for a large example.
Example Conditional_independencies:= following,
Table
| Independent | 0f | Given |
|---|---|---|
| O | S V | Z |
| T | Z V | O S |
| C | O S Z | V T |
| Do before | Do after |
|---|---|
| useless_class | useless_method |
| useless_method | duplicate_code, useless_field |
| duplicate_code | feature_envy, simple_primitive_obsession, complex_type_code, simple_type_code |
| feature_envy, simple_primitive_obsession, complex_type_code | long_method |
| long_method, simple_type_code | large class |
| large_class | long_parameter_list |
Ada Helped.
LESSONS
page 60: "...maintenance is the same as development..."!!!!!
CR9502-0058: Design, C++, use cases, contract "less is really less"
Lover08 if you can fill this hole]
map System>->Reality
Throwaway: discarded because - too incorrect to be worth making efficient.
Evolutionary: convergence by using design environment and final transformation
Transaction processing systems. Waterfall. analysis and specification stages
scenarios
business objectives--<operational functions--<transactions
classic SSAD into regular expressions Ignores of co-routiens, physical design control, ...
FSM NOT!
p824, Conclusions: "The use of continuous observables, as opposed to the simple adoption of analog models, helps direct the the specifier away from detailed considerations of the method by which a system must evolve through time[...]leads to an algorithmic and evolutionary description of a system not always appropriate to the highest levels of the development process".
[JazayeriSchauer97] pp40-50
[AHP] problems with dependencies and large number of pairwise comparisons
Makinson08 if you can fill this hole]
Defines: Emergency Maintenance vs software maintenance
worgroup 1219. Stages:
Hoare-Dijkstra predicate transformer mapped into category theory
each action an arrow between state sets
predicates are subobjects
[a[s]]Q is a pullback
alternatives are co-products
Boolean Categories
Slowsort by Traugott Page 699, O(2^n).
Compare slowsort O(n^3) Julstrom92 - SIGSCE Bulletin V24n3(Sep 1992)pp11-13.
Marciniak02 if you can fill this hole]
(2) Sending a message implies a module that accepts such a message. commitment as a kind of coupling
cf Lamport, Meyer, dependency
LOOM - Semantic net expressed in LISP fast at detrmining some subsumption
p870:" A major problem for software developers is judging how a change in a module affects and is affected by the rest od the design[...] developers spend much of their time responding to changes" Not maintenance but fresh start so Fails to tackle problem of legacy code:
p870: "With the current code-plus-comments descriptions of modules, commitments are implicit[...] in the heads of the developers (and later, to a much lesser extent, in design documents)."
p883:"any reasonably expressive description representation language will not allow complete, tractable classification reasoning. So we are in the usual bind: the module description langugae must be expressive enough to encode the fine shades of meaning that can differentiate potential substitute modules from inappropriate candidates, but the system must be able to rapidly discover at least most of the candidates most of the time."
Previously 15.KLOC/20.person.weeks Now 15.KLOC/4.person.hours
Proprietary DBMS to IMS. Tool<1.person.month, conversion reduced from 20.person.hours per program to 3.5 person.hours
Easy tasks should be done by simpler tools (awk/Perl/...)
Software Refinery {REFINE, INTERVISTA, DIALECT, WORKBENCH}
Parsing
The blank canvas fallacy of academic teaching and research.
Need work on legacy systems
Quotes: with less than 50% reuse component based software developent is up to 10 times more reliable.
More academe+industry work needed
----
p33: support intellectual control: design reabstraction+formal verification
p35-36:higher-order constructs: generic constructs& reuse+ doamin specific+ higherlevel languages
p37: support development of concepts
[SCI2002] V1(Jul 2002)
Compares testing walkthrus reading and inspections. Part of book [McConnell96c]
| Situation | Practices |
|---|---|
| embedded systems | phased and gated with lots of upfront requirements and design |
| Software products | code focused with highly committed individuals working closely with management and marketing + extensive independent testing |
| in-house business | executive sponsorship+steady end-user involvement+ moderate requirements documentation + developer testing |
| Others?`How? |
Refinement guided by non-functional issues: p4, 189,
non-functional requirements by R Macdonald & C Sennett pp122-133
Problems with editor for VDM (McDermid89 p207)
Contents
[CR] 9508-0576
Use of partition and product of observationally distinguished states and transitions to develop FSM models of objects and classes.
NO REF to Hartmanis and Stearns or other theory.
distinguishes inheritance of spacification from inheirtance of design
Specifies axioms for strict inheritance:
Modified [CRC] card, Class{spec, stub, implementation},
Rumbaugh Object model of cluster, Harel dynamics, Interaction diagrams, architectures, text and diagram describing real requiremnts
Conservation of meaning under translation (no continuous computations)
Conservation of unsolvabillity
the law of irreducible complexity (programs can be coded more less efficiently but there is a maximum efficiency beyond which further optimization would mutate the problem)
the law of reflective inaccessibility (A program can not find out about its host from its own behavior, but the host can find out about a program).
Licensing? no real SWEBOK.
California law: "Security Breach Information Act" July 2003. Businesses must promptly notify customers when reasonable suspicion f unencrypted personally identifiable data is accesses in bad faith----civil damage$$$
variable => expression
if you can fill this hole]
inspiration for my 'br' program: [ br.d.html ]
Life Cycles
Idea of component clusters
Require/ensure assertions
Abstraction and Factoring
p61: "Any general purpose concurrency mechanism should reduce to a coroutine mechanism" [ when only one processing unit is available].
p63: "A fully defined contract implies a no hidden clause property: clients theat 'play by the rule,' observibg the precodition of a call, are guaranteed to obitan the result, as expressed by the postcondition." ... leads to treating pre-conditions as wait conditions in a concuurent (separate) process....informal semantics p67
OT.ideas={decentralization, contracts, selfishness(=needto-know), classification, seamlessness}.
classification: science is about order and pretends the messy world fits an artificial order -> inheritance hierarchies.
Seamlessness: remove barriers and distinctions betweem analysis/design/implementation
reversibility: to be able to accept belated wisdom, spec ideas discovered when coding etc.
Not Lego Block, but plug in parts to the power sockets.
Obstacles:
1. REALITY->Model
2. TECHNICAL->Software
3. GENERICTY->Variation
Process: use-case driven+architecture-centric+iterative+incremental
Booch:"Companies that fail have a lot of time to write papers. companie that succeed are so busy doing what they do well that they don't have time to write"
SDL was OO in 1976!
metrics: revenues go up!
What degree of "ceremony" do you need?
Why standardize the process at all?
Different companies->-different processes
How are you getting on together? "We have to get Ivar to grow a beard"
[Harandi97] pp89-98 REUSE retrieval techniques
60 organisations including commerce and academe.
DSDM Consortium Secretariat, The Coach House, Church Hill, Kingsworth, Ashford, KENT TN23 3EG, UK.
Key success factors: easy access to users, stable nd skilled development team, a commercial appliation with clearly defined user group and flexible requirements.
Also:
Use time box scheduling: "Given this personnel-time, how much functionallity can be completed?"
Three phases, each iterative
In class: Less power to teacher. voice changes. Student feels they can say anything. Students asked for control.
Students expect to use laptop
On www, Each link includes more in the class space.
Moggridge06 if you can fill this hole]
Letters(Jan 1994) pp109-111: Shlaer and Mellor point out that it ignored later publications: S & M88 & 89 & 92, Lang93. Monarcho & Puhr apologize and point out they finished the article before some of these were published and the reviewers didn't comment on it.
Morrill09 if you can fill this hole]
| Name | Description | Bibliography terms |
|---|---|---|
| Formulative | involving development and refinement of theories, models or frameworks to support science and research | THEORY IDEA |
| Evaluative | scientific method working with hypothese and experiment | EXPERIMENT, CASE-STUDY, SURVEY |
| Descriptive | theories and models developed of what is as input into theory | EXPERIENCES, literature and product SURVEY, lighter. METAANALYSIS |
| Development | generating knowledge for explaining or solving problems | METHODS DEMO TOOL HOWTO |
p590: Partial functions Nat<>->Nat form a domain with {}->{} as ⊥tom and with the total functions as the set of maximal elements. "the limit of any increasing sequence of functions is given as the union of the graphs of the functions".
p597: "languages like LISP where the denotation of a phrase essentially corresponds to its abstract syntax"
p591:(1) continous==>has unique fixed point, (2)some nontrivial domain D that is isomorphic to ((continuous)D<>->D)
beyond RPC and Client-Server
Many objects, allocated to nodes and migrating between them, even while being invoked
Need for languages to specify.
Need for design assistant to guide design threw the issues and artifacts of a complex method. Language for defining design methods - issue based, ref to Potts
[Kaiser95] pp18-28
an incremental change company. example: adopted component reuse not full bloan object-orientation
MS has been accumulating historical data to help scheduling and burnout
feature eams lead to code bloat, Bill Gates pushes the development of standardized functions accross featrues and products. Hence OLE and DLL as tools and product. leads to interdependence.
Predication: waterfall will decline further
[FSE8] pp159-168
Examples
if you can fill this hole]
if you can fill this hole]
if you can fill this hole]
NuseibehZave10 if you can fill this hole]
Conclusions:
Key Target: To be able to prove a generic implementation of a concept once and for all - once proved in general all valid instanciations will be correct.
Experience Factory(repository for stored and packaged experience) Software Engineering Models(SEMs), GoalQuestionMetric(GQM), using ERDs, is-a, instance-of, part-of, compatible, dynamic attribute link, counterpart, ES-TAME for Did Ward&Mellor, cf JSD SADT
if you can fill this hole]
Glass: root problem is bad estimation.
Thought Provoking
p99:SQA and metrics people are surviving while programmers (untrained software developers) are seemingly the prime targets for layoffs.
Ted Keller Shuttle project [ cf Billingsetal94] 50% defects found by inspections using failure mode static analysis. Only one in-flight failure has been logged since 1985. Total number of failures logged in tests flights and simulations was 23 in 1987 version, 3 for current - including minor defets. rootcause failure analysis - 12..15 year database of fault data. operational profiles. level 5 maturity. Takes 2..3 years to climb one level. safety certification based on adherence to process. Known controlled and repeatable process leads to known quality.
Alfred Aho "Even good software development practices result in approximately one defect per thousand lines of code". Problems 25 years old but better management, proces, technology, reusability. multifacetted view of software quality Richard DeMillo(QV) research pre-occupied with modeling existing defect data. Janne Druggan "structural-based test coverage, operational profiles, and criticallity analysis were all used as a matter of course during circuit design and test..."
Formal Methods noticably absent. Lack of communication.
John Gallager:"The formal specification Languages in use today are not useful to those implementing the software."
Using waterfall model + some RAD&Spiral
Quality control a matter of testing and debugging.
System failures in the field has decreased from 1050 in 1981 to 19 in 1994. Bugs found in: desk debug(?) 21%, Unit Debug 35%, Combination debugging 28%, System debugging 6%.... Field 0.02% Total numbers up in 500s.
Program-checking lists(PCLs) Black box tests
Quality-progress diagram(QPD) : track and compare fault finding rates and testing rates vs guestimates.
p72:"A Software Engineer's dream is to eliminate all faults based on a precise and reliable estimation of the total number of faults or to identify the "last bug" within a reasonable time and at a reasonable cost. But Faults -- like programs -- are created by people. Fault estimation is
p118: "Some specification environments allow specifications to be expressed directly in terms of mathematical symbols[...]we have found that the burden of supporting these conveniences outway the benefits, bringing in the wake such menaces to productivity as structure editors, and a plethora of mouse and menu selections. In the US, at least, most scientists and engineers are fast touch typists, and we ind a conventional program editor provides a more productive environment for rapid interaction than a graphical user interface[...]LaTeX,...graphical representation of module dependencies and proof trees...hypertext"