Contents - PowerPoint PPT Presentation

About This Presentation
Title:

Contents

Description:

Installation. Require- ments. Requirements. Specification. Planning. PVK-HT04 ... Clients and servers of services 'sign' contracts, i.e. servers guarantee the ... – PowerPoint PPT presentation

Number of Views:11
Avg rating:3.0/5.0
Slides: 10
Provided by: Annab84
Category:

less

Transcript and Presenter's Notes

Title: Contents


1
Contents
  • Introduction
  • Requirements Engineering
  • Project Management
  • Software Design
  • Detailed Design and Coding
  • Quality Assurance

2
Detailed Design Activities
Give sufficient information, so that the
implementation teams can do a good job.
  • Choose specific data structures and algorithms
  • Refine the components from architectural design
  • Define HOW
  • Comments are NOT enough

procedure replaceText( var text TextFile
oldWords, newWords WordList) ( Replace in the
text text all occurrences of the i-th word in
oldWords by ) ( the i-th word in newWords
oldWords and newWords must have the same ) (
length )
3
Open Questions
  • What are the word delimiters?
  • blank, EOL, EOF, TAB
  • ., ,, , , ..._, , ...
  • Is the matching case sensitive?
  • Must replacements have the same length?
  • How to solve conflicts?
  • Several different replacements for the same old
    word
  • Some words in newWords appear also in oldWords
  • Assume the following

text ... ABC ... oldWords AB, BC newWords X,
Y alternative1 ... XC ... alternative2 ... AY
...
4
Approaches to Detailed Design
  • Informal
  • Structured English
  • Semi-formal
  • Program Design Languages (PDLs)
  • Diagrammatical techniques
  • Formal
  • Formal Specifications (e.g. Z, VDM, ...)
  • Pre-/postconditions invariants (sometimes
    called programming by contracting)

5
Programming by Contracting
Clients and servers of services sign contracts,
i.e. servers guarantee the effects of their
services offered, if and only if clients use
these services correctly.
function getPosition( a array of Element el
Element) return integer ( Returns the relative
position of el in a ) precondition ? i ?
aFirst..aLast ai el ( such an element
exists ) postcondition agetPosition( a, el)
el and a a.old ( getPosition really returns
the position of el in a and a is unchanged
) You could even specify that the array must be
sorted in ascending order to allow for a faster
algorithm by adding the following to the
precondition and ? i,j ? aFirst..aLast i lt
j ? ai lt aj
6
Implementation
  • Transform the detailed design into concrete
    programming language code
  • Ensure that this code correctly implements the
    detailed design
  • OOPS! Many modern programming languages
  • contain detailed design elements, e.g. Eiffel

7
Programming Style
  • Remember that programs are for people to read
  • Choose good names
  • Comment extensively
  • Be consistent regarding layout of code
  • Avoid duplication of code
  • Adhere to good object oriented principles
  • Prefer private as opposed to public

8
Programming Guidelines
  • Use separate files for each module, class, macro,
    inline, ... definition
  • Use separate files for the definition/specificatio
    n and implementation when possible
  • Call operations only when all preconditions are
    satisfied (this is the callers responsibility)
  • Do not mix user interface code with non-user
    interface code
  • Interact with the user in separate classes
  • This makes non-UI classes more reusable
  • Avoid pointers to pointers
  • Commit to effective naming conventions

9
Coding Standards
  • Java coding standards
  • The Elements of Java Style Vermeulen et.al. SIGS
    Books.
  • http//java.sun.com/docs/codeconv/html/CodeConvTOC
    .doc.html
  • Smalltalk Best Practice Patterns by Kent Beck
  • Recommended C Style and Coding Standards by David
    Keppel
  • C Programming Guidelines by Thomas Plum
  • Ada Quality and Style Guidelines for
    Professional Programmers by Software Product
    Consort
Write a Comment
User Comments (0)
About PowerShow.com