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

Preview:

Citation preview

Team Skill 6: Building the Right SystemFrom 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

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

Use Cases to Implementation

SystemCustomer

NeedsDefined

Requirements

Verification Validation

Verification vs. Validation

4

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

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

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

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

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

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

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

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

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

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

Use Cases to Implementation

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

▫Talked about throughout INFSCI 2511

15

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Recommended