software development methodologies
play

Software Development Methodologies Lecturer: Raman Ramsin Lecture 6 - PowerPoint PPT Presentation

Software Development Methodologies Lecturer: Raman Ramsin Lecture 6 Integrated Object-Oriented Methodologies: RUP/USDP and EUP Sharif University of Technology Department of Computer Engineering 1 Software Development Methodologies


  1. Software Development Methodologies Lecturer: Raman Ramsin Lecture 6 Integrated Object-Oriented Methodologies: RUP/USDP and EUP Sharif University of Technology Department of Computer Engineering 1

  2. Software Development Methodologies – Lecture 6 Rational Unified Process (RUP) Rational Unified Process (RUP) � Initial version officially released in 1998 � Revised versions introduced in 2000 and 2003 R i d i i t d d i 2000 d 2003 � Developed at Rational Corporation by the three principal � Developed at Rational Corporation by the three principal developers of the OMT, Booch and OOSE (Objectory) methodologies: Rumbaugh, Booch and Jacobson � A non-proprietary, somewhat less complex variant called USDP (Unified Software Development Process) was introduced in ( p ) 1999 Sharif University of Technology Department of Computer Engineering 2

  3. Software Development Methodologies – Lecture 6 Rational Unified Process (RUP) Rational Unified Process (RUP) � UML-based � Use case driven, a feature inherited from OOSE � Iterative incremental with the overall process resembling the � Iterative-incremental, with the overall process resembling the Micro-in-Macro process of the Booch methodology � Covering the full generic lifecycle Sharif University of Technology Department of Computer Engineering 3

  4. Software Development Methodologies – Lecture 6 RUP: Process – Phases � Overall development cycle consists of four phases : � Inception: defining the scope and objectives of the project, as well as the business case � Elaboration: capturing the crucial requirements, developing and validating the architecture of the software system and planning validating the architecture of the software system, and planning the remaining phases of the project � Construction: implementing the system in an iterative and incremental fashion based on the architecture developed in the previous phase p p � Transition: testing and releasing the system Sharif University of Technology Department of Computer Engineering 4

  5. Software Development Methodologies – Lecture 6 RUP: Process – Iterations and Disciplines p � Each phase can be further broken down into iterations An iteration is a complete development loop resulting in a � release of an executable increment to the system l f t bl i t t th t Each iteration consists of nine work areas ( disciplines ) E h it ti i t f i k ( di i li ) � performed during the iteration � For each discipline, RUP defines sets of: � � artefacts (work products) artefacts (work products) � activities (units of work on the artefacts) � roles (responsibilities taken on by development team members) ( p y p ) Sharif University of Technology Department of Computer Engineering 5

  6. Software Development Methodologies – Lecture 6 RUP: Process – Disciplines p Business Modeling: concerned with describing business processes and the 1. i internal structure of a business. A Business Use Case Model and a Business l f b i A B i U C M d l d B i Object Model are developed. Requirements Management: concerned with eliciting, organizing, and R i t M t d ith li iti i i d 2. documenting requirements. The Use Case Model is produced. Analysis and Design: concerned with creating the architecture and the A l i d D i d ith ti th hit t d th 3. design of the software system; results in a Design Model and optionally an Analysis Model . Implementation: concerned with writing and debugging source code, unit 4. testing, and build management. Source code files, executables, and supportive files are produced supportive files are produced. Test: concerned with integration-, system- and acceptance testing. 5. Sharif University of Technology Department of Computer Engineering 6

  7. Software Development Methodologies – Lecture 6 RUP: Process – Disciplines (Contd.) p ( ) Deployment: concerned with packaging the software, creating installation 6. scripts, writing end-user documentation and other tasks needed to make i t iti d d t ti d th t k d d t k the software available to its end-users. P oject Management conce ned Project Management: concerned with project planning, scheduling and ith p oject planning sched ling and 7. control. Configuration and Change Management: concerned with version and Configuration and Change Management: concerned with version- and 8 8. release management and change-request management. Environment: concerned with adapting the process to the needs of a Environment: concerned with adapting the process to the needs of a 9 9. project or an organization, and selecting, introducing and supporting development tools. Sharif University of Technology Department of Computer Engineering 7

  8. Software Development Methodologies – Lecture 6 RUP: Process – Disciplines in Iterations p [Kruchten 2003] Sharif University of Technology Department of Computer Engineering 8

  9. Software Development Methodologies – Lecture 6 RUP: Process – Disciplines in Iterations and Phases p [Kruchten 2003] Sharif University of Technology Department of Computer Engineering 9

  10. Software Development Methodologies – Lecture 6 RUP: Process – Inception Phase p Tasks include: � Describe the initial requirements. 1. Develop and justify the business case for the system. 2. Determine the scope of the system. 3. Identify the people, organizations, and external systems that will Identify the people organizations and external systems that will 4. 4 interact with the system. Develop initial risk assessment schedule and estimates Develop initial risk assessment, schedule, and estimates. 5 5. Configure the initial system architecture. 6. Sharif University of Technology Department of Computer Engineering 10

  11. Software Development Methodologies – Lecture 6 RUP: Process – Elaboration Phase Tasks include: � Produce an architectural baseline for the system. 1. Evolve the requirements model to 80% completion. 2. Draft a coarse-grained project plan for the construction 3. phase. Ensure that critical tools, processes, standards, and 4. guidelines have been put in place for the construction phase. Understand and eliminate high-priority risks of the project. 5. Sharif University of Technology Department of Computer Engineering 11

  12. Software Development Methodologies – Lecture 6 RUP: Process – Construction Phase Tasks include: � Describe the remaining requirements. 1. Develop the design of the system. p g y 2. Ensure that the system meets the needs of its users and fits into 3. the organization’s overall system configuration. g y g Complete component development and testing, including both the 4. software product and its documentation. p Minimize development costs by optimizing resources. 5. Achieve adequate quality. 6. Develop useful versions of the system Develop useful versions of the system. 7 7. Sharif University of Technology Department of Computer Engineering 12

  13. Software Development Methodologies – Lecture 6 RUP: Process – Transition Phase Tasks include: � Test and validate the complete system. 1. Integrate the system with existing systems. 2. Convert legacy databases and systems to support the 3. new release. Train the users of the new system. 4. Deploy the new system into production. 5. Sharif University of Technology Department of Computer Engineering 13

  14. Software Development Methodologies – Lecture 6 RUP: Strengths and Weaknesses Strengths � � Iterative-incremental process � Well-documented process W ll d d � Based on functional, behavioural, and structural modeling of the problem domain and the system of the problem domain and the system � Traceability supported through use cases � S Seamlessness (though with hiccups, e.g. transforming use l (th h ith hi t f i cases to sequence diagrams) � � Architecture centric process (which necessitates early Architecture-centric process (which necessitates early specification of an architectural blueprint) Sharif University of Technology Department of Computer Engineering 14

  15. Software Development Methodologies – Lecture 6 RUP: Strengths and Weaknesses Strengths (Contd.) � � Customizability addressed � Risk-based development, aimed at mitigating the risks Ri k b d d l t i d t iti ti th i k before undertaking the tasks � � Support for structural behavioural and functional Support for structural, behavioural and functional modeling at all levels (problem domain to objects; logical to physical) to physical) � Rich modeling language (UML), especially in structural and behavioural modeling features g � Support for formalism (through UML/OCL) Sharif University of Technology Department of Computer Engineering 15

Recommend


More recommend