Presentation is loading. Please wait.

Presentation is loading. Please wait.

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 15.

Similar presentations


Presentation on theme: "Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 15."— Presentation transcript:

1 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 15 Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

2 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 2 Discussion No class Thursday (but use your time wisely) There will be discussion this Friday

3 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 3 Today’s lecture Design methods (architecture design) Wrap up

4 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 4 Intermezzo Experts relax constraints Experts reshape the problem space Experts use notations as lenses, rather than straightjackets Experts design throughout the creation of software Experts do not feel obliged to use things as intended

5 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 5 Application design Interaction design Architecture design Implementation design Analysis competitive testing contextual inquiry feature comparison stakeholder analysis task analysis critical incident technique interaction logging personas scenarios framework assessment model-driven engineering quality-function- deployment reverse engineering world modeling release planning summarization test-driven design visualization Synthesis affinity diagramming concept mapping mind mapping morphological chart design/making participatory design prototyping storyboarding architectural styles generative programming component reuse decomposition pair programming refactoring search software patterns Evaluation requirements review role playing wizard of oz cognitive walkthrough evaluative research heuristic evaluation think-aloud protocol formal verification simulation weighted objectives correctness proofs inspections/reviews parallel deployment testing Software design methods

6 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 6 Application design Interaction design Architecture design Implementation design Analysis competitive testing contextual inquiry feature comparison stakeholder analysis task analysis critical incident technique interaction logging personas scenarios framework assessment model-driven engineering quality-function- deployment reverse engineering world modeling release planning summarization test-driven design visualization Synthesis affinity diagramming concept mapping mind mapping morphological chart design/making participatory design prototyping storyboarding architectural styles generative programming component reuse decomposition pair programming refactoring search software patterns Evaluation requirements review role playing wizard of oz cognitive walkthrough evaluative research heuristic evaluation think-aloud protocol formal verification simulation weighted objectives correctness proofs inspections/reviews parallel deployment testing Software design methods

7 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 7 Simulation Simulation is the process of examining the dynamic behavior of a design solution through artificial conditions that exercise a specially-developed secondary design artifact

8 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 8 Procedure Define objective Model the internal system behavior Model the outside conditions Execute the simulation Analyze results

9 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 9 Example: define objective Examine whether the web server architecture scales in the number of requests it can handle Determine whether the delay introduced by peek loads in the credit card processing software stays within expected bounds Determine the tradeoff between the size of the routing tables and the number of subscriptions in a publish-subscribe network infrastructure

10 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 10 Example: model the internal system behavior Implement a skeleton version of the web server architecture that delivers a result in constant time Implement a skeleton version of the web server architecture that delivers a result within a second 80% of the time and within 5 seconds 20% of the time Create a model of the response time distribution in a statistical software package such as R, Matlab, Simulink, …

11 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 11 Example: model the artificial conditions Implement driver software that exercises the skeleton web server at a constant rate Implement driver software that exercises the skeleton web server at a distribution rate similar to the current web server Create a model of the request rate distribution in a statistical software package such as R, Matlab, Simulink, …

12 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 12 Example: execute the simulation Run the skeleton web server and driver Run the combined model in R, Matlab, Simulink, … Typically, these kinds of simulations are highly parameterized to enable rapid evaluation of multiple artificial conditions across a range of internal system behaviors

13 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 13 Example: analyze results

14 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 14 Typical notation: source code

15 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 15 Criteria for successful use Must have a clear understanding of the inner system behavior of the design solution Must have a clear understanding of realistic outside conditions Should be comprehensive in examining a breadth of configuration parameters

16 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 16 Strengths and weaknesses Strengths Helps make dynamic behaviors visible and therefore accessible for exploration Can verify whether or not certain assumptions hold Can help identify limits that the current design solution exhibits Weaknesses Is entirely based on assumptions regarding future behavior and conditions Realistic simulations might be as complex as the software itself (and thus similarly prone to mistakes) Simulated behavior is not guaranteed to occur in the software Heavyweight method

17 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 17 Application design Interaction design Architecture design Implementation design Analysis competitive testing contextual inquiry feature comparison stakeholder analysis task analysis critical incident technique interaction logging personas scenarios framework assessment model-driven engineering quality-function- deployment reverse engineering world modeling release planning summarization test-driven design visualization Synthesis affinity diagramming concept mapping mind mapping morphological chart design/making participatory design prototyping storyboarding architectural styles generative programming component reuse decomposition pair programming refactoring search software patterns Evaluation requirements review role playing wizard of oz cognitive walkthrough evaluative research heuristic evaluation think-aloud protocol formal verification simulation weighted objectives correctness proofs inspections/reviews parallel deployment testing Software design methods

18 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 18 Formal verification Formal verification is the process of proving or disproving the correctness of a system with respect to a certain property

19 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 19 Procedure Decide on the property to be verified Model the internal behavior Execute the analysis

20 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 20 Example: decide on the property to be verified The web server shall not encounter deadlock The delay introduced by peek loads in the credit card processing software must stay within 30 seconds

21 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 21 Example: model the internal system behavior

22 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 22 Example: execute the analysis

23 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 23 Typical notation: formal model

24 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 24 Criteria for successful use Must have a clear understanding of the inner system behavior of the design solution Attention to detail in developing the formal model

25 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 25 Strengths and weaknesses Strengths Helps establish certain truths about the design artifact that otherwise would be subject to speculation Techniques are available for verifying many different properties Effective for dealing with mission critical concerns Weaknesses It is as easy to make mistakes in creating a formal model as it is in software itself Proof of a property in the model does not guarantee it holds in the actual software (unless the model is automatically extracted) Large, complex models might take a very long time to verify, making iteration difficult

26 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 26 Application design Interaction design Architecture design Implementation design Analysis competitive testing contextual inquiry feature comparison stakeholder analysis task analysis critical incident technique interaction logging personas scenarios framework assessment model-driven engineering quality-function- deployment reverse engineering world modeling release planning summarization test-driven design visualization Synthesis affinity diagramming concept mapping mind mapping morphological chart design/making participatory design prototyping storyboarding architectural styles generative programming component reuse decomposition pair programming refactoring search software patterns Evaluation requirements review role playing wizard of oz cognitive walkthrough evaluative research heuristic evaluation think-aloud protocol formal verification simulation weighted objectives correctness proofs inspections/reviews parallel deployment testing Software design methods

27 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 27 Wrap-up

28 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 28 This course answers three primary questions What is (software) design? How to engage in good software design? What are the habits of professional software designers?

29 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 29 Our definition To decide upon a plan for novel change in the world that, when realized, satisfies stakeholders

30 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 30 Four types of design satisfactory experience plan for realization change in the world what is it to accomplish? how does one interact with it? what is its conceptual core? what are its implementation details?

31 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 31 Four types of software design satisfactory experience plan for realization change in the world what is it to accomplish? how does one interact with it? what is its conceptual core? what are its implementation details? application design interaction design architecture design implementation design

32 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 32 Software design project software design problem software design solution software design project

33 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 33 Design thinking analyzeevaluate synthesize goals constraints assumptions decisions ideas

34 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 34 Realistic design process satisfactory experience plan for realization change in the world what is it to accomplish? how does one interact with it? what is its conceptual core? what are its implementation details?

35 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 35 Design methods satisfactory experience plan for realization change in the world what is it to accomplish? how does one interact with it? what is its conceptual core? what are its implementation details?

36 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 36 Design method A self-contained, structured technique that guides a designer in advancing some aspect of the design project at hand Serves as a bridge from the overall process of design to actual individual and collaborative design work

37 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 37 Design methods today

38 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 38 Software design methods Application design Interaction design Architecture design Implementation design Analysis competitive testing contextual inquiry feature comparison stakeholder analysis task analysis critical incident technique interaction logging personas scenarios framework assessment model-driven engineering quality-function- deployment reverse engineering world modeling release planning summarization test-driven design visualization Synthesis affinity diagramming concept mapping mind mapping morphological chart design/making participatory design prototyping storyboarding architectural styles generative programming component reuse decomposition pair programming refactoring search software patterns Evaluation requirements review role playing wizard of oz cognitive walkthrough evaluative research heuristic evaluation think-aloud protocol formal verification simulation weighted objectives correctness proofs inspections/reviews parallel deployment testing

39 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 39 From software life cycles to design methods design problemdesign solution design project Which set of design methods is appropriate to use, when, to successfully complete a design project?

40 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 40 Two fundamental challenges The nature of software The nature of people

41 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 41 Nature of software (Brooks) Complexity – software is among the most complex people-made artifacts Conformity – software has no laws of nature that simplify its existence; rather, it lives in a world of designed artifacts to which it much conform Changeability – software is subject to continuous pressure to change Invisibility – because the reality of software is not embedded into space, it is inherently unvisualizable

42 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 42 Nature of people Diversity – people differ in how they experience the world Indiscernibility – experiences are distinctly mental in nature, with tangible reactions and signs not always matching their actual experience Familiarity – people tend to be risk averse, sticking to role, organizational, and societal norms and values Volatility – with every new exposure, people reinterpret and modify their opinions and expectations

43 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 43 Minimize backtracking satisfactory experience plan for realization change in the world what is it to accomplish? how does one interact with it? what is its conceptual core? what are its implementation details? Strive to minimize backtracking more than absolutely necessary Strive to minimize backtracking later than absolutely necessary

44 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 44 Choosing design methods to apply Focus on essence Focus on the unknown Focus on making progress

45 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 45 Four design studios bigexpensivehome.com Educational traffic simulator (design) Educational traffic simulator (analysis) FlappyBird – Duo

46 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 46 Four design studios bigexpensivehome.com Educational traffic simulator (design) Educational traffic simulator (analysis) FlappyBird – Duo Not nearly enough practice, yet

47 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 47 In sum Understanding all of the design activities that take place in software engineering Significant shift to this kind of overall approach to software development (innovation, creativity, design) If you just pick up one method, at one moment in time, and it helps you, that would be an important result Design methods are much more broadly applicable than the specific ‘box’ in which they are placed

48 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 48 In sum Do not forget the expert practices, you can apply those irrespective of the design methods

49 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 49 Additional courses Informatics 122 – technical: patterns, UML, reverse engineering, component reuse, … Informatics 124 – technical: internet architectures, distributed systems, programming, … Informatics 131 – conceptual: user interface design, principles, evaluation, … Informatics 133 – technical: user interaction design, mobile devices, design methods, …

50 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 50 Final intermezzo Experts design all the time Experts know design is not done until the code is delivered and running Experts keep learning Experts play

51 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 51 Thank you


Download ppt "Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 15."

Similar presentations


Ads by Google