Presentation is loading. Please wait.

Presentation is loading. Please wait.

Design and Planning Or: What’s the next thing we should do for our project?

Similar presentations


Presentation on theme: "Design and Planning Or: What’s the next thing we should do for our project?"— Presentation transcript:

1 Design and Planning Or: What’s the next thing we should do for our project?

2 Think about Program Architecture The organization of code components The objective of system architecture is to simplify maintenance by putting code together that will be changed at the same time

3 Architectural Philosophies Requirements Driven Data Driven Dialog Driven Event Driven

4 Coding Standards Structured Limit control structures to sequence, iteration, and selection Event Driven Interactive systems driven by user actions Object oriented Encapsulate data and code into objects that can be called independently

5 Good Code Maintenance is 80% of the cost of a large system. Instructions that will be changed together located together. Finding errors and bugs is theoretically simplified (fewer possible places to look).

6 Traditional Design Traditional Life Cycle Approach Formal Methodologies CASE Tools Purchased Systems Newer Approaches RAD Evolutionary Code GUI design Object Oriented Design

7 Modular Program Design Goal: software components that can be plugged into any project (like circuits) Coupling the degree to which each program module relies on other modules Loose: modules are independent (roughly) Tight: one module depends on another … changes cause ripple effect …

8 Modular Program Design Goal: software components that can be plugged into any project (like circuits) Cohesion Relatedness of actions of a module or class Low: module does lots of unrelated things Hard to maintain, hard to understand High: module focused on one task Aids maintainability and reusability

9 Good Practice: Loose Coupling Associations among code modules Datapassed by parameters avoid public variables Methoduse of Interfaces as opposed callsto actual method names

10 Good Practice: Loose Coupling Measuring level of coupling How many changes would be needed to do the following: Changing the order of data elements Changing the names of data elements Changing the structures of data elements

11 Good Practice: High Cohesion Functions done by one code module. A module is a set of code statements that is called and executed together. A cohesive module executes only statements that always go together.

12 Typical Modules methods and functions Forms, Reports and Queries Classes

13 Programming Principles KISS (Keep it Simple, Stupid) Volatility Prototyped code will be revised frequently. Simple solutions are much better than elegant ones that are hard to understand. Clarity over Efficiency modern optimizing compilers remove many inefficiencies

14 Programming Principles Code should be written to be read Good communication principles White space Boxes Indentation Explain complex logic Modular construction Very simple control structures Mnemonic variables

15 Programming Principles Minimize external documentation Document the objective rather than the procedure. The next programmer can find his own solution too. Include descriptive and complete title lines Include an initial statement of program purpose Line comments hard to maintain

16 Programming Principles Fully document data files Use labels and file descriptions Use original common data sources where possible Create as few original data tables as possible Document edits and modifications

17 Programming Principles Retain natural documentation Keep instructional memos and notes in file Document objectives so that modules can be reprogrammed as needed

18 Next Time: Planning/Scheduling Setting a schedule of milestone dates How much time for each step and sub-step? How to estimate that


Download ppt "Design and Planning Or: What’s the next thing we should do for our project?"

Similar presentations


Ads by Google