680 likes | 693 Views
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.
E N D
TM6013 Research Methodology Lecture 6 Prototype Development and Formal Methods
Introduction • Some of the methodologies in ICT research: • Library Studies • Experiment • Formal Method • Prototype Development • Survey
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.
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
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.
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.
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.
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.
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.
Steps • Steps: • Requirement analysis to determine the software specification
Steps • Steps: • Requirement analysis to determine the software specification • Software Design
Steps • Steps: • Requirement analysis to determine the software specification • Software Design • Software Implementation
Steps • Steps: • Requirement analysis to determine the software specification • Software Design • Software Implementation • Software Testing
Steps • Steps: • Requirement analysis to determine the software specification • Software Design • Software Implementation • Software Testing • Analyze result
Steps • Steps: • Requirement analysis to determine the software specification • Software Design • Software Implementation • Software Testing • Analyze result • Report Writing
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
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
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
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
Software Implementation • Software prototype/product includes: • Source code • Executable code • User guide • Technical Guide Software Prototype/ Product Software Design Coding
Software Testing • To test the software to ensure that: • The code is correct – i.e. no bugs • Documentations are correct and readable.
Prototype vs Product Idea Software prototype is normally produced as an output of a research work. Research Prototype
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
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.
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.
McCall Software Quality Factors • Product revision • Maintainability • Flexibility • Testability • Product transition • Portability • Reusability • Interoperability • Product operations • Correctness • Reliability • Efficiency • Integrity • Usability
Software Quality Factors • Availability • Reliability • Safety • Security
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.
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.
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.
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.
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.
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
Software Development Methodology • Using standard development methodology implies: • Use the standard processes. • Use the standard tools and notations.
Formal Methods • The idea: To use mathematical modelling approach to solve a research problem.
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
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
Example(2) • Research Problem: How do we know that a secure transaction protocol is valid?
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.
Example(3) • Research Problem: How do we know that a computer software is correct?
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.
Example(4) • Research Problem: • What happen to the quality of service of a computer network if we use some new services?
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.
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.
Steps • Problem analysis • Determine the suitable formal model to be used. • Develop the model • Analyze the model by using suitable technique • Report Writing
Models • Models can be classified into three categories: • Physical Models • Conceptual Models • Logical (Formal) Models
Models: Example • Building: • Physical Models • Conceptual Models • Logical (Formal) Models
Models: Example • Software: • Physical Models • Conceptual Models • Logical (Formal) Models