Chapter – 1
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 SOFTWARE DEVELOPMENT PROCESS User’s Requirement Software System
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.
Use-Case Driven Select Items And quantities Store Personal Information Browse Catalog Order Login Send to Customer Send Order to Store Secure Payment
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 : 1. Identifies and specifies the relevant use cases. 2. Creates a design using the chosen architecture as a guide. 3. Implement the design in components. 4. Verify that components satisfies the use cases
Stages in Software Development Process THE SPIRAL MODEL
Stages in Software Development Process ITERATIONS
Stages in Software Development Process RELEASES