1 / 68

TM6013 Research Methodology

Learn about prototype development as a methodology in ICT research and its applications in solving research problems. Explore the steps involved in requirement analysis, software design, implementation, testing, and result analysis. Gain knowledge on software specification and the importance of accurate requirement analysis in software development.

wcasper
Download Presentation

TM6013 Research Methodology

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TM6013 Research Methodology Lecture 6 Prototype Development and Formal Methods

  2. Introduction • Some of the methodologies in ICT research: • Library Studies • Experiment • Formal Method • Prototype Development • Survey

  3. Prototype Development • A lot of research in ICT involves prototype development. • In this type of research, the hypothesis is proved by developing a prototype. • Prototype development is commonly used in Engineering research.

  4. Example(1) • Research Problem: • Essay marking is very tedious and time consuming, especially when the number of students are large. • Employing a number of graders – inconsistency between graders

  5. Example(1) • Research Problem: • Essay marking is very tedious and time consuming, especially when the number of students are large. • Employing a number of graders – inconsistency between graders • Possible Solution: • We can solve this problem by using computers for grading the essays automatically.

  6. Example(1) • Research Problem: • Essay marking is very tedious and time consuming, especially when the number of students are large. • Employing a number of graders – inconsistency between graders • Possible Solution: • We can solve this problem by using computers for grading the essays automatically . • Research Objective: • To develop an automatic essay marking software.

  7. Example(2) • Research Problem: • Knowledge management is now considered to be an important issue for many organizations. • However, the amount of knowledge to be managed is large. • A number of KM system have been developed. However, they are expensive and most of SMEs cannot afford to buy them.

  8. Example(2) • Research Problem: • Knowledge management is now considered to be an important issue for many organizations. • However, the amount of knowledge to be managed is large. • A number of KM system have been developed. However, they are expensive and most of SMEs cannot afford to buy them. • Possible Solution: • We can solve this problem by having a smaller version of knowledge management system that may be suitable for SMEs. • Since it is a smaller version, then the price for this software may be cheaper and affordable.

  9. Example(2) • Research Problem: • Knowledge management is now considered to be an important issue for many organizations. • However, the amount of knowledge to be managed is large. • A number of KM system have been developed. However, they are expensive and most of SMEs cannot afford to buy them. • Possible Solution: • We can solve this problem by having a smaller version of knowledge management system that may be suitable for SMEs. • Since it is a smaller version, then the price for this software may be cheaper and affordable. • Research Objective: • To develop a knowledge management system for SMEs.

  10. Steps • Steps: • Requirement analysis to determine the software specification

  11. Steps • Steps: • Requirement analysis to determine the software specification • Software Design

  12. Steps • Steps: • Requirement analysis to determine the software specification • Software Design • Software Implementation

  13. Steps • Steps: • Requirement analysis to determine the software specification • Software Design • Software Implementation • Software Testing

  14. Steps • Steps: • Requirement analysis to determine the software specification • Software Design • Software Implementation • Software Testing • Analyze result

  15. Steps • Steps: • Requirement analysis to determine the software specification • Software Design • Software Implementation • Software Testing • Analyze result • Report Writing

  16. Requirement Analysis • The starting point of any software development process is the software requirement. • Software requirement can be obtained from: • Library studies • Survey research Software Requirement Software Specification Requirement Analysis

  17. Requirement Analysis • Software statements of requirement are analyzed in order to identify: • Functional requirements • Non-functional requirements • Constraints • Design Directives Software Requirement Software Specification Requirement Analysis

  18. Requirement Analysis • The output from the requirement analysis process is the software specification, which is the technical description of the software to be developed. Software Requirement Software Specification Requirement Analysis

  19. Software Design • Design is a process of converting the specification into a product. • Four types of software design: • Architectural design • Detail design • User Interface design • Data design Software Specification Software Design Design

  20. Software Implementation • Software prototype/product includes: • Source code • Executable code • User guide • Technical Guide Software Prototype/ Product Software Design Coding

  21. Software Testing • To test the software to ensure that: • The code is correct – i.e. no bugs • Documentations are correct and readable.

  22. Prototype vs Product Idea Software prototype is normally produced as an output of a research work. Research Prototype

  23. Prototype vs Product Idea Software prototype is normally produced as an output of a research work. Software product is produce at the end of the a development activity. Research Prototype Development Product

  24. Prototype vs Product

  25. Rapid Prototyping Tools • A tools that enables prototypes to be developed quickly. • Examples: • Visual Programming Language (VB) • Scripting Language • Shell script • VB Script • Program generator.

  26. Software Components • A software component is a software package or a module that encapsulates a set of related functions (or data). • A software developer can develop applications by combining software components.

  27. McCall Software Quality Factors • Product revision • Maintainability • Flexibility • Testability • Product transition • Portability • Reusability • Interoperability • Product operations • Correctness • Reliability • Efficiency • Integrity • Usability

  28. Software Quality Factors • Availability • Reliability • Safety • Security

  29. Software Quality Factor • In developing a software product, all of these software quality factor must be taken into account. • In developing a prototype, only importance factors (i.e. relevant to the research) need to be considered.

  30. Proof of Concept • Prototyping can also be used as a proof of concept, i.e. To show that the proposed hypothesis is feasible. • It may not be a fully working prototype. However it must cover the important part that we want to proof.

  31. Example(3) • Research Problem: • To find out whether virtualizing client PC Operating System could lower the total cost of ownership (TCO) while offering users more flexibility.

  32. Example(3) • Research Problem: • To find out whether virtualizing client PC Operating System could lower the total cost of ownership (TCO) while offering users more flexibility. • Possible Solution: • We could conduct client virtualization proof of concept.

  33. Example(3) • Research Problem: • To find out whether virtualizing client PC Operating System could lower the total cost of ownership (TCO) while offering users more flexibility. • Possible Solution: • We could conduct client virtualization proof of concept. • Research Objective: • To develop a prototype for client virtualization as a proof of concept.

  34. Software Development Methodology • Prototype development must be carried out according to an established software development methodology. • Don’t create your own methodology! • Examples: • Waterfall model • Rapid Prototyping Model • Xtreme Programming • ADDIE

  35. Software Development Methodology • Using standard development methodology implies: • Use the standard processes. • Use the standard tools and notations.

  36. Formal Methods • The idea: To use mathematical modelling approach to solve a research problem.

  37. Example(1) Research Problem: Translating software specification written in UML(Unified Modelling Language.) into Z. How do we know that the two specifications are consistent? Formal Specification in UML Formal Specification in C translator

  38. Example(1) Possible Solution: We can model the behaviour of the specifications by using the formal semantics of UML and Z. And then compare two representation of the semantics. Formal Specification in UML Formal Specification in C Formal Semantics of UML Formal Semantics of C compare

  39. Example(2) • Research Problem: How do we know that a secure transaction protocol is valid?

  40. Example(2) • Research Problem: How do we know that a secure transaction protocol is valid? • Possible Solution: Model the transaction protocol by using a formal specification language, such as Z. We can then verify whether the model is correct or not by using standard verification method.

  41. Example(3) • Research Problem: How do we know that a computer software is correct?

  42. Example(3) • Research Problem: How do we know that a computer software is correct? • Possible Solution: • We can test the software. The main issue is how to find the right test data. • We can model the software by using a formal specification language. We can then validate the model.

  43. Example(4) • Research Problem: • What happen to the quality of service of a computer network if we use some new services?

  44. Example(4) • Research Problem: • What happen to the quality of service of a computer network if we use some new services? • Possible solution: • We can build up a computer network test-bed and test the performance of the network when a new service is introduced.

  45. Example(4) • Research Problem: • What happen to the quality of service of a computer network if we use some new services? • Possible solution: • We can build up a computer network test-bed and test the performance of the network when a new service is introduced. • We can build a computational model of the computer network and simulate the model.

  46. Steps • Problem analysis • Determine the suitable formal model to be used. • Develop the model • Analyze the model by using suitable technique • Report Writing

  47. Models • Models can be classified into three categories: • Physical Models • Conceptual Models • Logical (Formal) Models

  48. Models: Example • Building: • Physical Models • Conceptual Models • Logical (Formal) Models

  49. Models: Example • Software: • Physical Models • Conceptual Models • Logical (Formal) Models

More Related