Download presentation
Presentation is loading. Please wait.
Published byRandolf Newton Modified over 9 years ago
1
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
2
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
3
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
4
Use Cases to Implementation System Customer Needs Defined Requirements VerificationValidation Verification vs. Validation 4
5
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
6
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
7
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
8
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
9
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
10
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
11
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
12
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
13
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
14
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
15
Use Cases to Implementation Key ways to address difficult requirements are through using proven design patterns or metaphors ▫Talked about throughout INFSCI 2511 15
16
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
17
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
18
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
19
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
20
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
21
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
22
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
23
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
24
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
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
26
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
27
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
28
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
29
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.