Maison / 10 règles / Approches technologiques du développement logiciel. Principes généraux et approches du développement logiciel Approches de base du développement logiciel

Approches technologiques du développement logiciel. Principes généraux et approches du développement logiciel Approches de base du développement logiciel

Modèles de développement logiciel Waterfall Waterfall Spiral Extreme Programming Prototypage d'interface utilisateur Test incrémental de modèles W Processus de développement logiciel unifié (USDP) Méthodologie MSF

Modèle en cascade Analyse des exigences Compilation des spécifications du produit Conception Compilation de l'architecture du produit Mise en œuvre Développement du code source Intégration de parties distinctes du code source Test et dépannage

Programmation extrême Analyse initiale des exigences Conception Intégration Mise en œuvre Test Nouvelles exigences Examen/approbation/modification du plan de développement Lancement du produit

Prototypage de l'interface utilisateur Lancement du produit Développement du logiciel en tenant compte des changements Clarification des exigences et des spécifications Modification du prototype et raffinement de certaines fonctionnalités Fonctionnalité de base Prototype d'interface Spécification préliminaire

Développement Incrémental Itération 1 Itération 2 …. Analyse des exigences Conception Mise en œuvre Test des composants Intégration Test de l'ensemble Toute l'itération N

Processus de développement logiciel unifié (USDP) Ø Modèle de cas d'utilisation, décrit les cas dans lesquels l'application sera utilisée. Ø Le modèle analytique décrit les classes de base de l'application. Ø Le modèle de conception décrit les connexions et les relations entre les classes et les objets sélectionnés Ø Le modèle de déploiement décrit la distribution des logiciels sur les ordinateurs. Ø Le modèle d'implémentation décrit l'organisation interne du code du programme. Ø Le modèle de test se compose de composants de test, de procédures de test et de différents cas de test

Collecte des exigences du processus de développement logiciel unifié (USDP) Iter 1…. Iter N Concevoir Iter 1…. Iter N Implémentation d'Iter 1…. Iter N Concevoir Iter 1…. Iter N Test Iter 1…. Iter N

Composants typiques de l'architecture du produit logiciel et exigences logicielles typiques Ø Ø Ø Ø Organisation du programme Principales classes de système Organisation des données Règles métier Interface utilisateur Gestion des ressources Sécurité Performance Évolutivité Interaction avec d'autres systèmes (intégration) Internationalisation, localisation Données d'entrée-sortie Gestion des erreurs

Composants d'architecture de produit logiciel typiques et exigences logicielles typiques La tolérance aux pannes est un ensemble de propriétés système qui améliorent la fiabilité du système en détectant les erreurs, en récupérant et en isolant les mauvaises conséquences pour le système. Lors de la conception de tout système réel pour assurer la tolérance aux pannes, il est nécessaire d'anticiper toutes les situations possibles pouvant conduire à une défaillance du système et de développer des mécanismes de gestion des défaillances. La fiabilité est la capacité d'un système à résister à diverses pannes et défaillances. L'échec est la transition du système à la suite d'une erreur vers un état complètement inutilisable. Une défaillance est une erreur dans le fonctionnement du système qui n'entraîne pas la défaillance du système. Moins il y a de pannes et de pannes pendant une certaine période de temps, plus le système est considéré comme fiable.

Composants typiques d'une architecture de produit logiciel et exigences logicielles typiques Courbe de fiabilité N t 1 t Plus loin, plus il sera difficile de trouver une erreur. Plus le système est complexe, plus la probabilité d'échecs et d'échecs est grande.

Composants typiques de l'architecture du produit logiciel et exigences logicielles typiques Ø Possibilités de mise en œuvre de l'architecture développée. Ø Fonctionnalité excessive. Ø Prendre la décision d'acheter des composants logiciels prêts à l'emploi. Ø Changer de stratégie.

Une liste de questions permettant de tirer une conclusion sur la qualité de l'architecture : Ø L'organisation globale du programme est-elle clairement décrite ; Ø Ø Ø Si le cahier des charges comprend une vue d'ensemble de l'architecture et de sa raison d'être. Les principales composantes du programme sont-elles correctement définies, leurs domaines de responsabilité et leur interaction avec d'autres composantes. Si toutes les fonctions spécifiées dans la spécification des exigences sont mises en œuvre par un nombre raisonnable de composants du système. Les classes les plus importantes sont-elles décrites et justifiées. Si une description de l'organisation de la base de données est donnée. Toutes les règles métier sont-elles définies ? Leur impact sur le système est-il décrit ?

Une liste de questions permettant de tirer une conclusion sur la qualité de l'architecture : Ø La stratégie de conception de l'interface utilisateur est-elle décrite. Ø Si l'interface utilisateur est rendue modulaire afin que les modifications qui y sont apportées n'affectent pas le reste du système. ØSi la description de la stratégie d'entrée/sortie des données est donnée. Ø Si l'analyse des performances du système qui sera mis en œuvre à l'aide de cette architecture a été effectuée. Ø Si l'analyse de fiabilité du système conçu a été effectuée. Ø Si l'analyse des problèmes d'évolutivité et d'extensibilité du système a été effectuée.

Refactoring logiciel Le refactoring consiste à adapter un logiciel à une nouvelle matériel et aux nouveaux systèmes d'exploitation, aux nouveaux outils de développement, aux nouvelles exigences, à l'architecture et aux fonctionnalités logicielles. Il s'agit d'un changement de la structure interne du logiciel sans modifier son comportement externe, destiné à assurer la modification du logiciel. Raisons raisonnables de refactorisation : le code est répétitif ; la mise en œuvre de la méthode est trop importante ; trop d'imbrication de boucles, ou la boucle elle-même est très grande ; la classe a une mauvaise connectivité (les propriétés et les méthodes de la classe ne doivent décrire qu'un seul objet) ; une interface de classe ne forme pas une abstraction cohérente ; la méthode prend trop de paramètres. Vous devriez essayer de garder le nombre de paramètres à un minimum raisonnable ; les parties individuelles de la classe changent indépendamment des autres parties de la classe ;

La refactorisation logicielle lors du changement de programme nécessite un changement parallèle de plusieurs classes. Si une telle situation se présente, il est nécessaire de réorganiser les classes afin de minimiser les lieux d'éventuels changements dans le futur ; devoir modifier plusieurs hiérarchies d'héritage en parallèle ; vous devez modifier plusieurs blocs de cas. Il est nécessaire de modifier le programme de manière à rendre l'implémentation du cas bloc, et de l'appeler le nombre de fois requis dans le programme ; les membres de données associés utilisés ensemble ne sont pas organisés en classes. Si vous utilisez à plusieurs reprises le même ensemble d'éléments de données, il est conseillé d'envisager de combiner ces données et de placer les opérations effectuées sur celles-ci dans une classe distincte ;

Une méthode de refactorisation logicielle utilise plus d'éléments d'une autre classe que la sienne. Cela signifie que la méthode doit être déplacée vers une autre classe et appelée depuis l'ancienne ; le type de données élémentaire est surchargé. Pour décrire l'essence du monde réel, il est préférable d'utiliser une classe plutôt que de surcharger n'importe quel type de données existant ; la classe a des fonctionnalités trop limitées. Il vaut mieux se débarrasser de cette classe en transférant ses fonctionnalités dans une autre classe ; les données "errantes" sont transmises le long de la chaîne de méthodes. Les données transmises à une méthode uniquement pour être transmises à une autre méthode sont appelées données parasites. Lorsque de telles situations se présentent, essayez de modifier l'architecture des classes et des méthodes pour vous en débarrasser.

Refactoriser l'objet média ne fait rien. Si le rôle d'une classe est de rediriger les appels de méthode vers d'autres classes, il est préférable d'éliminer ce proxy et d'appeler directement les autres classes ; une classe en sait trop sur une autre classe. Dans cette situation, il est nécessaire de rendre l'encapsulation plus stricte pour s'assurer que l'héritier a une connaissance minimale de son parent ; la méthode porte un nom malheureux ; les données membres sont publiques. Cela brouille la frontière entre l'interface et l'implémentation, rompt inévitablement l'encapsulation et limite la flexibilité du programme ; placer des commentaires dans le code source ;

Une sous-classe de refactorisation logicielle n'utilise qu'une petite partie des méthodes de ses ancêtres. Cette situation se produit lorsqu'une nouvelle classe est créée uniquement pour hériter de quelques méthodes de la classe de base, et non pour décrire une nouvelle entité. Pour éviter cela, il est nécessaire de transformer la classe de base de manière à ce qu'elle ne donne accès à la nouvelle classe qu'aux méthodes dont elle a besoin ; le code contient des variables globales. Seules les variables réellement utilisées par l'ensemble du programme doivent être globales. Toutes les autres variables doivent soit être locales, soit devenir des propriétés d'un objet ; le programme contient du code qui pourrait un jour être nécessaire. Lors du développement d'un système, il est conseillé de prévoir des endroits où le code source peut être ajouté à l'avenir.

Informatique, cybernétique et programmation

Itération N Processus de développement logiciel unifié USDP Le modèle de cas d'utilisation décrit les cas dans lesquels l'application sera utilisée. Le modèle analytique décrit les classes de base de l'application. Le modèle de conception décrit les connexions et les relations entre les classes et les objets dédiés, tandis que le modèle de déploiement décrit la répartition des logiciels sur les ordinateurs.

Leçon #20
Principes généraux et approches du développement logiciel

Modèles de développement logiciel

  1. Vodopadnaïa
  2. Modèle en cascade
  3. Spirale
  4. Programmation extrême
  5. incrémentale
  6. Méthodologie MSF

modèle de cascade

modèle en spirale

Développement incrémental

Analyse des besoins

Conception

Mise en œuvre

Composant

essai

L'intégration

Essai

ensemble

Itération 1 Itération 2 …. Itération N

Processus de développement logiciel unifié (USDP)

  1. Le modèle de cas d'utilisation décrit les cas dans lesquels l'application sera utilisée.
  2. Le modèle analytique décrit les classes de base de l'application.
  3. Le modèle de conception décrit les connexions et les relations entre les classes et les objets sélectionnés
  4. Le modèle de déploiement décrit la distribution des logiciels sur les ordinateurs.
  5. Le modèle d'implémentation décrit l'organisation interne du code du programme.
  6. Le modèle de test se compose de composants de test, de procédures de test et de différents cas de test.

Méthodologie MSF

Composants typiques de l'architecture du produit logiciel et exigences logicielles typiques

tolérance aux pannesun ensemble de propriétés du système qui augmentent sa fiabilité en détectant les erreurs, en restaurant et en localisant les mauvaises conséquences pour le système. Lors de la conception de tout système réel pour assurer la tolérance aux pannes, il est nécessaire d'anticiper toutes les situations possibles pouvant conduire à une défaillance du système et de développer des mécanismes de gestion des défaillances.

Fiabilité la capacité du système à résister à diverses pannes et pannes.

Refus est la transition du systèmeà la suite de l'erreur à un état complètement inutilisable.

accident une erreur dans le fonctionnement du système qui n'entraîne pas la défaillance du système.

Moins il y a de pannes et de pannes pendant une certaine période de temps, plus le système est considéré comme fiable.


Ainsi que d'autres travaux qui pourraient vous intéresser

57355. Variété de composés organiques, leur classification. Substances organiques de la nature 48.5Ko
La variété des composés organiques est déterminée par la capacité unique des atomes de carbone à se combiner entre eux par des liaisons simples et multiples pour former des composés avec un nombre presque illimité d'atomes liés en chaînes, cycles, bicyclettes, tricycles, polycycles, cadres, etc.
57359. Traitement des modèles d'information verbale 291 Ko
Concepts de base : modèle ; modèle d'information; modèle d'information verbale; annotation; abstrait. Synopsis Synopsis de lat. Créez un plan pour 2. Enregistrez le document dans votre propre dossier sous le nom Résumé.
57361. Chiffre et nombre 3. Appariement des nombres aux frontières 3. Chiffres écrits 3. Appariement des objets anciens 35,5 Ko
Nombre de toutes les créatures Qui devrait être le premier Qui devrait être le dernier Qui devrait être sous le numéro 1 Qui devrait être sous le numéro 2 Qui est le susid écureuil droitier Qui est la susid girafe gaucher

Annotation: Une approche flexible du développement logiciel, les principes de base du développement flexible sont pris en compte. Une liste de techniques est fournie qui, dans une certaine mesure, correspondent aux principes du développement logiciel flexible. Les valeurs et principes clés du développement agile sont analysés.

Vous pouvez télécharger la présentation de cette conférence.

But de la leçon :

Acquérir une compréhension de l'objectif et des principes de base du développement logiciel agile.

Introduction

Méthodologie de développement logiciel agile axé sur l'utilisation d'une approche itérative, dans laquelle logiciel est créé progressivement, par petites étapes, y compris la mise en œuvre d'un certain ensemble d'exigences. Il est supposé que les exigences peuvent changer. Les équipes utilisant des méthodologies agiles sont formées de développeurs polyvalents qui effectuent diverses tâches dans le processus de création d'un produit logiciel.

Lors de l'utilisation de méthodologies agiles, la minimisation des risques est réalisée en réduisant le développement à une série de cycles courts appelés itérations, d'une durée de 2 à 3 semaines. Une itération est un ensemble de tâches planifiées pour être accomplies dans une période de temps spécifique. À chaque itération, une version exploitable du système logiciel est créée, dans laquelle la plus prioritaire (pour cette itération) les exigences des clients. Chaque itération exécute toutes les tâches nécessaires à la création d'un logiciel fonctionnel : planification, analyse des exigences, conception, codage, test et Documentation. Alors qu'une seule itération n'est généralement pas suffisante pour sortir une nouvelle version d'un produit, il est entendu que le logiciel prêt à être publié à la fin de chaque itération. À la fin de chaque itération, l'équipe redéfinit la priorité des exigences pour le produit logiciel, en apportant éventuellement des ajustements au développement du système.

Principes et signification du développement agile

Pour la méthodologie de développement agile, des postulats clés sont déclarés qui permettent aux équipes d'atteindre des performances élevées :

  • les gens et leur interaction;
  • livraison de logiciels de travail ;
  • coopération avec le client ;
  • réponse au changement.

Les gens et l'interaction. Les gens sont la partie la plus importante du succès. Les membres individuels de l'équipe et de bonnes communications sont essentiels pour des équipes performantes. Pour faciliter la communication, les pratiques agiles impliquent des discussions fréquentes sur les résultats du travail et les changements de décisions. Des discussions peuvent avoir lieu quotidiennement pendant quelques minutes et à la fin de chaque itération avec une analyse des résultats des travaux et une rétrospective. Pour communiquer efficacement lors des réunions, les membres de l'équipe doivent respecter les règles de conduite clés suivantes :

  • le respect de l'opinion de chaque membre de l'équipe ;
  • être honnête dans toute communication ;
  • transparence de toutes les données, actions et décisions ;
  • la confiance que chaque participant soutiendra l'équipe ;
  • engagement envers l'équipe et ses objectifs.

En plus d'une équipe efficace et de bonnes communications, des outils logiciels parfaits sont nécessaires pour créer des équipes performantes dans des méthodologies agiles.

fonctionnement logiciel plus important qu'une documentation complète. Toutes les méthodologies agiles mettent en évidence la nécessité de fournir de petits morceaux de logiciel de travail au client à des intervalles prédéterminés. Logiciel, en règle générale, doit passer le niveau des tests unitaires, les tests au niveau du système. La quantité de documentation doit être réduite au minimum. Pendant le processus de conception, l'équipe doit tenir à jour un court document contenant la justification de la décision et une description de la structure.

La coopération avec le client est plus importante que les accords formels dans le cadre du contrat. Pour que le projet soit mené à bien, une communication régulière et fréquente avec le client est nécessaire. Le client doit régulièrement participer à la discussion des décisions prises sur le logiciel, exprimer ses souhaits et ses commentaires. Impliquer le client dans le processus de développement logiciel est nécessaire pour créer un produit de qualité.

Il est plus important de réagir rapidement au changement que de suivre un plan. La capacité à réagir au changement détermine en grande partie le succès d'un projet logiciel. Dans le processus de création d'un produit logiciel, ils changent souvent les exigences des clients. Souvent, les clients ne savent pas exactement ce qu'ils veulent jusqu'à ce qu'ils le voient fonctionner. logiciel. Les méthodologies agiles recherchent retour des clients dans le processus de création d'un produit logiciel. La réactivité au changement est essentielle pour créer un produit qui offre la satisfaction du client et une valeur commerciale.

Les principes du développement agile sont soutenus par 12 principes. Les méthodologies spécifiques Agile définissent des processus et des règles plus ou moins conformes à ces principes. Les méthodologies flexibles de création de produits logiciels reposent sur les principes suivants :

  1. La priorité absolue est de satisfaire les souhaits du client grâce à la livraison de logiciels utiles dans un court laps de temps, suivi de mises à jour continues. Les méthodes agiles impliquent une livraison rapide de la version initiale et mises à jour fréquentes. L'objectif de l'équipe est de livrer une version de travail quelques semaines après le démarrage du projet. À l'avenir, les systèmes logiciels dotés de fonctionnalités incrémentielles devraient être livrés toutes les quelques semaines. Le client peut commencer opération commerciale système, s'il le juge suffisamment fonctionnel. De plus, le client peut simplement lire version actuelle logiciel, fournissez vos commentaires avec des commentaires.
  2. N'ignorez pas l'évolution des exigences, même tardivement dans le développement. Des processus flexibles permettent de prendre en compte les changements pour assurer l'avantage concurrentiel du client. Les équipes utilisant des méthodologies agiles s'efforcent de rendre la structure du programme de haute qualité, avec un impact minimal des changements sur le système dans son ensemble.
  3. Livrer fréquemment de nouvelles versions de travail du logiciel, à des intervalles d'une semaine à deux mois, avec une préférence pour des délais plus courts. En même temps, l'objectif est de livrer un programme qui répond aux besoins de l'utilisateur, avec un minimum de documentation d'accompagnement.
  4. Les clients et les développeurs doivent travailler ensemble tout au long du projet. On pense que pour un projet réussi, les clients, les développeurs et toutes les parties prenantes doivent communiquer souvent et de plusieurs manières pour améliorer délibérément le produit logiciel.
  5. Les projets doivent être mis en œuvre par des personnes motivées. Offrez à l'équipe de projet un environnement de travail sain, fournissez le soutien dont elle a besoin et faites confiance aux membres de l'équipe pour faire le travail.
  6. La méthode la plus efficace et la plus productive pour transmettre des informations à l'équipe de développement et échanger des opinions en son sein est une conversation en face à face. Dans les projets agiles, le principal mode de communication est une simple interaction humaine. Les documents écrits sont créés et mis à jour au fur et à mesure que le logiciel est développé et uniquement lorsque cela est nécessaire.
  7. Un programme de travail est le principal indicateur de l'avancement du projet. L'approche d'un projet agile jusqu'à son achèvement est jugée par la quantité disponible ce moment le programme répond aux exigences du client.
  8. Les processus agiles encouragent le développement à long terme. Clients, développeurs et utilisateurs doivent pouvoir maintenir indéfiniment un rythme constant.
  9. Une concentration constante sur l'excellence en ingénierie et l'ingénierie de qualité augmente la valeur de technologies flexibles. Les membres de l'équipe Agile s'efforcent de créer un code de qualité en le refactorisant régulièrement.
  10. La simplicité est l'art de faire plus en faisant moins. Les membres de l'équipe résolvent les tâches en cours aussi simplement et efficacement que possible. S'il y a un problème à l'avenir, il est alors possible d'apporter des modifications au code de qualité sans grand frais.
  11. Les meilleures architectures, exigences et conceptions proviennent d'équipes auto-organisées. Dans les équipes flexibles, les tâches ne sont pas attribuées à des membres individuels, mais à l'équipe dans son ensemble. L'équipe elle-même décide de la meilleure façon de mettre en œuvre les exigences du client. Les membres de l'équipe travaillent en collaboration sur tous les aspects du projet. Chaque participant est autorisé à contribuer à la cause commune. Aucun membre de l'équipe n'est seul responsable de l'architecture, des exigences ou des tests.
  12. L'équipe doit régulièrement réfléchir à la manière de devenir encore plus efficace, puis ajuster et affiner son comportement en conséquence. Une équipe agile ajuste en permanence son organisation, ses règles, ses accords et ses relations.

Les principes ci-dessus correspondent, dans une certaine mesure, à un certain nombre de méthodologies de développement logiciel :

Modélisation agile un ensemble de concepts, principes et techniques (pratiques) qui vous permettent d'effectuer rapidement et facilement la modélisation et la documentation dans les projets de développement de logiciels ;
Processus Agile Unifié (AUP) une version simplifiée d'IBM RationalUnifiedProcess(RUP), qui décrit une approximation (modèle) simple et compréhensible pour la création de logiciels pour les applications métier ;
S'ouvrir c'est une méthode itérative-incrémentale de développement logiciel. Positionné comme une option RUP légère et flexible ;
AgileDataMethod un ensemble de méthodes itératives de développement de logiciels dans lesquelles les exigences et les solutions sont réalisées grâce à la collaboration de différentes équipes interfonctionnelles ;
DSDM une méthodologie de développement de systèmes dynamiques basée sur le concept de développement rapide d'applications (RapidApplicationDevelopment, RAD). C'est une approche itérative et incrémentale qui donne sens spécial l'implication continue de l'utilisateur/consommateur dans le processus ;
Programmation extrême (XP) programmation extrême;
Développement logiciel adaptatif (ADD) développement de logiciels adaptatifs;
Développement piloté par les fonctionnalités (FDD) développement axé sur l'ajout progressif de fonctionnalités;
Devenir réel une approche itérative sans spécifications fonctionnelles utilisées pour les applications web ;
MSFfogAgileDéveloppement logiciel Méthodologie de développement logiciel Agile de Microsoft ;
Mêlée établit des règles de gestion du processus de développement et vous permet d'utiliser les pratiques de codage existantes en ajustant les exigences ou en apportant des changements tactiques [

1. Objectif de la technologie de programmation. L'histoire du développement de la technologie de programmation. Types de projets logiciels. Composants de la technologie de programmation. Projet, produit, processus et personnes

2. Cycle de vie du programme. La nature cyclique du développement. Concepts de base de la technologie de programmation. Processus et modèles. Phases et virages. Jalons et artefacts. Intervenants et employés.

3. Identification et analyse des besoins. Logiciels requis. Schéma de développement des exigences. Gestion des exigences.

4. Conception architecturale et détaillée. Implémentation et codage. Test et vérification . Processus de contrôle qualité. Méthodes de la boîte blanche et de la boîte noire. Inspection et revues. Objectifs de test. Vérification, validation et test du système. Maintenance et développement continu.

5. Modèles de processus de développement. Modèles de cascade et de convoyeur. Modèles en spirale et incrémentaux. Modèles de processus de développement flexibles.

6. Conception d'un modèle de processus. Identification des exigences du processus. Phases, jalons et artefacts utilisés. Choix de l'architecture du processus. La procédure de réalisation d'un projet type. procédures documentées.

7. Modèles de l'équipe de développement. Le caractère collectif du développement. Taille d'équipe optimale. Subordination des participants au projet. Développement de l'équipe et développement du personnel. Spécialisation, coopération et interaction.

8. Modèles de l'équipe de développement. Modèle d'équipe hiérarchique. La méthode de l'équipe chirurgicale. Modèle d'une équipe d'égal à égal.

9. La nature de la programmation. Sciences de la programmation. L'art de programmer. L'art de la programmation. paradigmes de programmation. Programmation structurelle. Programmation logique. Programmation orientée objet.

10. Architecture logicielle. Gestion d'événements. Architecture client/serveur. Prestations de service. architecture à trois couches. Conception du programme. Concept de design. Conception logique. Conception détaillée.

1. Approches Novikov du développement logiciel » http://window. /window_catalog/files/r60368/itmo307.pdf.

2. Programmation extrême. - Saint-Pétersbourg : Peter, 2002.

3. Technologie de développement logiciel. - Saint-Pétersbourg. : Pierre, 2004.

4. Brooks Jr. des systèmes logiciels sont conçus et créés. Moscou : Nauka, 1975 ; nouvelle édition de traduction : mois-homme mythique. Saint-Pétersbourg : SYMBOL+, 1999.

5. Algorithmes + structures de données = programmes. M., Mir, 1978.

6. Programmation systématique. Introduction. M. : Mir, 1977.

7. Programmation structurée. M. : Mir, 1975.

8. Discipline de programmation. M. : Mir, 1978.

9. Technologies de développement de logiciels. - Saint-Pétersbourg : Peter, 2002.

10. Programmation Térékhov. M. : BINOM, 2006.

11. Rambo J. Processus de développement logiciel unifié. Saint-Pétersbourg : Peter, 2002.

Théorie économique pour les managers

Théories microéconomiques de base. Exemples d'application dans l'analyse des processus économiques. Théories macroéconomiques de base. Exemples d'application dans l'analyse des processus économiques. Principes et méthodes de gestion des processus économiques. Outils d'évaluation du niveau de développement des processus économiques Problèmes de reproduction élargie. Facteurs de croissance économique de l'économie russe. Critères et indicateurs de développement durable. Lissage des fluctuations cycliques. Le rôle du multiplicateur et de l'accélérateur dans l'évaluation du rythme du développement économique. Les fonctions de production dans l'économie. Exemples d'application dans l'analyse des processus économiques. Profit. Calcul d'indicateurs affectant le résultat, représentation graphique du seuil de rentabilité. Méthodologie pour la mise en œuvre de la politique d'investissement.

Un cours de théorie économique : un manuel pour les universités / Éd. . -Kirov: "ACA", 2004. Kolemaev - modélisation mathématique. Modélisation des processus et systèmes macroéconomiques : manuel. M.: UNITY-DANA, 2005. Cybernétique Bazhin. Kharkiv : Consul, 2004. Atelier Leushin sur les méthodes de modélisation mathématique : manuel. État de Nijni Novgorod technologie. Université - N. Novorod, 2007. Politiciens à propos de l'économie : conférences de lauréats du prix Nobel d'économie. Moscou : Économie et droit modernes, 2005. Cheremnykh. Niveau avancé : Manuel.-M.:INFRA-M, 2008. L'évolution des institutions de la mini-économie. Institut d'économie de la branche de l'Oural de l'Académie russe des sciences, - M.: Nauka, 2007.

Technologies pour le développement et l'adoption de décisions managériales [N]

La prise de décision est la base de l'activité d'un manager. Introduction à la théorie de la décision. Concepts de base de la théorie de la décision. Les modèles de gestion d'entreprise et leur impact sur la prise de décision. Différentes manières classement des solutions. Classifications : selon le degré de formalité, selon le degré de routine, selon la fréquence, selon l'urgence, selon le degré de réalisation des objectifs, selon la méthode de choix d'une alternative. Méthodes de base de prise de décision. Méthodes volitionnelles de prise de décision. Objectifs décisionnels. Il est temps de trouver des solutions. Erreurs de base Méthodes mathématiques de prise de décision. Aspects mathématiques de la théorie de la prise de décision. Recherche opérationnelle. Approche mathématique de la prise de décision. Arbre de décision. Modèles de développement et de prise de décision. La théorie des jeux. Méthodes mathématiques de prise de décision. Aspects mathématiques de la théorie de la prise de décision. Modèles de la théorie des files d'attente. Modèles de gestion des stocks. Modèle de programmation linéaire. tâches de transport. Modélisation par simulation. Analyse de réseau. Analyse économique. Limites des modèles rationnels. Caractéristiques du développement et de la prise de décision dans un groupe. L'invention concerne un procédé de détermination de la cohésion d'un groupe basé sur le degré de connexité d'ensembles. Modes de prise de décision collective. méthode consensuelle. modalités de vote. Méthodes créatives de prise de décision. Idée de génie. Conférence d'idées. Conseil des navires. La méthode des chapeaux mentaux par de Bono. Théorie de la résolution de problèmes inventifs (TRIZ). La solution finale idéale. Exemples de problèmes et leur solution avec TRIZ. Application des méthodes TRIZ pour prendre des décisions uniques et créatives. Méthodes pour développer des idées de solutions et les adapter à la situation. Modèle d'arbre cible. La stratégie de coordination des intérêts. Formation des décisions sur la coordination des intérêts. Méthodes de détermination des intérêts des contreparties. Systèmes d'aide à la décision (systèmes experts). L'histoire de la création des systèmes décisionnels. Classification des systèmes de prise de décision. Structure typique d'un système expert. Modes de représentation des connaissances. Méthodes d'inférence logique. Application des systèmes experts dans la pratique.

I. Théorie de la prise de décision: manuel. - M. : Examen, 2006. - 573 p. I. Prise de décision. Théorie et méthodes d'élaboration des décisions de gestion. Didacticiel. - M. : mars 2005. - 496 p.Élaboration d'une décision de gestion - M. : Maison d'édition Delo, 2004 - 392 p. G. Expertises et prise de décision - M. : Brevet, 1996. - 271 p. Taha // Introduction à la recherche opérationnelle = Recherche opérationnelle : une introduction. - 7e éd. - M. : "Williams", 2007. - S. 549-594. G.Theil. Prévisions économiques et prise de décision. M. : Progress, 1970. K. D. Lewis. Méthodes de prévision des indicateurs économiques. M.: "Finances et statistiques" 1986. G. S. Kildishev, A. A. Frenkel. Analyse et prévision de séries chronologiques. M. : "Statistics" 1973. O. Kim, C. W. Muller, W. R. Klekka et al. Analyse factorielle, discriminante et par grappes. M. : "Finances et statistiques" 1989. Gestionnaire efficace. Livre 3. Prise de décision. - MIM LINK, 1999 Turevsky et la direction d'une entreprise de transport automobile. - M. : lycée, 2005. , ; éd. . Analyse système en gestion : Didacticiel. - M.: Finances et statistiques, 2006. , Tinkov: manuel. – M. : KNORUS, 2006.

Modélisation des processus métier dans les systèmes de gestion intégrés

Quels sont les principes des processus métier ? Quel est le problème d'une description holistique des processus d'affaires. Qu'est-ce qu'un système, quelles propriétés possède-t-il ? Le rôle de l'analyse des systèmes dans la modélisation des processus métier ? Le processus comme objet de contrôle. Environnement de processus. Eléments de base d'un processus métier. Avantages et inconvénients de la gestion fonctionnelle et des processus. Cycle de gestion PDCA. Étapes du cycle de gestion des processus. Cycle PDCA et mise en place des exigences ISO 9001:2008. Méthodologie SADT (Structured Analysis and Design Technique - une méthode d'analyse et de conception structurelles). Essence. Dispositions de base. Comment se présente le modèle fonctionnel d'activité dans la méthodologie IDEF0 ? Que signifient les travaux dans les schémas du modèle fonctionnel, comment sont-ils affichés selon la méthodologie IDEF0 ? A quoi servent les flèches dans les schémas de modèles fonctionnels, quels sont leurs types et leurs types ? Méthodologie DFD. Essence. Composants de base des cartes DFD. Quelles sont les caractéristiques des diagrammes DFD, qu'est-ce qui y est décrit ? Quelles sont les caractéristiques des objets de diagramme DFD ? Que représentent les flèches sur le diagramme DFD ? Méthodologie IDEF3. Essence. Moyens de documentation et de modélisation. Quelles sont les fonctionnalités des diagrammes IDEF3, que décrivent-ils ? Quelles sont les fonctionnalités des objets de diagramme IDEF3 ? Et le tireur ? Classement des processus. Processus commerciaux typiques. La réingénierie et sa technologie. Quand est-il opportun d'utiliser la réingénierie dans la gestion d'une entreprise ? Surveillance et mesure des processus. Indicateurs des processus de l'organisation. Évaluation numérique et nominale des processus.

"Modélisation des processus métiers avec AllFusion Process Modeler (BPwin 4.1) Dialog-MEPhI" 2003 "Création de systèmes d'information avec AllFusion Modeling Suite" éd. "Dialogue-MEPhI" 2003 "La pratique de la modélisation fonctionnelle avec AllFusion Process Modeler 4.1. (BPwin) Où ? Pourquoi ? Comment ?" éd. "Dialogue-MEPhI" 2004 Modélisation Dubeikovsky avec AllFusion Process Modeler (BPwin). éd. "Dialogue-MEPhI" 2007 D. Mark, K. McGowan "Méthodologie d'analyse structurelle et de conception SADT" 1993 ouvrage classique sur la méthodologie SADT. Analyse Cheremnykh des systèmes : IDEF-technologies, Modélisation et analyse des systèmes. Technologies IDEF. Atelier. M. : Finances et statistiques, 2001. , « Modèles d'affaires structurels : DFD-technologies » http://www. /Niveau4.asp? ItemId=5810 "Théorie et pratique de la réorganisation des processus métier"2003/ P50.1.. Méthodologie de la modélisation fonctionnelle. Moscou : Gosstandart de Russie, 2000. http://www. IDEF0, IDEF3, DFDhttp://www. Modélisation des processus métier au moyen de BPwin http://www. /department/se/devis/7/ IDEF0 dans la gestion de la modélisation des processus métier http:///content/view/21/27/ http://www. /dir/cat32/subj45/file1411/view1411.html http://www. http://www.

Évaluation de l'efficacité des produits logiciels

1. Architecture informatique

2. Domaines des processus de gestion.

3. Liste des processus du domaine Planification et Organisation

4. Liste des processus de domaine Acquisition et mise en œuvre

5. Liste des processus du domaine Exploitation et Maintenance

6. Liste des processus dans le domaine du suivi et de l'évaluation

7. Caractérisation des niveaux du modèle de maturité des processus

9. KPI et KGI leur relation et leur objectif

1. 10. Contrôles informatiques généraux et contrôles applicatifs. Domaines de responsabilité et responsabilités des affaires et de l'informatique.

Cobit 4.1 édition russe.

Réglementation juridique de la création et de l'utilisation de la propriété intellectuelle

1. Énumérer les droits de propriété intellectuelle sur les résultats de l'activité intellectuelle et divulguer leur contenu.

2. Énumérez les types de contrats pour la cession du droit exclusif. Décrivez chacun de ces contrats sur la cession du droit exclusif.

4. Décrire les principales dispositions de la protection juridique du Programme d'ordinateur en tant qu'objet du droit d'auteur.

5. Comparer les principales dispositions de la protection juridique de la Base de données en tant qu'objet de droit d'auteur et en tant qu'objet de droits voisins.

6. Décrire les conditions de brevetabilité des objets du droit de brevet : inventions ; modèles utiles; échantillons industriels.

7. Élargir le contenu des critères de brevetabilité de l'invention : nouveauté ; Étape inventive; applicabilité industrielle.

8. Décrire les conditions et la procédure d'obtention d'un brevet d'invention, de modèle d'utilité ou de dessin industriel, ainsi que les conditions qui assurent la validité des brevets et leur durée.

9. Donner une définition du "savoir-faire" et énumérer les conditions dans lesquelles naît et s'exerce la protection juridique des secrets de production.

10. Énumérer les moyens d'individualisation protégés et donner leurs caractéristiques comparatives.

1., Droit de la propriété intellectuelle dans la Fédération de Russie, manuel // M, Prospekt, 2007

2., Droit de la propriété intellectuelle, manuel // M, RIOR, 2009

Gestion de projet et développement de logiciels [R]

Qu'est-ce qu'une méthodologie, pourquoi est-elle nécessaire. Structure générale méthodologie, éléments de base de la méthodologie. Principes de conception de sa propre méthodologie. Exemples de divers artefacts, rôles, compétences, conditions aux limites. Structure de la méthodologie Cowburn, métriques de la méthodologie. Critères du projet Cowburn. Critères de sélection de la méthodologie, matrice de Cowburn. Cycle de vie d'un projet. Modèles de cycle de vie en cascade et itératifs. Limites d'applicabilité pour les modèles en cascade et itératifs. RUP comme exemple de méthodologie itérative. Concepts RUP de base, limites d'applicabilité. Rôle humain dans le développement logiciel. Méthodologies agiles, principes de base des méthodologies agiles. L'origine des méthodologies agiles. Scrum comme exemple de méthodologie agile. Rôles, artefacts, activités dans Scrum. Les limites d'applicabilité de Scrum. Extreme Programming (XP) Idées, valeurs, pratiques de base, limites d'applicabilité. Similitudes et différences entre Scrum et XP. Collecte et gestion des besoins. Pratiques de base, termes, principes. Approches pour documenter le projet et le produit, les principaux types de documents. Exemples de pratiques de gestion des exigences à partir des méthodologies abordées dans le cours. Planification du développement logiciel. Types de plans, gestion des risques, risques populaires. Exemples de pratiques de planification du développement à partir des méthodologies abordées dans le cours. Tests en développement logiciel. Le concept d'assemblage (construction) d'un produit logiciel. Méthodes de test de base, termes. Exemples de pratiques de test à partir des méthodologies abordées dans le cours. Le concept d'assemblage (build), les modes de stockage du code, les outils. Deux principes pour organiser le travail avec un système de contrôle de version. Caractéristiques du processus de lancement/mise en page du produit pour différentes catégories de produits, exemples de pratiques. Concepts modernes d'architecture logicielle, architectures multiniveaux, critères d'architecture. Liste des décisions nécessaires lors de la conception d'un logiciel, approches pour choisir un système de stockage de données.

Kent Beck - Programmation extrême Frederic Brooks - Le mois-homme mythique ou comment les systèmes logiciels sont créés. Tom de Marco - Date limite. Un roman sur la gestion de projet. Tom de Marco, Timothy Lister - Valse avec des ours. Tom de Marco, Timothy Lister - Le facteur humain_ projets et équipes réussis. Alistair Cowburn - Chaque projet a sa propre méthodologie. Alistair Cowburn - Les gens en tant que composants non linéaires et les plus importants du développement logiciel. Andriy Orlov - Notes d'un automate. Confession professionnelle. Philip Krachten - Introduction au processus unifié rationnel. Henrik Kniberg - Scrum et XP : notes du front. Présentations de cours

1. Cascade (cascade anglaise) - modèle de développement standard

Modèle de développement en cascade - un modèle dans lequel toutes les étapes de développement sont réalisées de manière séquentielle - l'étape suivante commence une fois la précédente terminée.

Ce modèle comprend les étapes suivantes du processus de développement logiciel :

Tout d'abord, les paramètres techniques du futur programme sont déterminés, en conséquence, une liste d'exigences logicielles est approuvée. Vient ensuite la transition vers la conception, au cours de laquelle une documentation est créée qui décrit pour les programmeurs un plan et une manière de mettre en œuvre les exigences.

Une fois la conception terminée, les programmeurs implémentent (construisent) le projet. Au stade de la mise en œuvre, toutes les composantes du projet sont intégrées. Ce n'est qu'après l'achèvement complet de ces étapes que les tests et le débogage du produit fini sont effectués. En outre, le produit logiciel peut être mis en œuvre et, après la mise en œuvre, fournir une assistance - introduire de nouvelles fonctionnalités et éliminer les erreurs.

Les principaux avantages du développement en cascade:

2. Méthodologie de développement logiciel agile

Un ensemble de méthodologies de développement logiciel qui implique une collaboration entre les représentants des clients et les développeurs. La méthode de développement agile repose sur une approche itérative, la formation dynamique des exigences et leur mise en œuvre en étapes courtes.

Le résultat de chacune de ces étapes, y compris un cycle d'itérations, est un projet logiciel miniature,

Il existe plusieurs méthodes de développement agiles dont les plus connues sont Scrum, Extreme Programming, DSDM.

Les principaux avantages du développement agile :

minimisation des risques; augmentation progressive de la fonctionnalité du produit logiciel ; une petite quantité de documentation écrite; lancement version de base programmes dès que possible.

Il y a aussi des inconvénients :

l'incapacité de déterminer avec précision le budget du projet ; l'impossibilité de déterminer le moment exact de la préparation du projet ; ne convient pas aux organisations étatiques et budgétaires; nécessite la motivation des représentants responsables du client.

Manifeste du développement logiciel agile

Nous découvrons constamment de meilleures façons de développer des logiciels en développant directement et en aidant les autres. Grâce au travail effectué, nous avons pu réaliser que :

Les gens et l'interaction plus important que les processus et les outils

Produit de travail plus important qu'une documentation complète

Coopération avec le client plus important que de négocier les termes du contrat

La préparation au changement est plus importante suivant le plan initial

C'est-à-dire que sans nier l'importance de ce qui est à droite, nous apprécions toujours davantage ce qui est à gauche.

Principes de développement agile :

Satisfaction du client grâce à la livraison rapide et ininterrompue des logiciels nécessaires ;
accepter les changements d'exigences même en fin de développement (cela peut augmenter la compétitivité du produit résultant);
livraison fréquente de logiciels fonctionnels (chaque mois ou semaine ou même plus souvent);
une communication étroite et quotidienne entre le client et les développeurs tout au long du projet ;
le projet est porté par des personnes motivées qui bénéficient des conditions de travail, du soutien et de la confiance nécessaires ;
la méthode recommandée de transfert d'informations est une conversation personnelle (face à face);
un logiciel fonctionnel est la meilleure mesure de progrès;
les sponsors, développeurs et utilisateurs doivent pouvoir maintenir indéfiniment un rythme constant ;
une attention constante à l'amélioration de l'excellence technique et à la conception conviviale ;
simplicité - l'art de ne pas faire de travail inutile;
le meilleur les pré-requis techniques, le design et l'architecture sont obtenus d'une équipe auto-organisée ;
adaptation constante aux circonstances changeantes.