Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Construction

Similar presentations


Presentation on theme: "Software Construction"— Presentation transcript:

1 Software Construction
SWEBOK Chapter 4 Software Construction

2 Fundamentals Minimizing Complexity Anticipating Change
Construction for Verification Standards in Construction

3 Minimizing Complexity
One of the strongest drivers in software construction Required due to human limitations of memory

4 Minimizing Complexity
How is complexity minimized during software construction? Use of standards Coding practices Construction-oriented quality techniques Creation of code that is simple and readable rather than clever

5 Anticipate Change Software will change
Coding techniques can be used to make change easier (designing for change is also critical) Give potential causes for change

6 Construction for Verification
Built is such a way to allow easy identification of defects By developers during construction By testers Identification by developers and individual testing

7 Construction for Verification
Techniques Following coding standards Unit testing Organizing code to support automated testing Restricted use of complex/hard-to-understand language structures

8 Standards in Construction
Communication methods Programming languages Platforms Tools External standards Internal standards Communication methods: document formats CSV or XML, SOAP web services or HTTP POST Tools: UML modeling External standards: hardware and software interface specifications from the OMG or IEEE Internal standards: organizational

9 Managing Construction
Construction Models Construction Planning Construction Measurement

10 Construction Models Linear construction view Interative
Construction only after significant pre-requisite work is complete Coding is main focus of construction Interative Construction occurs at the same time as other development activities Combination of activities all considered construction

11 Construction Planning
How are we going to build it? Affects prerequisite activities Extent to which they are performed Order in which they are performed Degree to which they are expected to be complete before construction begins Affects project’s ability to minimize complexity, anticipate change, and construct for verification Defines the order in which components are created and integrated, QA management process, allocation of task assignments, etc.

12 Construction Measurement
What aspects are being measured? Code developed (LOC) Code reused Code modified Code complexity Code inspection statistics Defects found Defects fixed Effort Scheduling Story points (velocity) Why do we need to measure construction?

13 Practical Considerations
Construction Design Construction Languages Coding Construction Testing Reuse Construction Quality Integration

14 Construction Design Design done before construction will be incomplete
Detailed design same as overall design but at a smaller scale Haven’t we already talked about design?

15 Construction Languages
Anyway that a human can specify execution instructions to a computer Configuration Languages Toolkit Languages Programming Languages Configuration Languages are languages in which software engineers choose from a limited set of predefined options to create new or custom software installations. The text-based configuration files used in both the Windows and Unix operating systems are examples of this, and the menu style selection lists of some program generators constitute another. Toolkit languages are used to build applications out of toolkits (integrated sets of application-specific reusable parts), and are more complex than configuration languages. Toolkit languages may be explicitly defined as application programming languages (for example, scripts), or may simply be implied by the set of interfaces of a toolkit. Programming languages are the most flexible type of construction languages. They also contain the least amount of information about specific application areas and development processes, and so require the most training and skill to use effectively.

16 Coding Understandable source code
Use of classes, enumerated types, variables, named constants, etc Control structures Error handling Prevention of code-level security breaches Resource usage Source code organization Code documentation Code tuning

17 Construction Testing Goal: to reduce the time between defect creation and default detection Subset of overall testing types performed by the engineer who wrote the code Unit testing Integration testing

18 Reuse Reuse processes and activities must be formalized into the software life cycle Selection of what to reuse Evaluation of code or test reusability Reporting of reuse information on new code

19 Construction Quality Common Techniques
Unit and integration testing Test-first development Code stepping Use of assertions Debugging Technical reviews Static analysis Focus on code and not overall project

20 Integration Plan the sequence in which components will be integrated
Creation of scaffolding and stubs to support interim versions Determining the degree of testing done on components before they are integrated Determine when interim versions of the software are tested


Download ppt "Software Construction"

Similar presentations


Ads by Google