Professional Documents
Culture Documents
3-Construction Tools
3-Construction Tools
3-Construction Tools
F.Kedwan@upm.Edu.Sa
1
Software Engineering Tools & Methods
Software Tools:
1. Requirements Tools
2. Design Tools
3. Construction Tools
4. Testing Tools Are enough of
5. Maintenance Tools these tools &
6. Engineering Process Tools
methods covered
7. Quality Tools
8. Configuration Management Tools
in the course?
9. Engineering Management Tools
10. Infrastructure Support Tools
11. Miscellaneous Tools Issues
Software Methods:
• Heuristic
• Formal
• Prototyping
• Miscellaneous
2
2. Design Tools
• Most design tools involve graphic development & drawing tools, supporting:
Object-Oriented Design (OOD), Entity-Relationship Diagrams (ERD) Design,…etc.
3
3. Construction Tools
Construction tools are used to improve productivity & software quality. They
include:
3.1. Source-code tools:
• Editing
• Browsing
• Analyzing code quality
• Restructuring source code
• Data dictionaries*
4
3.1 Source Code Tools
• Editors: Support for adding, eliminating, & moving items in a document.
• File comparators: Compares 2 files & identifies areas that are different.
• Source-code beautifiers: Improve the look of code so that it appears consistent.
• Templates: Develop macro steps to save time & improve quality.
• Browsers: Useful for finding & modifying coding elements (strings).
• Cross-reference tools: Lists variables, routines, & each place they are used.
Analyzing Code Quality Tools
• Call-structure generators: Produces information about routines calling each other.
• Picky syntax & semantics checker: Does a more thorough job than the compiler.
• Metrics reporters: Report on selected quality & quantity metrics.
• Restructurers: Convert “spaghetti code” to “structured code”.
• Code translators: Translate code from 1 language to another.
• Data dictionary: A database of variable names with descriptions.
5
3.2 Executable-Code Tools
• Linkers: Supports the connecting & compacting of object files.
• Code libraries: Prepackaged software systems.
• Code generators: Tools that write code from design inputs. Also used to develop
prototypes.
• Macro preprocessors: Transform the code before it is compiled & allow the
creation of simple named constants with no run-time penalty.
• Debuggers: Assist in finding system errors.
• Execution profilers: Watch code while running, tabulating how many times each
statement is executed and/or how much time the program spends on each
statement.
• Assembler listing: Converts assembler code to the machine code that the
computer can use.
6
References
7
User Interface Building Introduction
• Building user interfaces that are usable by a wide audience is hard.
o Ethnography
o Participatory design
• By designing and showing the UI before the application itself is built, the
application will end up with a more consistent UI.
8
User Interface Building Introduction – Cont.
9
User Interface Building Tools
• Help in rapid prototyping of the UI, and in utilizing later that prototyped
interface.
• Let an interface be built by a non-programmer.
10
UI Design Tools
11
Some Guidelines …
1. The UI independence:
• Separate presentation from logic.
• Prototype multiple user interfaces.
• Multiple-platform support.
• Domain expert as UI architect.
• Enforce standards.
2. The Methodology & Notation
• Develop design methodology.
• Talk about design.
• Project management.
3. Rapid Prototyping
• Build & use multiple versions up front.
• Low-cost test, revise, test.
• Usable user interfaces for users, managers & customers to see & use early.
4. Software Support
• Productivity.
• Constraint & consistency checks.
• Ease of maintenance.
12
Evaluation Tools
• Provide automated feedback to the developer as to where the product is inconsistent.
• Warning Signs
o Automated analysis of where a UI might be inconsistent or violating a standard.
• Simple Metrics
o Number of widgets per window.
o Widget density.
o Can yield information about how complex the interface is.
• Style Consistency
• Web Pages
o Validation
o Link checking
o Correctness
• Cactus
o Defined testing of UIs (regression testing of user interfaces).
14
UI Toolkits
• Toolkits:
o TCL/Tk (Tool Command Language/Tool Kit)
o Motif
o Mac Toolbox
o MFC (Microsoft Foundation Class)
o Java AWT (Abstract Window Toolkit) / Swing
15
Prototyping Languages
• Java
o Application/Applet language.
o Cross platform.
o Intent is that all applications act the same on all platforms.
• Hypercard
o Movement between Cards (screens).
• TCL/Tk
o Scripting language.
16
Toolkits & Languages
Summery
• This lets the developer focus on building the application, instead of the widgets.
17