Title: Aplicaciones de Ingenier
1Aplicaciones de Ingeniería de Software
- Proceso Racional Unificado (RUP)
2MoProSoft vs RUP (Procesos)
Cómo?
Qué?
Operación
Realización de la Fase de Inicio
Realización de la Fase de Requerimientos
Realización de la Fase de Análisis y Diseño
Desarrollo y Manto. SW
Realización de la Fase de Construcción
Realización de la Fase de Integración y Pruebas
Realización de la Fase de Cierre
Admón de Proy. Específicos
3MoProSoft vs RUP (Roles)
RAPE Responsable de Administración del Proyecto Específico Project manager Configuration manager Change control manager
RDM Responsable de Desarrollo y Mantenimiento de Software Project manager (Team Leader)
AN Analista Analyst
DU Diseñador de Interfaz de Usuario User-interface designer
4MoProSoft vs RUP (Roles)
DI Diseñador Database designer Software architect
PR Programador Developer (Implementer) Code Reviewer (Leader)
RPU Responsable de Pruebas Tester Designer Tester
5Analyst
- The Analyst role set organizes those roles
primarily involved in eliciting and investigating
requirements. - System Analyst
- Business Designer
- Business-Model Reviewer
- Business-Process Analyst
- Requirements Reviewer
- Requirements Specifier
- Test Analyst
- User-Interface Designer
6System Analyst
7System Analyst
- The system analyst role leads and coordinates
requirements elicitation and use-case modeling by
outlining the system's functionality and
delimiting the system for example, establishing
what actors and use cases exist, and how they
interact.
8System Analyst
- A person acting as system analyst is a good
facilitator and has above-average communication
skills. Knowledge of the business and technology
domains is essential to have amongst those acting
in this role.
9Business-Process Analyst
10Business-Process Analyst
- The business-process analyst leads and
coordinates business use-case modeling by
outlining and delimiting the organization being
modeled for example, establishing what business
actors and business use cases exist and how they
interact. - The business process analyst is responsible for
the business architecture. - He/she is shown below as responsible for
Artifact Business Object Model because of this
overall architectural responsibility, even though
Role Business Designer creates and maintains it.
11Business-Process Analyst
- A person acting as business-process analyst must
be a good facilitator and have excellent
communication skills. Knowledge of the business
domain is essential to have for those acting in
this role, however, it's not necessary for
everyone. - A business-process analyst is prepared to
- Assess the situation of the target organization
where the project's end-product will be
deployed. - Understand customer and user requirements, their
strategies, and their goals. - Facilitate modeling of the target organization.
- Discuss and facilitate a business engineering
effort, if needed. - Perform a cost/benefit analysis for any suggested
changes in the target organization. - Discuss and support those who market and sell the
end-product of the project.
12 User-Interface Designer
13User-Interface Designer
- The user-interface designer leads and coordinates
the prototyping and design of the user interface,
by - capturing requirements on the user interface,
including usability requirements - building user-interface prototypes
- involving other stakeholders of the user
interface, such as end-users, in usability
reviews and use testing sessions - reviewing and providing the appropriate feedback
on the final implementation of the user
interface, as created by other developers that
is, designers and implementers.
14Requirements Specifier
15Requirements Specifier
- The requirements specifier role details the
specification of a part of the system's
functionality by describing the Requirements
aspect of one or several use cases and other
supporting software requirements. - The requirements specifier may also be
responsible for a use-case package, and maintains
the integrity of that package. - It is recommended that the requirements specifier
responsible for a use-case package is also
responsible for its contained use cases and
actors.
16Developer
- The Developer role set organizes those roles
primarily involved in designing and developing
software. - Capsule Designer
- Code Reviewer
- Database Designer
- Implementer
- Integrator
- Software Architect
- Architecture Reviewer
- Design Reviewer
- Designer
- Test Designer
17Code Reviewer
18Code Reviewer
- The code reviewer role ensures the quality of the
source code, and plans and conducts source code
reviews. The code reviewer is responsible for any
review feedback that recommends necessary rework.
19Code Reviewer
- Skill requirements for this role are similar to
those for Role Implementer people playing this
role are often considered experts in the
programming language used for the code being
reviewed. - As with any reviewer role, individuals playing
the Code Reviewer role also need management
skills for planning and conducting the reviews. - In most projects, this role is staffed using
senior programmers from the implementation team.
20Database Designer
21Database Designer
- The database designer role defines the tables,
indexes, views, constraints, triggers, stored
procedures, tablespaces or storage parameters,
and other database-specific constructs needed to
store, retrieve, and delete persistent objects.
22Database Designer
- The database designer must have a solid working
knowledge of the following - Database and Object-Oriented Analysis and Design
techniques - System Architecture, including Database and
System performance tuning, as well as hardware
and network workload balancing - Database Administration an understanding of the
implementation language and environment
23Implementer (Programmer)
24Implementer (Programmer)
- The implementer role is responsible for
developing and testing components, in accordance
with the projects adopted standards, for
integration into larger subsystems. When test
components, such as drivers or stubs, must be
created to support testing, the implementer is
also responsible for developing and testing the
test components and corresponding subsystems.
25Implementer (Programmer) - Skills
- The appropriate skills and knowledge for the
implementer include - knowledge of the system or application under test
- familiarity with testing and test automation
tools - programming skills
- Recommend that the implementer role that's
responsible for an implementation subsystem is
also responsible for its contained components.
26Integrator
27Integrator
- Implementers deliver their tested components into
an integration workspace, whereas integrators
combine them to produce a build. - An integrator is also responsible for planning
the integration, which takes place at the
subsystem and system levels, with each having a
separate integration workspace. - Tested components are delivered from an
implementer's private development workspace into
a subsystem integration workspace, whereas
integrated implementation subsystems are
delivered from the subsystem integration
workspace into the system integration workspace
28Integrator
- It may sometimes be appropriate for an individual
acting as an integrator to also act as a - For example, if the project is small or the Role
Tester integration is at the subsystem level, it
may be an effective use of resources to have the
integrator and tester be the same team member.
Indeed, for subsystem-level integration and test,
a single individual might play the role of
implementer, integrator, and tester. At the
system level, however, we recommend that
integration and testing are performed by an
independent team.
29Software Architect
30Software Architect
- The software architect role leads and coordinates
technical activities and artifacts throughout the
project. - T he software architect establishes the overall
structure for each architectural view the
decomposition of the view, the grouping of
elements, and the interfaces between these major
groupings. - Therefore, in contrast to the other roles, the
software architect's view is one of breadth as
opposed to one of depth.
31Software Architect
- The software architect must be well-rounded,
posses maturity, vision, and a depth of
experience that allows for grasping issues
quickly and making educated, critical judgment in
the absence of complete information. More
specifically, the software architect, or members
of the architecture team, must combine these
skills - Experience
- Leadership
- Communication
- Goal orientation and Pro activity
32Designer
- A person acting as business designer needs to be
a good facilitator and have adequate
communication skills. Knowledge of the business
domain is helpful, but not necessary for everyone
acting in this role. The business designer needs
to be familiar with tools used to capture the
business models. - A business-process analyst is prepared to
- Understand customer and user requirements, their
strategies, and their goals. - Facilitate modeling of the target organization.
- Discuss and facilitate a business engineering
effort, if needed. - Take part in defining requirements on the
end-product of the project.
33Test Designer
34Test Designer
- El Diseñador de pruebas es el responsable de
definir los métodos de prueba y asegurarse del
éxito de su implementación. Debe identificar las
técnicas apropiadas, herramientas y guías para
implementar las pruebas requeridas, y brindar
dirección en los requisitos correspondientes al
esfuerzo de las pruebas.
35Test Designer
- The appropriate skills and knowledge for the Test
Designer role include - experience in a variety of testing efforts
- diagnostic and problem solving skills
- broad knowledge of hardware and software
installation and setup - experience and success with the use of test
automation tools - programming skills (preferable)
- programming team lead and software design skills
(highly desirable) - indepth knowledge of the system or
application-under-test (desirable)
36Tester
37Tester
- The Tester role is responsible for the core
activities of the test effort, which involves
conducting the necessary tests and logging the
outcomes of that testing. This covers - Identifying the most appropriate implementation
approach for a given test - Implementing individual tests
- Setting up and executing the tests
- Logging outcomes and verifying test execution
- Analyzing and recovering from execution errors
38Tester
- The knowledge and skill sets may vary depending
on the types of tests being executed and the
phases of the project lifecycle, however in
general, staff filling the Tester role should
have the following skills - knowledge of testing approaches and techniques
- diagnostic and problem-solving skills
- knowledge of the system or application being
tested (desirable) - knowledge of networking and system architecture
(desirable)
39Tester
- Where automated testing is required, these skills
should be considered in addition to those already
noted above - training in the appropriate use of test
automation tools - experience using test automation tools
- programming skills
- debugging and diagnostic skills
40Project Manager
41Project Manager
- The project manager role allocates resources,
shapes priorities, coordinates interactions with
customers and users, and generally keeps the
project team focused on the right goal. The
project manager also establishes a set of
practices that ensure the integrity and quality
of project artifacts.
42Project Manager
- The skills and experience needed to fulfill the
Project Manager role will depend on the size, and
technical and management complexity of the
project, but in varying degrees, to play the
Project Manager role as defined by the Rational
Unified Process, you must - be experienced in the domain of the application,
and in software development - have risk analysis and management, estimation,
planning and decision analysis skills - have presentation and communication and
negotiation skills - show leadership and team building capabilities
43Project Manager
- have good time management and triage skills, and
a history of making sound decisions quickly under
stress - have good interpersonal skills and show sound
judgment in staff selection - be objective in setting and assessing work,
ensuring team buy-in share the architectural
vision, but be pragmatic in the scoping and
implementation of plans, and scrupulously honest
in the assessment of outcomes - be focused on the delivery of customer value, in
the form of executing software that meets (or
exceeds) the customer's needs.
44Change Control Manager
45- The change control manager role oversees the
change control process. This role is usually
played by a Configuration (or Change) Control
Board (CCB) and consists of representatives from
all interested parties, including customers,
developers, and users. In a small project, a
single team member, such as the project manager
or software architect, may play this role. - The change control manager is also responsible
for defining the Change Request Management
Process, which is documented in the CM Plan.
46- The change control manager should understand
configuration management principles. He/she
should be skilled in estimating cost and schedule
impacts of change requests. - He/she should be able to communicate effectively
in order to negotiate scope changes and in order
to determine how each change request should be
handled and by whom.
47Configuration Manager
48Configuration Manager
- The configuration manager provides the overall
Configuration Management (CM) infrastructure and
environment to the product development team. - The CM function supports the product development
activity so that developers and integrators have
appropriate workspaces to build and test their
work, and so that all artifacts are available for
inclusion in the deployment unit as required.
49Configuration Manager
- The configuration manager also has to ensure that
the CM environment facilitates product review,
and change and defect tracking activities. The
configuration manager is also responsible for
writing the CM Plan and reporting progress
statistics based on change requests.
50Configuration Manager
- The configuration manager should understand
configuration management principles, and
preferably have experience or training in the use
of Configuration Management tools. A good
configuration manager pays attention to detail.
He/she should be assertive, in order to ensure
that developers do not bypass configuration
management policies and procedures.
51Artifacts
- Are either final or intermediate work products
that are produced and used during a project.
Artifacts are used to capture and convey project
information. An artifact can be any of the
following - A document, such as Business Case or Software
Architecture Document - A model, such as the Use-Case Model or the Design
Model - A model element that is, an element within a
model, such as a class, or a subsystem
52Artifacts Sets
- Deployment Set
- Project Management Set
- Configuration Change Management Set
- Environment Set
- Business Modeling Set
- Requirements Set
- Analysis Design Set
- Implementation Set
- Test Set
53Artifacts
54Artifacts
- Are either final or intermediate work products
that are produced and used during a project. An
artifact can be any of the following - A document, such as Business Case or Software
Architecture Document - A model, such as the Use-Case Model or the Design
Model - A model element that is, an element within a
model, such as a class, or a subsystem
55Referencias
- El Proceso Unificado de Desarrollo de Software,
Ivar Jacobson, Grady Booch, James Rumbaugh - RUP 2001
- UML y Patrones, Craig Larman