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]
Metric in a bubble. No interpretation. No context. What does it mean?
Treating the metric. Cosmetic changes. Find out the root cause and treat that!
One-track metric. Focus on just one measurement and ignoring the rest. Dig deeper.
Metrics galore. Too many metrics makes teams ignore all of them. Focus!
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 ]