Génie logiciel

224 documents à télécharger gratuitement

Cours, examens, TD, TP et exercices de génie logiciel. Thèmes couverts : UML, MERISE, conception, architecture logicielle, Scrum, agile.

Introduction au Génie Logiciel

This document introduces software engineering concepts, focusing on addressing the increasing complexity of modern software systems. It emphasizes delivering high-quality software within time and budget constraints while ensuring maintainability and scalability. Key topics include software processes, requirements analysis, design, testing, and quality assurance. Additionally, it outlines the challenges of the software crisis and the methodologies developed to handle these challenges effectively.

software engineering
Ian Sommerville
system typology
9p0
Projet Master 1 - Compte rendu de réunion

This document details discussions on the advancement of the AndroCalc project, focusing on speech recognition functionalities integrated into a basic calculator application. The methodology revolves around a speech-to-event mapping system that associates spoken numbers with calculator button events. Development tasks include creating a speech analyzer that processes phrases, adapting recognition classes for calculator functionality, and designing an operational table for event association. A simple calculator is planned to demonstrate the voice recognition system.

AndroCalc
speech-to-event mapping
voice recognition
2p0
Androcalc

This document outlines the objectives and initial progress of a Master 1 project focused on enhancing an existing vocal calculator developed by Voxygen. The project's goal is to integrate voice recognition capabilities, alongside extended features such as a keyboard emulator and interactive mini-games. Tasks for the current semester include analysis, use case drafts, and sequence diagrams, while the second semester will focus on the more technical aspects. The team has completed the requirements document, updated the website, and produced initial use case scenarios.

Androcalc
Voxygen
voice recognition
4p0
Compte rendu de réunion - Projet Master 1

The document outlines the development of an Android-based calculator called Androcalc, capable of basic arithmetic operations and offering two modes: classic button input and audio input for illiterate and visually impaired users. A universal language feature ensures adaptability across cultures through multilingual capabilities. Key development tasks include Android app creation, sound acquisition with potential echo cancellation, audio feedback functionality, and web service development for integrating voice recognition handled externally by a server. Initial steps involve research, task...

Android calculator
Voice Activity Detection (VAD)
Web service development
2p0
Modélisation et Spécification de Systèmes Logiciels avec la Méthode B

Ce document présente une série d'exercices utilisant la méthode B pour modéliser et spécifier divers systèmes logiciels. Le premier exercice concerne la modélisation d'un réseau social sous forme de graphe, avec une gestion précise des participants et de leurs relations. Le deuxième exercice traite de la spécification d'un système de gestion de bibliothèque, en y intégrant des contraintes sur les emprunts. Le troisième exercice introduit la synchronisation des processus producteur-consommateur à l'aide de sémaphores, en garantissant l'exclusion mutuelle et l'absence de famine. Enfin, le qua...

Méthode B
Théorie des graphes
Producteur-consommateur
Université de la Manouba3p0
Cours Génie Logiciel II: Méthodes formelles pour la spécification et la vérification de logiciels

This course introduces formal methods for software specification and verification, emphasizing their role in developing reliable automated systems. Key methodologies include the B method, theorem proving, and model checking, with examples such as railway systems and heating control. It integrates specification and validation into the software lifecycle to reduce errors and ensures rigor and precision using mathematical frameworks, facilitating error-proof and high-quality development practices.

Formal Methods
The B Method
Model Checking
56p0
TD6: Patrons de conception

The document discusses the application of multiple design patterns in software engineering. It first examines the Singleton pattern to address safe instantiation in a chocolate boiler system. Next, the Composite pattern is applied to model arithmetic expressions and their evaluation using a tree representation. Finally, it explores the Observer pattern to design a progress bar class that reacts to updates from a calculator, ensuring dynamic communication between the classes involved. Examples and diagrams illustrate these implementations effectively.

Singleton
Composite
Observer
7p0
TD Design Patterns

The document explores the application of design patterns in software engineering, tackling three distinct problems with specific design solutions. It first employs the Singleton pattern to ensure the management of a chocolate boiler's resources without conflicts. Then, it introduces the Composite pattern for representing arithmetic expressions as a hierarchical structure with reusable components. Finally, it applies the Observer pattern to integrate progress tracking into a calculation system via a progress bar that reacts to updates. Each problem focuses on optimizing system reliability an...

Singleton
Composite
Observer
4p0
Exercises in Software Engineering and Control Flow Testing

This document focuses on partitioning specifications into equivalence classes for software testing, providing detailed methodical approaches for boundary value analysis, control-flow graph creation, and comprehensive test cases for diverse scenarios. It spans exercises related to testing algorithms, applications, and programs using criteria like instruction coverage, arc coverage, and independent path coverage. The solutions include structured test cases designed to identify edge conditions and validate proper implementations of software techniques.

Software testing
Control flow graph
Equivalence partitioning
École Nationale des Sciences de l'Informatique (ENSI)5p0
Structural Testing and Control Flow Graph Coverage Techniques

The document provides an in-depth overview of structural testing techniques, particularly focusing on control flow graph coverage. It discusses both dynamic and static analysis methods for testing software, introducing concepts such as control graph coverage (e.g., node, arc, and path coverage), mutation testing, and abstract execution. Additionally, the content elaborates on test data generation, challenges in identifying executable paths, and hierarchical relationships among coverage criteria. It also includes practical exercises and examples to reinforce concepts like PLCS (Portion of Li...

structural testing
control flow graph
mutation testing
36p0
Architecture n-tiers: Service-Oriented Architecture (SOA)

This document introduces Service-Oriented Architecture (SOA), which focuses on loosely coupled services enabling modular software development. It highlights the transition from monolithic, siloed systems to dynamic and reusable service-based systems to address integration, interoperability, and flexibility needs. Core components include services, registries, and consumers with essential interactions like publication, discovery, and invocation. Key industry standards such as SOAP, WSDL, and UDDI ensure interoperability and efficient service communication.

SOA
SOAP
WSDL
52p0
Architecture N-Tiers

This document explores the evolution and structure of information systems and software architectures, from one-tier models through client-server setups to complex N-tier arrangements. It details the concepts of software architecture, including abstraction layers such as presentation, application logic, and data management. The strengths and weaknesses of various architectures are examined, including centralized systems, distributed systems, and transitions enabled by technological shifts like web-based applications. Detailed subsections outline key principles of coupling, scalability, and m...

information systems
AS/400
client-server architecture
124p0
Chapitre 5 : Test du logiciel

This document provides an overview of software testing methodologies, including foundational principles, dynamic and static approaches, and types of tests. It discusses black-box and white-box testing, emphasizing error detection. It highlights methodologies such as equivalence partitioning and boundary value analysis for effective test case generation. Testing is deemed essential to ensure system quality but is acknowledged to be costly and not exhaustive.

Software Testing
V&V (Verification and Validation)
Black-box Testing
58p0
Architectures Web Distribuées : Les Web Services

This document explores distributed web service architectures, detailing their definitions, core technologies (XML, WSDL, SOAP, UDDI), and core methodologies such as interoperation over diverse platforms and applications. It emphasizes the urbanization of information systems for efficiency and growth while outlining the reusable, interoperable, and loosely-coupled nature of web service solutions. Additionally, it reviews the lifecycle and tools for web service development alongside the purpose of interconnecting heterogeneous components with standard protocols.

Web Services
SOAP
XML
Institut Supérieur des Études Technologiques de Bizerte46p0
Quelques patterns pour la persistance des objets avec DAO

This document introduces design models for object persistence, emphasizing the use of Data Access Objects (DAO) to isolate persistence logic and accommodate changes in storage implementation. It explains key concepts like Object-Relational Mapping (ORM) and Data Transfer Objects (DTO), stressing the benefits of DTOs in reducing remote calls between application layers. The text extensively discusses CRUD operations, DAO design strategies, and advanced considerations like exception handling, transactions, and inheritance. By encapsulating persistence logic through DAO interfaces, the document...

DAO
DTO
Object-Relational Mapping (ORM)
13p0
Architecture Logicielle: Systèmes d’information 2

This document provides a systematic introduction to software architecture principles within information systems. It covers UML component and deployment diagrams as tools for modeling abstract system representations. Component architecture is defined by interactions via explicit interfaces, dependencies, and connectors, with roles including communication, coordination, conversion, and facilitation. Deployment diagrams detail the physical distribution of software components and resources on hardware nodes, emphasizing the static view of system execution. Examples of both diagram types illustr...

architecture logicielle
UML diagrammes
composant
Institut Supérieur des Études Technologiques de Bizerte18p0
Diagrammes de Composants et Diagrammes de Déploiement

This document explores two crucial static views in UML: Component Diagrams and Deployment Diagrams. Component diagrams focus on modeling systems through reusable components, including their dependencies and interfaces. Deployment diagrams map the physical layout of hardware resources and illustrate the distribution and connections of components across these resources. Key concepts include components, interfaces, ports, artifacts, nodes, and deployment relationships. The document highlights theoretical concepts and provides graphical representations and examples to facilitate understanding.

Component diagram
Deployment diagram
UML
8p0
Le Modèle MVC (Modèle-Vue-Contrôleur)

The document explains the Model-View-Controller (MVC) software design pattern that separates an application into three components: model, view, and controller. It highlights the model's role in data representation and business logic, the view's role as the user interface for presenting data, and the controller's role as the intermediary handling user actions and coordinating updates. The benefits of MVC include code reuse, rapid development, parallel development, flexibility in user interface standards, and adaptability to different platforms. Additionally, the document traces the history o...

MVC
Smalltalk
Flux de contrôle
14p0
Chapitre 2 : Les Architectures web distribuées : Les Web Services

This document outlines the essential aspects of Web Services, focusing on their architecture, functionalities, and methodologies. It highlights the advantages of Web Services, such as reusability, interoperability, and low coupling, while emphasizing the use of XML-based technologies like WSDL, SOAP, and UDDI for seamless integration and communication. The transition in web application generations, from static HTML pages to service-based platforms, is discussed, alongside the key layers and components of Web Service technology. Practical insights on protocols, development tools, and archite...

Web Services
SOAP (Simple Object Access Protocol)
Interoperability
Institut Supérieur des Études Technologiques de Bizerte9p0
Data Transfer Object (DTO)

This document provides an overview of the Data Transfer Object (DTO) design pattern and its role in object-oriented software architectures. Through examples and explanations, it highlights the need for DTOs to improve communication between disparate applications, such as web, Windows, and mobile platforms. The methodology covers the use of DTOs in reducing remote calls, enabling data transport between layers, and decoupling the presentation layer from the business layer in web services. Key benefits include enhanced performance and testability, while challenges such as complexity and additi...

DTO
Data Transfer Object
design pattern
18p0
Introduction aux architectures logicielles

This document introduces the concept of software architecture, emphasizing the decomposition of systems into components and their interactions. It positions architecture as the critical first step in software design, which helps reduce complexity and structure the development process. The chapter explains the importance of describing architectures through system organization, interfaces, and interactions, and highlights the utility of architectural styles like MVC to enhance modularity, reuse, and maintainability. MVC is presented as a case study, showcasing its logical separation between m...

software architecture
MVC
architectural styles
Institut Supérieur des Études Technologiques de Bizerte4p0
Le Modèle MVC dans le Développement Logiciel

This document introduces the Model-View-Controller (MVC) architecture, explaining its separation into three main components: model, view, and controller. It highlights the role and responsibilities of each component in managing data, interaction, and user actions. The material outlines the historical importance of MVC, particularly with its emergence in Smalltalk and its modern relevance in web development. Key benefits of MVC include rapid application development, code reusability, and parallel development across various platforms and technologies.

Model-View-Controller
MVC Architecture
Smalltalk
14p0
Patrons de Conception - Série N°6

This document addresses design patterns applied to common software engineering problems. It includes practical exercises covering Singleton, Composite, and Observer patterns. The first exercise demonstrates enhancing a class for managing chocolate boiler operations to a Singleton, thus ensuring safe handling of industrial processes. The second focuses on representing arithmetic expressions using the Composite pattern for tree-like structure implementations. The third exercise implements the Observer pattern to effectively manage synchronization and progress visualization in calculators, ena...

Design Patterns
Singleton
Composite
École Nationale des Sciences de l'Informatique (ENSI)2p0
Formation MVC

This document focuses on the Model-View-Controller (MVC) design pattern, detailing its history, principles, and benefits such as code reusability, development optimization, and ease of maintenance. It explains the separation of concerns within MVC, with distinct roles for the model, view, and controller. The application of MVC in web environments is highlighted, emphasizing its layered architecture and typical implementation using servlets and JSPs. Various implementation strategies are discussed, showcasing how MVC ensures maintainable and scalable web applications.

Model-View-Controller
Front Controller
Design Pattern
20p0

Autres ressources en génie logiciel