Rational Unified Process-Methods Of Software Engineering-Lecture Notes, Study notes of Software Engineering

This course includes software-- development process, process models, project planning, quality assurance, configuration management, process and project metrics, change, re-engineering. It also discuss risk analysis and management and project management. This lecture contains: Rational, Unified, Process, Phases, Overlap, Object, Oriented, Maintenance, Cycle, Dynamic, UML, Architectural, Model

Typology: Study notes

2011/2012

Uploaded on 08/06/2012

angarika
angarika 🇮🇳

4.4

(56)

90 documents

1 / 10

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
In this model the circles representing the various phases overlap, explicitly representing
an overlap between activities. The arrows within a phase represent iteration within the
phase. The maintenance cycle is smaller, to symbolize reduced maintenance effort when
the object oriented paradigm is used.
Rational Unified Process (RUP)
Rational Unified Process is very closely associated with UML and Krutchen‘s
architectural model.
In this model a software product is designed and built in a succession of incremental
iterations. It incorporates early testing and validation of design ideas and early risk
mitigation. The horizontal dimension represents the dynamic aspect of the process. This
includes cycles, phases, iterations, and milestones. The vertical dimension represents the
static aspect of the process described in terms of process components which include
activities, disciplines, artifacts, and roles. The process emphasizes that during
development, all activities are performed in parallel, however, and at a given time one
activity may have more emphasis than the other.
The following figure depicting RUP is taken from Krutchen‘s paper.
Requirement
Object-oriented analysis
Object-oriented design
Implementation
Implementation and
integration
Further development
Operations
Maintenance
docsity.com
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

Download Rational Unified Process-Methods Of Software Engineering-Lecture Notes and more Study notes Software Engineering in PDF only on Docsity!

In this model the circles representing the various phases overlap, explicitly representing an overlap between activities. The arrows within a phase represent iteration within the phase. The maintenance cycle is smaller, to symbolize reduced maintenance effort when the object oriented paradigm is used.

Rational Unified Process (RUP)

Rational Unified Process is very closely associated with UML and Krutchen‘s architectural model.

In this model a software product is designed and built in a succession of incremental iterations. It incorporates early testing and validation of design ideas and early risk mitigation. The horizontal dimension represents the dynamic aspect of the process. This includes cycles, phases, iterations, and milestones. The vertical dimension represents the static aspect of the process described in terms of process components which include activities, disciplines, artifacts, and roles. The process emphasizes that during development, all activities are performed in parallel, however, and at a given time one activity may have more emphasis than the other.

The following figure depicting RUP is taken from Krutchen‘s paper.

Requirement

Object-oriented analysis

Object-oriented design

Implementation

Implementation and integration

Further development

Operations

Maintenance

Comparison of Lifecycle Models

As discussed above, each lifecycle model has some strengths and weaknesses. These are summarized in the following table:

The criteria to be used for deciding on a model include the organization, its management, skills of the employees, and the nature of the product. No single model may fulfill the needs in a given situation. It may therefore be best to devise a lifecycle model tuned to your own needs by creating a ―Mix-and-match‖ life-cycle model.

Quality Assurance and Documentation

It may be noted that there is no separate QA or documentation phase. QA is an activity performed throughout software production. It involves verification and validation.

Lecture No. 6

Software Project Management Concepts

Software project management is a very important activity for successful projects. In fact, in an organization at CMM Level basic project management processes are established to track cost, schedule, and functionality. That is, it is characterized by basic project management practices. It also implies that without project management not much can be achieved. Capers Jones, in his book on Software Best Practices, notes that, for the projects they have analyzed, good project management was associated with 100% of the successful project and bad project management was associated with 100% of the unsuccessful projects. Therefore, understanding of good project management principles and practices is essential for all project managers and software engineers.

Software project management involves that planning, organization, monitoring, and control of the people and the processes.

Software Project Management: Factors that influence results

The first step towards better project management is the comprehension of the factors that influence results of a project. Among these, the most important factors are:

  • Project size As the project size increases, the complexity of the problem also increases and therefore its management also becomes more difficult.
  • Delivery deadline Delivery deadline directly influences the resources and quality. With a realistic deadline, chances of delivering the product with high quality and reasonable resources increase tremendously as compared to an unrealistic deadline. So a project manager has to first determine a realistic and reasonable deadline and then monitor the project progress and ensure timely delivery.
  • Budgets and costs A project manager is responsible for ensuring delivery of the project within the allocated budget and schedule. A good estimate of budget, cost and schedule is essential for any successful project. It is therefore imperative that the project manager understand and learns the techniques and principle needed to develop these estimates.
  • Application domain Application domain also plays an important role in the success of a project. The chances of success of a project in a well-known application domain would be much better than of a project in a relatively unknown domain. The project manager thus needs to implement measures to handle unforeseen problems that may arise during the project lifecycle.
  • Technology to be implemented Technology also plays a very significant role in the success or failure of a project. One the one hand, a new ―state-of-the-art‖ technology may increase the productivity of the team and quality of the product. On the other hand, it may prove to be unstable and hence

prove to be difficult to handle. Resultantly, it may totally blow you off the track. So, the project manager should be careful in choosing the implementation technology and must take proper safeguard measures.

  • System constraints The non-functional requirement or system constraints specify the conditions and the restrictions imposed on the system. A system that fulfils all its functional requirements but does not satisfy the non-functional requirements would be rejected by the user.
  • User requirements A system has to satisfy its user requirements. Failing to do so would render this system unusable.
  • Available resources A project has to be developed using the available resources who know the domain as well as the technology. The project manager has to ensure that the required number of resources with appropriate skill-set is available to the project.

Project Management Concerns

In order to plan and run a project successfully, a project manager needs to worry about the following issues:

  1. Product quality: what would be the acceptable quality level for this particular project and how could it be ensured?
  2. Risk assessment: what would be the potential problems that could jeopardize the project and how could they be mitigated?
  3. Measurement: how could the size, productivity, quality and other important factors be measured and benchmarked?
  4. Cost estimation: how could cost of the project be estimated?
  5. Project schedule: how could the schedule for the project be computed and estimated?
  6. Customer communication: what kind of communication with the customer would be needed and how could it be established and maintained consistently?
  7. Staffing: how many people with what kind of resources would be needed and how that requirement could be fulfilled?
  8. Other resources: what other hardware and software resources would be needed for the project?
  9. Project monitoring: how the progress of the project could be monitored?

Thorough understanding and appreciation of these issues leads to the quest for finding satisfactory answers to these problems and improves the chances for success of a project.

Why Projects Fail?

A project manager is tasked to ensure the successful development of a product. Success cannot be attained without understanding the reasons for failure. The main reasons for the failure of software projects are:

  1. changing customer requirements
  2. ambiguous/incomplete requirements

Project

A project comprises of all work the required to make the product a reality. In order to avoid failure, a project manager and software engineer is required to build the software product in a controlled and organized fashion and run it like other projects found in more concrete domains.

We now discuss these 4 in more detail.

People

In a study published by IEEE, the project team was identified by the senior executives as the most important contributor to a successful software project. However, unfortunately, people are often taken for granted and do no get the attention and focus they deserve. There are a number of players that participate in software process and influence the outcome of the project. These include senior managers, project (technical) managers, practitioners, customers, and end-users. Senior managers define the business vision whereas the project managers plan, motivate, organize and control the practitioners who work to develop the software product. To be effective, the project team must be organized to use each individual to the best of his/her abilities. This job is carried out by the team leader.

Team Leader

Project management is a people intensive activity. It needs the right mix of people skills. Therefore, competent practitioners often make poor team leaders.

Leaders should apply a problem solving management style. That is, a project manager should concentrate on understanding the problem to be solved, managing the flow of ideas, and at the same time, letting everyone on the team know that quality counts and that it will not be compromised. MOI model of leadership developed by Weinberg suggest that a leadership needs Motivation, Organization, and Innovation.

Motivation is the ability to encourage technical people to produce to their best. Organization is the ability to mold the existing processes (or invent new ones) that will enable the initial concept to be translated into a final product, and Idea or Innovation is the ability to encourage people to create and feel creative.

It is suggested that successful project managers apply a problem solving management style. This involves developing an understanding of the problem and motivating the team to generate ideas to solve the problem.

Edgemon suggests that the following characteristics are needed to become an effective project manager:

  • Problem Solving
    • Should be able to diagnose technical and organizational issues and be willing to change direction if needed.
  • Managerial Identity
    • Must have the confidence to take control when necessary
  • Achievement
    • Reward initiative (controlled risk taking) and accomplishment
  • Influence and team building
    • Must remain under control in high stress conditions. Should be able to read signals and address peoples‘ needs.

DeMarco says that a good leader possesses the following four characteristics:

  • Heart: the leader should have a big heart.
  • Nose: the leader should have good nose to spot the trouble and bad smell in the project.
  • Gut: the leader should have the ability to make quick decisions on gut feeling.
  • Soul: the leader should be the soul of the team.

If analyzed closely, all these researchers seem to say essentially the same thing and they actually complement each other‘s point of view.

For the team morale point of view, DD is better.

Coordination and Communication Issues

Lack of coordination results in confusion and uncertainty. On the other hand, performance is inversely proportional to the amount of communication and hence too much communication and coordination is also not healthy for the project. Very large projects are best addressed with CC or CD when sub-grouping can be easily accommodated.

Kraul and Steeter categorize the project coordination techniques as follows:

  • Formal, impersonal approaches In these approaches, coordination is achieved through impersonal and formal mechanism such as SE documents, technical memos, schedules, error tracking reports.
  • Formal, interpersonal procedures In this case, the approaches are interpersonal and formal. These include QA activities, design and code reviews, and status meetings.
  • Informal, interpersonal procedures This approach employs informal interpersonal procedures and includes group meetings and collocating different groups together.
  • Electronic communication includes emails and bulletin boards.
  • Interpersonal networking includes informal discussions with group members

The effectiveness of these approaches has been summarized in the following diagram:

Techniques that fall above the regression line yield more value to use ratio as compared to the ones below the line.