160 likes | 174 Views
Learn about the Unified Process, a UML approach for software engineering that is use-case driven, architecture-centric, and iterative/incremental.
E N D
Chapter – 1 THE UNIFIED PROCESS Shishir Gupta
The UML Approach • USECASE DRIVEN • ARCHITECTURE CENTRIC • ITERATIVE & INCREMENTAL
What is Software Engineering • Software development process. • Set of activities needed to transform a user’s requirement into a software system User’s Requirement Software System SOFTWARE DEVELOPMENT PROCESS
Aspects of the Unified Process • Component Based • Software Components (Classes) • Well Defined Interface (Class Methods) • Use-Case Driven • Architecture Centric. • Iterative and Incremental.
Use-Case Driven • A software system is brought into existence to serve its users. • To build a successful system we must know what its users want and need. • The user can represent someone or something. • The user interacts with the system being developed to obtain some utility.
Use-Case Driven • The interaction with the system is called a USE CASE. • USE CASE is functionality of the system which a user a result of value. • All the USE CASEs together make up the USE CASE MODEL.
Login Order Secure Payment Browse Catalog Select Items And quantities Send E-mail to Customer Store Personal Information Send Order to Store Use-Case Driven
Use-Case Driven • What is the system suppose to do for each user? • Focus on User Requirement and not the functions that might be good to have. • It drives the development process. • Developed in tandem with the system architecture.
Architecture Centric • Is a view of the whole design with important characteristics made more visible by leaving details aside. • Helps focus on the right goals such as under-standability, resilience to future changes and reuse. • Addresses the static and dynamic aspect of the system. • Grows out of the need of the enterprise, as sensed by the users, stockholders and as reflected in the Use Cases.
Architecture Centric • Use Case when realized must fit into the architecture. • The architecture must allow the use case, when realized, to fit into it. • Use Cases and architecture must evolve in parallel. • The architecture is designed so as to allow the system to evolve, not only during its initial development but through future generations.
Architecture Centric The architect : Creates an rough outline of the architecture that is not specified in the use cases. A general understanding of the use cases is required. Work with subset of identified use cases, the ones that represent key functions. As the use cases are specified & they mature More architecture is discovered. This in turn leads to maturation of more use cases.
Iterative and Incremental • Divide work into small size mini-projects. • Each mini project is an iteration that results into an increment. • What to implement in an iteration: • Implement use cases that together extends the usability of the product developed so far. • Attempt the use cases which deals with most important risks.
Iterative and Incremental In every iteration the developer : • Identifies and specifies the relevant use cases. • Creates a design using the chosen architecture as a guide. • Implement the design in components. • Verify that components satisfies the use cases
Stages in Software Development Process THE SPIRAL MODEL
Stages in Software Development Process ITERATIONS