Ingeniería del Software/en

De FdIwiki ELP
(Redirigido desde «Ingenieria Software (EN)»)
Saltar a: navegación, buscar
Este artículo necesita una revisión de formato.
Puedes colaborar editándolo. Cuando se haya corregido, puedes borrar este aviso.
Consulta el tutorial si tienes alguna duda

Introduction

Software Engineering is the application of theories, methods, operating tools for cases that given financial constraints, organizational and technical constraints. Follow this pattern.

Design -> Implementation -> Testing

The software must be:

- Maintainable

- Secure

- Efficient

- Friendly

- Properly documented

There are 3 Development and Maintenance P: People, Product and Process.

The software is developed, it is not manufactured. It does not spoil, but you have to keep and reuse. The SI covers all aspects of production, from initial specification to software maintenance. Design and plan before developing.

CASE tools help the SI process.

All countries depend on software and is the largest expense in computing: Development costs, maintenance and evolution. Always evolves.

Challenges: Inherited systems, heterogeneity, shortest time, nodes, engineering and formality.

The specification helps us know we want to do. What it does, as used, and divide it into use cases, which can be tested individually. They must be abstract so that the programmer has freedom. They are written in the infinitive. Have an actor, any element out of the application that relates to it. The code is divided into classes / objects to divide the work into different parts to join them work. You have to divide the assumptions of the use cases, if it’s good or errors have been occurring in stages. In the code we have variables and functions. To divide the code in pieces we should be minimized the dependencies that there, also called coupling. Encapsulation is get information previously dispersed in an object. It is intended that the objects are feasible, identified in the specification and switchable code. The story explains the operation of applications. A functional requirement are of the type: what it takes for a message to arrive. It is intended that the objects are feasible, identified in the specification and switchable in the code.


Development process

In the IS there to do much: Principles of engineering, inexpensive, reliable and efficient software. Maintain it. Systematize, discipline and quantify.

Using a process model may be performed rationally, which is a pattern that defines the process through which software is created. His concepts are:

- People: They work.

- Product: which it’s obtained.

- Project: The guideline for developing a product.

- Process: The guideline for developing a project.

The IS is a multilayer technology:

- Quality approach Layer: Base of any engineering process. Quality.

- Process Layer: Join quality and methods to build. Rational development IS.

- Methods Layer: One method includes requirements analysis, design, construction programs, testing and maintenance.

- Tools Layer: automatic or semiautomatic support for the process and methods. Essential for the proper implementation of the IS.

There are three generic phases regardless of the process model:

- Definition Phase: that. Focuses on the requirements are sought. Planning.

- Development Phase: Focus on the how. Design and testing the application.

- Maintenance Phase: Bug fixes, adjustments or changes.

If a project is managed poorly, it takes 90% of the time and effort, and finally, the last 10% is another 90%.

Development Models

A process model or paradigm of IS, is a template or pattern that defines the process by which software is created. Define its structural activities.

- Evolutionary

They managed well the evolving nature of software. Iterative. They adapt well to change.

As advantages that is interactive, the client evaluates each increment allows changing personnel and managing technical risks.

One drawback the first iteration may pose the same problems as in a sequential linear model. It has unrealistic dates.


- Waterfall

The project passes through different phases:

o Specification

o Conceptualization

o Analysis

o Design

o Implementation

o Tests

o Support

o Installation

At the waterfall you can only go down if you go up, there are problems.

At the end of each phase work tasks and products are reviewed.

An advantage is that it is well tested and easy when you have no experience or project is well known.

Yet it is unrealistic, visibility too late, if the phases overlap may be blocking or major revisions are difficult.


- Prototyping

A prototype is used to give the user a concrete idea of what the system will do. It applies when to do it fast. The prototype can be exploratory, or throwaway.

An advantage is that identifies requirements incrementally. Alternative tests. High visibility.

As disadvantages the customer does not understand why we must discard the prototype and are at risk of poor quality for the speed phase.


- Spiral

The activities of this model are formed into spiral, in which each loop or iteration represents a set of activities. Activities are not attached to any priority, but the following are selected based on risk analysis, starting with the inner loop.

Its advantages are that it has a realistic approach. It has an explicit risk management. It focuses on reuse and elimination of errors in the early stages. Its first aim is quality and integrated development maintenance. The disadvantages are convince to the client of the controllable approach and it requires experience in identifying risks.


- Unified Development (RUP)

Directed by use cases, architecture-centric, iterative and incremental, uses UML.

The advantage is that it is a rational process model and uses component technology. A disadvantage is closely linked to the method.


- Based on components

- Formal

Process Viability

Set of activities to develop software. They are:

- Specification

- Design

- Validation

- Evolution

Activities vary by organization and the system, and must be perfectly modeled. The process defines a framework composed of activities (AE).


Instructions for developing an application are:

- Discover to do

- Decide how it is structured

- Deal than it can evolve


The condition of explicit process are:

- Projects in parallel and periodically

- Big team and staff turnover

- It is intended to be refining the way to work

Everything must be written and adapted to each use case.


The process consists of:

- Specification: Establish requirements and restrictions.

- Design: Produce a paper model.

- Manufacturing: Building.

- Testing: Verify that meets the specification.

- Installation: Deliver and verify compliance needs.

- Maintenance: Review faults when discovered.

Properties of process model

- Understandability: Understanding the process.

- Visibility: Results.

- Supportability: CASE tools supported.

- Acceptability: The process is accepted.

- Reliability: Detects errors.

- Robustness: The process can continue despite errors.

- Maintainability: It can evolve.

- Speed: Creation speed.

Process Types

- Rational Unified Process: It is heavy.

- Extreme Programming: Radical changes design, simpler version, client cooperates, automated testing. Small systems. Adaptable. Agile.

- Scrum: Accumulated work. Short meetings. It is a sprint. Agile.

Agile process

- It is difficult to predict what conditions will persist and customer priorities.

- It is difficult to see how design is necessary: design and development is intercalated.

- The analysis, design and construction are not predictable.

- It is adaptable incrementally.

- It needs customer feedback.

- It is based on the continuous delivery of increments.

Spanish Version

´ Ingenieria del Software spanish version