Reference no: EM133693349
Software Engineering Methodologies
Assignment - Formal System Specification
Overview
The purpose of this assessment is to provide students with the opportunity to apply knowledge and skills developed during the semester with reference to the formal specification of a system through the use of Z notation. Students complete the assignment in groups of two or three.
As described in this unit's third study guide, Software Analysis, Modelling and Specification, a Formal Specification (Technique) is one that has a rigorous mathematical basis and one of its advantages is that it can bemathematically checked for completeness. The unit's fourth study guide, System and Software Design, also states that by using formal methods it is possible to derive a formal design from a formal specification and then beable to prove that the design and specification are functionally equivalent.
Your text, Software Engineering: A Practitioners Approach (Pressman, 2010) indicates that formal methods provide frameworks that allow people to specify, develop and verify systems in a structured and systematic way and that the mathematical based specification language used in formal methods ensures a greater chance of consistency, completeness, and lack of ambiguity in a specification. Pressman also discusses formal specification languages and their common components - syntax, semantics and sets of relations. Of the four formal specification languages he identifies - OCL, LARCH, VDM and Z - he provides useful discussion with respect to OCL and Z.
In this assignment, you will use the Z specification language to provide the sets, relations, and functions in schemas to specify a subsystem relating to the theme of the smart campus. Your group can choose the subsystem based on previous work each member has already completed. Your schemas should provide the stored data that the system accesses and alters and identify the operations that are applied to change the state as well as the relationships that occur within the system. Remember, as specified in Spivey's 2001 text, The Z Notation: A Reference Manual, schemas are utilized to illustrate both static and dynamic aspects of a system. Static aspects include such things as the states a system occupies and the invariant relationships that continue to exist as the system moves between states. Dynamic aspects include the changes of state that occur, possible operations and the relationships betweentheir inputs and outputs. Remember also you should always be conscious of the fact that a specification tries to describe what the system must do without saying how it is to be done (Spivey, 2001).
Keep all the above in mind as you read the following information. You are required to create a set of Z schema that adequately describes the requirements of your chosen subsystem. Your assignment should include at least two state spaces and provide schemas for the prescribed functions (including error handling) described below.
Learning Outcome 1: Critically analyse and use complex decision making to research and determine the appropriate Software Engineering tools and methodologies to utilize in a given situation
Learning Outcome 2: Apply professional communication skills to support and manage the engineering of a large software system
Learning Outcome 3: Review, critically analyse and develop artefacts to define processes for quality assurance, risk management and communication in large software development projects
Learning Outcome 4: Implement quality assurance activities in order to verify user requirements and validate design decisions
Learning Outcome 5: Analysis of a large system development problem to decide upon the best methodological approach
Learning Outcome 6: Development of appropriate artefacts to support and manage the software engineering process such as change control and configuration management
Requirements
Demonstrate an understanding of concepts covered in lectures, tutorials, laboratories and reading to provide the specification requested. This may require further reading and research beyond the material discussed inclass.
Assessable Tasks/Requirements
You are to provide both a brief written description of your requirements and create a set of Z schemas that adequately describes the subsystem formally. It should include at least two state spaces and at least 4 operations for each state space.
Each group member must individually write at least 3-4 operations. The group should also write initialization operations for each state space.
You should provide robust versions of each operation that can handle any possible error conditions.
You should also add a narrative to explain any schemas or logic that you have used. Authorship should be made clear. You might be asked to explain and answer questions about your work.
References
Pressman, R.S. (2010). Software Engineering: A Practitioners Approach