Wrapping up Design and Coding
-
Upload
hashim-reed -
Category
Documents
-
view
13 -
download
1
description
Transcript of Wrapping up Design and Coding
Wrapping up Design and Coding
Chapter 18
The Unified Modeling Language (UML) Formal Notation for Development Uses use-case approach. Use Case diagrams, outlines cases. Sequence diagrams outline object exchanges. Class diagrams outline class relationships Other diagrams: Package, deployment.
Client-server Design Essentially a ‘customer/supplier’ relationship. Client makes requests of server. Server supplies requested information. Example: Web browser (client) makes
request from Web server which supplies HTML, applets, etc.
Choosing Design Techniques Techniques can be chosen on several criteria:
suitability (applicability), familiarity. Design techniques can be partitioned: Client-server
techniques can be applied to one part of the system while other techniques are applied to others.
Often, experienced engineers will develop their own techniques that are hybrids: based on one or more formal design approach coupled with a healthy dose of experience.
Which Formal Technique(s) Should I Use? Familiarity: Engineers should be familiar with the
technique. This implies formal training, at a minimum! Engineers should take opportunities to continue training in a variety of design techniques.
Applicability: The problems at hand should be suitable for the technique. Sometimes the problem can be redefined to suit a technique we are already familiar with.
Documenting Choices As decisions are made during the design
phase, the reasons should be documented as part of the design.
Reasons for data structure and algorithm choices are good places to begin documentation. For instance, decisions made on the time/space tradeoff principle are good places to start.
Defensive Coding Defensive coding approaches should be reinforced
during the design phase. Error-handling subsystem(s) should be designed as
an integral part of the system. Use of the Error-handling system should be a part of
every subsystem design. This relieves the programmer from the burden of having to make error-handling decisions at coding time.
Managing the Design and Coding Phases Code inspections should be provided for in
the schedule. Since the error handling subsystem can have a
large impact on the implementation, it should be fully represented in the design, and planned for in the code schedule!