1.2 Fournir un certain nombre d’exemples (positifs et négatifs) qui indiquent l’impact des logiciels sur notre société.
L’utilisation de logiciels dans notre société a un certain nombre d’impacts positifs et négatifs. Alors que les aspects positifs peuvent être extrêmement utiles, les aspects négatifs nous fournissent en quelque sorte une béquille. En général, le logiciel n’est pas conçu pour nous « blesser » de quelque manière que ce soit, mais plutôt pour nous rendre les choses plus faciles et plus efficaces.
1.3 Par exemple, l’E-banking est un parfait exemple de logiciel qui nous facilite beaucoup la vie. Tout ce qui manque de retirer physiquement de l’argent de votre banque peut être fait en ligne. Vous pouvez même déposer vos chèques de paie maintenant en le prenant simplement en photo avec votre téléphone intelligent. En revanche, cette même technologie peut être utilisée pour voler vos numéros de carte de crédit et votre identité si elle tombe entre de mauvaises mains. Idem pour les logiciels anti-sécurité.
Il y a des gens qui sont payés beaucoup d’argent pour pirater votre banque locale et les voler juste pour prouver à la banque qu’ils doivent améliorer la sécurité de leur réseau. Dans la plupart des cas, les banques sont reconnaissantes de ce type d’intrusion. Ce même logiciel, cependant, pourrait être utilisé à des fins criminelles dans lesquelles la banque ne serait pas si satisfaite. Un logiciel peut être à la fois extrêmement utile et extrêmement dangereux selon qui l’utilise et comment.
1.4 De nombreuses applications modernes changent fréquemment — avant qu’elles ne soient présentées à l’utilisateur final, puis après la mise en service de la première version. Suggérez quelques façons de créer un logiciel pour arrêter la détérioration due au changement.
Tout d’abord, les applications logicielles doivent être maintenables. Cela signifie que cela doit être conçu dans une mesure où des modifications peuvent être apportées assez facilement à mesure que l’application se développe. Une façon de minimiser la détérioration due au changement consiste à permettre l’intégration de mises à jour automatiques. Prenez le système d’exploitation Windows par exemple: il a la possibilité d’autoriser la mise à jour automatique des plates-formes de sécurité et de pare-feu nécessaires pour s’assurer que le système est toujours « à jour ». »Étant donné que les applications précédentes sont toujours mises à jour, il est important de créer de nouveaux logiciels avec les mêmes capacités.
1.5 Considérez les sept catégories de logiciels présentées à la section 1.1.2. Pensez-vous que la même approche du génie logiciel peut être appliquée pour chacun? Expliquez votre réponse.
Des millions d’ingénieurs logiciels dans le monde travaillent dur sur des projets logiciels dans une ou plusieurs de ces catégories. Dans certains cas, de nouveaux systèmes sont en cours de construction, mais dans de nombreux autres, les applications existantes sont corrigées, adaptées et améliorées. Pour cette raison, une approche différente de l’ingénierie logicielle peut être nécessaire pour les différentes catégories. La plupart des programmes sur lesquels travaillent les ingénieurs logiciels sont extrêmement anciens et continuent d’être mis à niveau. Par conséquent, il est logique que vous n’utilisiez pas la même approche pour un programme existant que pour un nouveau programme.
1.6 La figure 1.3 place les trois couches de génie logiciel au-dessus d’une couche intitulée » un accent sur la qualité. »Cela implique un programme de qualité organisationnelle tel que la gestion de la qualité totale. Faites un peu de recherche et développez un aperçu des principes clés d’un programme de gestion de la qualité totale.
TQM peut être défini comme la gestion d’initiatives et de procédures visant à fournir des produits et des services de qualité. Un certain nombre de principes clés peuvent être identifiés dans la définition de la GQT, notamment:
- Direction exécutive – La haute direction doit agir comme le principal moteur de la GQT et créer un environnement qui assure son succès.
- Formation – Les employés devraient recevoir une formation régulière sur les méthodes et les concepts de qualité.
- Orientation client – L’amélioration de la qualité devrait améliorer la satisfaction du client.
- Prise de décision – Les décisions de qualité doivent être prises en fonction des mesures.
- Méthodologie et outils – L’utilisation d’une méthodologie et d’outils appropriés garantit que les non-conformités sont identifiées, mesurées et traitées de manière cohérente.
- Amélioration continue – Les entreprises doivent travailler en permanence à l’amélioration des procédures de fabrication et de qualité.
- Culture d’entreprise – La culture de l’entreprise doit viser à développer la capacité des employés à travailler ensemble pour améliorer la qualité.
- Participation des employés – Les employés devraient être encouragés à être proactifs dans l’identification et la résolution des problèmes liés à la qualité.
1.7 L’ingénierie logicielle est-elle applicable lors de la création d’applications Web ? Si oui, comment pourrait-il être modifié pour tenir compte des caractéristiques uniques des applications Web?
Le logiciel est devenu profondément ancré dans pratiquement tous les aspects de notre vie. L’ingénierie logicielle est applicable lorsque de nouveaux programmes sont créés et lorsque des programmes existants sont mis à jour, y compris les applications Web. Les applications Web font partie d’un certain nombre de catégories de logiciels distinctes. Et pourtant, on peut affirmer que les applications Web sont différentes. L’une des principales modifications demandées par les applications Web est la disponibilité. Les utilisateurs d’applications Web populaires exigent souvent un accès 24/7/365. Une autre caractéristique unique des applications Web est leur évolution continue.
Contrairement aux logiciels d’application classiques qui évoluent sur une série de versions planifiées et chronologiquement espacées, les applications Web évoluent en permanence. En ce qui concerne l’ingénierie logicielle appliquée aux applications Web, de nombreuses voix doivent être entendues. L’apparence d’une application Web est une partie indéniable de l’attrait qui déterminera finalement le succès des applications.
1.8 À mesure que les logiciels deviennent de plus en plus omniprésents, les risques pour le public (dus à des programmes défectueux) deviennent une préoccupation de plus en plus importante. Développer un scénario apocalyptique mais réaliste dans lequel la défaillance d’un programme informatique pourrait faire de grands dommages (économiques ou humains).
L’un des premiers scénarios tragiques mais réalistes qui me vient à l’esprit est l’échec de programmes spécifiques sur un avion de ligne. Les principaux programmes informatisés à bord des avions présentent le même risque d’échec que tout autre programme et peuvent avoir des résultats catastrophiques. Par example, le capteur qui détecte l’altitude d’un aéronef permet au pilote de savoir à combien de pieds l’aéronef se trouve au-dessus du sol. Ce programme est particulièrement nécessaire lorsque les conditions météorologiques pourraient nuire à la visibilité des pilotes sur la piste.
Une fois qu’un avion de ligne commence son atterrissage décent et se prépare à atterrir, le pilote utilise ces programmes pour guider l’avion vers un atterrissage en toute sécurité. Si ce programme devait échouer et que les conditions météorologiques entravaient la visibilité des pilotes, le pilote pourrait ne pas savoir à quelle distance il se trouve réellement au-dessus du sol. Les accidents d’avion se produisent tout le temps et des centaines de passagers meurent chaque année – principalement en raison de programmes et d’instruments défaillants sur l’avion.
1.9 Décrivez un cadre de processus avec vos propres mots. Lorsque nous disons que les activités-cadres sont applicables à tous les projets, cela signifie-t-il que les mêmes tâches de travail sont appliquées à tous les projets, quelles que soient leur taille et leur complexité? Expliquer.
Le processus d’ingénierie logicielle ne se produit pas comme par magie sans une sorte d’ordre et de planification organisationnelle. Un cadre de processus crée la base du processus d’ingénierie en utilisant un petit nombre d’activités applicables à tous les projets. L’algorithme étape par étape pour un cadre de processus comprend cinq activités: communication, planification, modélisation, construction et déploiement. Tous les programmes, peu importe leur taille et leur complexité, sont conformes à ces activités dans cet ordre. Bien que les détails du processus logiciel soient très différents pour chaque programme, les tâches impliquées dans le cadre restent les mêmes.
1.10 Les activités parapluie se déroulent tout au long du processus logiciel. Pensez-vous qu’ils sont appliqués uniformément dans tout le processus ou sont-ils concentrés dans une ou plusieurs activités du cadre?
En général, les activités-cadres sont appliquées tout au long d’un projet logiciel et aident une équipe logicielle à gérer et à contrôler les progrès, la qualité, le changement et les risques. Étant donné que le processus d’ingénierie logicielle n’est pas un régime rigide qui doit être suivi précisément par une équipe logicielle, le processus a beaucoup de place pour l’adaptation.
Bien que les activités-cadres qui se déroulent tout au long du processus soient généralement appliquées à tous les aspects du processus, l’ingénierie doit être agile et adaptable; spécifique au problème, au projet, à l’équipe et à la culture organisationnelle. Pour cette raison, un processus adopté pour un projet peut être très différent d’un processus adopté pour un autre projet, et certaines activités peuvent être concentrées dans un ou plusieurs domaines.