Kapitel 7 Flashcards
Software development life cycle
Requirements analysis, design, implementation, testing.
Data coupling
refers to the sharing of data between modules. If two modules interact with the same item of data, then modifications made to one module may affect the other, and modifications to the format of the data itself could have repercussions in both modules.
CASE
Computer-aided software engineering
RUP
An iterative software engineering methodology. Rational unified process, created by the rational software corp. now a division of IBM. This paradigm redefines the steps in the development phase of the software life cycle and provides guidelines for performing those steps. These guidelines along with CASE tools to support them are marketed by IBM.
The three purposes of software documentation
Software documentation serves three purposes:
- User dokumentation - Purpose is to explain features of the software and how to use them. Intended to be read by the user. Important marketing tool.
- System documentation - the purpose os to describe the softwares internal composition so that the software can be maintained later in its life cycle. A majro component is the source version of all the programs in the system.
- Technical documentation - the purpose is to describe how a software system should be installed and serviced (such as adjusting operating paramters, isntalling updates, and reporting problems back to the software-developer).Analogous to documentation provided to mechanics in the automobile industry (which explains how to service the car’s components).
Data flow diagram
a means of representing the information gained from dataflow studies.
Agile methods
each of these proposes early and quick implementation on an incremental basis, responsiveness to changing requirements and a reduced emphasis on rigorous requirements analysis and design. An example is extreme programming (XP)where software is developed by a team of less than a dozen individuals working in a communal work space where they freely share ideas and assist each other in the development project. The software is developed incrementally by means of repeatedl daily cycles of informal requirements analysis, designing, implementing, and testing.
Waterfall model
Development is allowed to flow in only one direction, requirements analysis, design, implementation and testing is supposed to take place in a strictly sequential manner.
Software development life cycle: Requirements analysis
Specify what services the proposed system will provide to identify any conditions (time constraints, security and so on) on those services, and to define how the outside world will interact with the system. Involves significant input from stakeholders (future users as well as those with other ties, such as legal or financial interests) of the proposed system. The requirements are recorded in a document called a software requirements specification.
Software development life cycle: Design
Design involves creating a plan for the construction of the proposed system. In a sense, requirements analysis is about identifying the problem to be solved, while design is about developing a solution to the problem. Requirements analysis is often equated with deciding what a software system is to do. Design is equated with deciding how the system will do it. The result of the design-phase is a detailed description of the software system’s structure that can be converted into programs.
Cohesion
refers to the degree of relatedness of a modules internal parts. Logical cohesion is the cohesion within a module induced by the fact that its internal elements perform activities logically similar in nature. Functional cohesion is an even stronger cohesion, which means that all the parts of the module are focused on the performance of a single activity.
Software development life cycle: Testing
In the traiditonal development phase of the past, testing was essentially equated with the process of debugging programs and confirming that the final software product was compatible with the software requirements specification. Today, however this vision of testing is considered far too narrow. Programs are not the only artifacts that are tested during the software development processs. Indeed, the result of each intermediate step in the entire development process should be “tested” for accuracy. Testing is also now recognized as only one segment in the overall struggle for quality assurance, which is an objective that permeates the entire software life cycle.
Software development life cycle: Implementation
Implementation involves the actual writing of programs, creation of data files, and development of databases. It is at the implementation stage that we see the distinction between the tasks of a software catalyst (sometimes referred to as a system analyst) and a programmer. The former is a person involved with the entire development process,perhaps with an emphasis on the requirements analysis and design steps. The latter is a person involved primarily with the implementation step.
Iterative model
Whereas the incremental model carries the notion of extending each preliminary version of a product into a larger version, the iterative model encompasses the concept of refining each version. In reality, the incremental model involves and underlying iterative process and the iterative model may incrementally add features.
UML
Unified modeling language. A modern collection of tools that has been developed with the object-oriented paradigm in mind.