3-Construction Tools

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

SE 324 - Software Construction

Software Construction Tools

Dr. Ftoon Kedwan

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.

• The tools take on the “housekeeping” task (Computer Aided Software


Engineering (CASE) TOOLS).
o e.g., keeping the process connected in a “bubble chart” when a new level is defined.

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*

3.2. Executable-code tools:


• Code creation
• Debugging
• Testing
• Code tuning

*Databases of variable names with descriptions

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

• Thayer, Richard, 2004 Certified Software Development Professional


(CSDP) Preparation Course, Chapter 6: Software Construction.

7
User Interface Building Introduction
• Building user interfaces that are usable by a wide audience is hard.
o Ethnography
o Participatory design

• UI architects* need to simply and quickly sketch a proposed interface.


Some models require frequent prototypes.

• By designing and showing the UI before the application itself is built, the
application will end up with a more consistent UI.

• By being able to unambiguously describe the UI and its transitions, the UI


can be discussed and modeled.

* See this UI architect job vacancy: https://jobs.smartrecruiters.com/PrincipalSoftware/743999654662773-ui-architect

8
User Interface Building Introduction – Cont.

Developing an application’s UI requires agreement of several parties:


• Managers need to approve the design.
• UI architects need to build it.
• Programmers need to be aware what they are programming to.
• Users are asked for opinions on the interface.

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.

Other Benefits of Interface Building Tools:


o Tools prototype most functional interfaces quickly and cheaply.
o Tools let a domain expert build the interface.
o Tools let the interface be discussed before the investment has been made in the
rest of the application.
o Showing the interface to management, users and experts can be done early and
often.

10
UI Design Tools

• Visual Editing Tools


o A code editor redefined and optimized for building and debugging application UIs.
▪ i.e., Visual Studio, HyperCard, Visual Basic, Delphi.

• Visual Programming Tools


o Simplifies the UI development process.
▪ i.e., Node-red, Visuino, Embrio, Prograph, LEGO Mindstorms.

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.

• Tullis’ Display Analysis Program


o An example of automated analysis.
o Takes alphanumeric screen designs & critiques them.
▪ Percentage of upper-case letters.
▪ Density of text.
▪ Layout complexity.

• Let the developer programmatically determines correctness of an interface.

• Give the developer feedback on consistency of the interface.

• Allow comparison of interfaces.


13
Evaluation Tools, Cont.
• GOMS
o Stands for Goals, Operators, Methods, and Selection.

• 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

• Unit (JUnit, NUnit, etc.)


o Defined testing of applications (regression testing).

• Cactus
o Defined testing of UIs (regression testing of user interfaces).
14
UI Toolkits

• Ease development by providing fully-fleshed out UI components.

• A UI component has 2 major parts:


o The UI presentation (a button).
o The outlet (how the program is informed when the button is pressed).

• 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

• Toolkits provide UI widgets that can be used to develop the application.

• This lets the developer focus on building the application, instead of the widgets.

• Prototyping languages allow the rapid development of prototype applications,


but trade can entail trade-offs.

17

You might also like