SE201 · Annotated SlidesChapter 7 — Software Construction (Implementation)
Chapter 7 · Annotated slides

Software Construction (Implementation)

Construction activities and fundamentals: minimizing complexity, anticipating change, constructing for verification, standards, reuse and open-source software.

Slide text Study notes Highlight: key words Tips, tricks & traps Seen again elsewhere How it can come up
Slide 1: Slide 1
Exam weight Low
    Slide 2: Software Construction
    Exam weight Low
    1. Construction: detailed creation of working software through coding, verification, unit testing, integration testing and debugging.
    Slide 3: Software Construction Activities
    Exam weight Low

      Software Construction Fundamentals

      • T h e f u n d a m e n t a l s o f s o f t w a r e construction include:
        • Minimizing complexity
        • Anticipating change
        • Constructing for verification
        • Standards in construction
      4
      Exam weight Low
      1. Fundamentals: minimize complexity, anticipate change, construct for verification, reuse, use standards.

      Minimizing Complexity

      • As functionality increases, software complexity increases.
      • We always aim to reduce complexity throughout the lifecycle.
      • Minimizing complexity is one the of strongest drivers in software construction.
      • In software construction, reduced complexity is achieved through emphasizing code creation that is simple and readable.
      5
      Exam weight Low
      1. Minimize complexity: simple readable code, coding standards, modular design.

      Anticipating Change

      • Most software will change over time, and the anticipation of change drives many aspects of software construction;
      • Changes in the environments in which software operates also affect software in diverse ways.
      • Anticipating change means software engineers build extensible software, so they can enhance a software product without disrupting the underlying structure.
      • Anticipating change is supported by many specific coding techniques.
      6
      Exam weight Low
      1. Anticipate change: design so future modifications are easy (parameters, encapsulation).

      Anticipating Change

      • A n t i c i p a t i o n o f c h a n g e a f f e c t h o w in different ways: software is constructed
      1. Use of control structures
      2. Handling of errors
      3. Source code organization
      4. Code documentation
      5. Coding standards
      7
      Exam weight Low

        Standards in Construction

        • Restricting the use of complex or hard-to-understand language structures, among others.
        • Applying external or internal development standards during construction helps achieve a project’s objectives for efficiency, quality, and cost.
        8
        Exam weight Low
        1. Standards: communication methods, programming languages, coding standards, platforms, tools.

        Reuse

        Most modern software is constructed by reusing existing components or systems. When you are developing software, you should make as much use as possible of existing code.

        ▷ Develop new systems more quickly, with fewer development risks and lower costs.

        ▷ Reuse improves Software reliability.

        9
        Exam weight Medium
        1. Reuse levels: abstraction, object, component, system. Costs: finding, understanding and adapting the components.
        🎯 How this can come up · 1 question
        MCQ

        Reusing a whole application system configured for a new client is reuse at the:

        Reuse

        Systematic reuse can enable significant software productivity, quality, and cost improvements.

        Reuse has two closely related facets:

        Construction for reuse: Create reusable software assets.

        Construction with reuse: Reuse software assets in the construction of a new solution.

        10
        Exam weight Low

          Open source software

          • Open source software is released under a license in which the copyright holder grants users the right to use, change, and distribute the software and its source code to anyone and for any purpose.
          • Its roots are in the Free Software Foundation (www.fsf.org), which advocates that source code should not be proprietary but rather should always be available for users to examine and modify as they wish.
          11
          Exam weight High
          1. Open source: source code is published and volunteers can contribute; licences: GPL (reciprocal), LGPL, BSD (non-reciprocal).
          🎯 How this can come up · 1 question
          MCQ

          Which licence requires derived works to be released under the same licence?