Logiciel
De Wikipédia, l'encyclopédie libre
- REDIRECT Personnel:En développement
Logiciel[1] (prononciation AFI:[ˈsɔft.Wɛɻ]), mot remontant au anglais (littéralement: parts blandas ou douces), qu'en espagnol ne possède pas une traduction appropriée au contexte, par ce que la lui utilise asiduamente sans traduire et a ainsi été admise par la Réelle Académie Espagnole (RAE). Bien que il n'est pas strictement le même, a l'habitude de se substituer par des expressions telles comme des programmes (informaticiens) ou applications (informatiques).[2]
Le mot «logiciel» se rapporte au équipement logique ou support logique d'une computadora digitale, et comprend l'ensemble des composants logiques nécessaires pour faire possible la réalisation d'une tâche spécifique, en confrontation aux composants physiques du système (hardware).
Tels composants logiques comprennent, entre autrui, applications informatiques telles comme procesador de textes, que permet à l'utilisateur réaliser toutes les tâches concernientes à édition de textes; logiciel de système, tel comme un système opérationnel, celui qui, basiquement, permet au reste des programmes fonctionner adéquatement, en facilitant l'interaction avec les composants physiques et le reste des applications, aussi munit une interface pour l'utilisateur.
Dans la figure 1 se montre un ou plus logiciel en exécution, dans ce cas avec des fenêtres, icônes et menúes que composent les interfaces graphiques, qu'ils communiquent la computadora avec l'utilisateur, et lui permettent interactuar.
Logiciel est ce que il se dénomme produit en Ingénierie de Logiciel.[3]
Définition de logiciel
Probablement la définition la plus formelle de logiciel soit la suivante:
- REDIRECT Personnel:Notes au pied
En envisageant cette définition, le concept de logiciel va au-delà des programmes de compte dans ses divers états: code source, binario ou ejecutable; aussi sa documentation, données à accuser et information d'utilisateur ils font partie du logiciel: c'est-à-dire, il comprend tout l'intangible, tout le "ne physique" lié.
Le terme «logiciel» a été usé par première fois dans ce sens par John W. Tukey En 1957. Dans les sciences du calcul et l'ingénierie de logiciel, le logiciel est toute la information accusée par les systèmes informatiques: programmes et je dates. Le concept de lire différentes séquences d'instructions depuis la mémoire d'un dispositif pour contrôler les calculs a été introduits par Charles Babbage comme part de sa machine distinctive. La théorie qui forme la base de la majeure part du logiciel moderne a été proposée par fois première par Alan Turing dans son essai de 1936, "Les nombres calculables", avec une application au problème de décision.
Classement du logiciel
Si bien cette distinction est, en vrai de façon, arbitraire, et parfois confuse, aux fins pratiques se peut classer au logiciel en trois grands types:
- Logiciel de système: Son but est desvincular adéquatement à l'utilisateur et au programador des détails de la computadora en particulière que s'use, en l'isolant spécialement du traitement rapporté aux caractéristiques internes de: mémoire, disques, ports et dispositifs de communications, imprimantes, écrans, claviers, etc. Le logiciel de système lui procure à l'utilisateur et programador appropriées interfaces de grand niveau, outils et utilités de soutien que permettent son entretien. Il comprend entre autrui:
- Systèmes opérationnels
- Controladores de dispositif
- Outils de diagnostic
- Outils de Correction et Optimisation
- Serveurs
- Utilités
- Logiciel de programmation: il Est l'ensemble d'outils que permettent au programador développer des programmes informatiques, en usant différents alternatives et langages de programmation, d'une façon pratique. Il comprend entre autrui:
- Éditeurs de texte
- Compiladorest
- Interprètes
- Enlazadorest
- Depuradorest
- des Environnements de Développement Intégrés (IDE): ils Groupent les antérieurs outils, usualmente dans un environnement visuel, de forme telle que le programador ne précise pas introduire multiples commandos pour compilar, interpréter, épurer, etc. ils habituellement racontent avec une devancée interface graphique d'utilisateur (GUI).
- Logiciel d'application: il Est celui-là qu'il permet aux utilisateurs mener à terme une ou diverse tâches spécifiques, à n'importe quel champ d'activité susceptible d'être automatisé ou assisté, avec spécial accent dans les affaires. Il comprend entre autrui:
- Applications pour Contrôle de systèmes et automatisation industriel
- Applications ofimáticas
- Logiciel éducatif
- Logiciel des entreprises
- Bases de données
- Télécommunications (p.ej. Internet et toute sa structure logique)
- Jeux vidéos
- Logiciel médical
- Logiciel de Calcul Numérique et symbolique.
- Logiciel de Création Assistée (CAD)
- Logiciel de Contrôle Numérique (CAM)
Procès de création du logiciel
il Se définit comme Procès à l'ensemble rangé de pas à suivre pour arriver à la solution d'un problème ou obtention d'un produit, dans ce cas particulier, pour remporter l'obtention d'un produit logiciel qui résolve un problème.
Le procès de création de logiciel peut arriver à être très complexe, en dépenant de son porte, caractéristiques et criticidad du même. Par exemple la création d'un système opérationnel est une tâche qui requiert projet, gestion, nombreux ressources et toute une équipe disciplinado de travail. Dans l'autre bout, si s'agit d'un simple programme (par exemple, la résolution d'une équation de deuxième ordre), celui-ci peut être réalisé par un seul programador (même supporter) facilement. Il est donc ils normalement se divisent en trois catégories selon sa taille (lignes de code) et/ou coût: de Petit, Moyen et Grand porte. Ils existent diverse méthodologies pour l'estimer, une des plus populaires il est le système COCOMO que munit des méthodes et un logiciel (programme) que calcule et il munit une estimation de tous les coûts de production en un "je projette logiciel" (relation heures/homme, coût monétaire, quantité de lignes source d'accord à langage usé, etc.).
En envisageant les de grand porte, il est nécessaire réaliser tellement et tellement complexes tâches, autant techniques, de gerenciamiento, forte gestion et analyses diverse (entre autres) que toute une ingénierie faut pour son étude et réalisation: il est la Ingénierie de Logiciel.
En autant qu'en les de moyen porte, petites équipes de travail (même un avezado analyste-programador solitaire) peuvent réaliser la tâche. Bien que, toujours en cas de moyen et grand il porte (et parfois aussi en quelqu'uns de petit il porte, selon sa complexité), ils se doivent suivre certaines étapes qu'ils sont nécessaires pour la construction du logiciel. Telles étapes, si bien doivent exister, ils sont souples dans sa forme d'application, d'accord à la méthodologie ou j'Accuse de Développement choisi et utilisé par l'équipe de développement ou par l'analyste-programador solitaire (si était le cas).
Les "procès de développement de logiciel" ils possèdent des règles préétablies, et ils doivent être appliqués dans la création du logiciel de moyen et grand il porte, puisqu'en cas contraire le plus sûr est que le projet ou il ne remporte pas conclure ou il termine sans accomplir les buts prévus, et avec variété de fautes inacceptables (échouent, en des peu de mots). Entre tels "procès" il les y a agiles ou légers (exemple XP), lourds et lents (exemple RUP) et variantes interviens; et ils normalement s'appliquent d'accord au type, portez et tipología du logiciel à développer, à critère du leader (si l'y a) de l'équipe de développement. Quelqu'uns de ces procès sont Extreme Programming (XP), Rational Unified Process (RUP), Feature Driven Development (FDD), etc.
N'importe qui soyez le "procès" utilisé et appliqué au développement du logiciel (RUP, FDD, etc), et presque indépendamment d'il, toujours se doit appliquer un "Modèle de Cycle de Vie".[4]
Il s'estime que, du total de projets logiciel grands entrepris, 28% ils échouent, 46% ils tombent en des sévères modifications que l'arrièrent et 26% sont totalement réussi. [5]
Lorsqu'un projet échoue, rare fois est en raison de faillis techniques, la principale cause de fautes et insuccès il est la faute d'application d'une bonne méthodologie ou procès de développement. Entre autrui, une forte tendance, depuis fait peu de décennies, est améliorer les méthodologies ou procès de développement, ou créer nouvelles et concientizar aux professionnels dans son utilisation appropriée. Normalement les spécialistes en l'étude et développement de ces zones (méthodologies) et tu accordes (telles comme des modèles et jusqu'à la gestion même des projets) sont les Ingénieurs en Logiciel, est son orientation. Les spécialistes à n'importe quel une autre zone de développement informatique (analyste, programador, Lic. En Informaticienne, Ingénieur en Informaticienne, Ingénieur de Systèmes, etc.) ils normalement appliquent ses connaissances spécialisées mais en utilisant modèles, paradigmes et procès déjà élaborés.
Il est commun pour le développement de logiciel de moyen porte que les équipes humaines impliqués appliquent ses propres méthodologies, normalement un híbrido des procès antérieurs et parfois avec des critères propres.
Le procès de développement peut impliquer nombreuses et variées tâches[4], depuis l'administratif, en passant par le technique et jusqu'à la gestion et le gerenciamiento. Mais presque rigurosamente toujours s'accomplissent certaines étapes minimes; celles qui se peuvent résumer comme suit:
- Il capture, Elicitación[6], Spécification et Analyse de conditions requises (ERS)
- Dessine
- Codification
- tu Essaies (unitarias et d'intégration)
- Installation et pas à Production
- Entretien
Dans les antérieures étapes peuvent varier légèrement ses noms, ou être plus globales, ou contrairement, être plus refinadas; par exemple indiquer comme une unique phase (aux fins documentaires et interpretativos) de "Analyse et Création"; ou indiquer comme "Implémentation" ce que est dit comme "Codification"; mais en rigueur, toutes ils existent et ils comprennent, basiquement,les mêmes tâches spécifiques.
Dans l'alinéa 4 du présent article ils se trinquent des majeurs détails de chacune des listées étapes.
Modèles de procès ou cycle de vie
Pour chacune les phases ou étapes listées en l'ítem antérieur, existent sub-étapes (ou tâches). Le modèle de procès ou modèle de cycle de vie utilisé pour le développement définit l'ordre pour les tâches ou des activités impliquées[4] aussi définissent la coordination entre elles, raccordez et realimentación entre les mentionnées étapes. Entre les plus connus il se peut mentionner: modèle en cascade ou secuencial, modèle espiral, modèle iterativo incremental. Des antedichos y a à son tour quelques variantes ou alternatives, plus ou moins attractives d'après il soit l'application requise et ses conditions requises.[7]
Modèle cascade
Ce, bien que est plus comúnmente connu comme modèle en cascade est aussi appelé "modèle classique", "modèle traditionnel" ou "modèle linéaire secuencial".
Le modèle en cascade pur difficilement s'utilise telle comme, donc ceci impliquerait une préalable et absolue connaissance des conditions requises, la ne volatilité des mêmes (ou rigidité) et étapes subsiguientes libres d'erreurs; cela seulement pourrait être applicable à rares et petits développements de systèmes. Dans ces circonstances, le pas d'une étape à une autre des mentionnées il serait sans retour, par exemple passer de la Création à la Codification impliquerait une création exacte et sans des erreurs ni probable modification ou évolution: "codifique le dessiné que n'auront pas absolument pas variantes ni erreurs". Ceci est utópico; puisqu'intrínsecamente le logiciel est de caractère évolutif, changeant et difficilement libre d'erreurs, autant pendant son développement comme pendant sa vie opérationnelle.[4]
Quelque changement pendant l'exécution d'une n'importe qui des étapes dans ce modèle secuencial impliquerait réinitialiser depuis le principe tout le cycle complet, ce que redundaría en des grands coûts de temps et développement. La figure 2 échantillon une possible schéma du modèle en question.[4]
Pourtant, le modèle cascade en quelques de ses variantes est un des actuellement plus utilisés[8], Par son efficacité et simplicidad, plus que rien en logiciel de petit et quelqu'uns de moyen porte; mais jamais (ou très rare fois) se l'use dans sa forme pure, comme s'a dit antérieurement. Au lieu de cela, toujours se produit quelque realimentación entre des étapes, que n'est pas complètement predecible ni rigide; ceci donne occasion au développement de produits logiciel en lesquels y a certaines incertezas, changements ou évolutions pendant le cycle de vie. Ainsi par exemple, une fois capturés (elicitados) et précisés les conditions requises (première étape) se peut passer à la création du système, mais pendant cette dernière phase le plus probable est qu'ils se doivent réaliser des ajustages dans les conditions requises (bien que soient minimes), il déjà soit par faillis détectées, ambigüedades ou bien par que les propres conditions requises ont changé ou évolué; avec ce que se doit retornar à la première ou préalable étape, faire les pertinents réaménagements et après continuer à nouveau avec la création; ceci dernier se connaît comme realimentación. Le Normal dans le modèle cascade sera alors l'application du même avec ses étapes realimentadas de quelque forme, en permettant reculer d'une à l'antérieure (et même pouvoir sauter à diverse antérieures) si il est requis.
De cette façon s'obtient un "modèle cascade realimentado", que peut être esquematizado comme l'illustre la figure 3.
Le Dit est, à des grands traits, la forme et utilisation de ce modèle, un des plus usés et populaires.[4] Le modèle Cascade Realimentado résulte très attractif, jusqu'à idéal, si le projet présente grande rigidéz (peu d'ou aucun changement, n'évolutif), les conditions requises sont très claires et sont correctement précisés.Erreur de citation : Balise <ref> incorrecte ; les références sans contenu doivent avoir un nom.
Il y a plus de variantes similaires au modèle: refino d'étapes (plus estapas, moindres et plus spécifiques) ou même montrer moins d'étapes des indiquées, bien que en tel cas la faltante sera dedans de quelque autre. L'ordre de ces phases indiquées en l'ítem préalable est le logique et approprié, mais avertissez-vous, comme s'a dit, qu'il normalement y aura realimentación vers derrière.
Le modèle linéaire ou en Cascade est le paradigme le plus ancien et extensamente utilisé, pourtant les critiques à il (voir des désavantages) ils ont mis en doute son efficacité. Malgré tout a un lieu très important dans la Ingénierie de logiciel et il continue à être le plus utilisé; et il toujours est mieux qu'une approche à l'aléa.Erreur de citation : Balise <ref> incorrecte ; les références sans contenu doivent avoir un nom.
Désavantages du modèle cascade:[4]
- Les changements introduits pendant le développement peuvent confondre à l'équipe professionnelle dans les étapes tempranas du projet. Si les changements se produisent en étape mûre (codification ou preuve) ils peuvent être catastrophiques pour un projet grand.
- il n'est pas fréquent que le client ou utilisateur final explicite claire et complètement les conditions requises (étape de début); et le modèle linéaire le requiert. L'incertitude naturelle en les débuts est après difficile d'accommoder.Erreur de citation : Balise
<ref>incorrecte ;
les références sans contenu doivent avoir un nom.
- Le client doit avoir patience puisque le logiciel ne sera pas disponible jusqu'à très devancé le projet. Une erreur détectée par le client (en phase d'opération) peut être désastreux, en impliquant je réinitialise du projet, avec des grands coûts.
Modèles évolutifs
Le logiciel il évolue avec le temps. Les conditions requises de l'utilisateur et du produit ont l'habitude de changer conforme se développe le même. Les dates de marché et la concurrence font qu'il ne soit pas possible attendre à mettre dans le marché un produit absolument complet, par ce que se doit introduire une version fonctionnelle limitée de quelque forme pour soulager les pressions compétitives.
En ces ou autres situations similaires les développeurs précisent des modèles de progrès qu'ils soient dessinés pour s'accommoder à une évolution temporelle ou progressive, où les conditions requises centrales sont connues d'avance, bien que ne soient pas bien définis à niveau détaillez.
Dans le modèle Cascade et Cascade Realimentado ne s'a pas en compte la nature évolutive du logiciel, se pose comme estático avec des conditions requises bien connus et définis depuis le début.[4]
Les évolutifs sont des modèles iterativos, permettent développer des versions de plus en plus complètes et complexes, jusqu'à arriver au but final souhaité; même évoluer au-delà, pendant la phase d'opération.
Les modèles “Iterativo Incremental” et “Espiral” (entre autrui) sont deux des plus connus et utilisés du type évolutif.Erreur de citation : Balise <ref> incorrecte ; les références sans contenu doivent avoir un nom.
Modèle iterativo incremental
En des termes généraux, pouvons distinguer, dans la figure 4, les pas généraux qu'il suit le procès de développement d'un produit logiciel. Dans le modèle de cycle de vie sélectionné, ils s'identifient clairement des dits pas. La Description du Système est essentielle pour préciser et confectionner les divers accroissements jusqu'à arriver au Produit globale et final. Les activités concurrentes (Spécification, Développement et Validation) synthétisent le développement pormenorizado des accroissements, que se fera postérieurement.
Le diagrama 4 nous montre en forme très esquemática, le fonctionnement d'un cycle iterativo incremental, lequel permet la livraison de versions partielles à mesure qu'il se va en bâtissant le produit final.[4] C'est-à-dire, à mesure que chaque accroissement défini arrive à son étape d'opération et entretien. Chaque version émise incorpore aux antérieurs accroissements les fonctionnalités et conditions requises qui ont été analysés comme nécessaires.
L'incremental est un modèle de type évolutif qu'est basé sur divers cycles Cascade realimentados appliqués à plusieurs reprises, avec une philosophie iterativa.Erreur de citation : Balise <ref> incorrecte ; les références sans contenu doivent avoir un nom. dans la figure 5 se montre un refino du diagrama préalable, sous un schéma temporelle, pour obtenir enfin le schéma du Modèle de cycle de vie Iterativo Incremental, avec ses activités génériques associées. il ici se remarque clairement chaque cycle cascade qui est appliqué pour l'obtention d'un accroissement; ces derniers se vont en intégrant pour obtenir le produit final complet. Chaque accroissement est un cycle Cascade Realimentado, bien que, par simplicidad, dans la figure 5 se montre comme secuencial pur.
Il se remarque qu'ils existent des activités de développement (pour chaque accroissement) qu'ils sont réalisées en parallèle ou concurrentemente, ainsi par exemple, dans la figure, tandis que se réalise la création détaillez du premier accroissement déjà s'est en réalisant en analyse de la seconde. La figure 5 est seulement esquemática, un accroissement ne nécessairement s'entamera pendant la phase design de l'antérieur, peut être posterior (même avant), à n'importe quel temps de l'étape préalable. Chaque accroissement conclut avec l'activité de “Opération et Entretien” (indiquée "Opération" dans la figure), qu'est où il se produit la livraison du produit partiel au client. Le moment de début de chaque accroissement est dépendant de divers facteurs: type de système; indépendance ou dépendance entre des accroissements (deux d'ils totalement indépendants ils peuvent être facilement entamés en même temps si il se dispose de personnel suffisant); capacité et quantité de professionnels impliqués dans le développement; etc.
Sous ce modèle se livre logiciel “par des parts fonctionnelles plus petites”, mais reutilizables, appelés accroissements. En général chaque accroissement se bâtit sur celui-là qu'a déjà été livré.[4]
Comme se montre dans la figure 5, ils s'appliquent des séquences Cascade en forme étagée, tandis que progresse le temps calendrier. Chaque séquence linéaire ou Cascade produit un accroissement et souvent le premier accroissement est un système basique, avec beaucoup de fonctions supplémentaires (connues ou ne) sans livrer.
Le client utilise initialement ce système basique intertanto, le résultat de son usage et évaluation peut apporter au plan pour le développement du/les suivants accroissements (ou versions). En plus ils aussi apportent à ce plan autres facteurs, comme l'est la priorización (majeur ou moindre urgence dans le besoin de chaque accroissement) et la dépendance entre des accroissements (ou indépendance).
Après de chaque intégration se livre un produit avec majeure fonctionnalité que le préalable. Le procès se répète jusqu'à obtenir le logiciel final complet.
En étant iterativo, avec le modèle incremental se livre un produit partiel mais complètement operacional dans chaque accroissement, et n'une part qui soit usée pour reajustar les demandes (comme si arrive dans le modèle de construction de prototypes).Erreur de citation : Balise <ref> incorrecte ; les références sans contenu doivent avoir un nom.
L'approche incremental résulte très utile avec basse dotation de personnel pour le développement; aussi sinon il y a disponible date limite du projet par ce que ils se livrent des versions incomplètes mais qu'ils fournissent à l'utilisateur fonctionnalité basique (et chaque fois majeure). il aussi est un modèle utile aux fins d'évaluation.
Note: Peut être envisagé et utile, à n'importe quel moment ou accroissement incorporer temporellement le paradigme MCP comme complément, en ayant ainsi une mixtura de modèles qu'améliorent le schéma et développement général.
Exemple:
- Un procesador de texte que soit développé sous le paradigme Incremental pourrait apporter, en principe, fonctions basiques d'édition d'archives et production de documents (quelque chose comme un éditeur simple). Dans un deuxième accroissement se lui pourrait agréger édition plus sofisticada, et de génération et mélange de documents. Dans un troisième accroissement pourrait s'envisager l'ajouté de fonctions de correction orthographique, schémas de paginado et personnels; dans quelques quatrièmes capacités de dessin propres et équations mathématiques. Ainsi de suite jusqu'à arriver au procesador final requis. Ainsi, le produit va en grandissant, en se rapprochant à son but final, mais depuis la livraison du premier accroissement déjà est utile et fonctionnel pour le client, lequel remarque une réponse rapide en ce qui concerne livraison temprana; sans remarquer qu'il la date limite du projet peut n'être bornée ni tellement définie, ce que donne marge d'opération et il soulage des pressions à l'équipe de développement.
Comme s'a dit, l'Iterativo Incremental est un modèle du type évolutif, c'est-à-dire où ils se permettent et ils attendent des probables changements dans les conditions requises en temps de développement; il s'admet vrai marge pour que le logiciel puisse évoluer. Applicable lorsque les conditions requises ils sont moyennement bien connus mais ne sont pas complètement estáticos et définis, question celle-là que si est indispensable pour pouvoir utiliser un modèle Cascade.
Le modèle est conseillable pour le développement de logiciel en lequel se remarque, dans son étape initiale d'analyse, que possède des zones assez bien définies à couvrir, avec suffisante indépendance comme pour être développées en des étapes successives. Telles zones à couvrir ont l'habitude d'avoir des divers degrés d'apremio par ce que les mêmes se doivent donner la priorité à dans une analyse préalable, c'est-à-dire, définir comme il sera la première, la deuxième, et ainsi de suite; ceci se connaît comme “définition des accroissements” en base à priorización. Ils peuvent n'exister des priorités fonctionnelles par part du client, mais le de développement doit les fixer de toute façon et avec quelque critère, puisqu'en base à elles ils se développeront et ils livreront les divers accroissements.
Le fait de que ils existent des accroissements fonctionnels du logiciel porte immédiatement à penser dans un schéma de développement modular, par autant ce modèle facilite tel paradigme design.
, un modèle incremental porte à penser dans un développement modular, avec des livraisons partielles du produit logiciel dénommés “accroissements” du système, que sont choisis en base à des priorités predefinidas de quelque façon. Le modèle permet une implémentation avec refinamientos successifs (agrandissement et/ou amélioration). Avec chaque accroissement s'agrège nouvelle fonctionnalité ou ils se couvrent des nouvelles conditions requises ou il bien s'améliore la version préalablement implémentée du produit logiciel.
Ce modèle trinque certaine flexibilité pour que pendant le développement ils se comprennent des changements dans les conditions requises par part de l'utilisateur, un changement de conditions requises proposées et approuvées il peut s'analyser et s'implémenter comme un nouveau accroissement ou, éventuellement, il pourra constituer une il améliore/adéquation d'un déjà plané. Bien que si il se produit un changement de conditions requises par part du client qu'il affecte des accroissements préalables déjà terminés (dépistage/incorporation tardive) il se doit évaluer la factibilidad et réaliser un accord avec le client, puisque peut impactar fortement dans les coûts.
La sélection de ce modèle permet réaliser des livraisons fonctionnelles tempranas au client (ce que est bienfaisant tellement pour il comme pour le groupe de développement). Ils se donnent la priorité à les livraisons de ces modules ou accroissements en qu'il surgisse le besoin opérationnel du faire, par exemple pour des charges préalables d'information, indispensable pour les accroissements suivants.Erreur de citation : Balise <ref> incorrecte ; les références sans contenu doivent avoir un nom.
Le modèle iterativo incremental n'oblige pas à préciser avec précision et détail absolument tout ce que le système doit faire, (et comment), avant d'être bâti (comme le cas du cascade, avec des conditions requises gelées). il seulement se fait dans l'accroissement en développement. Ceci revient plus manejable le procès et réduit l'impact dans les coûts. Ceci est ainsi, parce qu'en cas de changer ou refaire les conditions requises, il seulement affecte une part du système. Bien que, logiquement, cette situation s'aggrave si il se présente en état devancé, c'est-à-dire dans les derniers accroissements. En définitive, le modèle facilite l'incorporation de nouvelles conditions requises pendant le développement.
Avec un paradigme incremental se réduit le temps de développement initial, puisque se implémente fonctionnalité partielle. il aussi munit un impact avantageux face au client, qu'est la livraison temprana de parts opérationnelles du logiciel.
Le modèle fournit tous les avantages du modèle en cascade realimentado, en réduisant ses désavantages seulement au milieu de chaque accroissement.
Le modèle incremental n'est pas recomendable pour cas de systèmes de temps réel, de grand niveau de sécurité, de traitement distribué, et/ou de grand indice de risques.
Modèle espiral
Le modèle espiral a été proposé initialement par Barry Boehm. Il est un modèle évolutif que conjuga la nature iterativa du modèle MCP avec les aspects contrôlés et systématiques du Modèle Cascade. Il fournit potentiel pour développement rapide de versions incrementales. Dans le modèle Espiral le logiciel se bâtit dans une série de versions incrementales. En les premières iteraciones la version incremental pourrait être un modèle en papier ou bien un prototype. En les dernières iteraciones se produisent des versions de plus en plus complètes du système dessiné.[4]Erreur de citation : Balise <ref> incorrecte ; les références sans contenu doivent avoir un nom.
Le modèle se divise dans un nombre d'Activités de cadre de travail, appels "régions de tâches". En général ils existent entre trois et six régions de tâches (il y a des variantes du modèle). Dans la figure 6 se montre le schéma d'un Modèle Espiral avec 6 régions. Dans ce cas s'explique une variante du modèle original de Boehm, exposé en son agi de 1988; en 1998 il a exposé un traité un plus récent.
Les régions définies dans le modèle de la figure sont:
- Région 1 - Tâches requises pour établir la communication entre le client et le développeur.
- Région 2 - Tâches inhérentes à la définition des ressources, temps et une autre information liée avec le projet.
- Région 3 - Tâches nécessaires pour évaluer les risques techniques et de gestion du projet.
- Région 4 - Tâches pour bâtir une ou plus représentations de l'application logiciel.
- Région 5 - Tâches pour bâtir l'application, l'installer, l'essayer et fournir support à l'utilisateur ou client (Ej. Documentation et pratique).
- Région 6 - Tâches pour obtenir le réaction du client, selon l'évaluation du créé et installé dans les cycles antérieurs.
Les activités enunciadas pour le cadre de travail sont généraux et s'appliquent à n'importe quel projet, grand, moyen ou petit, complexe ou ne. Les régions qui définissent ces activités comprennent un "ensemble de tâches" du travail: cet ensemble oui se doit adapter aux caractéristiques du projet en particulier à entreprendre. Remarquez-vous que le listé en les ítems de 1 à 6 sont conjoints de tâches, quelques des elles normalement dépennent du projet ou développement en si.
Projets petits requièrent basse quantité de tâches et aussi de formalité. En des projets majeurs ou des critiques chaque région de tâches il contient des labeurs de plus de grand niveau de formalité. ils de toute façon s'appliquent des activités de protection (par exemple, gestion de configuration du logiciel, garantie de qualité, etc.).
Au début du cycle, ou procès évolutif, l'équipe d'ingénierie tourne autour de l'espiral (metafóricamente en parlant) en commençant par le centre (marqué avec ๑ dans la figure 6) et dans le sens indiqué; le premier circuit de l'espiral peut produire le développement d'une spécification du produit; les pas suivants pourraient générer un prototype et progressivement versions plus sofisticadas du logiciel.
Chaque pas par la région de planification provoque des ajustages dans le plan du projet; le coût et planification se realimentan en fonction de l'évaluation du client. Le gestionnaire de projets doit ajuster le nombre d'iteraciones requises pour compléter le développement.
Le modèle espiral peut aller en s'adaptant et s'appliquer tout au long de tout le cycle de vie du logiciel (dans le modèle classique, ou cascade, le procès termine à la livraison du logiciel).
Une vision alternative du modèle peut se remarquer en examinant le "axe de point d'entrée de projets". Chacun des circulitos (๏) fixés tout au long de l'axe représentent des points d'arraché des divers projets (liés); à savoir:
- Un projet de "Développement de Concepts" il commence au début de l'espiral, fait multiples iteraciones jusqu'à ce que se complète, il est la zone marquée avec vert.
- Si l'antérieur se va à développer comme produit réel, s'incia un autre projet: "Développement de nouveau Produit". Qu'il évoluera avec iteraciones jusqu'à terminer; il est la zone marquée en couleur bleue.
- Éventuel et análogamente se généreront des projets de "Améliorations de Produits" et de "Entretien de produits", avec les iteraciones nécessaires dans chaque zone (zones rouges et grises, respectivement).
Lorsque la espiral se caractérise de cette forme, est opérationnelle jusqu'à ce que le logiciel se retire, il éventuellement peut être inactiva (le procès), mais lorsque se produit un changement le procès arrache à nouveau dans le point d'entrée approprié (par exemple, en "Amélioration du Produit").
Le modèle espiral donne une approche réaliste, qu'il évolue pareil que le logiciel; il s'adapte très bien pour des développements à grande échelle.
L'Espiral utilise le MCP pour réduire risques et permet l'appliquer à n'importe quel étape de l'évolution. Il maintient l'approche classique (cascade) mais il incorpore un cadre de travail iterativo que reflète mieux la réalité.
Ce modèle requiert envisager des risques techniques en toutes les étapes du projet; appliqué adéquatement dois les réduire avant qu'ils soient un véritable problème.
Le Modèle évolutif comme l'Espiral est particulièrement apte pour le développement de Systèmes Opérationnels (complexes); aussi en des systèmes de grands risques ou critiques (Ej. Navigateurs et controladores aéronautiques) et en tous ceux-là en que soit nécessaire une forte gestion du projet et ses risques, techniciens ou de gestion.
Désavantages importants:
- il Requiert beaucoup d'expérience et habilité pour l'évaluation des risques, ce que est condition requise pour le succès du projet.
- Il est difficile convaincre aux grands clients qu'il se pourra contrôler cette approche évolutive.
Ce modèle ne s'est pas usé autant, comme le Cascade (Incremental) ou MCP, par ce que ne s'a pas bien mesurée son efficacité, est un paradigme relativement nouveau et difficile d'implémenter et contrôler.
Modèle espiral Win & Win
Une variante intéressante du Modèle Espiral préalablement vu (Fig. 6) Il est le "Modèle espiral Win-Win"[7] (Barry Boehm). Le Modèle Espiral préalable (classique) suggère la communication avec le client pour fixer les conditions requises, en que simplement se demande au client qu'est-ce que précise et il fournit l'information pour continuer; mais ceci est dans un contexte idéal que rare fois arrive. Normalement client et développeur ils entrent dans une négociation, se négocie coût face à fonctionnalité, rendement, qualité, etc.
"Il est donc l'obtention de conditions requises requiert une négociation, qu'il a succès lorsque les deux parts gagnent".
Les meilleures négociations se forcent en obtenir "Victoria & Victoria" (Win & Win), c'est-à-dire que le client gagnez en obtenant le produit qui le satisfasse, et le développeur aussi gagne en réussissant budget et date de livraison réaliste. Évidemment, ce modèle requiert des fortes habilités de négociation.
Le modèle Win-Win définit un ensemble d'activités de négociation au début de chaque pas autour de l'espiral; ils se définissent les suivantes activités:
- Identification du système ou subsistemas clef des dirigeants(*) (savoir qu'est-ce que ils veulent).
- Détermination de "conditions de victoire" des dirigeants (savoir qu'est-ce que ils précisent et il les satisfait)
- Négociation des conditions "victoire" des dirigeants pour obtenir conditions "Victoria & Victoria" (négocier pour que tous les deux gagnent).
(*) Directif: Client choisi avec intérêt direct dans le produit, que peut être décerné un prix par l'organisation si a succès ou critiqué sinon.
Le modèle Win & Win met l'accent sur la négociation initiale, il aussi introduit 3 bornes dans le procès appelés "points de fixation", qu'ils aident à établir la completitud d'un cycle de l'espiral, et fournissent des bornes de décision avant de continuer le projet de développement du logiciel.
Étapes dans le développement du logiciel
il Capture, analyse et spécification de conditions requises
Au début d'un développement (ne de un projet), celle-ci est la première phase qui se réalise, et, selon le modèle de procès adopté, peut presque terminer pour passer à la prochaine étape (cas de Modèle Cascade Realimentado) ou peut se faire partiellement pour après la reprendre (je marie Modèle Iterativo Incremental ou autrui de caractère évolutif).
En des simples mots et basiquement, pendant cette phase, s'acquièrent, ils réunissent et ils précisent les caractéristiques fonctionnelles et ne fonctionnelles qu'il devra accomplir le futur programme ou système à développer.
Les bontés des caractéristiques, autant du système ou programme à développer, comme de son environnement, paramètres ne fonctionnels et architecture dépennent énormément du bien remportée que soit cette étape. Celle-ci est, probablement, la de majeure importance et une des phases les plus difficiles de remporter précisément, donc n'est pas automatizable, n'est pas très technique et il dépend en grande mesure de l'habilité et expérience de l'analyste que la réalise.
Il implique fortement à l'utilisateur ou client du système, par autant a des nuances très subjectifs et il est difficile de modelar avec certitude et/ou appliquer une technicienne qu'il soit "la plus proche à l'appropriée" (en fait il n'existe pas "la strictement appropriée"). Si ils se sont bien idéé diverse méthodologies, même logiciel de soutien, pour capture, elicitación et registre de conditions requises, n'existe pas une forme infaillible ou absolument confiable, et doivent s'appliquer conjointement des bons critères et beaucoup de sens commun par part de l'ou les analystes chargés de la tâche; il est fondamental aussi remporter une fluide et appropriée communication et compréhension avec l'utilisateur final ou client du système.
L'engin le plus important résultat de la culminación de cette étape est ce que il se connaît comme spécification de conditions requises logiciel ou simplement document ERS.
Comme s'a dit, l'habilité de l'analyste pour interactuar avec le client est fondamental; le commun est que le client ait un but général ou problème à résoudre, il ne connaît pas absolument pas le zone (informatique), ni son jerga, même pas sait avec précision quelle devrait faire le produit logiciel (quel et cuantas fonctions) ni, beaucoup moins, comment doit opérer. Dans autres cas moins fréquents, le client "il pense" qu'il sait précisément ce que le logiciel doit faire, et il généralement devine très partiellement, mais son empecinamiento entrave la tâche d'elicitación. L'analyste doit avoir la capacité pour lidiar avec ce type de problèmes, que comprennent des relations humaines; il doit savoir se mettre au niveau de l'utilisateur pour permettre une appropriée communication et compréhension.
Rares sont les situations en que le client sait avec certitude et même avec completitud ce que requiert de son futur système, est est le cas le plus simple pour l'analyste.
La tâches relatives à capture, elicitación, modelado et registre de demandes, outre être extrêmement importante, peut arriver à être dificultosa de remporter acertadamente et porter assez temps relatif au procès total du développement; au procès et des méthodologies pour mener à terme cet ensemble d'activités il normalement se les assume part propre de la Ingénierie de Logiciel, mais donnée l'antedicha complexité, actuellement se parle d'une Ingénierie en des Conditions requises[9], bien que elle encore n'existe pas formellement.
Il y a des groupes d'étude et recherche, en tout le monde, qu'ils sont exclusivement débouchés sur à l'idéer des modèles, techniques et procès pour essayer remporter la correcte capture, analyse et registre de demandes. Ces groupes sont ceux qui ils normalement parlent de la Ingénierie en des Conditions requises; c'est-à-dire il se pose celle-ci comme un zone ou discipline mais ne comme une course universitaire en si même.
Quelques conditions requises ne précisent pas la présence du client, pour être capturés et/ou analysés; dans certains cas il les peut proposer le même analyste ou, même, adopter unilatéralement des décisions qu'il envisage appropriées (autant en des demandes fonctionnelles comme ne fonctionnelles). Par citer exemples probables: Quelques conditions requises sur l'architecture du système, conditions requises ne fonctionnelles telles comme les relatifs au rendement, niveau de support à des erreurs opérationnelles, plate-formes de développement, relations internes ou ligues entre l'information (entre des registres ou des tables de données) à stocker en cas de de les bases ou des bancs de données, etc. Quelques fonctionnels tels comme des options secondaires ou de support nécessaires pour une meilleure ou plus simple operatividad; etc.
L'obtention de spécifications à partir du client (ou autres acteurs intervenants) est un procès humain très interactif et iterativo; normalement à mesure qu'il se capture l'information, il la lui analyse et realimenta avec le client, refinándola, puliéndola et en corrigeant si est nécessaire; n'importe qui soyez le méthode de ERS utilisé. L'analyste toujours doit arriver à connaître la thématique et le problème à résoudre, le dominer, dans une certaine mesure, jusqu'au milieu que le futur système à développer le comprenne. C'est pour cela que l'analyste doit avoir grande capacité pour comprendre problèmes de très de diverses zones ou de disciplines de travail (que ne sont pas spécifiquement à elles); ainsi par exemple, si le système à développer sera pour gérer information d'une assureuse et ses succursales lointaines, l'analyste se doit compenetrar en comment elle travaille et il manie son information, depuis des niveaux très bas et même en arrivant jusqu'aux gerenciales. Donnée à grande diversité de champs à couvrir, les analystes ils ont l'habitude d'être assistés par des spécialistes, c'est-à-dire gens qu'il connaît profondément le zone pour laquelle il se développera le logiciel; évidemment une unique personne (l'analyste) ne peut pas comprendre tellement vaste quantité de zones de la connaissance. En des entreprises grandes de développement de produits logiciel, il est commun avoir des analystes spécialisés dans certaines zones de travail.
Contrairement, il n'est pas problème du client, c'est-à-dire il n'a pas par qu'est-ce que savoir rien de logiciel, ni de créations, ni autres choses liées; il seulement se doit limiter à apporter buts, données et information (de main propre ou de ses registres, équipes, employés, etc) à l'analyste, et guidé par il, pour que, en première instance, il définisse le "Univers de Discours", et avec posterior travail remporte confectionner l'approprié je documente ERS.
Il est bien connue la pression qu'ils souffrent les développeurs de systèmes informatiques pour comprendre et/ou rescatar les besoins des clients/utilisateurs. Combien plus complexe est le contexte du problème le plus difficile est le remporter, il parfois se force aux développeurs à devoir se convertir en presque experts des dominations qu'analysent.
Lorsque ceci n'arrive il pas est très probable que se génère un ensemble de conditions requises[10] Erronés ou incomplets et donc un produit de logiciel avec grand degré de désapprobation par part des clients/utilisateurs et un altísimo coût de reingeniería et entretien. Tout cela que ne se détecte pas, ou résultez mal compris dans l'étape initiale provoquera un fort impact négatif dans les conditions requises, en propageant ce courant dégradant tout au long de tout le procès de développement et en accroissant son préjudice combien plus tardive soit son dépistage (Bell et Thayer 1976)(Davis 1993).
Procès, modelado et formes d'elicitación de conditions requises
en Étant que la capture, elicitación et spécification de conditions requises, est une part cruciale dans le procès de développement de logiciel, puisque de cette étape dépend le réussite des buts finaux prévus, se sont idéé modèles et diverses méthodologies de travail pour ces fins. ils aussi existent des outils logiciel qu'ils soutiennent les tâches relatives réalisées par l'ingénieur en des conditions requises.
Le standard IEEE 830-1998 trinque une standardisation des "Pratiques Recommandées pour la Spécification de Conditions requises Logiciel".[11]
À mesure qu'ils s'obtiennent les conditions requises, il normalement se les va en analysant, le résultat de cette analyse, avec ou sans le client, s'écran à plasma dans un document, connu comme ERS ou Spécification de Conditions requises Logiciel, dont la structure peut venir définie par divers standards, tels comme CMM-I.
Un premier pas pour réaliser le relevamiento d'information est la connaissance et définition bonne ce que se connaît comme "Univers de Discours" du problème, que se définit et il comprend par:
Univers de Discours (UdeD): il est le contexte général en lequel le logiciel devra être développé et il devra opérer. L'UdeD comprend toutes les sources d'information et toutes les personnes liées avec le logiciel. Ces personnes sont connues aussi comme des acteurs de cet univers. L'UdeD est la réalité circunstanciada par l'ensemble de buts définis par qui ont poursuivi le logiciel.
À partir de l'extraction et analyse d'information dans son milieu ils s'obtiennent toutes les spécifications nécessaires et types de conditions requises pour le futur produit logiciel.
Le but de la Ingénierie de Conditions requises (ALLER) il est sistematizar le procès de définition de conditions requises en permettant elicitar, modelar et analyser le problème, en générant un engagement entre les Ingénieurs de Conditions requises et les clients/utilisateurs, puisque tous les deux ils participent à la génération et définition des conditions requises du système. L'ALLER il apporte un ensemble de méthodes, techniques et outils qui assistent aux ingénieurs de conditions requises (analystes) pour obtenir demandes le plus sûrs, véridiques, complets et opportuns possibles, en permettant basiquement:
- Comprendre le problème
- Faciliter l'obtention des besoins du client/utilisateur
- Valider avec le client/utilisateur
- Garantir les spécifications de conditions requises
Si ils bien existent des diverses formes, modèles et méthodologies pour elicitar, définir et documenter des demandes, il ne se peut pas dire que quelqu'une d'elles soit meilleure ou pire que l'autre, ils ont l'habitude d'avoir beaucoup en commune, et toutes ils accomplissent le même but. Pourtant, ce que si se peut dire sans des doutes il est qu'il est indispensable utiliser quelque d'elles pour documenter les spécifications du futur produit logiciel. Ainsi par exemple, y a un groupe de recherche argentin que depuis fait divers ans a proposé et il étudie l'usage du LEL (Léxico Étendu du Langage) et Plateaus comme méthodologie, ici[12] Se présente une des tellement références et bibliografía sur cela. Une autre forme, plus ortodoxe, de capturer et documenter des conditions requises il se peut obtenir en détail, par exemple, dans le travail de l'Université de Séville sur "Méthodologie pour l'Analyse de Conditions requises de Systèmes Logiciel".[13]
En la Fig. 7 Il se montre un schéma, plus ou moins rigoureux, bien que ne détaillé, des pas et tâches à suivre pour réaliser il la capture, analyses et spécification de demandes logiciel. Aussi il là se remarque quel engin ou document s'obtient dans chaque étape du procès. En le diagrama ne s'explicita méthodologie ou modèle à utiliser, simplement se pautan les tâches qui doivent il s'accomplir, de quelque façon.
Une possible liste, générale et rangée, de tâches recommandées pour obtenir la définition ce dont se doit réaliser,les produits à obtenir et les techniciennes à employer pendant l'activité d'elicitación de conditions requises, en phase de Spécification de Conditions requises Logiciel est:
- Obtenir information sur la domination du problème et le système actuel (UdeD).
- Préparer et réaliser les réunions pour elicitación/négociation.
- Identifier/réviser les buts de l'utilisateur.
- Identifier/réviser les buts du système.
- Identifier/réviser les conditions requises d'information.
- Identifier/réviser les conditions requises fonctionnelles.
- Identifier/réviser les conditions requises ne fonctionnelles.
- Donner la priorité à des buts et des conditions requises.
Quelques principes basiques à avoir en compte:
- Présenter et comprendre totalement la domination de l'information du problème.
- Définir correctement les fonctions qu'il doit réaliser le Logiciel.
- Représenter le comportement du logiciel à des conséquences d'événements externes, particuliers, même inattendus.
- Reconnaître des conditions requises incomplètes, ambigus ou contradictoires.
- Diviser clairement les modèles qu'ils représentent l'information, les fonctions et comportement et caractéristiques ne fonctionnels.
Classement et identification de demandes
ils Se peuvent identifier deux formes de conditions requises:
- Conditions requises d'utilisateur: Les conditions requises d'utilisateur sont des phrases en langage naturel je joins à diagramas avec les services que le système doit fournir, ainsi que les contraintes sous lesquelles il doit opérer.
- Conditions requises de système: Les conditions requises de système déterminent les services du système et mais avec les contraintes en détail. Ils servent comme contrat.
C'est-à-dire, tous les deux sont le même, mais avec divers niveau de détail.
Exemple de condition requise d'utilisateur: Le système doit faire des prêts Exemple de condition requise de système: Fonction prêt: entré code socio, code exemplaire; sortie: il date retour; etc.
Ils se classent en trois les types de conditions requises de système:
- Conditions requises fonctionnelles
Les conditions requises fonctionnelles décrivent:
- Les services qu'il fournit le système (fonctions).
- La réponse du système devant des déterminées entrées.
- Le comportement du système en des situations particulières.
- Conditions requises ne fonctionnelles
Les conditions requises ne fonctionnelles sont des contraintes des services ou fonctions qu'il offre le système (ej. Cotes de temps, procès de développement, rendement, etc.)
-
- Exemple 1. La bibliothèque Centrale doit être capable de répondre simultanément à toutes les bibliothèques de l'Université
- Exemple 2. Le temps de réponse à une consultation lointaine ne doit être supérieur à 1/2 s
- À son tour, il y a trois types de conditions requises ne fonctionnelles:
- Conditions requises du produit. Ils précisent le comportement du produit (Ej. Prestations, mémoire, taxe de fautes, etc.)
- Conditions requises organisationnelles. Ils se dérivent des politiques et procédures des organisations des clients et développeurs (Ej. Standards de procès, langages de programmation, etc.)
- Conditions requises externes. Ils se dérivent de facteurs externes au système et au procès de développement (Ej. Conditions requises législatives, éthiques, etc.)
- Conditions requises de la domination.
Les conditions requises de la domination se dérivent de la domination de l'application et ils reflètent caractéristiques de dite domination.
Ils peuvent être fonctionnels ou ne fonctionnels.
Ej. Le système de bibliothèque de l'Université doit être capable d'exportar données moyennant le Langage d'Intercommunication de Bibliothèques de l'Espagne (LIBE). Ej. Le système de bibliothèque ne pourra pas accéder à des bibliothèques avec matériel censuré.
Création du système
Codification du logiciel
Pendant celle-ci l'étape ils se réalisent les tâches que comúnmente se connaissent comme programmation; qu'il consiste, essentiellement, en porter à code source, dans le langage de programmation choisi, tout le dessiné dans la phase antérieure. Cette tâche la réalise le programador, en suivant par complet les lineamientos imposés dans la création et en égard toujours aux conditions requises fonctionnelles et ne fonctionnelles (ERS) précisés dans la première étape.
Il est commun penser que l'étape de programmation ou codification (quelqu'uns ils l'appellent implémentation) il est celle qui insume la majeure part du travail de développement du logiciel; pourtant, ceci peut être relatif (et généralement applicable à des systèmes de petit portez) puisque les étapes préalables sont cruciales, critiques et peuvent porter assez plus temps. Il s'a l'habitude de faire des estimations de 30% du temps total insumido dans la programmation, mais ce chiffre n'est pas consistant puisque dépend en grande mesure des caractéristiques du système, son criticidad et le langage de programmation choisi.[7]En tellement moindre est le niveau du langage majeur sera le temps de programmation requis, ainsi par exemple se tarderait plus temps en codificar un algoritmo en langage ensamblador que le même programmé en langage C.
Tandis qu'il se programme l'application, système, ou logiciel en général, ils se réalisent aussi des tâches de dépuration, ceci est le labeur d'aller en libérant au code des erreurs faisables d'être trouvés dans cette phase (de sémantique, syntaxique et logique). Il y a une chance de solapamiento avec la phase suivante, puisque pour épurer la logique est nécessaire réaliser des preuves unitarias, normalement avec des données de preuve; clair est que ne toutes les erreurs seront trouvées seulement dans l'étape de programmation, ils auront autrui qu'ils se trouveront pendant les étapes subsiguientes. L'apparition de quelque erreur fonctionnelle (mauvaise réponse aux demandes) éventuellement peut porter à retornar à la phase design avant de continuer la codification.
Pendant la phase de programmation, le code peut adopter divers états, en dépenant de la forme de travail et du langage choisi, à savoir:
- Code source: il est l'écrit directement par les programadorest en des éditeurs de texte, ce que il génère le programme. Il contient l'ensemble d'instructions codificadas dans quelque langage de grand niveau. Il peut être distribué en colis, procédures, bibliothèques source, etc.
- Code objet: il est le code binario ou intermède résultant d'accuser avec un compilador le code source. Il consiste à une traduction complète et d'une seule fois de celui-ci dernier. Le code objet n'est pas inteligible par l'être humain (normalement est format binario) mais non plus est directement ejecutable par la computadora. Il s'agit d'une représentation il intervient entre le code source et le code ejecutable, aux fins d'un raccorde final avec les routines de bibliothèque et entre des procédures ou bien pour son usage avec un petit interprète j'interviens [à façon de divers exemples voyez-vous EUPHORIA, (interprète interviens), FORTRAN (compilador pur) MSIL (Microsoft Intermediate Language) (interprète) et BASIC (interprète pur, interprète interviens, compilador intermède ou compilador pur, dépend de la version utilisée)].
- Le code objet n'existe pas si le programador travaille avec un langage à façon d'interprète pur, dans ce cas le même interprète se charge de traduire et exécuter ligne par ligne le code source (d'accord au flux du programme), en temps d'exécution. Dans ce cas non plus existe l'ou les archives de code ejecutable. Un désavantage de cette modalité est que l'exécution du programme ou système est un peu de plus lente que si se fît avec un interprète j'interviens, et assez plus lente que si existe l'ou les archives de code ejecutable. C'est-à-dire il n'avantage pas le rendement en vitesse d'exécution. Mais un grand avantage de la modalité interprète pur, est que le celle-ci forme de travail facilite énormément la tâche de dépuration du code source (face à l'alternative du faire avec un compilador pur). il fréquemment s'a l'habitude d'user une forme mixte de travail (si le langage de programmation elejido le permet), c'est-à-dire initialement travailler à façon d'interprète pur, et une fois épuré le code source (libéré d'erreurs) s'utilise un compilador du même langage pour obtenir le code ejecutable complet, avec ce que se rend agile la dépuration et la vitesse d'exécution s'optimiza.
- Code ejecutable: il Est le code binario résultat de raccorder un ou plus fragments de code objet avec les routines et bibliothèques nécessaires. Il constitue un ou plus archives binarios avec un format tel que le système opérationnel est capable du charger dans la mémoire RAM (éventuellement aussi part dans une mémoire virtuelle), et procéder à son exécution directe. Par l'antérieur se dit que le code ejecutable est directement "inteligible par la computadora". Le code ejecutable, aussi connu comme code machine, n'existe pas si se programme avec modalité de "interprète pur".
Preuves (unitarias et d'intégration)
Entre les diverses essaies que se lui efectuan au logiciel se peuvent distinguer principalement:
- Preuve unitarias: ils Consistent à essayer ou testear pièces de logiciel petites; à niveau de sections, procédures, fonctions et modules; celles-là qui aient fonctionnalités spécifiques. Dites preuves s'utilisent pour assurer le correct fonctionnement de sections de code, beaucoup plus réduites que l'ensemble, et qu'ils ont des fonctions concrètes avec vrai de degré d'indépendance.
- Preuves d'intégration: ils Se réalisent une fois que les preuves unitarias ont été conclues heureusement; avec celles-ci il s'essaie assurer que le système complet, même les subsistemas que composent les pièces individuelles grandes du logiciel fonctionnez correctement à l'opérer et inteoperar en ensemble.
Les preuves normalement s'effectuent avec les appelés données de preuve, qu'il est un ensemble sélectionné de données typiques à ceux que il peut se voir soumis le système et/ou modules et/ou blocs de code. ils aussi se choisissent: Données qui portent à des conditions limites au logiciel à fin d'essayer sa tolérance et robustesse; données d'utilité pour des mesures de rendement; données que propocan conditions éventuelles ou particuliers peu de communs et à celles que le logiciel normalement ne sera pas soumis mais ils peuvent arriver; etc. Les "données de preuve" n'ils nécessairement sont fictifs ou "créés", mais normalement si ils le sont les de peu de probabilité d'occurrence.
Généralement, il existe un phase probatoria finale et complète du logiciel, appel Beta Test, pendant laquelle le système installé en des conditions normales d'opération et travail est essayé exhaustivamente à fin de trouver erreurs, instabilités, réponses erronées, etc. Qu'ils soient passés les préalables contrôles. Celles-ci sont normalement réalisées par personnel idoine embauché ou affecté spécifiquement à cela. Les possibles erreurs trouvés se transmettent aux développeurs pour sa dépuration. Dans le cas de logiciel de développement "à demandé", l'utilisateur final (client) est celui qui réalise le Beta Test, en ayant pour cela une période de preuve pactisé avec le développeur.
Installation et pas à production
La installation du logiciel est le procès par lequel les programmes développés sont transférés apropiadamente au computador destination, initialisés, et, éventuellement, configurés; tout cela avec le propos d'être déjà utilisés par l'utilisateur final. Il constitue l'étape finale dans le développement proprement dit du logiciel. Après de celle-ci le produit entrera dans la phase de fonctionnement et production, pour celui qui fût dessiné.
L'installation, en dépenant du système développé, peut consister à une simple copie au disque rigide destination (cas rares actuellement); ou bien, plus comunmente, avec une de complexité intervient dans laquelle les diverses archives composants du logiciel (ejecutables, bibliothèques, données propres, etc.) Ils sont descomprimidos et copiés à lieux spécifiques préétablis du disque; ils même se créent des liens avec autres produits, outre le propre système opérationnel. Ce dernier cas, comunmente est un procès assez automatique qu'il est créé et guidé avec heramientas logiciel spécifiques (empaquetado et distribution, installateurs).
En des produits de majeure complexité, la deuxième alternative il est l'utilisée, mais il est réalisée et/ou guidée par des spécialistes; il peut même se requérir l'installation en divers et divers computadores (installation distribuída).
Aussi, en logiciel de moyenne et grande complexité normalement est requis un procès de configuration et contrôle, par lequel ils s'assignent des appropriés paramètres de fonctionnement et se testea l'operatividad fonctionnelle du produit.
En des produits de vente massive les installations complètes, si sont relativement simples, ont l'habitude d'être réalisées par les propres utilisateurs finaux (tels comme des systèmes opérationnels, colis de bureau, utilitarios, etc.) Avec des outils propres d'installation guidée; même la configuration a l'habitude d'être automatique. En produits design spécifique ou "à mesure" l'installation reste restreinte, normalement, à personnes spécialistes impliquées dans le développement du logiciel en question.
Une fois réalisée heureusement l'installation du logiciel, le même passe à la phase de production (operatividad), pendant laquelle accomplit les fonctions pour lesquelles il a été développé, c'est-à-dire, est enfin utilisé par le (ou les) utilisateur final, en produisant les résultats attendus.
Entretien
Le entretien de logiciel est le procès de contrôle, amélioration et optimisation du logiciel déjà développé et installé, qu'aussi comprend dépuration d'erreurs et défauts que puissent s'avoir filtré de la phase de preuves de contrôle et beta test. Cette phase est la dernière (avant d'iterar, selon le modèle employé) que s'applique au cycle de vie du développement de logiciel. La phase d'entretien est celle qui il vient après que le logiciel est opérationnel et en production.
D'une bonne création et documentation du développement dépendra comment il sera la phase d'entretien, autant en coût temporel comme monétaire. Modifications réalisées à un logiciel qu'il a été élaboré avec une documentation indue ou pauvre et mauvaise création peut arriver à être tellement coûteuse comme le développer le logiciel depuis le début. C'est pour cela que, il est de fondamentale importance respecter dûment toutes les tâches des phases du développement et maintenir appropriée et complète documentation.
La période de temps de la phase d'entretien est normalement le majeur en tout le cycle de vie.[7] Cette phase peut impliquer des actualisations et des évolutions du logiciel; n'il nécessairement implique que le système a eu des erreurs. Un ou plus changements dans le logiciel, par exemple d'adaptation ou évolutifs, peut porter même à rever et adapter depuis part des premières phases du développement initial, en changeant toutes les autres; en dépenant de cuán profonds soyez les changements. Le modèle cascade commune est particulièrement coûteux en entretien, puisque sa rigidité implique que n'importe quel changement provoque retour à phase initiale et forte altérations dans les autres phases du cycle de vie.
Pendant la période d'entretien, est commun qu'ils surgissent des nouvelles révisions et des versions du produit; qu'ils le libèrent plus épuré, avec majeur et meilleur fonctionnalité, mieux rendement, etc. Diverses sont les facettes qu'ils peuvent être changées pour provoquer changements souhaitables, évolutifs, adaptations ou agrandissements et améliorations.
ils basiquement s'ont les suivants types de changements:
- Perfectivos: Ceux-là qui portent à une amélioration de la qualité interne du logiciel à n'importe quel aspect: Redéploiement du code, définition plus claire du système et sa documentation; optimisation du rendement et efficacité.
- Évolutifs: Ajoutés, modifications, même éliminations, nécessaires dans le logiciel pour couvrir son expansion ou changement selon les besoins de l'utilisateur.
- Adaptivos: Modifications qui affectent aux environnements dans lesquels le système il opère, tels comme: Changements de configuration de l'hardware (par actualisation ou amélioration de composants électroniques), changements dans le logiciel de base, en des gestionnaires de base de données, en des communications, etc.
- Correctifs: Altérations nécessaires pour corriger erreurs de n'importe quel type dans le produit logiciel développé.
Voyez-vous aussi
Portal:Logiciel Contenu lié avec Logiciel.- Ingénierie de logiciel
- Programme informatique
- Application informatique
- Programmation
- Phases du développement de logiciel
- Logiciel colaborativo
- Logiciel libre
- Ingénierie informatique
Modèles de cycle de vie
- Modèle en cascade ou secuencial
- Modèle iterativo incremental
- Modèle évolutif espiral
- Modèle de prototypes
- Modèle de développement rapide
Références
- ↑ Modèle:Cite web
- ↑ Modèle:Cite web
- ↑ Modèle:Rendez-vous livre
- ↑ 4,00 4,01 4,02 4,03 4,04 4,05 4,06 4,07 4,08 4,09 4,10 Modèle:Cite web
- ↑ Modèle:Rendez-vous livre
- ↑ Modèle:Cite web
- ↑ Erreur de citation : Balise
<ref>incorrecte ; aucun texte n'a été fourni pour les références nomméesPressman-Accuse. - ↑ Modèle:Cite web
- ↑ Logiciel Requirements Engineering”, 2nd Edition, IEEE Computer Society. Les Alamitos, communautés autonomes, 1997 (Compendio de papers et articles en ingénierie de conditions requises)
- ↑ Modèle:Cite web
- ↑ Modèle:Cite web
- ↑ Modèle:Cite web
- ↑ Modèle:Cite web
Bibliografía
Livres
- Modèle:Cite je livre
- Modèle:Rendez-vous je livre
- Modèle:Rendez-vous je livre
- Modèle:Rendez-vous je livre
- Modèle:Rendez-vous je livre
- Modèle:Rendez-vous je livre
- Modèle:Rendez-vous je livre
- Modèle:Rendez-vous je livre
Articles et revues
- Weitzenfeld - “Le Procès pour Développement de Logiciel” - 2002
- Carlos Reynoso - “Méthodes Heterodoxos en Développement de Logiciel” - 2004
- Groupe ISSI - Univ. Politécnica De Valence - “Méthodologies Agiles dans le Développement de Logiciel” - 2003
- Martin Fowler - La Nouvelle Méthodologie - 2003
- Cutter IT Journal – “Requirements Engineering and Management”. August 25, 2000. Cutter Consortium.
- “Logiciel Requirements Engineering”, 2nd Edition, IEEE Computer Society. Les Alamitos, communautés autonomes, 1997 (Compendio de papers et articles en ingénierie de conditions requises).
Tu raccordes externes
Wikimedia Commons Héberge contenu multimédia sur Logiciel.Commons
- Fichier:Wiktionary-logo-est.png Wikcionario a définitions pour logiciel.arz:سوفت ويرdonne:Computerprogramle:Λογισμικόj'ai:תוכנהallez:Perangkat lunakle:ຊອຟຕ໌ແວຣ໌sous:Logicielj'ai vu:Phần mềm
