SlideShare a Scribd company logo
1 of 54
Download to read offline
Why and how should we test
software architecture and
software design?
Zarko Acimovic
Software Defects Potentials
As an example for function point measure Win 7 has ~100K Function Points, Microsoft Word has
~5K Function Points. The technology assumptions underlying below table assume CMMI level 1
and a traditional waterfall development method.
Source: Chapter 2. Estimating and Measuring Software Quality. The Economics of Software
Quality, ISBN: 9780132564762 , Pages 40, 41, Capers Jones, Olivier Bonsignour

http://www.amazon.com/Economics-Software-Quality-Capers-Jones/dp/0132582201

http://www.informit.com/store/product.aspx?isbn=0132582201




                                   Defects per Function Point   Percent of Total Defects
Requirement Defects                1.15                         9.58%
Architectural Defects              0.25                         2.08%
Design Defects                     1.50                         12.50%
Coding Defects                     2.00                         16.67%
Test Plan and Test Case Defects    1.85                         15.42%
User Documentation Defects         0.75                         6.25%
Database Defects                   2.75                         22.92%
Website Defects                    1.75                         14.58%
TOTAL                              12.00                        100.00%
ms
         Te
    te

            ch
Sys


           n ic



                  DoD Architecture
             al

  Operational




                  Framework
                  Overview
                         Alessio Mosto
                           May, 2004
                            Source:
  http://www.disi.unige.it/person/ReggioG/ISII04WWW/DODAF.ppt
Architecture Definition
   “The structure of components, their
    relationships, and the principles and guidelines
    governing their design and evolution over time.”
    DoD Integrated Architecture Panel, 1995, based on IEEE STD 610.12


   “An architecture is the fundamental organization
    of a system embodied in its components, their
    relationships to each other, and to the
    environment, and the principles guiding its
    design and evolution.”
    IEEE STD 1471-2000



Alessio Mosto            DoD Architectural Framework     2
Architecture vs. Design
   System Architecture is used to:
     Make  buy decisions
     Discriminate between options
     “Discover” the true requirements
     Drive one or more systems to a
      common “use” or purpose

   System Design is used to:
     Develop  system components
     Build the system
     Understand configuration changes
      as the system is modified
Alessio Mosto       DoD Architectural Framework   3
Basic Principles - An Integrated
   Architecture with Three Views
                               Activities/                                 Operational
                                Tasks            Operational                Elements
                                                    View
                                             Identifies What Needs To Be
                                                Done And Who Does It

                                                Information Flow

Systems               Data Flow                                               Standards                 Rules

           Systems                                                                   Technical
       X    View      X
                       Z
                           Y
                                                                                  Standards View
       Y
Relates Systems and Characteristics
                  Y                                                               Prescribes Standards and
       to Operational Needs
                    X
                                                                                        Conventions

       Communications                                                                    Conventions

   Alessio Mosto                      DoD Architectural Framework                   4
Architecture Views




Alessio Mosto   DoD Architectural Framework   5
Software Architecture Defects
Source: A Dissertation Presented to the Graduate School of Clemson University
In Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy
Computer Science by Kyungsoo Im December 2010

Links http://etd.lib.clemson.edu/documents/1306855520/
http://etd.lib.clemson.edu/documents/1306855520/Im_clemson_0050D_10926.pdf




ArchStudio and ArchLight !
http://www.isr.uci.edu/projects/archstudio/whatis.html
Software Design Defects
                                                      Sources

http://www.cslhr.nu.edu.pk/GCCS/Spring2010/papers/Kamran.pdf

http://www.scribd.com/doc/17402321/Software-Design-Defects-2

http://www.ptidej.net/Members/mohanaou/paper/ASE06/Moha06-ASE.pdf

http://www-etud.iro.umontreal.ca/~ptidej/yann-gael/Work/Publications/Documents/ASE06.ppt.pdf
6/24/2009




                                                    Software Design Defects
Software Design Defects                              Design Patterns are “good” solutions to
                                                     recurring design problems
                                                     ◦ Where you want to be in terms of good design
                                                      Design Defects are “bad” solutions to
                                                     recurring problems
                                                     ◦ Where you should not find yourself in software
                                                       development
                                                     Design Defects lessen the quality of OO
                                                     architectures and impede their evolution and
                                                     their maintenance




Patterns and Software Defects                       AntiPatterns
 To Err Is Human                                     AntiPatterns provide patterns that have
                                                     negative consequences on software
 2 categories:                                       development effort
 ◦ High-level (global) problems: AntiPatterns        ◦ Reality of a good number of software projects
 ◦ Low-level (local) problems: Code Smells           Help identifying problems in software
 “ deviations from specifications or expectations    ◦ Bad design results from common mistakes and
                                                       misunderstandings
 which might lead to failures in operation ”         Provide common vocabulary to discuss
 They describe in general what not to do             problems and their solutions in software
 Arise due to lack of knowledge and experience       industry
                                                     Understanding AntiPatterns provides the
 A good form of problem-solving approach             knowledge to prevent or recover from them




Well-
Well-known AntiPatterns
                                                    AntiPatterns
                                                     Root causes
 AntiPatterns are all around us. They’re often       ◦ Haste
 used as tools for social control.                       Good design is a product of careful study
                                                         Trimming budgets, unrealistic committeements
 SOCIAL AntiPatterns                                     Leads to compromises in software quality
                                                     ◦ Apathy
 ◦ Criminal                                              Not caring about solving known problems
                                                     ◦ Narrow-mindedness
 ◦ Drug Addict                                           Refusal to accept widely known solutions
                                                     ◦ Laziness (Sloth)
 ◦ Witch                                                 Configuration management
                                                     ◦ Ignorance
 ◦ PickPocket                                            Failing to seek understanding
                                                     ◦ Pride
                                                         Not-invented-here syndrome: avoids using or buying already existing
                                                         products




                                                                                                                                      1
6/24/2009




 AntiPatterns                                                  The Blob
                                                                   Blob (Huge Class)
     Describe context and causes
                                                                   “ Procedural-style design
     Describe symptoms to detect an                                leads to one object with a
                                                                   lion’s share of the
     AntiPattern in legacy software                                responsibilities while most
                                                                   other objects only hold
     Describe their consequences                                   data or execute simple
     Describe a roadmap for their solution                         processes ”
                                                                   Large controller class
                                                                   Many fields and methods
                                                                   with a low cohesion
     In this course, we shall only cover                            Dependent on the data
     AntiPatterns related to software code                         stored in associated data
                                                                   classes




                                                                                       The Blob
 The Blob                                                                 Causes and Consequences
                   Library_Main_Control              Item
    Person
                   Current_Catalog          Title
                                                                   Typical Causes
Name               Current_Item             ISBN
User_ID            User_ID                  Author                 ◦ Lack of proper Object-Oriented architecture
Items_Out          Fine_Amount              Publisher
Fines              Etc.
                                            Cost
                                            Data_In
                                                                   ◦ Prototype software evolves into a product
…
                   Do_Inventory()
                   Check_Out_Item(Item)
                                            Qty
                                            …
                                                                   ◦ Lack of architectural enforcement
                   Check_In_Item(Item)
                   Add_Item(Item)                                  Consequences
                   Delete_Item(Item)                Catalog
                   Print_Catalog()
                                            Topic
                                                                   ◦ Modular continuity is compromised
                   Sort_Catalog()
                   Search_Catalog(Params)
                                            Inventory
                                            …
                                                                   ◦ Too complex for reuse and testing
                   Print()
                   Issue_Library_Card()                            ◦ Expensive to load into memory even for small
                   Calculate_Late_Fine()
                                                                     operations




                       The Blob
                                                               The Blob - Solution
                       Solution
                                                                                    Library_Main_Control             Item
     Avoid it                                                     Person
                                                                                   Current_Catalog          Title
                                                              Name                 Current_Item             ISBN
     ◦ Managers should review program design                  User_ID              User_ID                  Author
                                                              Items_Out                                     Publisher
       regularly                                              Fines
                                                                                   Fine_Amount
                                                                                   Etc.
                                                                                                            Cost
                                                              …                                             Data_In
     Refactor it                                                                   Do_Inventory()
                                                                                   Check_Out_Item(Item)
                                                                                                            Qty
                                                                                                            …
                                                                                   Check_In_Item(Item)
     ◦ Move behavior away from the Blob                                            Add_Item(Item)
                                                                                   Delete_Item(Item)
     ◦ Construct cohesive classes: cohesive set of                                 Print_Catalog()
                                                                                                                    Catalog
                                                                                                            Topic
       attributes and methods are encapsulated                                     Sort_Catalog()
                                                                                   Search_Catalog(Params)
                                                                                                            Inventory
                                                                                                            …
       together                                                                    Print()
                                                                                   Issue_Library_Card()
     ◦ Remove far-coupling                                                         Calculate_Late_Fine()




                                                                                                                                     2
6/24/2009




                                                                                                                                                               Spaghetti Code
                    Spaghetti Code                                                                                                                        Causes and Consequences
                   “ Ad hoc software structure makes it difficult                                                                               Typical Causes
                   to extend and optimize code.”
                   Code with very little software structure,                                                                                    ◦ Inexperience with Object-Oriented design
                   lack clarity                                                                                                                   technologies
                   Implementation invokes a process flow                                                                                        ◦ Ineffective code reviews
                   Lack of structure : no inheritance, no                                                                                       ◦ No initial software design
                   reuse, no polymorphism
                   Long methods process oriented with no                                                                                        Consequences
                   parameters and low cohesion                                                                                                  ◦ Code reuse is difficult
                   Procedural names of classes and methods                                                                                      ◦ Follow-on maintenance efforts contribute to the
                   Negligible degree of interaction between                                                                                       problem
                   objects
                   Use of global variables for processing                                                                                       ◦ Software reaches point of diminishing returns: the
                                                                                                                                                  effort involved to maintain existing code exceeds the
                                                                                                                                                  cost of developing a new “ground up” solution




public boolean startElement(int, XMLAttrList)                if (prefix == -1) {
                                                                  ...
throws Exception {
      if (!fValidating && !fNamespacesEnabled) {
              return false;
                                                                   if (elementURI != -1) {
                                                                      fStringPool.setURIForQName(...);
                                                                                                                       •No Objects
                                                                                                                       •Process Flow
                                                                                                                                                               Spaghetti Code
                                                                   }
      }
      if (contentSpecType == -1 && fValidating) {
                                                               }
                                                               else {
                                                                                                                       •Conditionals
                                                                                                                       •Complexity
                                                                                                                                                                   Solution
             ...                                                        ...
      }                                                                 if (elementURI == -1) {                        •Cannot be               The best way is to prevent spaghetti code by first
      if (... && elementIndex != -1) {
             ...                                                        }
                                                                             ...                                       reused                   thinking and then developing. To avoid:
      }
                                                                }
                                                                 fStringPool.setURIForQName(.elementURI);                                       ◦   Domain model even when it is well-understood
      if (DEBUG_PRINT_ATTRIBUTES) {
           ...                                                  if (attrIndex != -1) {                                                          ◦   OO Analysis
      }                                                               int index = attrList.getFirstAttr(attrIndex);
      if (fNamespacesEnabled) {
                                                                      while (index != -1) {                                                     ◦   OO Design
                                                                       int attName = attrList.getAttrName(index);
           fNamespacesScope.increaseDepth();
      if (attrIndex != -1) {
                                                                       if (!fStringPool.equalNames(...)) {                                      ◦   Objects should be sufficiently refined
                                                                            ...
          int index = attrList.getFirstAttr(attrIndex);                      if (attPrefix != fNamespacesPrefix) {                              When adding new features, remove code defects
          while (index != -1) {                                                  if (attPrefix == -1) {
                  ...                                                                ...                                                        Write accessor functions for member variables
                  if (fStringPool.equalNames(...)) {                              }
                       ...                                                       else {                                                         Refactor code into methods
                 }                                                                    if (uri == -1) {
                  else {...}                                                               …                                                    Remove obsolete code
           }                                                                          }
           index = attrList.getNextAttr(index);                                       fStringPool.setURIForQName(attName, uri);                 Rename classes, functions, data types to conform
                                                                                      if (fElementDepth >= 0) {
      }
          }
                                                                                            fElementDepth++;                                    to industry standards
                                                                                             if (fElementDepth == fElementTypeStack.length) {
      int prefix =
                                                                                                  ...
fStringPool.getPrefixForQName(elementType);                                                   } }}}
      int elementURI;                                     return contentSpecType == fCHILDRENSymbol; }




                                                                                                                                                      Functional Decomposition
                    Functional Decomposition                                                                                                           Causes and Consequences
                          One main routine that calls several other                                                                             Typical Causes
                          subroutines                                                                                                           ◦ No use of OO concepts like inheritance or
                          Invoked subroutines are implemented as                                                                                  polymorphism
                          classes                                                                                                               ◦ Lack of understanding of OO concepts
                          Classes with single action such as a                                                                                  ◦ Lack of architecture enforcement
                          function                                                                                                              Consequences
                          Attributes are private and used only                                                                                  ◦ Difficult to reuse
                          inside the class                                                                                                      ◦ Expensive to maintain
                          The resulting code resembles a structural                                                                             ◦ no way to clearly document (or explain) how
                                                                                                                                                  the system works
                          language like C and is incredibly complex




                                                                                                                                                                                                            3
6/24/2009




         Functional Decomposition                         Functional Decomposition
                              Solution                     A customer loan scenario
 Find the original Use Cases to ascertain             Adding a new customer
 features from user view point                        Updating a customers address
 OO reengineering process                             Calculating a loan to a customer
 Find matching OO design model                        Calculating the interest on a loan
 Combine classes which assist each other              Calculating a payment schedule for a
 Combine classes which try to achieve the             customer loan
 same design objective                                Altering a payment schedule
 Find similar subsystems (reuse of code)




Functional Decomposition                                                 OO Version




Cut-and-
Cut-and-Paste Programming                                  Cut-and-
                                                           Cut-and-Paste Programming
                                                                 Causes and Consequences
 “Man, you guys work fast. Over 400,000 lines of      Typical Causes
 code in just three weeks is outstanding progress.”
                                                      ◦ Reusable code is difficult to create and organizations prefer
 Cut-and-Paste Programming is a                         short term benefits
 very common degenerate form of                       ◦ Easier to modify existing code than writing from scratch
 software reuse that causes
 maintenance nightmares.                              ◦ Lack of abstraction in developers
 Less experienced programmers                         ◦ Lack of knowledge of tools and technologies, hence working
                                                        examples are modified to create new components
 learn by changing code of
 experienced developers                               ◦ Lack of forward thinking
 Presence of several similar                          Consequences
 segments of code                                     ◦   Software defects and bugs are replicated
 Creates code duplication                             ◦   Difficult to locate all instances of a bug
 Positive short-term consequences                     ◦   Code reviews and inspections are needlessly extended
 such as boosting line count metrics                  ◦   Excessive software maintenance costs
                                                      ◦   Duplication of testing, review, bug fixing efforts




                                                                                                                               4
6/24/2009




      Cut-and-
      Cut-and-Paste Programming
                                                        Swiss Army Knife
                     Solution
                                                         A Swiss Army knife is a
 Three step approach                                     brand of multi-function
 ◦ Identify Code duplication                             pocket knife or multi-tool.
                                                         Excessively complex class
 ◦ Refactoring duplicates into libraries or              interface
   components for black-box reuse                        Designer attempts to
 ◦ Configuration management : code inspection,           provide for all possible
                                                         uses of the class.
   reviews and validation efforts in future to           Large number of interface
   avoid Cut-and-Paste Programming                       signatures
                                                         No clear abstraction or
                                                         focus of the class interface




              Swiss Army Knife                                       Swiss Army Knife
       Causes and Consequences                                             Solution
 Causes                                                  Describe a profile for the class
 ◦ No focused responsibility                             Profile documents the way to use a
 ◦ Class attempting to provide too much                  complex technology
   functionality
 Consequences                                            Profile for an interface describe the
 ◦   More != Better                                      signatures and parameter values
 ◦   Confusion
 ◦   Maintenance problems
 ◦   Each interface requires implementation of
     items on that interface




Conclusions                                             Code Smells
                                                         “If it stinks, change it”
 AntiPatterns provide patterns that have negative
 consequences on software development effort
 Each AntiPattern includes a solution + solution pair
                                                         Hint that something has gone wrong
 ◦ AntiPattern Solution Generates mostly negative
   consequences                                          Opportunities for improving program
 ◦ Refactored Solution Generates mostly positive         design
   benefits

 AntiPatterns are useful for refactoring, migration,     Code smells indicate the need for the
 upgrade, and reengineering                              application of a possible refactoring




                                                                                                        5
6/24/2009




Code Smells - Examples                                       Code Smells – More Examples
 Duplicate Code                                               Long Parameter List
 ◦ Duplication of bugs, tests, reviews
 ◦ Same (or nearly) code in multiple places
                                                              ◦ Programs harder to understand
 ◦ Frequently the result of cut-and-paste coding              ◦ Difficult to reuse and change
 Long Method                                                  ◦ Parameter lists should be shorter in OO
 ◦ OO puts premium on short methods                             programs than in traditional programs
 ◦ Long procedures always harder to understand
                                                              Divergent Change
 Large Class
 ◦ Class has poor cohesion                                    ◦ One class commonly changed in different
 ◦ Too many instance variables or methods means a class is      ways for different reasons
   doing too much                                             ◦ Some methods changed in one case
 ◦ Class interface does not provide consistent level of
   abstraction                                                ◦ Other methods changed in another




Code Smells – More Examples
 Feature Envy
 ◦ Method seems more interested in a class other
   than the one it is in
 ◦ Most common focus is data (lots of getter calls)
 Data Clumps
 ◦ Same data items in multiple classes
 ◦ Parameter lists of several methods
 ◦ If after deleting one from clump the rest wouldn’t
   make sense, a clear candidate for refactoring




                                                                                                                 6
ArgoUML !!!
ArgoUML Design Critics
Chapter 15. The Critics
Table of Contents
15.1. Introduction
    15.1.1. Terminology
    15.1.2. Design Issues
15.2. Uncategorized
15.3. Class Selection
    15.3.1. Wrap DataType
    15.3.2. Reduce Classes in namespace <namespace>
    15.3.3. Clean Up Diagram
15.4. Naming
    15.4.1. Resolve Association Name Conflict
    15.4.2. Revise Attribute Names to Avoid Conflict
    15.4.3. Change Names or Signatures in a model element
    15.4.4. Duplicate End (Role) Names for an Association
    15.4.5. Role name conflicts with member
    15.4.6. Choose a Name (Classes and Interfaces)
    15.4.7. Name conflict in a namespace
    15.4.8. Choose a Unique Name for a model element (Classes and Interfaces)
    15.4.9. Choose a Name (Attributes)
    15.4.10. Choose a Name (Operations)
    15.4.11. Choose a Name (States)
    15.4.12. Choose a Unique Name for a (State related) model element
    15.4.13. Revise Name to Avoid Confusion
15.4.14. Choose a Legal Name
    15.4.15. Change a model element to a Non-Reserved Word
    15.4.16. Choose a Better Operation Name
    15.4.17. Choose a Better Attribute Name
    15.4.18. Capitalize Class Name
    15.4.19. Revise Package Name
15.5. Storage
    15.5.1. Revise Attribute Names to Avoid Conflict
    15.5.2. Add Instance Variables to a Class
    15.5.3. Add a Constructor to a Class
    15.5.4. Reduce Attributes on a Class
15.6. Planned Extensions
    15.6.1. Operations in Interfaces must be public
    15.6.2. Interfaces may only have operations
    15.6.3. Remove Reference to Specific Subclass
15.7. State Machines
    15.7.1. Reduce Transitions on <state>
    15.7.2. Reduce States in machine <machine>
    15.7.3. Add Transitions to <state>
    15.7.4. Add Incoming Transitions to <model element>
    15.7.5. Add Outgoing Transitions from <model element>
    15.7.6. Remove Extra Initial States
    15.7.7. Place an Initial State
    15.7.8. Add Trigger or Guard to Transition
    15.7.9. Change Join Transitions
    15.7.10. Change Fork Transitions
    15.7.11. Add Choice/Junction Transitions
    15.7.12. Add Guard to Transition
    15.7.13. Clean Up Diagram
    15.7.14. Make Edge More Visible
    15.7.15. Composite Association End with Multiplicity >1
15.8. Design Patterns
15.8.1. Consider using Singleton Pattern for <class>
    15.8.2. Singleton Stereotype Violated in <class>
    15.8.3. Nodes normally have no enclosers
    15.8.4. NodeInstances normally have no enclosers
    15.8.5. Components normally are inside nodes
    15.8.6. ComponentInstances normally are inside nodes
    15.8.7. Classes normally are inside components
    15.8.8. Interfaces normally are inside components
    15.8.9. Objects normally are inside components
    15.8.10. LinkEnds have not the same locations
    15.8.11. Set classifier (Deployment Diagram)
    15.8.12. Missing return-actions
    15.8.13. Missing call(send)-action
    15.8.14. No Stimuli on these links
    15.8.15. Set Classifier (Sequence Diagram)
    15.8.16. Wrong position of these stimuli
15.9. Relationships
    15.9.1. Circular Association
    15.9.2. Make <association> Navigable
    15.9.3. Remove Navigation from Interface via <association>
    15.9.4. Add Associations to <model element>
    15.9.5. Remove Reference to Specific Subclass
    15.9.6. Reduce Associations on <model element>
    15.9.7. Make Edge More Visible
15.10. Instantiation
15.11. Modularity
    15.11.1. Classifier not in Namespace of its Association
    15.11.2. Add Elements to Package <package>
15.12. Expected Usage
    15.12.1. Clean Up Diagram
15.13. Methods
    15.13.1. Change Names or Signatures in <model element>
15.13.2. Class Must be Abstract
    15.13.3. Add Operations to <class>
    15.13.4. Reduce Operations on <model element>
15.14. Code Generation
    15.14.1. Change Multiple Inheritance to interfaces
15.15. Stereotypes
15.16. Inheritance
    15.16.1. Revise Attribute Names to Avoid Conflict
    15.16.2. Remove <class>'s Circular Inheritance
    15.16.3. Class Must be Abstract
    15.16.4. Remove final keyword or remove subclasses
    15.16.5. Illegal Generalization
    15.16.6. Remove Unneeded Realizes from <class>
    15.16.7. Define Concrete (Sub)Class
    15.16.8. Define Class to Implement <interface>
    15.16.9. Change Multiple Inheritance to interfaces
    15.16.10. Make Edge More Visible
15.17. Containment
    15.17.1. Remove Circular Composition
    15.17.2. Duplicate Parameter Name
    15.17.3. Two Aggregate Ends (Roles) in Binary Association
    15.17.4. Aggregate End (Role) in 3-way (or More) Association
    15.17.5. Wrap DataType
Follow me on Facebook page “Automated Testing”

  https://www.facebook.com/AutomatedTesting
Search for people, places and things                                                                                       Automated Testing     Home


   Admin Panel                                                                                           Edit Page        Build Audience         Help        Show         Ads Manager




                                                                                                                                                                         See Your Ad Here

                                                                                                                                                                         Automated Testing




                                                                                                                                                                         Automated Testing as
                                                                                                                                                                         Program Verification.
                                                                                                                                                                         Program Verification
                                                                                                                                                                         problem is decidable if
                                                                                                                                                                         P is finite-...
                                                                                                                                                                            Like · Automated
                                                                                                                                                                         Testing likes this.

                                                                                                                                                                          Get More Likes



                                                                                                                                                                           Now
                                      Automated Testing                                                                                                                    February
                                      10 likes · 1 talking about this
                                                                                                                                                                           2013

                                                                                                                                                                           Launched
  Computers/Internet Website
  Automated Testing as Program Verification. Program Verification problem is decidable if P is finite-state
  with model-checking techniques. But real programs are not finite-state, they have arbitrarily complex inputs                                          10
  and dynamic memory allocation

     About                                                                                                       Photos                  Likes



                                                                             Highlights



   Status            Photo / Video             Event, Milestone +                         Recent Posts by Others on Automated Testing                          See All

What's on your mind?                                                                               Zarko Acimovic
                                                                                                    http://www.verifysoft.com/en.html
                                                                                                   Wednesday at 2:24pm

       Automated Testing shared a link.                                                            Zarko Acimovic
       9 minutes ago                                                                                 http://hermit-reasoner.com/
                                                                                                   February 15 at 11:26am

http://www-dse.doc.ic.ac.uk/cgi-bin/moin.cgi/sue                                           More Posts


  sue - DSE Imperial College
  www-dse.doc.ic.ac.uk
                                                                                          Likes                                                                See All
  Distributed Software Engineering Section Department of Computing
  Imperial College London Huxley Building Room 568 180 Queen's Gate,
  London SW7 2AZ, UKDirections to the DepartmentStreetmap link Phone:                             Erlang Programming
  +44 20 7594 8264 Fax: +44 20 7581 8024                                                          Community


                                                                                                  Alonso Church
Like · Comment · Share
                                                                                                  Public Figure


                                                                                                  Objective Caml
       Automated Testing shared a link.                                                           Interest
       40 minutes ago

                                                                                                  Implementing Automated Software Testing
http://sourceforge.net/projects/czt/                                                              Book


  Community Z Tools                                                                               Haskell
  sourceforge.net                                                                                 Interest

  Tool support for the Z formal notation


                                                                                                  Automated Testing shared a link.
Like · Comment · Share
                                                                                                  about an hour ago


                                                                                          http://www.doc.ic.ac.uk/~ar3/lectures/ProgrammingII/NewCours
       Automated Testing shared a link.
                                                                                          eStructure.html
       about an hour ago

                                                                                            Alessandra Russo's Software Engineering Course
http://www.doc.ic.ac.uk/~jnm/book/index.html                                                www.doc.ic.ac.uk

                                                                                            These lecture notes are designed for the second part of the course
                                                                                            Object Oriented Programming given to first year undergraduate students
                                                                                            at Imperial College. The first half of this course is taught by Alastair
Donaldson. His lecture notes are electronically available on CATE. The
                                                                                second part of thi...
                                                                             Like · Comment · Share



                    Like · Comment · Share
                                                                                     Automated Testing shared a link.
                                                                                     16 hours ago
  Concurrency - State Models & Java Programs
  www.doc.ic.ac.uk
                                                                             http://www.cs.ru.nl/ftfjp/

       Automated Testing
       16 hours ago                                                            Formal Techniques for Java-like Programs (FTfJP)
                                                                               www.cs.ru.nl

http://www.cs.ru.nl/ftfjp/                                                     Starting 2002 the name of the workshop has been slightly changed -
                                                                               from "Formal Techniques for Java Programs" to "Formal Techniques for
                                                                               Java-like Programs" - to include not just work on Java, but also work on
Like · Comment · Share                                                         related languages such as C# or Scala.


                                                                             Like · Comment · Share
       Automated Testing shared a link.
       16 hours ago

                                                                                     Automated Testing
http://www.uppaal.com/index.php?sida=186&rubrik=93                                   16 hours ago


  UP4ALL Inc - uppaal.com
                                                                             http://csd.informatik.uni-oldenburg.de/~moby/
  www.uppaal.com

  UPPAAL is an integrated tool environment for modeling, simulation and,     Like · Comment · Share
  verification of real-time embedded systems. Typical application areas of
  UPPAAL includes real-time controllers and communication protocols in
  particular, those where timing aspects are critical.
                                                                                     Automated Testing shared a link.
                                                                                     Thursday
Like · Comment · Share

                                                                             http://www.informatik.uni-
                                                                             bremen.de/agbkb/forschung/formal_methods/index_e.htm
       Automated Testing shared a link.
       Wednesday
                                                                               Research Area "Formal Methods for Software Development"
                                                                               www.informatik.uni-bremen.de
http://www.springer.com/computer/swe/book/978-0-85729-276-
6                                                                              The main focus of research in formal methods at our group is algebraic
                                                                               specification, based on the CASL language, and development of
                                                                               effective tool support for all aspects of formal development.
                 Specification of Software Systems
                 www.springer.com
                                                                             Like · Comment · Share
                 Recent advances in software specification methods,
                 model checking, and theorem proving have generated
                 new tools for the use of formal methods in both industry
                 and academia. Yet, in order to choose the techniques                Automated Testing shared a link.
                 most appropriate ...
                                                                                     March 5

Like · Comment · Share
                                                                             http://www.locmetrics.com/index.html


       Automated Testing shared a link.                                        http://www.locmetrics.com/index.html
       March 5                                                                 www.locmetrics.com


http://www.locmetrics.com/alternatives.html
                                                                             Like · Comment · Share

  LOC Metrics - Alternative Tools
  www.locmetrics.com
                                                                                     Automated Testing shared a link.
  LocMetrics is a simple tool for counting lines of code in C#, Java, and
                                                                                     March 1
  C++.

                                                                             http://www.flowgate.net/?lang=es&seccion=herramientas
Like · Comment · Share

                                                                                                               [Flowgate Consulting] Servicios de
                                                                                                               consultoria en TI
       Automated Testing shared a link.                                                                        www.flowgate.net
       February 28


http://www.lispworks.com/


                                  LispWorks                                  Like · Comment · Share
                                  www.lispworks.com

                                  New features in LispWorks 6.1 include
                                  environment access, high-quality                   Automated Testing shared a link.
                                  drawing including anti-aliasing,
                                                                                     February 28
                                  exporting various image formats,
                                  extensions to symmetric multiprocessing
                                  and a 64-bit FreeBSD port.                 http://weitz.de/
Like · Comment · Share
Edi Weitz
       Automated Testing shared a link.                                         weitz.de
       February 28
                                                                                Software, books, photos, and more

http://www.cliki.net/
                                                                              Like · Comment · Share

  CLiki: index
  www.cliki.net
                                                                                      Automated Testing shared a link.
  CLiki is a Common Lisp wiki. It contains resources for learning about and
                                                                                      February 28
  using the programming language Common Lisp, and information about
  DFSG-compliant free software implemented in Common Lisp.
                                                                              http://cs.gmu.edu/~sean/book/metaheuristics/
Like · Comment · Share
                                                                                                   Essentials of Metaheuristics
                                                                                                   cs.gmu.edu

       Automated Testing shared a link.                                                           Please always include the URL—it's the only unique
       February 28                                                                                identifier to the text! Note the lack of edition number:
                                                                                                  I expect these to change very rapidly, and Google
                                                                                                  Scholar and Citeseer both have trouble with fast-
http://www.franz.com/                                                                             changing editions. If you prefer BibTeX: @Book{
                                                                                                  Luke2009Metaheuristics, author = { Sean Luke ...
                                                                              Like · Comment · Share
                  About Franz Inc.
                  www.franz.com

                 Franz is a leading vendor of Semantic Web Technology                 Automated Testing shared a link.
                 featuring the AllegroGraph RDF Store triple store
                                                                                      February 28
                 database, and dynamic object-oriented Common Lisp
                 development tools including Allegro Common Lisp with
                 AllegroCache, an Object Database that provides Object        http://cs.gmu.edu/~sean/lisp/
                 Persistence in Lisp, native to the langa...
Like · Comment · Share
                                                                                               Lisp at GMU
                                                                                               cs.gmu.edu

       Automated Testing shared a link.                                                        Lisp runs fine on mason.gmu.edu (type lisp). But only use
       February 28                                                                             Lisp on Mason to verify your code, not for development.
                                                                                               Instead, do development on your own machine -- it's
                                                                                               much less painful. However, in Prof. Luke's classes, your
http://letoverlambda.com/index.cl                                                              Lisp homework and projects must compile and run
                                                                                               properly on Mason for them t...
                                                                              Like · Comment · Share
  Let Over Lambda
  letoverlambda.com

  Let Over Lambda (ISBN 978-1-4357-1275-1, 376+iv pp.) is one of the                  Automated Testing shared a link.
  most hardcore computer programming books out there. Starting with the
                                                                                      February 27
  fundamentals, it describes the most advanced features of the most
  advanced language: COMMON LISP. The point of this book is to expose
  you to ideas that you might o...                                            http://cs.brown.edu/~jes/book/
Like · Comment · Share
                                                                                Models of Computation: Exploring the Power of Computing
                                                                                cs.brown.edu

       Automated Testing shared a link.                                         In Models of Computation:Exploring the Power of Computing, John
       February 27                                                              Savage re-examines theoretical computer science, offering a fresh
                                                                                approach that gives priority to resource tradeoffs and complexity
                                                                                classifications over the structure of machines and their relationships to
http://cs.brown.edu/~jes/book/pdfs/ModelsOfComputation_Chapt                    languages. This viewpoint refl...
er4.pdf
                                                                              Like · Comment · Share

  http://cs.brown.edu/~jes/book/pdfs/ModelsOfComputation_C
  hapter4.pdf
  cs.brown.edu                                                                        Automated Testing shared a link.
                                                                                      February 27


Like · Comment · Share                                                        http://www.google.rs/search?
                                                                              q=%22%22&oq=%22%22&sourceid=chrome&client=ubuntu&ch
                                                                              annel=cs&ie=UTF-
       Automated Testing shared a link.                                       8#client=ubuntu&hs=OiJ&channel=cs&sclient=psy-
       February 27                                                            ab&q=Program+verification+is+decidable+if+P+is+finite-
                                                                              stae&oq=Program+verification+is+decidable+if+...See More
http://research.microsoft.com/en-us/projects/chess/
                                                                                                        "" - Google претрага
                                                                                                        www.google.rs
                          CHESS - Microsoft Research
                          research.microsoft.com

                          A concurrency testing tool for finding and
                          reproducing Heisenbugs. CHESS repeatedly runs
                          a concurrent test ensuring that every run takes
                          a different interleaving. If an interleaving
                          results in an error, CHESS can reproduce the
                                                                              Like · Comment · Share
                          interleaving for improved debugging.
Like · Comment · Share


                                                                                      Automated Testing
                                                                                      February 27
http://research.microsoft.com/en-us/projects/chess/
Automated Testing shared a link.
February 25                                                                           Like · Comment · Share


http://www.cambridge.org/gb/knowledge/isbn/item1112106/?
site_locale=en_GB

                  Logic in Computer Science
                  www.cambridge.org

                  Recent years have seen the development of powerful
                  tools for verifying hardware and software systems, as
                  companies worldwide realise the need for improved
                  means of validating their products. There is increasing
                  demand for training in basic methods in formal
                  reasoning so that students can gain profic...
Like · Comment · Share




                                                                        Earlier in February



        Zarko Acimovic shared a link.                                                         Automated Testing
        February 15                                                                           February 14


http://hermit-reasoner.com/                                                           John Hughes. Why functional programming matters - Google
                                                                                      search
  HermiT Reasoner: Home
  hermit-reasoner.com                                                                 Like · Comment · Share

  HermiT is reasoner for ontologies written using the Web Ontology
  Language (OWL). Given an OWL file, HermiT can determine whether or
  not the ontology is consistent, identify subsumption relationships
                                                                                              Automated Testing shared a link.
  between classes, and much more.
                                                                                              February 14


Like · Comment · Share                                                                http://www.amazon.com/Purely-Functional-Structures-Chris-
                                                                                      Okasaki/dp/0521663504

        Automated Testing shared a link.
                                                                                                       Purely Functional Data Structures
        February 14                                                                                    www.amazon.com

                                                                                                       Most books on data structures assume an imperative
http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf "Purely                                                  language such as C or C++. However, data structures for
Functional Data Structures"                                                                            these languages do not always translate well to
                                                                                                       functional languages such as Standard ML, Haskell, or
                                                                                                       Scheme. This book describes data structures from the
  http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf                                                        point of view of functional languag...
  www.cs.cmu.edu
                                                                                      Like · Comment · Share



Like · Comment · Share
                                                                                              Automated Testing shared a link.
                                                                                              February 14


        Automated Testing shared a link.                                              http://okasaki.blogspot.com/
        February 14

                                                                                        Teaching, Playing, and Programming
http://www.sonarsource.com/                                                             okasaki.blogspot.com

                                                                                        I think you’ll enjoy this game, Thunderstone. I’ve been playing it a lot
                                  SonarSource - Continuous                              with my son. Like Race for the Galaxy, this one works very well with two
                                  Inspection of Code Quality                            players, but can also handle more players. (Predictably, with more
                                  www.sonarsource.com                                   players, it becomes very chaotic, especially when thieves are in play…)
                                                                                        I’m so certain…
                                  SonarSource provides applications and
                                  services for continuous inspection of
                                                                                      Like · Comment · Share
                                  code quality. Its open source Sonar
                                  platform and commercial products help
                                  customers to perform development and
Like · Comment · Share            long-term maintenance of software at a
                                  lower cost and with reduced risk.                           Automated Testing shared a link.
                                                                                              February 12


        Automated Testing shared a link.                                              scg.unibe.ch/archive/famoos/handbook/4handbook.pdf
        February 11

                                                                                      The FAMOOS Object-Oriented Reengineering Handbook
http://xray.inf.usi.ch/xray.php
                                                                                        http://scg.unibe.ch/archive/famoos/handbook/4handbook.pdf
Software is inherently intangible. Systems can be composed of a                         scg.unibe.ch
huge amount of software entities linked together by different
kinds of dependencies. Software designers use visualization tools
in order to rai...See More                                                    Like · Comment · Share



                                  Jacopo Malnati, X-Ray 1.0.4.1
                                  xray.inf.usi.ch                                    Automated Testing shared a link.
                                                                                     February 11
                                  Website of Jacopo Malnati

                                                                              http://jhave.org/ JHAVÉ is a java application that renders
                                                                              algorithm visualizations. Students explore algorithms by viewing
                                                                              visual representations of data, controlling movement and by
Like · Comment · Share                                                        responding to pop-up questions. We provide a large colle...See More


                                                                                                 JHAVE: Home Page
                                                                                                 jhave.org
       Automated Testing shared a link.
       February 10                                                                               JHAVE


http://www.arisa.se/index.php

Goal of ARiSA™ - Applied Research in System Analysis - is to
leverage quality management on software and information                       Like · Comment · Share

systems engineering. We provide seminars, methods, and
development tools supporting the effi...See More
                                                                                     Automated Testing shared a link.
                                                                                     February 10
                                 ARiSA AB
                                 www.arisa.se
                                                                              http://www.arisa.se/compendium/quality-metrics-
                                 Målet för ARiSA™ är att utnyttja
                                 kvalitetshantering av framtagning            compendium.html
                                 mjukvaru- och informationssystem. Vi
                                 tillhandahåller seminarier, metoder och
                                                                                Compendium of Software Quality Standards and Metrics -
                                 utvecklingsverktyg som stödjer effektiv
                                                                                Version 1.0
                                 produktion och underhåll av högkvalitativ
                                                                                www.arisa.se
Like · Comment · Share           mjukvara.
                                                                                Compendium of Software Quality Standards and Metrics - Version 1.0


       Automated Testing shared a link.                                       Like · Comment · Share
       February 4


http://research.microsoft.com/en-us/projects/specsharp/                              Automated Testing shared a link.
                                                                                     February 4
  Spec# - Microsoft Research
  research.microsoft.com
                                                                              http://types.cs.washington.edu/jsr308/
  Spec# is a formal language for API contracts (influenced by AsmL, JML
  and Eiffel), which extends C# with constructs for non-null types,
                                                                                Type Annotations (JSR 308) and the Checker Framework
  preconditions, postconditions, object invariants, and model programs
                                                                                types.cs.washington.edu
  (behavioral contracts that take the history of the entire run into
  account). Spec# comes with a...
                                                                                The Java 6 annotation syntax is useful but limited. The Type Annotations
                                                                                syntax permits annotations to be written in more places, such as generic
Like · Comment · Share                                                          type arguments: List<@NonNull Object>. Programmers can use type
                                                                                annotations to write more informative types, and then tools such as
                                                                                type-checkers can det…

       Automated Testing shared a link.                                       Like · Comment · Share
       February 4


http://groups.csail.mit.edu/pag/daikon/                                              Automated Testing shared a link.
                                                                                     February 4
  The Daikon dynamic invariant detector
  groups.csail.mit.edu
                                                                              http://homes.cs.washington.edu/~mernst/software/
  Daikon is an implementation of dynamic detection of likely invariants;
  that is, the Daikon invariant detector reports likely program invariants.
                                                                                Software released by Michael Ernst
  An invariant is a property that holds at a certain point or points in a
                                                                                homes.cs.washington.edu
  program; these are often seen in assert statements, documentation, and
  formal speci...
                                                                                This is a partial list of software packages released by Michael Ernst. I am
                                                                                always happy to receive comments, bug reports and fixes, and
Like · Comment · Share                                                          improvements to the code. I will attempt to assist you with problems or
                                                                                incorporate your changes into the main source. Unless otherwise noted,
                                                                                all software should…

       Automated Testing shared a link.                                       Like · Comment · Share
       February 3


http://se.inf.ethz.ch/courses/2012b_fall/sv/                                         Automated Testing shared a link.
                                                                                     February 3
  Software Verification - Fall 2012 - Chair of Software
  Engineering
  se.inf.ethz.ch                                                              http://ix.cs.uoregon.edu/~michal/

  05.12.2012 — Please remember to bring questions/problems along for
  the exercise session of next week! The exam is approaching fast now...


Like · Comment · Share
Automated Testing shared a link.
       February 3                                                                                                  Like · Comment · Share


The Program Verification problem is decidable if P is finite-state
with model-checking techniques.                                                            Michal Young
But real programs are not finite-state                                                     ix.cs.uoregon.edu
• arbitrarily complex inputs
                                                                                           The thread that runs through my work is understanding how we
• dynamic memory allocation
                                                                                           understand and gain confidence in software, through some combination
                                                                                                 Automated Testing shared a link.
The term Software Model-Checking denotes techniques to                                     of analysis (broadly construed to include testing as well as various static
                                                                                                 February 2
automatically verify real programs based on finite-state models of                         checking techniques) and design. I'm increasingly interested in interplay
them.                                                                                      between synthesis (g...
                                                                                         http://www.scribd.com/doc/65043293/Introduction-to-Computer-
                                                                                         Theory
  Index of /courses/2012b_fall/sv/slides
  se.inf.ethz.ch
                                                                                           http://www.scribd.com/doc/65043293/Introduction-to-
                                                                                           Computer-Theory
                                                                                           www.scribd.com
Like · Comment · Share


                                                                                         Like · Comment · Share




       Automated Testing shared a link.                                                         Automated Testing shared a link.
       February 1                                                                               February 1


http://www.ncl.ac.uk/computing/research/?pid=260                                         http://www.wou.edu/~broegb/


  Research home - Computing Science - Newcastle University                                                        Index Winter 2013
  www.ncl.ac.uk                                                                                                   www.wou.edu

  We carry out fundamental computing science research which we
  evaluate and extend through application to industrial and
  interdisciplinary challenges. Our work constantly evolves to address the
  new challenges posed by a fast-changing environment: one in which
  computer systems become ever more complex,...

Like · Comment · Share                                                                   Like · Comment · Share




       Automated Testing shared a link.                                                         Automated Testing shared a link.
       February 1                                                                               February 1


http://rodin.cs.ncl.ac.uk/                                                               http://www.ai4fm.org/


                                  RODIN - Rigorous Open                                                                     Overview - AI4FM
                                  Development Environment for                                                               www.ai4fm.org
                                  Complex Systems
                                  rodin.cs.ncl.ac.uk                                                                        AI4FM project aims to use "learning"
                                                                                                                            techniques from artificial intelligence to
                                  Our overall objective is the creation of a                                                record and abstract how experts do
                                  methodology and supporting open tool                                                      proofs in order to increase the
                                  platform for the cost effective rigorous                                                  proportion of cases where proofs are
                                  development of dependable complex                                                         constructed without (or with minimal)
Like · Comment · Share            software systems and services. We focus                Like · Comment · Share             human intervention. AI4FM is an EPSRC-
                                  on tackling complexity • caused by the                                                    funded research project, a joint effort…
                                  environment in which t...

                                                                                                Automated Testing shared a link.
                                                                                                February 1


                                                                                         http://homepages.cs.ncl.ac.uk/cliff.jones/


                                                                                           http://homepages.cs.ncl.ac.uk/cliff.jones/
                                                                                           homepages.cs.ncl.ac.uk

                                                                                           Much of his research at this time focused on formal (compositional)
                                                                                           development methods for concurrent systems. His major avenues of
                                                                                           current research are listed below.


                                                                                         Like · Comment · Share




                                                                             Earlier in 2013
Automated Testing shared a link.                                              Likes
        January 31                                                                    2013



https://www.scss.tcd.ie/Matthew.Hennessy/teaching/2013/slexter
nal2013/reading.php
                                                                                                                                            +3
                 Semantics of programming languages - 2012/13
                 Reading list - Computer Science - Trinity College
                                                                               Alonso Church      Objective Caml     F Sharp
                 Dubl
                 www.scss.tcd.ie

                 Trinity College Dublin: Computer Science Department:
                 Semantics of programming languages - 2012/13 Reading                 Automated Testing shared a link.
                 list                                                                 January 30

Like · Comment · Share
                                                                               http://elib.mi.sanu.ac.rs/files/journals/mv/202/mv943409.pdf


                                                                                 http://elib.mi.sanu.ac.rs/files/journals/mv/202/mv943409.pdf
        Automated Testing
                                                                                 elib.mi.sanu.ac.rs
        January 29


http://se.inf.ethz.ch/old/projects/tobias_widmer/
                                                                               Like · Comment · Share

Like · Comment · Share

                                                                                      Automated Testing shared a link.
                                                                                      January 28
        Automated Testing shared a link.
        January 28
                                                                               http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-737.pdf

http://bertrandmeyer.com/2012/04/11/domain-theory-the-
                                                                                 http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-737.pdf
forgotten-step-in-program-verification/                                          www.cl.cam.ac.uk


                                 Bertrand Meyer's technology+ blog
                                 » Blog Archive » Domain Theory:
                                                                               Like · Comment · Share
                                 the forgotten step in program v
                                 bertrandmeyer.com

                                 Program verification is making
                                 considerable progress but is hampered                Automated Testing shared a link.
                                 by a lack of abstraction in specifications.          January 28
                                 A crucial step is, almost always, absent
Like · Comment · Share           from the process; this omission is the
                                 principal obstacle to making verification     http://ebooks.cambridge.org/chapter.jsf?
                                 a standard component of everyday              bid=CBO9780511569883&cid=CBO9780511569883A012
                                 software development.
        Automated Testing shared a link.
                                                                                                  Cambridge Books Online - The Statement of the
        January 28
                                                                                                  Incompleteness Theorem
                                                                                                  ebooks.cambridge.org
http://www.amzi.com/
                                                                                                  The automatic verification of large parts of
                                                                                                  mathematics has been an aim of many
                 Amzi! inc. Embeddable Extendable Prolog, Logic                                   mathematicians from Leibniz to Hilbert. While Gödel's
                 Server, Knowledge Engineering, Rule Engines,                                     first incompleteness theorem showed that no
                 Artifici                                                                         computer program could automatically prove certain
                 www.amzi.com                                                  Like · Comment · Share theorems in mathematics, the advent of
                                                                                                  true
                                                                                                  electronic computers and s...
                 Amzi! inc. provides software and services for embedding
                 intelligent components that apply busines rules, diagnose
                 problems, recommend configurations, give advice,                     Automated Testing shared a link.
                 schedule events, monitor processes and more.                         January 28
Like · Comment · Share

                                                                               http://www.computational-semantics.eu/

        Automated Testing shared a link.
                                                                                                 Computational Semantics with Functional
        January 28
                                                                                                 Programming
                                                                                                 www.computational-semantics.eu
http://homepages.cwi.nl/~jve/problem5/
                                                                                                 ESSLLI Summer School Course, Ljubljana, Slovenia,
                                                                                                 August 2011. See the course description on the ESSLLI
  Challenging Imperative Programming with Algebra, Logic and                                     2011 homepage.
  Functions
  homepages.cwi.nl
                                                                               Like · Comment · Share
  ``How much land does a man need?'' asked Lev Tolstoi, and the answer
  turned out to be: surprisingly little. ``How many programming
  languages does a software designer need?'' The answer seems to be:
  surprisingly many. See below.                                                       Automated Testing shared a link.
                                                                                      January 28
Like · Comment · Share

                                                                               http://answers.yahoo.com/question/index?qid=1006030700479

        Automated Testing shared a link.
        January 28


http://en.wikipedia.org/wiki/Lambda_calculus
Lambda calculus - Wikipedia, the free
                 encyclopedia
                 en.wikipedia.org
                                                                                                       Like · Comment · Share
                 Lambda calculus (also written as λ-calculus or called "the
                 lambda calculus") is a formal system in mathematical
                 logic and computer science for expressing computation by
                 way of variable binding and substitution. First formulated
                 by Alonzo Church, lambda calculus found early successes        What is the difference between logic programming and
Like · Comment · in the area of c...
                 Share                                                          imperative programming.?
                                                                                answers.yahoo.com

                                                                                Logic programming Testing shared a link.
                                                                                       Automated (sometimes called logical programming) is
        Automated Testing shared a link.                                        programming that makes use of pattern-directed invocation of
                                                                                       January 28
        January 28                                                              procedures from assertions and goals. John McCarthy [1958] was the
                                                                                first to pub
                                                                              http://racket-lang.org/
http://users.soe.ucsc.edu/~cormac/
                                                                                                               The Racket Language
                      Cormac Flanagan Homepage                                                                 racket-lang.org
                      users.soe.ucsc.edu
                                                                                                               Racket is a modern programming
                                                                                                               language in the Lisp/Scheme family,
                                                                                                               suitable for a wide range of applications.
                                                                                                               Racket provides a rich language
                                                                                                               extension API, the DrRacket integrated
                                                                                                               development environment, and many
                                                                              Like · Comment · Share           batteries-included libraries.
Like · Comment · Share


                                                                                      Automated Testing shared a link.
        Automated Testing shared a link.                                              January 28
        January 28

                                                                              http://link.springer.com/book/10.1007/978-1-84628-692-6/page/1
http://classes.soe.ucsc.edu/cmps112/Winter07/
                                                                                               Semantics with Applications: An Appetizer -
  CMPS 112 - Comparative Programming Languages - Winter                                        Springer
  2007                                                                                         link.springer.com
  classes.soe.ucsc.edu

  Lectures: Tu/Th, 10:00-11:45am, Engineering 2, room 194Lab Sessions:
  Mondays 1:00-3:00pm and Thursdays 5:00-6:00pm, both in Baskin 105


Like · Comment · Share                                                        Like · Comment · Share




        Automated Testing shared a link.                                              Automated Testing shared a link.
        January 28                                                                    January 28


http://cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-                 http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html
26/
                                                                                                        Teach Yourself Scheme in Fixnum Days
                                                                                                        www.ccs.neu.edu
                    Programming Languages: Application and
                    Interpretation by Shriram Krishnamurthi
                                                                                                        A practical introduction to the programming
                    cs.brown.edu
                                                                                                        language Scheme
                   Programming Languages: Application and
                   Interpretation Copyright © 2003-07, Shriram
                   Krishnamurthi Creative Commons Attribution-
                   NonCommercial-ShareAlike 3.0 United States License
                   Version 2007-04-26                                         Like · Comment · Share
Like · Comment · Share


                                                                                      Automated Testing shared a link.
        Automated Testing shared a link.                                              January 26
        January 26
                                                                              http://mitpress.mit.edu/books/model-checking
http://d3s.mff.cuni.cz/teaching/program_analysis_verification/
                                                                                                    Model Checking | The MIT Press
                                                                                                    mitpress.mit.edu
                                  Teaching @ D3S - Department of
                                  Distributed and Dependable
                                                                                                    Model checking is a technique for verifying finite
                                  Systems
                                                                                                    state concurrent systems such as sequential circuit
                                  d3s.mff.cuni.cz
                                                                                                    designs and communication protocols. It has a
                                                                                                    number of advantages over traditional approaches
                                  Official web page of the Department of
                                                                                                    that are based on simulation, testing, and deductive
                                  Distributed and Dependable Systems,
                                                                                                    reasoning. In particular, model checking is autom...
                                  Charles University, Prague
                                                                              Like · Comment · Share
Like · Comment · Share


                                                                                      Automated Testing shared a link.
        Automated Testing shared a link.                                              January 26
        January 26
                                                                              http://eu.wiley.com/WileyCDA/WileyTitle/productCd-
http://www.pearsonhighered.com/educator/product/Concepts-of-                  0471137723,descCd-tableOfContents.html
Programming-Languages-10E/9780131395312.page
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design
Elevator pitch for testing software architecture and software design

More Related Content

What's hot (20)

10. cash flow in capital budgeting
10. cash flow in capital budgeting10. cash flow in capital budgeting
10. cash flow in capital budgeting
 
mutual funds
mutual fundsmutual funds
mutual funds
 
Mergers and acquisitions
Mergers and acquisitionsMergers and acquisitions
Mergers and acquisitions
 
A PERFORMANCE EVALUATION OF MUTUAL FUND
A PERFORMANCE EVALUATION OF MUTUAL FUND A PERFORMANCE EVALUATION OF MUTUAL FUND
A PERFORMANCE EVALUATION OF MUTUAL FUND
 
MERGERS AND TYPES OF MERGERS
MERGERS AND TYPES OF MERGERSMERGERS AND TYPES OF MERGERS
MERGERS AND TYPES OF MERGERS
 
Short term financing
Short term financingShort term financing
Short term financing
 
Leasing
LeasingLeasing
Leasing
 
The Market for Corporate Control - Quick Guide
The Market for Corporate Control - Quick GuideThe Market for Corporate Control - Quick Guide
The Market for Corporate Control - Quick Guide
 
Investment Securities
Investment SecuritiesInvestment Securities
Investment Securities
 
Investment management
Investment managementInvestment management
Investment management
 
Tutorial on Bank Failures and Bank Rescues
Tutorial on Bank Failures and Bank RescuesTutorial on Bank Failures and Bank Rescues
Tutorial on Bank Failures and Bank Rescues
 
Corporate restructuring
Corporate restructuringCorporate restructuring
Corporate restructuring
 
Role of finance manager
Role of finance managerRole of finance manager
Role of finance manager
 
Corporate control market
Corporate control marketCorporate control market
Corporate control market
 
camel model
camel modelcamel model
camel model
 
Topic 4 internal control system (ics)
Topic 4 internal control system (ics)Topic 4 internal control system (ics)
Topic 4 internal control system (ics)
 
Introduction to corporate finance
Introduction to corporate financeIntroduction to corporate finance
Introduction to corporate finance
 
Merger theories
Merger theoriesMerger theories
Merger theories
 
Hostile takeover defenses
Hostile takeover defensesHostile takeover defenses
Hostile takeover defenses
 
Mutual funds vs Other Investments
Mutual funds vs Other Investments Mutual funds vs Other Investments
Mutual funds vs Other Investments
 

Similar to Elevator pitch for testing software architecture and software design

Software engineering
Software engineeringSoftware engineering
Software engineeringh2eEdgar
 
Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerKurt Solarte
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle, awikhan12
 
Lecture 01
Lecture 01Lecture 01
Lecture 01Rana Ali
 
Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Alejandro S.
 
A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guideTriet Ho
 
Introduction to Software Architecture
Introduction to Software ArchitectureIntroduction to Software Architecture
Introduction to Software ArchitectureYuriy Guts
 
The tension between agile and architecture
The tension between agile and architectureThe tension between agile and architecture
The tension between agile and architecturePeter Hendriks
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semesterrajesh199155
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering noteNeelamani Samal
 
مناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجياتمناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجياتEiman Idris
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)stanbridge
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and DesignRa'Fat Al-Msie'deen
 

Similar to Elevator pitch for testing software architecture and software design (20)

Software engineering
Software engineeringSoftware engineering
Software engineering
 
Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements Composer
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle,
 
Lecture 01
Lecture 01Lecture 01
Lecture 01
 
Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...
 
A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guide
 
Introduction to Software Architecture
Introduction to Software ArchitectureIntroduction to Software Architecture
Introduction to Software Architecture
 
The tension between agile and architecture
The tension between agile and architectureThe tension between agile and architecture
The tension between agile and architecture
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
Anti-Patterns
Anti-PatternsAnti-Patterns
Anti-Patterns
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semester
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
 
مناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجياتمناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجيات
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
Basics of se
Basics of seBasics of se
Basics of se
 

More from Zarko Acimovic

Defect prevention software
Defect prevention softwareDefect prevention software
Defect prevention softwareZarko Acimovic
 
Metrics for example Java project
Metrics for example Java projectMetrics for example Java project
Metrics for example Java projectZarko Acimovic
 
VizzMaintenance Eclipse Plugin Metrics
VizzMaintenance Eclipse Plugin MetricsVizzMaintenance Eclipse Plugin Metrics
VizzMaintenance Eclipse Plugin MetricsZarko Acimovic
 
Software defect prevention example project
Software defect prevention example projectSoftware defect prevention example project
Software defect prevention example projectZarko Acimovic
 
Example of-non-cohesive-methods
Example of-non-cohesive-methodsExample of-non-cohesive-methods
Example of-non-cohesive-methodsZarko Acimovic
 
Example of-method-with-cyclomatic-complexity-202
Example of-method-with-cyclomatic-complexity-202Example of-method-with-cyclomatic-complexity-202
Example of-method-with-cyclomatic-complexity-202Zarko Acimovic
 
Example of-method-with-cyclomatic-complexity-17
Example of-method-with-cyclomatic-complexity-17Example of-method-with-cyclomatic-complexity-17
Example of-method-with-cyclomatic-complexity-17Zarko Acimovic
 

More from Zarko Acimovic (7)

Defect prevention software
Defect prevention softwareDefect prevention software
Defect prevention software
 
Metrics for example Java project
Metrics for example Java projectMetrics for example Java project
Metrics for example Java project
 
VizzMaintenance Eclipse Plugin Metrics
VizzMaintenance Eclipse Plugin MetricsVizzMaintenance Eclipse Plugin Metrics
VizzMaintenance Eclipse Plugin Metrics
 
Software defect prevention example project
Software defect prevention example projectSoftware defect prevention example project
Software defect prevention example project
 
Example of-non-cohesive-methods
Example of-non-cohesive-methodsExample of-non-cohesive-methods
Example of-non-cohesive-methods
 
Example of-method-with-cyclomatic-complexity-202
Example of-method-with-cyclomatic-complexity-202Example of-method-with-cyclomatic-complexity-202
Example of-method-with-cyclomatic-complexity-202
 
Example of-method-with-cyclomatic-complexity-17
Example of-method-with-cyclomatic-complexity-17Example of-method-with-cyclomatic-complexity-17
Example of-method-with-cyclomatic-complexity-17
 

Recently uploaded

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Recently uploaded (20)

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

Elevator pitch for testing software architecture and software design

  • 1. Why and how should we test software architecture and software design? Zarko Acimovic
  • 2. Software Defects Potentials As an example for function point measure Win 7 has ~100K Function Points, Microsoft Word has ~5K Function Points. The technology assumptions underlying below table assume CMMI level 1 and a traditional waterfall development method. Source: Chapter 2. Estimating and Measuring Software Quality. The Economics of Software Quality, ISBN: 9780132564762 , Pages 40, 41, Capers Jones, Olivier Bonsignour http://www.amazon.com/Economics-Software-Quality-Capers-Jones/dp/0132582201 http://www.informit.com/store/product.aspx?isbn=0132582201 Defects per Function Point Percent of Total Defects Requirement Defects 1.15 9.58% Architectural Defects 0.25 2.08% Design Defects 1.50 12.50% Coding Defects 2.00 16.67% Test Plan and Test Case Defects 1.85 15.42% User Documentation Defects 0.75 6.25% Database Defects 2.75 22.92% Website Defects 1.75 14.58% TOTAL 12.00 100.00%
  • 3. ms Te te ch Sys n ic DoD Architecture al Operational Framework Overview Alessio Mosto May, 2004 Source: http://www.disi.unige.it/person/ReggioG/ISII04WWW/DODAF.ppt
  • 4. Architecture Definition  “The structure of components, their relationships, and the principles and guidelines governing their design and evolution over time.” DoD Integrated Architecture Panel, 1995, based on IEEE STD 610.12  “An architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.” IEEE STD 1471-2000 Alessio Mosto DoD Architectural Framework 2
  • 5. Architecture vs. Design  System Architecture is used to:  Make buy decisions  Discriminate between options  “Discover” the true requirements  Drive one or more systems to a common “use” or purpose  System Design is used to:  Develop system components  Build the system  Understand configuration changes as the system is modified Alessio Mosto DoD Architectural Framework 3
  • 6. Basic Principles - An Integrated Architecture with Three Views Activities/ Operational Tasks Operational Elements View Identifies What Needs To Be Done And Who Does It Information Flow Systems Data Flow Standards Rules Systems Technical X View X Z Y Standards View Y Relates Systems and Characteristics Y Prescribes Standards and to Operational Needs X Conventions Communications Conventions Alessio Mosto DoD Architectural Framework 4
  • 7. Architecture Views Alessio Mosto DoD Architectural Framework 5
  • 8. Software Architecture Defects Source: A Dissertation Presented to the Graduate School of Clemson University In Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy Computer Science by Kyungsoo Im December 2010 Links http://etd.lib.clemson.edu/documents/1306855520/ http://etd.lib.clemson.edu/documents/1306855520/Im_clemson_0050D_10926.pdf ArchStudio and ArchLight ! http://www.isr.uci.edu/projects/archstudio/whatis.html
  • 9.
  • 10.
  • 11.
  • 12. Software Design Defects Sources http://www.cslhr.nu.edu.pk/GCCS/Spring2010/papers/Kamran.pdf http://www.scribd.com/doc/17402321/Software-Design-Defects-2 http://www.ptidej.net/Members/mohanaou/paper/ASE06/Moha06-ASE.pdf http://www-etud.iro.umontreal.ca/~ptidej/yann-gael/Work/Publications/Documents/ASE06.ppt.pdf
  • 13. 6/24/2009 Software Design Defects Software Design Defects Design Patterns are “good” solutions to recurring design problems ◦ Where you want to be in terms of good design Design Defects are “bad” solutions to recurring problems ◦ Where you should not find yourself in software development Design Defects lessen the quality of OO architectures and impede their evolution and their maintenance Patterns and Software Defects AntiPatterns To Err Is Human AntiPatterns provide patterns that have negative consequences on software 2 categories: development effort ◦ High-level (global) problems: AntiPatterns ◦ Reality of a good number of software projects ◦ Low-level (local) problems: Code Smells Help identifying problems in software “ deviations from specifications or expectations ◦ Bad design results from common mistakes and misunderstandings which might lead to failures in operation ” Provide common vocabulary to discuss They describe in general what not to do problems and their solutions in software Arise due to lack of knowledge and experience industry Understanding AntiPatterns provides the A good form of problem-solving approach knowledge to prevent or recover from them Well- Well-known AntiPatterns AntiPatterns Root causes AntiPatterns are all around us. They’re often ◦ Haste used as tools for social control. Good design is a product of careful study Trimming budgets, unrealistic committeements SOCIAL AntiPatterns Leads to compromises in software quality ◦ Apathy ◦ Criminal Not caring about solving known problems ◦ Narrow-mindedness ◦ Drug Addict Refusal to accept widely known solutions ◦ Laziness (Sloth) ◦ Witch Configuration management ◦ Ignorance ◦ PickPocket Failing to seek understanding ◦ Pride Not-invented-here syndrome: avoids using or buying already existing products 1
  • 14. 6/24/2009 AntiPatterns The Blob Blob (Huge Class) Describe context and causes “ Procedural-style design Describe symptoms to detect an leads to one object with a lion’s share of the AntiPattern in legacy software responsibilities while most other objects only hold Describe their consequences data or execute simple Describe a roadmap for their solution processes ” Large controller class Many fields and methods with a low cohesion In this course, we shall only cover Dependent on the data AntiPatterns related to software code stored in associated data classes The Blob The Blob Causes and Consequences Library_Main_Control Item Person Current_Catalog Title Typical Causes Name Current_Item ISBN User_ID User_ID Author ◦ Lack of proper Object-Oriented architecture Items_Out Fine_Amount Publisher Fines Etc. Cost Data_In ◦ Prototype software evolves into a product … Do_Inventory() Check_Out_Item(Item) Qty … ◦ Lack of architectural enforcement Check_In_Item(Item) Add_Item(Item) Consequences Delete_Item(Item) Catalog Print_Catalog() Topic ◦ Modular continuity is compromised Sort_Catalog() Search_Catalog(Params) Inventory … ◦ Too complex for reuse and testing Print() Issue_Library_Card() ◦ Expensive to load into memory even for small Calculate_Late_Fine() operations The Blob The Blob - Solution Solution Library_Main_Control Item Avoid it Person Current_Catalog Title Name Current_Item ISBN ◦ Managers should review program design User_ID User_ID Author Items_Out Publisher regularly Fines Fine_Amount Etc. Cost … Data_In Refactor it Do_Inventory() Check_Out_Item(Item) Qty … Check_In_Item(Item) ◦ Move behavior away from the Blob Add_Item(Item) Delete_Item(Item) ◦ Construct cohesive classes: cohesive set of Print_Catalog() Catalog Topic attributes and methods are encapsulated Sort_Catalog() Search_Catalog(Params) Inventory … together Print() Issue_Library_Card() ◦ Remove far-coupling Calculate_Late_Fine() 2
  • 15. 6/24/2009 Spaghetti Code Spaghetti Code Causes and Consequences “ Ad hoc software structure makes it difficult Typical Causes to extend and optimize code.” Code with very little software structure, ◦ Inexperience with Object-Oriented design lack clarity technologies Implementation invokes a process flow ◦ Ineffective code reviews Lack of structure : no inheritance, no ◦ No initial software design reuse, no polymorphism Long methods process oriented with no Consequences parameters and low cohesion ◦ Code reuse is difficult Procedural names of classes and methods ◦ Follow-on maintenance efforts contribute to the Negligible degree of interaction between problem objects Use of global variables for processing ◦ Software reaches point of diminishing returns: the effort involved to maintain existing code exceeds the cost of developing a new “ground up” solution public boolean startElement(int, XMLAttrList) if (prefix == -1) { ... throws Exception { if (!fValidating && !fNamespacesEnabled) { return false; if (elementURI != -1) { fStringPool.setURIForQName(...); •No Objects •Process Flow Spaghetti Code } } if (contentSpecType == -1 && fValidating) { } else { •Conditionals •Complexity Solution ... ... } if (elementURI == -1) { •Cannot be The best way is to prevent spaghetti code by first if (... && elementIndex != -1) { ... } ... reused thinking and then developing. To avoid: } } fStringPool.setURIForQName(.elementURI); ◦ Domain model even when it is well-understood if (DEBUG_PRINT_ATTRIBUTES) { ... if (attrIndex != -1) { ◦ OO Analysis } int index = attrList.getFirstAttr(attrIndex); if (fNamespacesEnabled) { while (index != -1) { ◦ OO Design int attName = attrList.getAttrName(index); fNamespacesScope.increaseDepth(); if (attrIndex != -1) { if (!fStringPool.equalNames(...)) { ◦ Objects should be sufficiently refined ... int index = attrList.getFirstAttr(attrIndex); if (attPrefix != fNamespacesPrefix) { When adding new features, remove code defects while (index != -1) { if (attPrefix == -1) { ... ... Write accessor functions for member variables if (fStringPool.equalNames(...)) { } ... else { Refactor code into methods } if (uri == -1) { else {...} … Remove obsolete code } } index = attrList.getNextAttr(index); fStringPool.setURIForQName(attName, uri); Rename classes, functions, data types to conform if (fElementDepth >= 0) { } } fElementDepth++; to industry standards if (fElementDepth == fElementTypeStack.length) { int prefix = ... fStringPool.getPrefixForQName(elementType); } }}} int elementURI; return contentSpecType == fCHILDRENSymbol; } Functional Decomposition Functional Decomposition Causes and Consequences One main routine that calls several other Typical Causes subroutines ◦ No use of OO concepts like inheritance or Invoked subroutines are implemented as polymorphism classes ◦ Lack of understanding of OO concepts Classes with single action such as a ◦ Lack of architecture enforcement function Consequences Attributes are private and used only ◦ Difficult to reuse inside the class ◦ Expensive to maintain The resulting code resembles a structural ◦ no way to clearly document (or explain) how the system works language like C and is incredibly complex 3
  • 16. 6/24/2009 Functional Decomposition Functional Decomposition Solution A customer loan scenario Find the original Use Cases to ascertain Adding a new customer features from user view point Updating a customers address OO reengineering process Calculating a loan to a customer Find matching OO design model Calculating the interest on a loan Combine classes which assist each other Calculating a payment schedule for a Combine classes which try to achieve the customer loan same design objective Altering a payment schedule Find similar subsystems (reuse of code) Functional Decomposition OO Version Cut-and- Cut-and-Paste Programming Cut-and- Cut-and-Paste Programming Causes and Consequences “Man, you guys work fast. Over 400,000 lines of Typical Causes code in just three weeks is outstanding progress.” ◦ Reusable code is difficult to create and organizations prefer Cut-and-Paste Programming is a short term benefits very common degenerate form of ◦ Easier to modify existing code than writing from scratch software reuse that causes maintenance nightmares. ◦ Lack of abstraction in developers Less experienced programmers ◦ Lack of knowledge of tools and technologies, hence working examples are modified to create new components learn by changing code of experienced developers ◦ Lack of forward thinking Presence of several similar Consequences segments of code ◦ Software defects and bugs are replicated Creates code duplication ◦ Difficult to locate all instances of a bug Positive short-term consequences ◦ Code reviews and inspections are needlessly extended such as boosting line count metrics ◦ Excessive software maintenance costs ◦ Duplication of testing, review, bug fixing efforts 4
  • 17. 6/24/2009 Cut-and- Cut-and-Paste Programming Swiss Army Knife Solution A Swiss Army knife is a Three step approach brand of multi-function ◦ Identify Code duplication pocket knife or multi-tool. Excessively complex class ◦ Refactoring duplicates into libraries or interface components for black-box reuse Designer attempts to ◦ Configuration management : code inspection, provide for all possible uses of the class. reviews and validation efforts in future to Large number of interface avoid Cut-and-Paste Programming signatures No clear abstraction or focus of the class interface Swiss Army Knife Swiss Army Knife Causes and Consequences Solution Causes Describe a profile for the class ◦ No focused responsibility Profile documents the way to use a ◦ Class attempting to provide too much complex technology functionality Consequences Profile for an interface describe the ◦ More != Better signatures and parameter values ◦ Confusion ◦ Maintenance problems ◦ Each interface requires implementation of items on that interface Conclusions Code Smells “If it stinks, change it” AntiPatterns provide patterns that have negative consequences on software development effort Each AntiPattern includes a solution + solution pair Hint that something has gone wrong ◦ AntiPattern Solution Generates mostly negative consequences Opportunities for improving program ◦ Refactored Solution Generates mostly positive design benefits AntiPatterns are useful for refactoring, migration, Code smells indicate the need for the upgrade, and reengineering application of a possible refactoring 5
  • 18. 6/24/2009 Code Smells - Examples Code Smells – More Examples Duplicate Code Long Parameter List ◦ Duplication of bugs, tests, reviews ◦ Same (or nearly) code in multiple places ◦ Programs harder to understand ◦ Frequently the result of cut-and-paste coding ◦ Difficult to reuse and change Long Method ◦ Parameter lists should be shorter in OO ◦ OO puts premium on short methods programs than in traditional programs ◦ Long procedures always harder to understand Divergent Change Large Class ◦ Class has poor cohesion ◦ One class commonly changed in different ◦ Too many instance variables or methods means a class is ways for different reasons doing too much ◦ Some methods changed in one case ◦ Class interface does not provide consistent level of abstraction ◦ Other methods changed in another Code Smells – More Examples Feature Envy ◦ Method seems more interested in a class other than the one it is in ◦ Most common focus is data (lots of getter calls) Data Clumps ◦ Same data items in multiple classes ◦ Parameter lists of several methods ◦ If after deleting one from clump the rest wouldn’t make sense, a clear candidate for refactoring 6
  • 20.
  • 21. ArgoUML Design Critics Chapter 15. The Critics Table of Contents 15.1. Introduction 15.1.1. Terminology 15.1.2. Design Issues 15.2. Uncategorized 15.3. Class Selection 15.3.1. Wrap DataType 15.3.2. Reduce Classes in namespace <namespace> 15.3.3. Clean Up Diagram 15.4. Naming 15.4.1. Resolve Association Name Conflict 15.4.2. Revise Attribute Names to Avoid Conflict 15.4.3. Change Names or Signatures in a model element 15.4.4. Duplicate End (Role) Names for an Association 15.4.5. Role name conflicts with member 15.4.6. Choose a Name (Classes and Interfaces) 15.4.7. Name conflict in a namespace 15.4.8. Choose a Unique Name for a model element (Classes and Interfaces) 15.4.9. Choose a Name (Attributes) 15.4.10. Choose a Name (Operations) 15.4.11. Choose a Name (States) 15.4.12. Choose a Unique Name for a (State related) model element 15.4.13. Revise Name to Avoid Confusion
  • 22. 15.4.14. Choose a Legal Name 15.4.15. Change a model element to a Non-Reserved Word 15.4.16. Choose a Better Operation Name 15.4.17. Choose a Better Attribute Name 15.4.18. Capitalize Class Name 15.4.19. Revise Package Name 15.5. Storage 15.5.1. Revise Attribute Names to Avoid Conflict 15.5.2. Add Instance Variables to a Class 15.5.3. Add a Constructor to a Class 15.5.4. Reduce Attributes on a Class 15.6. Planned Extensions 15.6.1. Operations in Interfaces must be public 15.6.2. Interfaces may only have operations 15.6.3. Remove Reference to Specific Subclass 15.7. State Machines 15.7.1. Reduce Transitions on <state> 15.7.2. Reduce States in machine <machine> 15.7.3. Add Transitions to <state> 15.7.4. Add Incoming Transitions to <model element> 15.7.5. Add Outgoing Transitions from <model element> 15.7.6. Remove Extra Initial States 15.7.7. Place an Initial State 15.7.8. Add Trigger or Guard to Transition 15.7.9. Change Join Transitions 15.7.10. Change Fork Transitions 15.7.11. Add Choice/Junction Transitions 15.7.12. Add Guard to Transition 15.7.13. Clean Up Diagram 15.7.14. Make Edge More Visible 15.7.15. Composite Association End with Multiplicity >1 15.8. Design Patterns
  • 23. 15.8.1. Consider using Singleton Pattern for <class> 15.8.2. Singleton Stereotype Violated in <class> 15.8.3. Nodes normally have no enclosers 15.8.4. NodeInstances normally have no enclosers 15.8.5. Components normally are inside nodes 15.8.6. ComponentInstances normally are inside nodes 15.8.7. Classes normally are inside components 15.8.8. Interfaces normally are inside components 15.8.9. Objects normally are inside components 15.8.10. LinkEnds have not the same locations 15.8.11. Set classifier (Deployment Diagram) 15.8.12. Missing return-actions 15.8.13. Missing call(send)-action 15.8.14. No Stimuli on these links 15.8.15. Set Classifier (Sequence Diagram) 15.8.16. Wrong position of these stimuli 15.9. Relationships 15.9.1. Circular Association 15.9.2. Make <association> Navigable 15.9.3. Remove Navigation from Interface via <association> 15.9.4. Add Associations to <model element> 15.9.5. Remove Reference to Specific Subclass 15.9.6. Reduce Associations on <model element> 15.9.7. Make Edge More Visible 15.10. Instantiation 15.11. Modularity 15.11.1. Classifier not in Namespace of its Association 15.11.2. Add Elements to Package <package> 15.12. Expected Usage 15.12.1. Clean Up Diagram 15.13. Methods 15.13.1. Change Names or Signatures in <model element>
  • 24. 15.13.2. Class Must be Abstract 15.13.3. Add Operations to <class> 15.13.4. Reduce Operations on <model element> 15.14. Code Generation 15.14.1. Change Multiple Inheritance to interfaces 15.15. Stereotypes 15.16. Inheritance 15.16.1. Revise Attribute Names to Avoid Conflict 15.16.2. Remove <class>'s Circular Inheritance 15.16.3. Class Must be Abstract 15.16.4. Remove final keyword or remove subclasses 15.16.5. Illegal Generalization 15.16.6. Remove Unneeded Realizes from <class> 15.16.7. Define Concrete (Sub)Class 15.16.8. Define Class to Implement <interface> 15.16.9. Change Multiple Inheritance to interfaces 15.16.10. Make Edge More Visible 15.17. Containment 15.17.1. Remove Circular Composition 15.17.2. Duplicate Parameter Name 15.17.3. Two Aggregate Ends (Roles) in Binary Association 15.17.4. Aggregate End (Role) in 3-way (or More) Association 15.17.5. Wrap DataType
  • 25. Follow me on Facebook page “Automated Testing” https://www.facebook.com/AutomatedTesting
  • 26. Search for people, places and things Automated Testing Home Admin Panel Edit Page Build Audience Help Show Ads Manager See Your Ad Here Automated Testing Automated Testing as Program Verification. Program Verification problem is decidable if P is finite-... Like · Automated Testing likes this. Get More Likes Now Automated Testing February 10 likes · 1 talking about this 2013 Launched Computers/Internet Website Automated Testing as Program Verification. Program Verification problem is decidable if P is finite-state with model-checking techniques. But real programs are not finite-state, they have arbitrarily complex inputs 10 and dynamic memory allocation About Photos Likes Highlights Status Photo / Video Event, Milestone + Recent Posts by Others on Automated Testing See All What's on your mind? Zarko Acimovic http://www.verifysoft.com/en.html Wednesday at 2:24pm Automated Testing shared a link. Zarko Acimovic 9 minutes ago http://hermit-reasoner.com/ February 15 at 11:26am http://www-dse.doc.ic.ac.uk/cgi-bin/moin.cgi/sue More Posts sue - DSE Imperial College www-dse.doc.ic.ac.uk Likes See All Distributed Software Engineering Section Department of Computing Imperial College London Huxley Building Room 568 180 Queen's Gate, London SW7 2AZ, UKDirections to the DepartmentStreetmap link Phone: Erlang Programming +44 20 7594 8264 Fax: +44 20 7581 8024 Community Alonso Church Like · Comment · Share Public Figure Objective Caml Automated Testing shared a link. Interest 40 minutes ago Implementing Automated Software Testing http://sourceforge.net/projects/czt/ Book Community Z Tools Haskell sourceforge.net Interest Tool support for the Z formal notation Automated Testing shared a link. Like · Comment · Share about an hour ago http://www.doc.ic.ac.uk/~ar3/lectures/ProgrammingII/NewCours Automated Testing shared a link. eStructure.html about an hour ago Alessandra Russo's Software Engineering Course http://www.doc.ic.ac.uk/~jnm/book/index.html www.doc.ic.ac.uk These lecture notes are designed for the second part of the course Object Oriented Programming given to first year undergraduate students at Imperial College. The first half of this course is taught by Alastair
  • 27. Donaldson. His lecture notes are electronically available on CATE. The second part of thi... Like · Comment · Share Like · Comment · Share Automated Testing shared a link. 16 hours ago Concurrency - State Models & Java Programs www.doc.ic.ac.uk http://www.cs.ru.nl/ftfjp/ Automated Testing 16 hours ago Formal Techniques for Java-like Programs (FTfJP) www.cs.ru.nl http://www.cs.ru.nl/ftfjp/ Starting 2002 the name of the workshop has been slightly changed - from "Formal Techniques for Java Programs" to "Formal Techniques for Java-like Programs" - to include not just work on Java, but also work on Like · Comment · Share related languages such as C# or Scala. Like · Comment · Share Automated Testing shared a link. 16 hours ago Automated Testing http://www.uppaal.com/index.php?sida=186&rubrik=93 16 hours ago UP4ALL Inc - uppaal.com http://csd.informatik.uni-oldenburg.de/~moby/ www.uppaal.com UPPAAL is an integrated tool environment for modeling, simulation and, Like · Comment · Share verification of real-time embedded systems. Typical application areas of UPPAAL includes real-time controllers and communication protocols in particular, those where timing aspects are critical. Automated Testing shared a link. Thursday Like · Comment · Share http://www.informatik.uni- bremen.de/agbkb/forschung/formal_methods/index_e.htm Automated Testing shared a link. Wednesday Research Area "Formal Methods for Software Development" www.informatik.uni-bremen.de http://www.springer.com/computer/swe/book/978-0-85729-276- 6 The main focus of research in formal methods at our group is algebraic specification, based on the CASL language, and development of effective tool support for all aspects of formal development. Specification of Software Systems www.springer.com Like · Comment · Share Recent advances in software specification methods, model checking, and theorem proving have generated new tools for the use of formal methods in both industry and academia. Yet, in order to choose the techniques Automated Testing shared a link. most appropriate ... March 5 Like · Comment · Share http://www.locmetrics.com/index.html Automated Testing shared a link. http://www.locmetrics.com/index.html March 5 www.locmetrics.com http://www.locmetrics.com/alternatives.html Like · Comment · Share LOC Metrics - Alternative Tools www.locmetrics.com Automated Testing shared a link. LocMetrics is a simple tool for counting lines of code in C#, Java, and March 1 C++. http://www.flowgate.net/?lang=es&seccion=herramientas Like · Comment · Share [Flowgate Consulting] Servicios de consultoria en TI Automated Testing shared a link. www.flowgate.net February 28 http://www.lispworks.com/ LispWorks Like · Comment · Share www.lispworks.com New features in LispWorks 6.1 include environment access, high-quality Automated Testing shared a link. drawing including anti-aliasing, February 28 exporting various image formats, extensions to symmetric multiprocessing and a 64-bit FreeBSD port. http://weitz.de/ Like · Comment · Share
  • 28. Edi Weitz Automated Testing shared a link. weitz.de February 28 Software, books, photos, and more http://www.cliki.net/ Like · Comment · Share CLiki: index www.cliki.net Automated Testing shared a link. CLiki is a Common Lisp wiki. It contains resources for learning about and February 28 using the programming language Common Lisp, and information about DFSG-compliant free software implemented in Common Lisp. http://cs.gmu.edu/~sean/book/metaheuristics/ Like · Comment · Share Essentials of Metaheuristics cs.gmu.edu Automated Testing shared a link. Please always include the URL—it's the only unique February 28 identifier to the text! Note the lack of edition number: I expect these to change very rapidly, and Google Scholar and Citeseer both have trouble with fast- http://www.franz.com/ changing editions. If you prefer BibTeX: @Book{ Luke2009Metaheuristics, author = { Sean Luke ... Like · Comment · Share About Franz Inc. www.franz.com Franz is a leading vendor of Semantic Web Technology Automated Testing shared a link. featuring the AllegroGraph RDF Store triple store February 28 database, and dynamic object-oriented Common Lisp development tools including Allegro Common Lisp with AllegroCache, an Object Database that provides Object http://cs.gmu.edu/~sean/lisp/ Persistence in Lisp, native to the langa... Like · Comment · Share Lisp at GMU cs.gmu.edu Automated Testing shared a link. Lisp runs fine on mason.gmu.edu (type lisp). But only use February 28 Lisp on Mason to verify your code, not for development. Instead, do development on your own machine -- it's much less painful. However, in Prof. Luke's classes, your http://letoverlambda.com/index.cl Lisp homework and projects must compile and run properly on Mason for them t... Like · Comment · Share Let Over Lambda letoverlambda.com Let Over Lambda (ISBN 978-1-4357-1275-1, 376+iv pp.) is one of the Automated Testing shared a link. most hardcore computer programming books out there. Starting with the February 27 fundamentals, it describes the most advanced features of the most advanced language: COMMON LISP. The point of this book is to expose you to ideas that you might o... http://cs.brown.edu/~jes/book/ Like · Comment · Share Models of Computation: Exploring the Power of Computing cs.brown.edu Automated Testing shared a link. In Models of Computation:Exploring the Power of Computing, John February 27 Savage re-examines theoretical computer science, offering a fresh approach that gives priority to resource tradeoffs and complexity classifications over the structure of machines and their relationships to http://cs.brown.edu/~jes/book/pdfs/ModelsOfComputation_Chapt languages. This viewpoint refl... er4.pdf Like · Comment · Share http://cs.brown.edu/~jes/book/pdfs/ModelsOfComputation_C hapter4.pdf cs.brown.edu Automated Testing shared a link. February 27 Like · Comment · Share http://www.google.rs/search? q=%22%22&oq=%22%22&sourceid=chrome&client=ubuntu&ch annel=cs&ie=UTF- Automated Testing shared a link. 8#client=ubuntu&hs=OiJ&channel=cs&sclient=psy- February 27 ab&q=Program+verification+is+decidable+if+P+is+finite- stae&oq=Program+verification+is+decidable+if+...See More http://research.microsoft.com/en-us/projects/chess/ "" - Google претрага www.google.rs CHESS - Microsoft Research research.microsoft.com A concurrency testing tool for finding and reproducing Heisenbugs. CHESS repeatedly runs a concurrent test ensuring that every run takes a different interleaving. If an interleaving results in an error, CHESS can reproduce the Like · Comment · Share interleaving for improved debugging. Like · Comment · Share Automated Testing February 27
  • 29. http://research.microsoft.com/en-us/projects/chess/ Automated Testing shared a link. February 25 Like · Comment · Share http://www.cambridge.org/gb/knowledge/isbn/item1112106/? site_locale=en_GB Logic in Computer Science www.cambridge.org Recent years have seen the development of powerful tools for verifying hardware and software systems, as companies worldwide realise the need for improved means of validating their products. There is increasing demand for training in basic methods in formal reasoning so that students can gain profic... Like · Comment · Share Earlier in February Zarko Acimovic shared a link. Automated Testing February 15 February 14 http://hermit-reasoner.com/ John Hughes. Why functional programming matters - Google search HermiT Reasoner: Home hermit-reasoner.com Like · Comment · Share HermiT is reasoner for ontologies written using the Web Ontology Language (OWL). Given an OWL file, HermiT can determine whether or not the ontology is consistent, identify subsumption relationships Automated Testing shared a link. between classes, and much more. February 14 Like · Comment · Share http://www.amazon.com/Purely-Functional-Structures-Chris- Okasaki/dp/0521663504 Automated Testing shared a link. Purely Functional Data Structures February 14 www.amazon.com Most books on data structures assume an imperative http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf "Purely language such as C or C++. However, data structures for Functional Data Structures" these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf point of view of functional languag... www.cs.cmu.edu Like · Comment · Share Like · Comment · Share Automated Testing shared a link. February 14 Automated Testing shared a link. http://okasaki.blogspot.com/ February 14 Teaching, Playing, and Programming http://www.sonarsource.com/ okasaki.blogspot.com I think you’ll enjoy this game, Thunderstone. I’ve been playing it a lot SonarSource - Continuous with my son. Like Race for the Galaxy, this one works very well with two Inspection of Code Quality players, but can also handle more players. (Predictably, with more www.sonarsource.com players, it becomes very chaotic, especially when thieves are in play…) I’m so certain… SonarSource provides applications and services for continuous inspection of Like · Comment · Share code quality. Its open source Sonar platform and commercial products help customers to perform development and Like · Comment · Share long-term maintenance of software at a lower cost and with reduced risk. Automated Testing shared a link. February 12 Automated Testing shared a link. scg.unibe.ch/archive/famoos/handbook/4handbook.pdf February 11 The FAMOOS Object-Oriented Reengineering Handbook http://xray.inf.usi.ch/xray.php http://scg.unibe.ch/archive/famoos/handbook/4handbook.pdf Software is inherently intangible. Systems can be composed of a scg.unibe.ch huge amount of software entities linked together by different
  • 30. kinds of dependencies. Software designers use visualization tools in order to rai...See More Like · Comment · Share Jacopo Malnati, X-Ray 1.0.4.1 xray.inf.usi.ch Automated Testing shared a link. February 11 Website of Jacopo Malnati http://jhave.org/ JHAVÉ is a java application that renders algorithm visualizations. Students explore algorithms by viewing visual representations of data, controlling movement and by Like · Comment · Share responding to pop-up questions. We provide a large colle...See More JHAVE: Home Page jhave.org Automated Testing shared a link. February 10 JHAVE http://www.arisa.se/index.php Goal of ARiSA™ - Applied Research in System Analysis - is to leverage quality management on software and information Like · Comment · Share systems engineering. We provide seminars, methods, and development tools supporting the effi...See More Automated Testing shared a link. February 10 ARiSA AB www.arisa.se http://www.arisa.se/compendium/quality-metrics- Målet för ARiSA™ är att utnyttja kvalitetshantering av framtagning compendium.html mjukvaru- och informationssystem. Vi tillhandahåller seminarier, metoder och Compendium of Software Quality Standards and Metrics - utvecklingsverktyg som stödjer effektiv Version 1.0 produktion och underhåll av högkvalitativ www.arisa.se Like · Comment · Share mjukvara. Compendium of Software Quality Standards and Metrics - Version 1.0 Automated Testing shared a link. Like · Comment · Share February 4 http://research.microsoft.com/en-us/projects/specsharp/ Automated Testing shared a link. February 4 Spec# - Microsoft Research research.microsoft.com http://types.cs.washington.edu/jsr308/ Spec# is a formal language for API contracts (influenced by AsmL, JML and Eiffel), which extends C# with constructs for non-null types, Type Annotations (JSR 308) and the Checker Framework preconditions, postconditions, object invariants, and model programs types.cs.washington.edu (behavioral contracts that take the history of the entire run into account). Spec# comes with a... The Java 6 annotation syntax is useful but limited. The Type Annotations syntax permits annotations to be written in more places, such as generic Like · Comment · Share type arguments: List<@NonNull Object>. Programmers can use type annotations to write more informative types, and then tools such as type-checkers can det… Automated Testing shared a link. Like · Comment · Share February 4 http://groups.csail.mit.edu/pag/daikon/ Automated Testing shared a link. February 4 The Daikon dynamic invariant detector groups.csail.mit.edu http://homes.cs.washington.edu/~mernst/software/ Daikon is an implementation of dynamic detection of likely invariants; that is, the Daikon invariant detector reports likely program invariants. Software released by Michael Ernst An invariant is a property that holds at a certain point or points in a homes.cs.washington.edu program; these are often seen in assert statements, documentation, and formal speci... This is a partial list of software packages released by Michael Ernst. I am always happy to receive comments, bug reports and fixes, and Like · Comment · Share improvements to the code. I will attempt to assist you with problems or incorporate your changes into the main source. Unless otherwise noted, all software should… Automated Testing shared a link. Like · Comment · Share February 3 http://se.inf.ethz.ch/courses/2012b_fall/sv/ Automated Testing shared a link. February 3 Software Verification - Fall 2012 - Chair of Software Engineering se.inf.ethz.ch http://ix.cs.uoregon.edu/~michal/ 05.12.2012 — Please remember to bring questions/problems along for the exercise session of next week! The exam is approaching fast now... Like · Comment · Share
  • 31. Automated Testing shared a link. February 3 Like · Comment · Share The Program Verification problem is decidable if P is finite-state with model-checking techniques. Michal Young But real programs are not finite-state ix.cs.uoregon.edu • arbitrarily complex inputs The thread that runs through my work is understanding how we • dynamic memory allocation understand and gain confidence in software, through some combination Automated Testing shared a link. The term Software Model-Checking denotes techniques to of analysis (broadly construed to include testing as well as various static February 2 automatically verify real programs based on finite-state models of checking techniques) and design. I'm increasingly interested in interplay them. between synthesis (g... http://www.scribd.com/doc/65043293/Introduction-to-Computer- Theory Index of /courses/2012b_fall/sv/slides se.inf.ethz.ch http://www.scribd.com/doc/65043293/Introduction-to- Computer-Theory www.scribd.com Like · Comment · Share Like · Comment · Share Automated Testing shared a link. Automated Testing shared a link. February 1 February 1 http://www.ncl.ac.uk/computing/research/?pid=260 http://www.wou.edu/~broegb/ Research home - Computing Science - Newcastle University Index Winter 2013 www.ncl.ac.uk www.wou.edu We carry out fundamental computing science research which we evaluate and extend through application to industrial and interdisciplinary challenges. Our work constantly evolves to address the new challenges posed by a fast-changing environment: one in which computer systems become ever more complex,... Like · Comment · Share Like · Comment · Share Automated Testing shared a link. Automated Testing shared a link. February 1 February 1 http://rodin.cs.ncl.ac.uk/ http://www.ai4fm.org/ RODIN - Rigorous Open Overview - AI4FM Development Environment for www.ai4fm.org Complex Systems rodin.cs.ncl.ac.uk AI4FM project aims to use "learning" techniques from artificial intelligence to Our overall objective is the creation of a record and abstract how experts do methodology and supporting open tool proofs in order to increase the platform for the cost effective rigorous proportion of cases where proofs are development of dependable complex constructed without (or with minimal) Like · Comment · Share software systems and services. We focus Like · Comment · Share human intervention. AI4FM is an EPSRC- on tackling complexity • caused by the funded research project, a joint effort… environment in which t... Automated Testing shared a link. February 1 http://homepages.cs.ncl.ac.uk/cliff.jones/ http://homepages.cs.ncl.ac.uk/cliff.jones/ homepages.cs.ncl.ac.uk Much of his research at this time focused on formal (compositional) development methods for concurrent systems. His major avenues of current research are listed below. Like · Comment · Share Earlier in 2013
  • 32. Automated Testing shared a link. Likes January 31 2013 https://www.scss.tcd.ie/Matthew.Hennessy/teaching/2013/slexter nal2013/reading.php +3 Semantics of programming languages - 2012/13 Reading list - Computer Science - Trinity College Alonso Church Objective Caml F Sharp Dubl www.scss.tcd.ie Trinity College Dublin: Computer Science Department: Semantics of programming languages - 2012/13 Reading Automated Testing shared a link. list January 30 Like · Comment · Share http://elib.mi.sanu.ac.rs/files/journals/mv/202/mv943409.pdf http://elib.mi.sanu.ac.rs/files/journals/mv/202/mv943409.pdf Automated Testing elib.mi.sanu.ac.rs January 29 http://se.inf.ethz.ch/old/projects/tobias_widmer/ Like · Comment · Share Like · Comment · Share Automated Testing shared a link. January 28 Automated Testing shared a link. January 28 http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-737.pdf http://bertrandmeyer.com/2012/04/11/domain-theory-the- http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-737.pdf forgotten-step-in-program-verification/ www.cl.cam.ac.uk Bertrand Meyer's technology+ blog » Blog Archive » Domain Theory: Like · Comment · Share the forgotten step in program v bertrandmeyer.com Program verification is making considerable progress but is hampered Automated Testing shared a link. by a lack of abstraction in specifications. January 28 A crucial step is, almost always, absent Like · Comment · Share from the process; this omission is the principal obstacle to making verification http://ebooks.cambridge.org/chapter.jsf? a standard component of everyday bid=CBO9780511569883&cid=CBO9780511569883A012 software development. Automated Testing shared a link. Cambridge Books Online - The Statement of the January 28 Incompleteness Theorem ebooks.cambridge.org http://www.amzi.com/ The automatic verification of large parts of mathematics has been an aim of many Amzi! inc. Embeddable Extendable Prolog, Logic mathematicians from Leibniz to Hilbert. While Gödel's Server, Knowledge Engineering, Rule Engines, first incompleteness theorem showed that no Artifici computer program could automatically prove certain www.amzi.com Like · Comment · Share theorems in mathematics, the advent of true electronic computers and s... Amzi! inc. provides software and services for embedding intelligent components that apply busines rules, diagnose problems, recommend configurations, give advice, Automated Testing shared a link. schedule events, monitor processes and more. January 28 Like · Comment · Share http://www.computational-semantics.eu/ Automated Testing shared a link. Computational Semantics with Functional January 28 Programming www.computational-semantics.eu http://homepages.cwi.nl/~jve/problem5/ ESSLLI Summer School Course, Ljubljana, Slovenia, August 2011. See the course description on the ESSLLI Challenging Imperative Programming with Algebra, Logic and 2011 homepage. Functions homepages.cwi.nl Like · Comment · Share ``How much land does a man need?'' asked Lev Tolstoi, and the answer turned out to be: surprisingly little. ``How many programming languages does a software designer need?'' The answer seems to be: surprisingly many. See below. Automated Testing shared a link. January 28 Like · Comment · Share http://answers.yahoo.com/question/index?qid=1006030700479 Automated Testing shared a link. January 28 http://en.wikipedia.org/wiki/Lambda_calculus
  • 33. Lambda calculus - Wikipedia, the free encyclopedia en.wikipedia.org Like · Comment · Share Lambda calculus (also written as λ-calculus or called "the lambda calculus") is a formal system in mathematical logic and computer science for expressing computation by way of variable binding and substitution. First formulated by Alonzo Church, lambda calculus found early successes What is the difference between logic programming and Like · Comment · in the area of c... Share imperative programming.? answers.yahoo.com Logic programming Testing shared a link. Automated (sometimes called logical programming) is Automated Testing shared a link. programming that makes use of pattern-directed invocation of January 28 January 28 procedures from assertions and goals. John McCarthy [1958] was the first to pub http://racket-lang.org/ http://users.soe.ucsc.edu/~cormac/ The Racket Language Cormac Flanagan Homepage racket-lang.org users.soe.ucsc.edu Racket is a modern programming language in the Lisp/Scheme family, suitable for a wide range of applications. Racket provides a rich language extension API, the DrRacket integrated development environment, and many Like · Comment · Share batteries-included libraries. Like · Comment · Share Automated Testing shared a link. Automated Testing shared a link. January 28 January 28 http://link.springer.com/book/10.1007/978-1-84628-692-6/page/1 http://classes.soe.ucsc.edu/cmps112/Winter07/ Semantics with Applications: An Appetizer - CMPS 112 - Comparative Programming Languages - Winter Springer 2007 link.springer.com classes.soe.ucsc.edu Lectures: Tu/Th, 10:00-11:45am, Engineering 2, room 194Lab Sessions: Mondays 1:00-3:00pm and Thursdays 5:00-6:00pm, both in Baskin 105 Like · Comment · Share Like · Comment · Share Automated Testing shared a link. Automated Testing shared a link. January 28 January 28 http://cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04- http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html 26/ Teach Yourself Scheme in Fixnum Days www.ccs.neu.edu Programming Languages: Application and Interpretation by Shriram Krishnamurthi A practical introduction to the programming cs.brown.edu language Scheme Programming Languages: Application and Interpretation Copyright © 2003-07, Shriram Krishnamurthi Creative Commons Attribution- NonCommercial-ShareAlike 3.0 United States License Version 2007-04-26 Like · Comment · Share Like · Comment · Share Automated Testing shared a link. Automated Testing shared a link. January 26 January 26 http://mitpress.mit.edu/books/model-checking http://d3s.mff.cuni.cz/teaching/program_analysis_verification/ Model Checking | The MIT Press mitpress.mit.edu Teaching @ D3S - Department of Distributed and Dependable Model checking is a technique for verifying finite Systems state concurrent systems such as sequential circuit d3s.mff.cuni.cz designs and communication protocols. It has a number of advantages over traditional approaches Official web page of the Department of that are based on simulation, testing, and deductive Distributed and Dependable Systems, reasoning. In particular, model checking is autom... Charles University, Prague Like · Comment · Share Like · Comment · Share Automated Testing shared a link. Automated Testing shared a link. January 26 January 26 http://eu.wiley.com/WileyCDA/WileyTitle/productCd- http://www.pearsonhighered.com/educator/product/Concepts-of- 0471137723,descCd-tableOfContents.html Programming-Languages-10E/9780131395312.page