You are on page 1of 50

System Analysis

3 - Models of software development processes


Vitor Santos
vsantos@novaims.unl.pt
Syllabus

1 – General concepts
Characterization of the Software product; Software engineering
basic elements; Programming paradigms
2 – Software Process Engineering and the software
development problematic
Specification and software design (Structured Analysis, SSADM,
Information Engineering, SSM, Object Oriented Analysis and Design
(OOA/OOD),...)
Origin, structure and components of the Unified Modeling Language
(UML);
3 - Models of software development processes
Prescriptive models : Linear sequential, RAD , Prototyping,
evolutionary models, Rational Unified Process, Iconix.
4 – Agile development
Agile methods: XP, Scrum and Crystal,….

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Syllabus

5- Modeling - Requirements Engineering


Analysis and specification of software requirements
UML Diagrams
6 – Modeling - System Design
Design Process, Design Concepts, Design Model
7- Architectural Design
Software, Systems and Infrastructure Architectures
8 – Emerging Trends in Software Engineering

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes

• Model based on components


• Incorporates the Spiral mode main features
• Evolutionary bases
• iterative approach to the creation of SW
• Component = class or set of classes
• Objects Oriented Paradigm
• uniform paradigm applicable to modeling and programming
• an object encapsulates the data and algorithms that manipulate the
data
• an object is defined by a class
• a class is the standard for creating instances of objects
• a class can inherit from other classes (reuse)
• the sw project mainly consist on the creation of object classes

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes

• Model based on componentes

• The Classes of Objects if properly designed


and implemented, are reusable in different
applications and system architectures
• Applications are made from SW components
existing in a component library (classes)
• The end result of a SW project based on
components is:
• the planned application
• enrichment of the components library - for
(re)use in the following projects

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes

• Model based on components

identify
components
candidates

build search
Axis of entry The next components
points system in the library
in iteration
the project

enrich the extract


library components
with new if available
components

build
components
if not
available

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes

• Promotes the Software reuse


• which according to QSM Associates, Inc., enables
• 70% reduction in the duration of the development process
• 84% reduction in the cost of the project
• productivity ratio 26.2 (16.9 standard)

• Key to success: robustness of the component library

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes - RUP

• Model based on componentes

• Unified Software Development Process [Rational SW Corporation]


• is the final result of a number of based component
development models proposed by the industry
(Objectory 1987, Rational Objectory 1996, ...)
• uses UML (Unified Modelling Language) for defining the
components and their interfaces
• uses a combination of iterative and incremental
development, defines the system functionality by
applying an approach based on scenarios (user's
perspective - use cases).

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP

• Rational Unified Process (Rational Unified Process or), it is a


proprietary software engineering process created by Rational
Software, acquired by IBM => a new name => IBM Rational.
• It is also an important name in the field of Software points aset
of techniques to be followed by the members of the software
development team in order to increase productivity.
• RUP uses the objects orientation approach and is designed and
documented using the UML notation

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP

• Heavy
• Preferably applicable to large development teams and large
projects
• Widely "customizable" -> makes it possible to be adapted for
projects of any scale.
• RUP includes a disciplined project management methodology
– clear assigns tasks and responsibilities in a software
development organization.
• Iterative and incremental development
• It is modular and automated. RUP is, itself, a software product
- methodology supported by various development tools and
sold by IBM integrated through "Rational suites".

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP

Six Engineering Disciplines


• Business modeling
• Requirements
• Analysis and Design ("Design")
• Implementation
• Test
• Installation

Three Support / Support Disciplines


• Environment
• Configuration and Change Management
• Project management

Four phases project life-cycle - > Inception, Elaboration, Construction,


Transition

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Components
Dynamic components
• Inception (overview)
• Elaboration (features specification and architecture design)
• Construction (implement and test the sw)
• Transition (sw distributed by the end customer)

Static components
• Environment
• Configuration and Change Management
• Project management
• Business modeling
• Requirements
• Analysis and Design ("Design")
• Implementation
• Test
• Installation

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP

Phases and disciplines


Instituto Superior de Estatística e Gestão de Informação
Universidade Nova de Lisboa
RUP – Architecture Vision and Artifacts

Visions(4+1) Artifacts

Requirements (use cases) use cases model


additional
specifications
Logic Classes Diagram, relationships,
packages
User – Experience
Model Data Model
Design guidelines
Implementation System implementation static model
- sw module
Processes Parallelism, competition, response
times, reliability ...  diagram
components
Installation / Distribution Migration and installation 
diagrams of
components and installation

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Business Modeling

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Business modeling

Workflow

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Requirements

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Requirements

General Diagram

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Analysis and Design

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Analysis and Design

General Diagram

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Implementation

Initial
Implementation
Model

Elements
implemented in the
specific physical
nodes

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Implementation

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP – Implementation

General Diagram

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
RUP

• Competitors methods in the software engineering


field include:
• "Cleanroom" (considered heavy)
• Agile methods (light)
• Extreme Programming (XP)
• Scrum
• FDD ...
• ICONIX
• GRASP….

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
ICONIX
• Process Analysis and Software Development directed
by Use Cases.

• 5 UML diagrams

• Use of prototyping from the beginning.

• Simpler than the RUP (Rational Unified Process) but without the
simplicity of XP (Extreme Programing).

Source : Mario F. Miranda Jr.

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
ICONIX - process phases
Analysis Review
Requirements and from the
Prototyping
Analysis preliminary preliminary
project project

Requirements
Review Project

Detailed Final
review adjustments
and Project and
Critique Installation

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
ICONIX - diagrams

https://www.red-gate.com/simple-talk/opinion/opinion-pieces/agile-development-and-
iconix/
Instituto Superior de Estatística e Gestão de Informação
Universidade Nova de Lisboa
ICONIX –Use Cases

ud Manter Cadastro de Tipo de Env olv ido

• The simplest Incluir Tipo de


Env olv ido
• and detailed as possible

«include»

Unambiguously Atualizar Tipo de


Excluir Tipo de
Env olv ido «include» Env olv ido
and making
Gerente
reference to
«include»
prototype objects.
Consultar Tipo de
Env olv ido

Source : Mario F. Miranda Jr.


Instituto Superior de Estatística e Gestão de Informação
Universidade Nova de Lisboa
Robustness Diagram
od Use Case M

• Actors – as in the use case diagram.


Ator

od Use Case M

• Interface – Who the actors interact.

od Use Case Mo

• Control – Connection between Interface and Entity.


Controle

od Use Case Mo

• Entity – As in the class diagram.


Entidade

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Robustness Diagram
od Cadastro de Tipo de Env olv ido

Tela de Cadastro de
Tipo de Envolvido

Lista de Tipos de
Envolvido Exibir Campos do Tipo
Tipo de Envolvido
de Envolvido
Selecionado
Gerente

(from Use Case Model)

Botão Incluir Tipo de Limpar Campos da


Envolvido Tela de Tipo de
Envolvido

Montar Lista de Tipos


de Envolvido
Botão Pesquisar Tipo
de Envolvido

Botão Excluir Tipo de


Envolvido
Excluir Tipo de
Envolvido

Botão Gravar Tipo de Gravar Tipo de


Envolvido Envolvido

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Sequence Diagram
sd Atualizar Tipo de Env olv ido

Modelo de
Classes::TipoEnv olv ido

Gerente
Tela de Cadastro Botão Pesquisar Lista de Tipos de Botão Gravar Tipo
de Tipo de Tipo de Envolvido Envolvido de Envolvido
Envolvido

Exibir

Pesquisar Tipos de Envolvido


Carregar Lista de Tipos de Envolvido
Lista de Tipos de Envolvido

Selecionar um Tipo de Envolvido

Carregar Tipo de Envolvido Selecionado

Tipo de Envolvido Selecionado

Atualizar Dados

Gravar Dados

Gravar Tipo de Envolvido Selecionado

Gravação Realizada com Sucesso

Encerrar

(from Use Case Model) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez)

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Sequence Diagram (cont.)
sd Consultar Tipo de Env olv ido

Modelo de
Classes::TipoEnv olv ido

Gerente
Tela de Cadastro Botão Pesquisar Lista de Tipos de
de Tipo de Tipo de Envolvido Envolvido
Envolvido

Exibir

Pesquisar Tipo de Envolvido

Carregar Lista de Tipos de Envolvido

Lista de Tipos de Envolvido

Selecionar um Tipo de Envolvido

Carregar Tipo de Envolvido Selecionado

Tipo de Envolvido Selecionado

Encerrar

(from Use Case Model) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez)

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Sequence Diagram (cont.)
sd Excluir Tipo de Env olv ido

Modelo de
Classes::TipoEnv olv ido
Gerente
Tela de Cadastro Botão Pesquisar Lista de Tipos de Botão Excluir Tipo
de Tipo de Tipo de Envolvido Envolvido de Envolvido
Envolvido
Exibir

Pesquisar Tipos de Envolvido

Carregar Lista de Tipos de Envolvidos

Lista de Tipos de Envolvidos

Selecionar um Tipo de Envolvido

Carregar Tipo de Envolvido Selecionado

Tipo de Envolvido Selecionado

Excluir Tipo de Envolvido Selecionado

Excluir Tipo de Envolvido

Exclusão Realizada com Sucesso

Encerra

(from Use Case Model) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez)

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Sequence Diagram (cont.)

sd Incluir Tipo de Env olv ido

Modelo de
Classes::TipoEnv olv ido

Gerente
Tela de Cadastro Botão Incluir Tipo Botão Gravar Tipo
de Tipo de de Envolvido de Envolvido
Envolvido
Exibir

Requisitar um Novo Tipo de Envolvido

Ficha de Cadastro em Branco

Informar Dados

Gravar Dados

Gravar Tipo de Envolvido

Gravação Realizada com Sucesso

Encerrar

(from Use Case Model) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez)

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Domain Diagram
cd Diagrama de Domínio do Sistema

Area

Env olv idoTipo

Projeto TipoFase Acompanhamento


Env olv ido Recurso TipoEquipamento

TipoEtapa

TipoCaracteristica Caracteristica Fase

Baseline Realizado RecursoHumano RecursoSoftware RecursoHardware

Etapa

Risco

Tarefa

Resultado Contingencia

RiscoProjeto RiscoFase RiscoEtapa RiscoTarefa

AnaliseRisco

Impacto
Fonte Sev eridade

Source : Mario F. Miranda Jr.


Instituto Superior de Estatística e Gestão de Informação
Universidade Nova de Lisboa
Classes Diagram
cd Diagrama de Classes

«interface»
IBaseOperacao
Area - id_objeto: Integer
- Nome: String
- Descricao: String + «property» id_objeto() : Integer
+ Incluir() : Boolean
Projeto
+ «property» Nome() : String + Alterar() : Boolean
+ «property» Descricao() : String Pertence a - Nome: String Depende de + Excluir() : Boolean
+ Incluir() : Boolean - Descricao: String + Carregar() : Boolean
+ Alterar() : Boolean - DataInicial: Date + CarregarColecao() : DataSet
+ Excluir() : Boolean - DataFinal: Date
+ Carregar() : Boolean TipoEnv olv ido - Observacoes: String
+ CarregarColecao() : DataSet
- Tipo: String + «property» DataFinal() : Date TipoFase
- Descricao: String + «property» DataInicial() : Date
+ «property» Observacoes() : String - Tipo: String
+ «property» Tipo() : String + Incluir() : Boolean - Descricao: String
Resultado + «property» Descricao() : String + Alterar() : Boolean Acompanhamento
+ Incluir() : Boolean + «property» Descricao() : String + «property» Tipo() : String
- Observacoes: String + Alterar() : Boolean + Excluir() : Boolean + «property» Descricao() : String - DataInicio: Date
- Atraso: Integer + Excluir() : Boolean + «property» Nome() : String + Incluir() : Boolean - DataFim: Date
- Corrigiu: Boolean + Carregar() : Boolean + Carregar() : Boolean + Alterar() : Boolean - DataAprovacao: Date
+ Excluir() : Boolean
+ CarregarColecao() : DataSet + «property» Observacao() : String Contém + «property» DataAprovacao() : Date
+ «property» Atraso() : Integer + CarregarColecao() : DataSet + Carregar() : Boolean TipoEtapa
+ «property» Corrigiu() : Boolean + CarregarColecao() : DataSet + «property» DataFim() : Date
+ «property» Observacoes() : String - Tipo: String + «property» DataInicio() : Date
+ Incluir() : Boolean - Descricao: String + Incluir() : Boolean
+ Alterar() : Boolean + Alterar() : Boolean
+ Excluir() : Boolean + «property» Tipo() : String + Excluir() : Boolean
+ Carregar() : Boolean É Gerenciado por Contém Depende de + «property» Descricao() : String + Carregar() : Boolean
+ CarregarColecao() : DataSet Fase + Incluir() : Boolean + CarregarColecao() : DataSet
+ Alterar() : Boolean
- Descricao: String Depende de
+ Excluir() : Boolean Recursos
- Observacoes: String + Carregar() : Boolean
- DataInicial: Date + CarregarColecao() : DataSet - DataInicioUtilizacao: Date
Contém
- DataFinal: Date - DataTerminoUtilizacao: Date
Env olv ido Caracteristica - Essencial: Boolean
+ «property» DataFinal() : Date
- Nome: String - Descricao: String + «property» DataInicial() : Date Baseline Realizado + «property» DataInicioUtilizacao() : Date
Contingencia - Endereco: String Depende de + «property» Descricao() : String + «property» DataTerminoUtilizacao() : Date
Contém + «property» Observacoes() : String - MargemErro: Decimal - DesvioEmDias: Integer TipoEquipamento
- Bairro: String + «property» Descricao() : String + «property» Essencial() : Boolean
- Descricao: String - Cidade: String + Incluir() : Boolean + Incluir() : Boolean - DesvioPercentual: Decimal + Incluir() : Boolean - Tipo: String
- Observacoes: String - Estado: String + Alterar() : Boolean + Alterar() : Boolean Contém + «property» MargemErro() : Decimal + Alterar() : Boolean - Descricao: String
- CEP: String + Excluir() : Boolean + Excluir() : Boolean + Incluir() : Boolean + «property» Desvio() : Integer
+ Excluir() : Boolean
+ «property» Descricao() : String - Telefone: String + Carregar() : Boolean + Carregar() : Boolean + Alterar() : Boolean + «property» DesvioPercentual() : Decimal
+ Carregar() : Boolean + «property» Descricao() : String
+ «property» Observacoes() : String - Celular: String + CarregarColecao() : DataSet + CarregarColecao() : DataSet + Excluir() : Boolean + Incluir() : Boolean + CarregarColecao() : DataSet + «property» Tipo() : String
+ Incluir() : Boolean - CPF: String + Carregar() : Boolean + Alterar() : Boolean
+ Alterar() : Boolean - RG: String Etapa + CarregarColecao() : DataSet + Excluir() : Boolean
+ Excluir() : Boolean - Sexo: Char Depende de + Carregar() : Boolean
+ Carregar() : Boolean - Nascimento: Date Depende de - Descricao: String Depende de + CarregarColecao() : DataSet
+ CarregarColecao() : DataSet - Observacoes: String
+ «property» Bairro() : String - DataInicial: Date
+ «property» Celular() : String Contém - DataFinal: Date
+ «property» CEP() : String
+ «property» Cidade() : String + «property» DataFinal() : Date
+ «property» DataInicial() : Date RecursoSoftware RecursoHardware
+ «property» CPF() : String
+ «property» Endereco() : String + «property» Descricao() : String Contém
+ «property» Observacoes() : String - Nome: String - Quantidade: Integer
+ «property» Estado() : String Contém
+ Incluir() : Boolean - Fabricante: String
+ «property» Nascimento() : Date Depende de + Alterar() : Boolean - Versao: String + «property» Quantidade() : Integer
+ «property» Nome() : String Contém - Quantidade: Integer
+ Excluir() : Boolean + Incluir() : Boolean
Contém + «property» RG() : String + Carregar() : Boolean RecursoHumano + Alterar() : Boolean
+ «property» Sexo() : Char + «property» Fabricante() : String
Contém + CarregarColecao() : DataSet + Excluir() : Boolean
+ «property» Telefone() : String + «property» Nome() : String
+ Incluir() : Boolean + Carregar() : Boolean
+ Incluir() : Boolean Contém + «property» Quantidade() : String + CarregarColecao() : DataSet
+ Alterar() : Boolean
+ Alterar() : Boolean + Excluir() : Boolean + «property» Versao() : String
Depende de
+ Excluir() : Boolean + Carregar() : Boolean + Incluir() : Boolean
+ Carregar() : Boolean Tarefa + CarregarColecao() : DataSet + Alterar() : Boolean
+ CarregarColecao() : DataSet Depende de + Excluir() : Boolean
- Descricao: String + Carregar() : Boolean
- Observacoes: String + CarregarColecao() : DataSet
- PontosFuncao: Integer
- PontosCasoDeUso: Integer Contém
Risco TipoCaracteristica Contém
- PercentualConcluido: Decimal

- Descricao: String - Descricao: String


+ «property» Descricao() : String Contém
+ «property» Descricao() : String + «property» Observacoes() : String
+ «property» Descricao() : String + «property» PercentualConcluido() : Decimal
+ Incluir() : Boolean + Incluir() : Boolean
+ Alterar() : Boolean + «property» PontosCasoDeUso() : Integer
+ Alterar() : Boolean
+ Excluir() : Boolean + «property» PontosFuncao() : Integer
+ Excluir() : Boolean
+ Carregar() : Boolean + Incluir() : Boolean
+ Carregar() : Boolean + CarregarColecao() : DataSet
+ CarregarColecao() : DataSet + Alterar() : Boolean
+ Excluir() : Boolean
AnaliseRisco + Carregar() : Boolean
- Probabilidade: Decimal + CarregarColecao() : DataSet

+ «property» Probabilidade() : Decimal


+ Incluir() : Boolean
+ Alterar() : Boolean Contém Contém
+ Excluir() : Boolean Fonte Contém
+ Carregar() : Boolean - Descricao: String Contém
+ CarregarColecao() : DataSet

+ «property» Descricao() : String


+ Incluir() : Boolean
RiscoProjeto RiscoFase RiscoEtapa RiscoTarefa
+ Alterar() : Boolean
+ Excluir() : Boolean
+ Incluir() : Boolean + Incluir() : Boolean + Incluir() : Boolean + Incluir() : Boolean
+ Carregar() : Boolean
+ Alterar() : Boolean + Alterar() : Boolean + Alterar() : Boolean + Alterar() : Boolean
+ CarregarColecao() : DataSet
+ Excluir() : Boolean + Excluir() : Boolean + Excluir() : Boolean + Excluir() : Boolean
+ Carregar() : Boolean + Carregar() : Boolean + Carregar() : Boolean + Carregar() : Boolean
+ CarregarColecao() : DataSet + CarregarColecao() : DataSet + CarregarColecao() : DataSet + CarregarColecao() : DataSet
Impacto Sev eridade

- Descricao: String - Descricao: String

+ «property» Descricao() : String + «property» Descricao() : String


+ Incluir() : Boolean + Incluir() : Boolean
+ Alterar() : Boolean + Alterar() : Boolean
+ Excluir() : Boolean + Excluir() : Boolean
+ Carregar() : Boolean + Carregar() : Boolean
+ CarregarColecao() : DataSet + CarregarColecao() : DataSet

Source: Mario F. Miranda Jr.


Instituto Superior de Estatística e Gestão de Informação
Universidade Nova de Lisboa
ICONIX - steps

• Requirements review (use cases + domain model)


• Preliminary Design Review (robustness diagram)
• Detailed Design Review (class diagram + sequence
diagram)
• Deployment (Unit tests + code)

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
ICONIX step by step
1 - Prototype the user interface.
• Write a use case that could gives a good idea of how the interface will behave.
• Sketch Robustness, Sequence and Domain diagrams
• Set the interface mode that implements what the use case determines.

2 - Repeat the first step.

3 - When the requirements analysis finish then do the same steps for the preliminary
analysis.

4- When the preliminary analysis is already finished should exist a pre-


delivery stage, with only minor adjustments

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes

• Model based on formal methods

• The formal methods are used to develop


computer systems. The formal methods are
mathematical techniques to describe system
properties.

• Such formal methods provide the


framework within which we can specify,
develop and systematically verify systems
instead of ad hoc verification.

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes

• Model based on formal methods


• Main features:
• Emphasis on formal specification with mathematical basis
• Rigorous and demonstrable notation
• Facilitates the detection and correction of problems related with
ambiguities, inconsistencies and incomplete solutions
• Provide the production of defect-free software

• Some problems:
• Expensive and time-consuming process
• Shortage of technical people with proper training
• Slow Learning cycle => needed for proper training
• The elaborate models are not conducive to communication with
customers

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes

• 4GT - “Fourth Generation Techniques”

• Includes a set of software tools that


• allow the software specification at a high level of abstraction
(near natural language and / or graphical notations)
• the used notation is typically based screens ("forms"). Also,
reports and graphical notations, facilitates communication with
the customer
• allow the automatic generation of code based on a previous
specification

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes

• 4GT - “Fourth Generation


Techniques”/Low Code
• The software development
environment that supports the 4th
generation life cycle includes the
tools:
• no procedural language for
database query
• reporting
• data handling obtaining
requirements
• interaction and setting screens Project
strategy
• code generation
• ...
4 GL
implementation

• HTML automatic generation to Tests


create Web sites

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Modelos de processos de desenvolvimento de software

• Fourth Generation Techniques


• 1. Obtaining requirements
• Ideally, the client describes the requirements which
are translated into a prototype. However, the customer
can:
• be unsure about the requirements
• be ambiguous in the statement of the known facts
• be unable to specify information a way that a 4GT tool can
consume
• the current 4GLs are not enough sophisticated to accept a
true "natural language""

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Modelos de processos de desenvolvimento de software

• Fourth Generation Techniques


• 2. Project strategy
• unnecessary for small applications
• for large projects is necessary to developed a project
strategy, if not then will occur the same problems
encountered in conventional approaches (low quality)
• 3. Implementation using 4GL
• The desired results are represented in order to allow
the automatic generation of code. There must be a
data structure (repository) with relevant and accessible
information for 4GL

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Modelos de processos de desenvolvimento de software

• Fourth Generation Techniques


• 4. Test
• test driving and production of relevant documentation
• the software should be developed in a way that maintenance could
be done expeditiously

When combined with component-based approaches, the 4GT


paradigm may become the dominant approach to software
development.

In the twenty-first century, 4GL systems have emerged as "low


code" environments or platforms for the problem of rapid
application development in short periods of time.

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Modelos de processos de desenvolvimento de software

Fourth Generation Techniques


• Advantages:
• reduces the analysis and design of small/medium sizes software
• dramatic reduction in software development time (increasing
productivity)
• Drawbacks:
• learning difficulties
• inefficiency of the generated code
• to be able to reduce the work during the code generation, it is
necessary to produce at least as much as it performed without
analyzing and designing 4GL
• the maintenance of large system is still problematic

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Agile processes

• Principles

• Individuals and interactions rather than processes and


tools
• Software running rather than comprehensive
documentation
• Customer collaboration rather than contract negotiation
• Response to changes instead of following a detailed plan
• KIS (Keep it Simple)

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
Models of software development processes

Agile processes

• Philosophy
• Customer satisfaction and incremental delivery of software
from the start
• Small project teams, highly motivated
• Informal methods
• Engineering work products of minimum software and
overall simplicity of development
• Developing guidelines
• Deliveries in contrast to the analysis and design
• Active and ongoing communication between development
team and customers

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa
How to write good code ?

Instituto Superior de Estatística e Gestão de Informação


Universidade Nova de Lisboa 49
50

You might also like