29
Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Embed Size (px)

Citation preview

Page 1: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Team Skill 6: Building the Right SystemFrom Use Cases to Implementation (25)

Page 2: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•What we have done so far ▫Defined requirements ▫Specified them clearly▫Ensure they have good quality

•Now we need to ensure that the system reflects the requirements we have designed

2

Page 3: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•As a SW development company we to confirm that the stated requirements are implemented

•Ensure no unneeded/undocumented changes are made during development

•Deal with change during development▫Change control Process▫Bug process

3

Page 4: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

SystemCustomer

NeedsDefined

Requirements

Verification Validation

Verification vs. Validation

4

Page 5: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Verification should confirm▫Use Cases and requirements which are derived

from features really do support the intended features

▫Use cases are reflected in the design▫The design supports both functional and

nonfunctional aspects of the system’s behavior▫Code conforms to the design▫Testing covers all use cases and requirements

5

Page 6: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation•Verification

▫Verification is often done through traceability

▫Key concept for verification is that every activity looks back to the previous step and makes sure nothing got left behind, or forgotten

▫Other verification methods include inspection and review

6

Page 7: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Cost of verification▫Balance the amount of time spent doing

verification, Don’t overdo it Don’t miss something important

▫Verification applies to all phases of the life cycle, but is most critical early on

7

Page 8: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation•Verification

▫Testing is also mostly a verification activity

▫Verification is done by many members of the project team Not just a QA

▫A process for verification needs to built into the life cycle to ensure it is consistently performed

8

Page 9: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation•Validation

▫The act of proving that the system you are creating meets the needs of the customer

▫Can map user needs to product features, another form of traceability

▫Validation is often done at major milestones End of life cycle phases End of iterations ...

9

Page 10: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Validation▫Need to demonstrate the product in the

customer’s environment to assess the subjective “are they happy with it” criterion

▫Main reason for validation is to ensure the customer needs didn’t change from when the requirements were captured

10

Page 11: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•While software development has been able to accomplish realization of functionality▫Getting from requirements to

implementation is not a simple matter

•Sometimes it is hard to prove that a particular piece of code fulfills a requirement

11

Page 12: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation•Sometimes it is straightforward

•To make some requirements easier to implement write them with detail to guide the developer, by invoking familiar concepts▫Task progress status▫Role or organization-based security

modeling▫Citing specific math concepts or algorithms

12

Page 13: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•The toughest requirements to implement are▫Too vague, little idea of what

Level of complexity Control is desired

▫Non-functional requirements, Often process-oriented, but the code itself is

a logical structure

13

Page 14: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Difficult requirements can also focus on scale issues such as system-level requirements▫Can be addressed by the systems

engineering approach we discussed earlier

•Requirements which are distributed throughout the system are also often difficult (e.g. use of interface standards)

14

Page 15: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Key ways to address difficult requirements are through using proven design patterns or metaphors

▫Talked about throughout INFSCI 2511

15

Page 16: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Use of object-oriented methods can help resolve some orthogonality issues, by combining data structure with process-oriented methods

•Beware that direct mapping of functions to objects can result in non-OO structures

16

Page 17: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Use Case can help▫Defining use cases can help see the big

picture of the system’s role

▫Prevents focusing too closely on a particular function

17

Page 18: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Modeling the system▫Software systems can involve thousands of

modules and millions of lines of code

▫To help break down their complexity we need a good modeling tool

▫We need to hide the details and understand the high level

18

Page 19: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Our need to understand software at a high level is similar to other fields’ needs▫In astronomy

Cosmology tries to understand the structure and evolution of the universe

▫In physics Various unified field theories try to relate all

of the electromagnetic forces

19

Page 20: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•We use system architecture to understand▫What the system does▫How it works▫The role of each part of the system

•And be able to support▫Extension or expansion of the system▫Reuse of the system

20

Page 21: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•4+1 architecture ▫Phillipe Kruchten (Written before UML)

Helps capture the architecture by looking at different aspects of the system

▫Like a house architect might have different drawings to capture Structure, Wiring Plumbing ...

21

Page 22: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation•The 4+1 views are

▫Logical view, such as the subsystems and classes within the system

▫Implementation or Development view, which is the structure of the code in its environment

▫Process view, to capture timing and coordination issues

▫Deployment or Physical view, the hardware

22

Page 23: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•The +1 part are scenarios or use cases, which tie all of the parts together

Logical

Process

Implementation

Deployment

Use Cases

23

Page 24: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Logical view ▫The structure of the data and objects

needed to support system functionality

▫Appears as a class diagram or entity-relationship diagram (ERD)

24

Page 25: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Implementation View▫The structure of the code is often shown by

grouping modules

▫From large to small Subsystem Component Packages

25

Page 26: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation•Process View

▫The process view mostly helps understand non-functional characteristics Timing Synchronization Concurrency Fault tolerance

▫UML Diagrams Sequence Activity diagrams State chart

26

Page 27: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Deployment View▫The deployment view focuses on how

the system is physically located on computer systems

▫Hence this helps focus on installation and networking issues

▫Shown with a deployment diagram

27

Page 28: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases Tie It All Together•As the four main views are being

developed, the use cases or scenarios can help ensure the models are all consistent with each other

•Trace how each scenario appears from each view’s perspective▫Response Startegies

28

Page 29: Team Skill 6: Building the Right System From Use Cases to Implementation (25)

Use Cases to Implementation

•Summary ▫The best way to get from requirements to

code is to define a set of inter-related models

▫Capturing Logical Implementation Process Deployment characteristics And how they all relate

29