►METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala e-mail: [email protected] 1 Introduzir os conceitos de requisitos do usuário e do sistema; Definir requisitos funcionais e nãofuncionais; Explicar duas técnicas para descrição de requisitos do sistema; 2 Requisitos Funcionais e Não-Funcionais Requisitos do Usuário Requisitos do Sistema Documento de Requisitos 3 4 Processo sistemático para: • Identificação e registro das necessidades específicas dos stackholders; • Refinamento dos requisitos levantados; • Resolução de conflitos entre requisitos; • Identificação de interdependências entre requisitos; 5 Descrição de serviços e restrições do sistema; Devem refletir a necessidade dos usuários do sistema; Existem diferentes níveis: • Alto nível – usados por exemplo em propostas de contrato; • Detalhados – usados na redação de contratos. Definem precisamente o que deve estar presente no software 6 “If a company wishes to let a contract for a large software development project, it must define its needs in a sufficiently abstract way that a solution is not pre-defined. The requirements must be written so that several contractors can bid for the contract, offering, perhaps, different ways of meeting the client organisation’s needs. Once a contract has been awarded, the contractor must write a system definition for the client in more detail so that the client understands and can validate what the software will do. Both of these documents may be called the requirements document for the system.” Sommerville 7 Requisitos do Usuário (Usuário) • afirmações em linguagem natural enriquecidos por diagramas descrevendo os serviços e funcionalidades que um sistema deve prover, assim como restrições na presença das quais ele deve operar. Requisitos do Sistema (Eng. de Requisitos) • estabelece as funções do sistema, serviços e restrições em detalhes. O documento de requisitos do sistema (também chamado especificação funcional) deve ser preciso e detalhado. Ele deve definir exatamente o que deve ser implementado. Ele ainda pode ser usado como parte do contrato entre o comprador do sistema e os desenvolvedores. Especificação do Software (Desenvolvedores) • Uma descrição detalhada do software que serve como base para o projeto e implementação 8 Definição de Requisitos O Software deve prover funcionalidade para impressão de todos os relatórios gerados . Especificação de Requisitos 1. O software deve ser capaz de escolher uma dentre as várias impressoras disponíveis para impressão; 2. A impressão de um relatório deve ser permitida em diferentes níveis de qualidade; 3. Os níveis de qualidade são: (rascunho, normal e alta qualidade); 4. Deve ser possível imprimir relatórios para arquivos .pdf. 9 Requisitos funcionais e não-funcionais devem ser descritos de tal forma que eles possam ser entendidos por usuários que não possuem conhecimento; Requisitos do Usuário são definidos usando Linguagem Natural (LN), tabelas e diagramas. Falta de claridade • Alcançar precisão é difícil sem tornar o documento muito complexo Confusão entre os Requisitos • Requisitos funcionais e não-funcionais tendem a se misturar Combinação de Requisitos • Vários requisitos distintos podem vir a ser expressos conjuntamente 4.A.5 O banco de dados deve permitir a geração e controle de objetos de configuração, isto é, objetos que são compostos pela combinação de outros objetos. As ferramentas de controle de configuração devem permitir acesso aos objetos em um grupo de versão por meio do uso de nomes incompletos. 2.6 Grid facilities Para auxiliar o posicionamento de entidades no diagrama, o usuário poderá habilitar a visualização do grid tanto em centímetros quanto em milímetros utilizando para tal um painel de controle. Inicialmente, o grid não deve estar habilitado. O grid pode ser habilitado e desabilitado a qualquer momento durante uma sessão de edição assim como poderá ser alterado entre cm e mm. Uma outra opção chamada “reduce-to-fit” , no entanto o número de linhas mostradas será reduzido de modo a evitar que diagramas pequenos sejam rearranjados para se ajustarem as linha do grid. Os requisitos do database incluem tanto informações conceituais quanto detalhes de implementação • Descrevem o conceito de opções de controle de configuração • Incluem detalhes a respeito de como os objetos devem ser acessados (usando nomes incompletos) Os requisitos do grid incluem três tipos de requisitos • Conceitual (a necessidade de um grid) • Não-Funcional (unidades de medida do grid) • Não Funcional IU (troca de tamanho do grid) User requirements Client managers System end-users Client engineers Contractor managers System architects System requirements System end-users Client engineers System architects Software developers Software design specification Client engineers (perhaps) System architects Software developers 15 Requisitos Funcionais • definições dos serviços que o sistema de prover; • define como o sistema deve reagir a diferentes tipos de entrada; • como o sistema deve se comportar em situações particulares. • definir explicitamente o que o sistema NÃO deve fazer; Requisitos Não-Funcionais • Define restrições dos serviços oferecidos pelo sistema; • Restrições de tempo; • Restrições do processo de desenvolvimento; • Restrições (concordância) de padronização; • Geralmente são aplicáveis a todo o sistema. 16 O usuário deve ser capaz de pesquisar tanto um conjunto inicial de bancos de dados como um sub grupo selecionado dos mesmos. O sistema deve prover métodos de visualização adequados de modo que o usuário possa ler os documentos disponíveis na loja de documentos. Deve ser atribuído um identificador único (ORDER_ID) a todos os documentos. 17 Non-functional requir ements Product requir ements Ef ficiency requir ements Reliability requir ements Usability requirements Performance requirements Or ganizational requir ements Portability requirements Delivery requirements Space requir ements External requirements Interoperability requirements Implementation requir ements Ethical requirements Standards requirements Legislative requirements Privacy requirements Safety requirements Requisitos do Produto • 4.C.8 Deve ser possível representar toda a comunicação entre o APSE e o usuário usando o conjunto de caracteres Ada. Requisitos de organização • 9.3.2 O processo de desenvolvimento do sistema assim como todos os documentos entregáveis devem estar em concordância com o padrão definido em XYZCo-SPSTAN-95 Requisitos Externos • 7.6.5 O sistema não deve publicar nenhuma informação pessoal dos clientes com exceção do nome e número de referência para o operador do sistema 19 Requisitos não-funcionais podem ser difíceis de serem definidos claramente, e requisitos imprecisos podem ser difíceis de verificar. Objetivos • São uma intenção geral do usuário, tal como facilidade de utilização Requisitos funcionais verificáveis • Uma especificação de funcionalidade usando alguma forma de medida que pode ser testada objetivamente Objetivos podem ser úteis aos desenvolvedores uma vez que estes representam as intenções dos usuários do sistema Um objetivo do sistema • O sistema deve ser fácil de usar por controladores experientes e deve ser organizado de forma que os erros de utilização sejam minimizados • Um requisito não-funcional verificável • Controladores experientes dever ser capazes de usar todas as funções do sistema após um treinamento de duas horas. Uma vez que o treinamento tenha sido feito, o número médio de erros de utilização não deverá ultrapassar duas ocorrências por dia. O documento de requisitos é uma especificação formal do que é requerido dos desenvolvedores do sistema Ele deve incluir tanto uma definição quanto a especificação de cada requisito Ele NÃO é um documento de projeto. Tanto quanto possível ele deve definir o que o sistema deve fazer ao invés de COMO ele deve fazer 23 Especificação detalhada dos requisitos do usuário; Serve como base para o projeto do sistema. Como princípio, requisitos devem informar o que o sistema deve fazer e projeto como deve ser feito Na prática, requisitos e projeto são inseparáveis • Uma arquitetura do sistema deve ser projetada para estruturar os requisitos Ambigüidade • Os leitores e escritores dos requisitos podem vir a interpretar as mesmas palavras de maneiras diversas. LN é naturalmente ambigua Muita Flexibilidade • A mesma idéia pode ser expressa de maneiras diferentes Falta de Modularização • LN é inadequada para estruturação de requisitos do sistema 27 Notation Structured natural language Design description languages Graphical notations Mathematical specifications Description This approach depends on defining standard forms or templates to express the requirements specification. This approach uses a language like a programming language but with more abstract features to specify the requirements by defining an operational model of the system. A graphical language, supplemented by text annotations is used to define the functional requirements for the system. An early example of such a graphical language was SADT (Ross, 1977; Schoman and Ross, 1977). More recently, use-case descriptions (Jacobsen, Christerson et al., 1993) have been used. These are notations based on mathematical concepts such as finite-state machines or sets. These unambiguous specifications reduce the arguments between customer and contractor about system functionality. However, most customers don’t understand formal specifications and are reluctant to accept it as a system contract. Uma forma limitada de LN pode ser usada para expressar requisitos Sana alguns dos problemas resultantes da ambiguidade e flexibilidade e impoe um certo grau de uniformidade para a especificação Definição de função ou entidade Descrição das entradas e de sua procedência Descrição das saídas e seu destino Indicação de dependência de outras entidades Pre-condições e pós-condições ECLIP SE/W orkstati on/Tool s/ DE/FS/ 3.5.1 Function Add node Descripti on Addsa node to an exi st ing design. The user sel ects t he type of node, and it s posi ti on. When added to the design, the node becomes the current select ion. The user chooses the node posi ti on by movi ng t he cursor t o the area where t he node is added. Inputs Node type, Node posit ion, Design ident ifi er. Source Node type and Node posit ion are i nput by the user, Desi gn i denti fier from the database. Outputs Design ident ifi er. Desti nati on operati on. The design database. The design is committ ed t o the database on compl et ion of the Requires Design graph rooted at input design ident ifi er. Pre-conditi on The design is open and displ ayed on the user's screen. Post-condi tion at t he given posi tion. The design is unchanged apart from t he addit ion of a node of the specified t ype Side-ef fects None Def init ion: ECLIPSE/W orkstati on/ Tools/DE/RD/3.5.1 Muitos sistemas operam em conjunto com outros sistemas. Interfaces entre tais sistemas devem ser especificadas como parte dos requisitos Três tipos de interfaces podem ser definidas: • Interfaces de Procedimentos • Estruturas de dados que serão intercambiadas • Representação de dados Notações formais são uma técnica efetiva para especificação de interfaces Requisitos especificam o que o sistema deve fazer e definem restrições quanto a sua operação e implementação; Requisitos funcionais especificam serviços que o sistema deve prover; Requisitos não-funcionais restringem o sistema sendo desenvolvido e/ou o processo de desenvolvimento; Requisitos do usuário são especificações de alto nível a respeito do que o sistema deve fazer; 33 Requisitos do usuário devem ser escritos em linguagem natural, tabelas e diagramas; Requisitos do sistema tem como tarefa comunicar as funcionalidades que o sistema deve prover; Requisitos do sistema devem ser escritos em linguagem natural estruturada ou uma linguagem formal. 34 R. S. Pressman, Engenharia de Software, McGraw Hill, 6a Ed., 2002. Chap. 7. I. Sommerville. Software Engineering. 7th Ed. Addison-Wesley, 2004. Chap. 5. 35