Software system modeling

Slides:



Advertisements
Similar presentations
Chapter 7 System Models.
Advertisements

LIFE CYCLE MODELS FORMAL TRANSFORMATION
Software system modeling
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
System Modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers. Different.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
CS 425/625 Software Engineering System Models
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
7M701 1 Software Engineering Systems Models Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 7 (some items)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models September 29, 2008.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Software Engineering I 1 Formal Methods: Requirements Techniques Formal Requirements Techniques – Finite State Machines – Petri Nets.
IV&V Facility Model-based Design Verification IVV Annual Workshop September, 2009 Tom Hempler.
Chapter 7: System models
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Software Engineering 8. System Models.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Requirements Expression and Modelling
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
CS 310 Ch8: System models Abstract descriptions of systems being analyzed to help the analyst understand the system functionality communicate with customers.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models. System modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
Chapter 7 System models.
Slide 1 System models. Slide 2 Objectives l To explain why the context of a system should be modelled as part of the RE process l To describe behavioural.
System models l Abstract descriptions of systems whose requirements are being analysed.
Pertemuan 19 PEMODELAN SISTEM Matakuliah: D0174/ Pemodelan Sistem dan Simulasi Tahun: Tahun 2009.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Rekayasa Perangkat Lunak (Software Engineering) M.Sukrisno Mardiyanto Kuliah Umum Universitas Dian Nuswantoro Semarang, 16 Oktober 2008.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Topic 5Summer ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 5 Partially based on lecture.
Formal Methods.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
OMT Modeling 1. Object Model : presented by the object model and the data dictionary. 2. Dynamic Model: presented by the state diagrams and event flow.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
© 2000 Franz Kurfess System Design Methods 1 CSC 205: Software Engineering I Dr. Franz J. Kurfess Computer Science Department Cal Poly.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Software Requirements and Models 18/31/2016. Topics covered  Functional and non-functional requirements  Requirements engineering processes  Requirements.
Chapter 5 – System Modeling
Introduction to UML.
Object-oriented and Structured System Models
UML Diagrams By Daniel Damaris Novarianto S..
Main issues: • What do we want to build • How do we write this down
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Unified Modeling Language
Software Requirements and Models
UML Diagrams Jung Woo.
System Modeling Chapter 4
Abstract descriptions of systems whose requirements are being analysed
Business System Development
Object-Oriented Analysis
System models October 5, 2005.
Unified Modeling Language
CS310 Software Engineering Dr.Doaa Sami
Department of Computer Science Abdul Wali Khan University Mardan
Chapter 4 System Modeling.
Appendix 3 Object-Oriented Analysis and Design
UML Design for an Automated Registration System
Presentation transcript:

Software system modeling System models – Abstract descriptions of systems whose requirements are being analysed Formal methods – Techniques and notations for the unambiguous specification of software Objectives To explain why the context of a system should be modelled as part of the requirements engineering process To describe behavioural modelling, data modelling and object modelling To introduce some of the notations used in the Unified Modeling Language (UML) To introduce formal methods and formal modeling approaches

The Unified Modeling Language Devised by the developers of object-oriented analysis and design methods Has become an effective standard for software modelling Has nine different notations Use Case Diagrams Scenario Collaboration State Component Deployment Object Statechart Sequence Class Activity Models

Software modeling and models Software modeling helps the engineer to understand the functionality of the system Models are used for communication among stakeholders Different models present the system from different perspectives External perspective showing the system’s context or environment Process models showing the system development process as well as activities supported by the system Behavioural perspective showing the behaviour of the system Structural perspective showing the system or data architecture

Context model

Process (activity) model

Behavioral models – Data Processing CASE toolset data flow diagram (DFD)

Semantic data (a.k.a. ER) models

Data dictionary models

Object models Object models describe the system in terms of object classes An object class is an abstraction over a set of objects with common attributes and the services (operations) provided by each object Various object models may be produced Inheritance models Aggregation models Interaction models

Library class hierarchy

Object aggregation

Object interaction

Objectives of formal methods To be unambiguous, consistent, complete, and provable Requirements specification clarify customer’s requirements reveal ambiguity, inconsistency, incompleteness System/Software design structural specifications of component relations behavioral specification of components demonstrating that next level of abstraction satisfies higher level Verification “are we building the system right?” proving that a realization satisfies its specification Validation “are we building the right system?” testing and debugging Documentation communication among stakeholders

Why use formal methods? Formal methods have the potential to improve both quality and productivity in software development to enhance early error detection to develop safe, reliable, secure software-intensive systems to facilitate verifiability of implementation to enable simulation, animation, proof, execution, transformation Formal methods are on the verge of becoming best practice and/or required practice for developing safety-critical and mission-critical software systems To avoid legal liability repercussions To ensure that systems meet regulations and standards

Why not? Emerging technology with unclear payoff Lack of experience and evidence of success Lack of automated support Existing tools are user unfriendly Ignorance of advances High learning curve Perfection and mathematical sophistication required Techniques not widely applicable Techniques not scalable

Myths of formal methods Formal methods can guarantee that software is perfect how do you make sure the spec you build is perfect? Formal methods are all about program proving they are about modeling, communicating, demonstrating Formal methods are only useful for safety-critical systems may be useful in any system (e.g., highly reusable modules) Formal methods require highly trained mathematicians many methods involve no more than set theory and logic Formal methods increase the cost of development the opposite is often the case Formal methods are unacceptable to users users will find them very helpful if properly presented Formal methods are not used on real, large-scale software they are used daily in many branches of industry

Formal specification language types Axiomatic specifications defines operations by logical assertions State transition specifications defines operations in terms of states and transitions Abstract model specifications defines operations in terms of a well-defined math model Algebraic specifications defines operations by collections of equivalence relations Temporal logic specifications defines operations in terms of order of execution and timing Concurrent specifications defines operations in terms of simultaneously occuring events

Example problem – Clock Initially, the time is midnight, the bell is off, and the alarm is disabled Whenever the current time is the same as the alarm time and the alarm is enabled, the bell starts ringing this is the only condition under which the bell begins to ring The alarm time can be set at any time Only when the alarm is enabled can it be disabled If the alarm is disabled while the bell is ringing, the bell stops ringing Resetting the clock and enabling or disabling the alarm are considered to be done instantaneously

Axiomatic specification – VDM INIT() ext wr time:N, bell:{quiet, ringing}, alarm:{disabled, enabled} pre true post (time’ = midnight) /\ (bell’ = quiet) /\ (alarm’ = disabled) TICK() ext wr time:N, bell:{quiet, ringing} rd alarm_time:N, alarm:{disabled, enabled} pre true post (time’ = succ(time)) /\ (if (alarm_time’ = time’) /\ (alarm’ = enabled) then (bell’ = ringing) else (bell’ = bell))

Abstract model specifications – Z

Algebraic specifications – Obj Functionality init:  CLOCK tick, enable, disable: CLOCK  CLOCK setalarm: CLOCK x TIME  CLOCK time, alarm_time: CLOCK  TIME bell: CLOCK  {ringing, quiet} alarm: CLOCK  {on, off} Relations time(init)  midnight time(tick(C))  time(C) + 1 time(setalarm(C,T))  time(C) alarm_time(init)  midnight alarm_time(tick(C))  alarm_time(C) alarm_time(setalarm(C,T))  T

State Machine specifications In-class exercise…