The Unified Process of Software Development Software and its marketability factors Why is software development a labour-intensive industry? The Unified.

Slides:



Advertisements
Similar presentations
September 2008Mike Woodard Rational Unified Process Key Concepts Mike Woodard.
Advertisements

Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Prescriptive Process models
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Arlow and Neustadt ch.21 What is the unified process? People are more important than any process. Good people with a good process will outperform good.
Chapter 4 Quality Assurance in Context
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Rational Unified Process
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Object-oriented Analysis and Design
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Iterative development and The Unified process
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
CHAPTER 19 Building Software.
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
Release & Deployment ITIL Version 3
Introduction to Information System Development.
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Unified Software Development Process (UP) Also known as software engineering process SEP describes how requirements are turned into software Defines who,
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Rational Unified Process Fundamentals Module 4: Disciplines II.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Chapter 14 Information System Development
Testing Workflow In the Unified Process and Agile/Scrum processes.
Iterative development and The Unified process Chapter 2 Applying UML and Patterns -Craig Larman.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Rational Unified Process (RUP) Process Meta-model Inception Phase These notes adopted and slightly modified from “RUP Made Easy”, provided by the IBM Academic.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
The principles of an object oriented software development process Week 04 1.
Software Engineering Lecture # 1.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 Rational Unified Process – Part 2 Original slides modified.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
11 ADM2372 Management Information Systems (MIS) Chapter 10 – Part I Systems Development Chapter 10 – Part I Systems Development.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Iterative development and The Unified process
TK2023 Object-Oriented Software Engineering
Object-oriented Analysis and Design
Software Project Configuration Management
Unified Process (UP).
Introduction to Software Engineering
Object Oriented Analysis and Design
Gathering Systems Requirements
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Gathering Systems Requirements
UNIT No- III- Leverging Information System ( Investing strategy )
Presentation transcript:

The Unified Process of Software Development Software and its marketability factors Why is software development a labour-intensive industry? The Unified process and its iterations The phases of the Unified Process Best Practices in the Unified Process Workflows of the Unified Process

Software and Software Engineering According to IEEE, software is defined as a collection of computer programs, procedures, rules, associated documentation and data. “ Software Engineering ” - A field dedicated to the proper development of industrial-quality software. Greater stress on methods to develop software. Why was the need felt to develop proper processes?

Human-Intensive Nature of S/w Industry Software marketability depends on three factors: Cost, Quality and Schedule. Cost of software is steadily rising. Various software development tools have arrived in the market. E.g. Tools to do Requirement-gathering, Designing, Forward engineering, Testing, Configuration management. However,Software still is a labour-intensive industry. A large number of Analysts, Designers, Programmers, Testers, Documentation-experts and Maintainers are needed to develop industrial-quality software.

Late delivery of S/w In many cases, the software, which was developed before the advent of formal development techniques, was delivered to the customer way behind schedule. It did not do what it was expected to do.Reasons: Improperly elicited requirements or improper design that reflected on the developed code. The cost incurred was much greater than the one decided at the start of the project.

The problem of change Change is prevalent because of: bugs and changing customer requirements. Bugs, which unfortunately escaped the tester ’ s eye, can surface even long after the system is in use. So the maintainer has to adapt the software to counter the bugs and rectify the problem. Law of Software evolution.

Various Processes of Software Development Various processes have evolved over the years. Examples: Sequential Life-cycle process Prototyping process Rapid Application Development process, Iterative Development process and Unified Software Development Process.

The Unified Process of Software Development The key feature:Software development is done in a series of fixed periods, for example, between 2 and 6 weeks. Each period is called as iteration. At the end of each iteration, we have an executable system. Each iteration has its own requirement analysis, design, coding and testing. The software development is incremental. Implement New features added apart from the User ’ s suggested changes.

Timeboxing an Iteration Each iteration is timeboxed i.e. fixed in length. The UP recommends each iteration to be between 2 and 6 weeks. It has no provision for the extension of an iteration period. If developers are unable to complete coding the given requirements within fixed time, then decrease the number of requirements to code.

Advantages of Timeboxing an Iteration The UP is architecture-centric and risk-driven. Team forced to identify core architecture and high-risk, high-value requirements early.So the prioritization of requirements automatically takes place. Increase in confidence level of the stakeholders in the development team and the project. Increase in confidence of the team-members in their own ability leading to team satisfaction.

UP Phases The Unified Process consists of four phases: Inception, Elaboration, Construction and Transition. Each phase is completed in a series of iterations.

Inception A vision of the product is created. Questions discussed are: What is the product supposed to do? Why should my organization embark on a project to build this particular product? Does my organization have the resources to build this product? Is it feasible to do so? How much will this product cost and how much will it bring in? What will be the duration of the project? Risk analysis is performed. Decision whether to go ahead with the project or not is taken.

Elaboration System to be built is analyzed in detail. Use cases used to document the requirements. Main aim: Get the core architecture and as many use cases as possible. The core architecture is coded, verified with user and baselined. Other high-risk requirements are identified and coded. A project plan is drawn in this phase, resources are allocated and a schedule is planned. UML diagrams are used to model the system under design.

Construction Remaining use cases are implemented. If any new use cases are discovered, they are implemented. Test cases are written, actual tests are carried out and a test report is prepared. Documentation for the system as well as guides for the users are written.

Transition System is installed in its environment and beta- tested. Feedback is received and System is refined and tuned to adapt in response to the feedback. It also includes activities like marketing of the product and training of users.

Best Practices in the Unified Process E.g. Building of a website to host an all-India online entrance test to qualify for post-graduate courses in Physics. Suppose over a lakh students are answering at designated testing centres in the country. The test comprises of 90 objective questions only which have to be answered in 90 minutes. The candidate has to log in with an id and password provided to him by the screening authorities. After he logs in, he will be provide with the first question. On the top right-hand corner of the page, there will be a clock showing the time. When he answers the question he will get the next question and so on. At the end of 90 minutes, the system must display each candidate’s total score with the necessary details on a report of which he can take a hard copy.

Architecture-centric UP is architecture-centric. Team has to try and get the correct core architecture in the early iterations. So, in the earliest iterations, the task would be to gather the highly valued requirements, then analyze, design, code and test them before showing it to the stakeholders at the end of each iteration. In our example, the core requirements: Selecting the physical configuration of the server, Handling huge number of connections, Validating user-names and passwords and Computing scores as each user answers.

Architecture-centric contd.. The requirements, that are important but not core: Web-page layout, Visibility of the web pages through a variety of browsers etc. The core requirements have to be handled first.

Tackles riskiest issues first The UP tackles the riskiest issues first. In our example: Handling huge number of connections, Validating user ids and passwords and Computing correct scores as each user answers. So these issues have to be tackled early.

User feedback at every step UP stresses on continuous dialogue with the users and receives their feedback at every stage. Unlike traditional Waterfall process model where the entire system is shown to the users only after the testing phase is over. IN UP, customers can suggest changes at the end of every iteration and the cost of implementing these changes early is minimal. Actual users are automatically familiarized with the software and unwittingly get trained with its use.

Repeated verification of quality The UP stresses on the repeated verification of quality. Here, quality refers to both, the quality of the software to be developed as well as the quality of the process itself. At the end of each iteration the team must produce executable software. This achievement indicates the success of the iteration. The software is tested and verified right from the start unlike the traditional SDLC where Quality Analysis is done basically at the end.

Use of Use Cases The UP recommends the use of use cases. It also advises the use of the UML to model software visually.

Careful Management of requirements In the UP, requirements are carefully managed. Managing implies elicitation,prioritizing of the requirements and their tracking with the support of tools. The request for the change is carefully analyzed, the impact of the change is studied and only if the request is accepted then further decisions are taken. There is a formal procedure to submit request for change and to decide to make the change or not. The lifecycle of accepted change requests is tracked. The UP supports the Configuration Management and version Control of all artifacts.

Workflows of the UP A process describes who is doing what, how and when. Four modeling elements: Workers, Activities, Artifacts and Workflows Workers perform activities and the results of performing the activities are artifacts. Define behaviour of an individual or a team.

Workflows of the UP contd.. Activity-Unit of work that an individual in a particular role may be asked to perform. An artifact is a piece of information that is produced, modified or used by a process. They are products, which are formed in course of a process. An artifact can be treated as an input by a worker to perform an activity. E.g. A class diagram drawn using a tool, like ArgoUML, is an artifact. It can be used as an input to generate code using ArgoUML's code-generating facility. Artifact is also the output of an activity produced by a worker. E.g. The source code produced in the above example is an artifact that is an output of the code generating activity.

Workflows of the UP contd.. A workflow is a sequence of activities that produces a result of discernible value. In the UP, there are nine core process workflows. They are: Business Modeling Workflow Requirements Workflow Design Workflow Implementation Workflow Test Workflow Deployment Workflow Project Management Workflow Configuration and Change management Workflow Environment Workflow

Business Modeling Workflow Main aim: Evolve a common understanding among various stakeholders about what the project will deliver. Unified Process provides a common language and process for various stakeholders.

Requirements Workflow Before building a product, the developers must have an idea of what the product is expected to do. The aim:To achieve the above task by eliciting the functional requirements as well as the constraints. A document describing the vision and scope of the project is created. Actors and use cases are identified and described in detail. The constraints are also documented.

Design Workflow The main aim:Deliver the design model. The identification and validation of core architecture is done in an iterative manner. Initially, only the core architectural design is done without paying much attention to details. This is followed by detailed design of the core architecture. Other facets of the design like the databases, networking etc. are also designed.

Implementation Workflow Main aim:To program and build the system. Unit tests are also carried out and the unit- tested units are integrated into a complete system.

Test Workflow Actually, testing is done throughout the project in an iterative manner. Testing includes the verification whether software has been developed according to the user requirements and whether the components of the software are properly integrated and defects addressed prior to the deployment of the software.

Deployment Workflow Main aim: To release the software and deliver it to the end users. The software is installed at the user's site, beta testing is done and the software is adjusted to suit the customer. This workflow also includes assistance to the user in the use of the software.

Project Management Workflow To manage a software project, it is necessary for the project manager to Manage risks, Overcome difficulties in course of the project, Balance the objectives of different people and Ultimately deliver a product to the customer of high quality, reasonable cost and within the estimated schedule. The aim:To simplify these tasks by providing a framework for managing the overall project, managing risks and providing guidelines for formulating a project plan, allocating staff and monitoring the course of the project.

Configuration and Change Management Workflow Gives guidelines on how to manage the various problems that are inherent when teamwork is performed. Guidelines can be in regard to: Maintaining different variants of software, Enforcing organizational development policies, Managing change requests, Tracking changes and Keeping an audit of the changes made.

Environment Workflow Main aim:To provide the software development organization the processes and the tools that are needed to support the development team. A detailed guide is provided to implement a customized process for a particular project in the organization.