Premium Partner

Software Engineering and Architecture

TSM_SoftwEngweek 1 to week 7 (technical aspects)

TSM_SoftwEngweek 1 to week 7 (technical aspects)


Kartei Details

Karten 116
Sprache English
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 15.09.2020 / 16.01.2021
Lizenzierung Kein Urheberrechtsschutz (CC0)
Weblink
https://card2brain.ch/box/20200915_software_engineering_and_architecture
Einbinden
<iframe src="https://card2brain.ch/box/20200915_software_engineering_and_architecture/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

What percentage of resources is spent on initial software development compared to their maintanace?

  • 25% Initial Development
  • 75% Maintanance

Maintanance typically claims 40-80% of all project costs, usually toward the higher end (Barry Boehm)

Draw the waterfall model of Royce:

Give a short summary of the history of Software Evolution:

  • 1968: First conference on Software engineering, organized by the NATO Science Committee, with the goal to establish sound engineering principles in order to obtain reliable, efficient and economically viable software.
  • 1970: Royce proposes the waterfall life-cycle process for software development. Mantenance is seen as the final phase of the software lifecycle ( with only bug fixes and minor adjustments). did not account for the need to add funcionality due to new and changed requirements. The model had a strong and long influence on the industrial practice of software development.
  • Late 1970's: First atempt toward a more evolutionary process model. Identification of new activitiesm, such as impact analysis and change propagatino. In the sam eperiod, formulation of "Laws of software evolution" by Lehman
  • 1990's: General acceptance evolution, formalization and development of evolutionary processes (Gilb's evolutionary development, boehm's spiral model, Bennet and Rajichs' staged model, agile approaches).

 

Software evolution is a crucial ingredient of agile software development (iterative and incremental development, embracing change!)

Describe the to dimensions of Software Evolution:

  • What and Why? Software evolution as a scientific discipline which studies the nature of the sotware evolution phenomenon to understand its driving factors. Keiy interests include the formulation and refinement of fundamental theories and laws of software evolution.
  • How? Software evolution as an engineering discipline which studies more pragmatic aspects that aid software developers and project managers in their day-tp-day tasks. Key interests include the development and validation of tools and techniques to guide, implement and control software evolution.

What are the two main activiteis of software evolution?

- Reverse Engineering

- Re-engineering

What is Reverse Engineering about?

Activity needed when trying to understand the architecture of behavior of a large software system, when the only reliable information is the source code.

Aims at building higher-level, more abstract, software models from the source code.

What is re-engineering about?

Activity needed when trying to re-structure a legacy system. In other words, systems that are still valuable, but are difficult to maintain.

Aims at producing a new system that is more evolvable.

Draw the advanced Royce model which includes the maintanence part: