Science and Technology Norwegian University of NTNU Rolv Bræk, January 2008 1 Introduction to Systems Engineering by Rolv Bræk NTNU.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
Object-Oriented Software Development CS 3331 Fall 2009.
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
CS487 Software Engineering Omar Aldawud
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Introduction To System Analysis and Design
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Software Engineering General Project Management Software Requirements
Software Requirements
1 SWE Introduction to Software Engineering Lecture 5.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Overview of Software Requirements
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Introduction to Software Testing
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
[ §4 : 1 ] 4. Requirements Processes II Overview 4.1Fundamentals 4.2Elicitation 4.3Specification 4.4Verification 4.5Validation Software Requirements Specification.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
On Roles of Models in Information Systems (Arne Sølvberg) Gustavo Carvalho 26 de Agosto de 2010.
Introduction To System Analysis and design
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
The Software Development Life Cycle: An Overview
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Chapter 1 The Systems Development Environment
The Rational Unified Process
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Integrating Security Design Into The Software Development Process For E-Commerce Systems By: M.T. Chan, L.F. Kwok (City University of Hong Kong)
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Configuration Management (CM)
Introduction To System Analysis and Design
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Science and Technology Norwegian University of NTNU Rolv Bræk, March Systems and Service Engineering Domain Modelling (textbook ch 3 ++) Rolv Bræk.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Lecture 7: Requirements Engineering
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
1 Introduction to Software Engineering Lecture 1.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
The Systems Development Environment Systems Analysis and Design II.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Process 4 Hours.
The Systems Engineering Context
Introduction to Software Testing
Chapter 2 – Software Processes
Object-Oriented Systems Development Life Cycle (CH-3)
NTNU Dept of Telematics and SINTEF Telecom and Informatics, Norway
From Use Cases to Implementation
Presentation transcript:

Science and Technology Norwegian University of NTNU Rolv Bræk, January Introduction to Systems Engineering by Rolv Bræk NTNU

Science and Technology Norwegian University of NTNU Rolv Bræk, January What is most important in systems engineering? Following a strict project plan with phases and milestones? Focus on documents: requirements specifications; testplans, …? Mastering the best platform technologies: J2EE, J2ME, Web Services, SOA, …? Being a good programmer? Knowing how to test and integrate? Mastering the best development tools? Ability to cooperate in teams? Domain/application understanding? Business and marketing aspects? Understanding the needs of stakeholders? Separating modelling from building to promote understanding and communication?

Science and Technology Norwegian University of NTNU Rolv Bræk, January Not engineering: no modelling, just building It may be OK for: simple data handling algorithmic problems prototyping Otherwise too much in one step: Complex and therefore errorprone Big communication problem Impossible to manage! Expensive in the long run Technology sensitive

Science and Technology Norwegian University of NTNU Rolv Bræk, January Quality depends on Stakeholders Users – those that interact directly with the system and use the system services to achieve some operative purpose. May be persons or technical systems, such as the process plant controlled by a process control system. Owners – those that own or are responsible for the system during parts of its lifetime. Typically preoccupied with economy and cost/benefit considerations. Subjects – those that are known to the system, but not directly interacting with it, e.g. persons and things represented in a database such as the customers of a company. Definition: System quality System quality is the systems ability to satisfy the needs and expectations of the users and the owners (and the subjects), i.e. the stake holders

Science and Technology Norwegian University of NTNU Rolv Bræk, January Typical errors we make We plan a functionality that is not in harmony with the purpose of the system. We define the functionality in a way that is internally inconsistent. We implement a different functionality from the one we planned. What can we do about it?

Science and Technology Norwegian University of NTNU Rolv Bræk, January Building a common understanding

Science and Technology Norwegian University of NTNU Rolv Bræk, January Modelling - the foundation of all ENGINEERING disciplines! Models improve communication and understanding about: why the system is needed; what its functionality should be; how it should be implemented.

Science and Technology Norwegian University of NTNU Rolv Bræk, January The systems engineering cycle/spiral Domain System models Develop Install System Manufacture Domain models Model has needs quality = satisfaction of needs

Science and Technology Norwegian University of NTNU Rolv Bræk, January How to model complex realities? Combine two golden rules: Separation of concerns. Identify aspects that are as independent as possible and describe them separately. Conceptual abstraction. Replace low level concepts representing technical detail by more abstract concepts better suited to describe and study some aspects, i.e. by some kind of model. Domain models System models First we separate domain from system; then what to separate? Can user aspects be separated from realisation aspects? First we separate domain from system; then what to separate? Can user aspects be separated from realisation aspects?

Science and Technology Norwegian University of NTNU Rolv Bræk, January The main separations Since the purpose of ICT systems is to provide functionality (perform logical behaviour and handle information); and the functionality may be realised in many ways: separate functionality from realisation describe the deployment mapping separately

Science and Technology Norwegian University of NTNU Rolv Bræk, January Functionality Is a conceptual abstraction intended to describes logical behaviour and information as clearly as possible It should enable users and developers: to communicate precisely to establish a common understanding to ensure that the descriptions of functionality correctly represents the existing domain and/or the system being developed It provides a view where the system may be seen as a whole, independently of realisation and technology Is normally described in terms of structures of active and passive objects with associated object behaviours Is a conceptual abstraction intended to describes logical behaviour and information as clearly as possible It should enable users and developers: to communicate precisely to establish a common understanding to ensure that the descriptions of functionality correctly represents the existing domain and/or the system being developed It provides a view where the system may be seen as a whole, independently of realisation and technology Is normally described in terms of structures of active and passive objects with associated object behaviours

Science and Technology Norwegian University of NTNU Rolv Bræk, January Languages for functionality should Support human comprehension so that human beings may fully understand and communicate precisely about the functionality => build on concepts that are suitable, well defined, and easy to understand. Provide analytical possibilities so that one may reason about behaviours in order to compare systems, to validate interfaces, and to verify properties. => have a semantic foundation suitable for analysis. Be realistic. Although overlooked in many cases, this requirement is essential for two main reasons: 1.That it shall be possible to implement the functionality 2.That the description of the functionality can serve as valid documentation of the real system. => build on concepts that can be effectively realised in the real world.

Science and Technology Norwegian University of NTNU Rolv Bræk, January Realisation Is a precise technical definition of the realisation in terms of the technologies used, such as mechanics, electronics and software Is necessary to actually produce a working system The choice of realisation depends on what properties are desired from the realisation itself (often called non-functional properties) Is a precise technical definition of the realisation in terms of the technologies used, such as mechanics, electronics and software Is necessary to actually produce a working system The choice of realisation depends on what properties are desired from the realisation itself (often called non-functional properties)

Science and Technology Norwegian University of NTNU Rolv Bræk, January Deployment (Implementation design) Describes aspects that come in addition to the functionality, such as distribution, hardware/software allocation and use of middleware and defines a mapping between functionality and realisation by: describing the realisation (the physical system) on a high level identifying the technologies used describing how and where the functionality is realised describes configurations Serves together with functionality as the main documentation. Describes aspects that come in addition to the functionality, such as distribution, hardware/software allocation and use of middleware and defines a mapping between functionality and realisation by: describing the realisation (the physical system) on a high level identifying the technologies used describing how and where the functionality is realised describes configurations Serves together with functionality as the main documentation. –configuration data; –priorities; –versions; –etc.

Science and Technology Norwegian University of NTNU Rolv Bræk, January Relationship with RM-ODP viewpoints Enterprise Information Computation Information Computation Engineering Technology Engineering Technology Enterprise

Science and Technology Norwegian University of NTNU Rolv Bræk, January Objects and properties

Science and Technology Norwegian University of NTNU Rolv Bræk, January General modelling pattern objects properties context content component types (follow same pattern) design specification

Science and Technology Norwegian University of NTNU Rolv Bræk, January The ITU-T languages and UML

Science and Technology Norwegian University of NTNU Rolv Bræk, January Methodology and Methods A methodology is a system of methods and principles. A method defines a systematic way to produce given results. Which is the way to quality results? Methods provide a kind of “roadmap” with guidelines and rules The main results of systems engineering are target systems and descriptions expressed using languages. Without any methods there would be no systems engineering discipline! The main results of systems engineering are target systems and descriptions expressed using languages. Without any methods there would be no systems engineering discipline!

Science and Technology Norwegian University of NTNU Rolv Bræk, January Macro process

Science and Technology Norwegian University of NTNU Rolv Bræk, January Develop system activity (process)

Science and Technology Norwegian University of NTNU Rolv Bræk, January … related to the textbook models

Science and Technology Norwegian University of NTNU Rolv Bræk, January Dealing with important errors: We plan a functionality that is not in harmony with the purpose of the system. We define the functionality in a way that is internally inconsistent. We implement a different functionality than the one we planned.

Science and Technology Norwegian University of NTNU Rolv Bræk, January Two main approaches : Elaboration approach: the functionality description is incomplete and expressed using languages with incomplete semantics => the realisation description ends up as the only complete view of the system and the functionality description is not maintained Most UML use including the Rational Unified Process, RUP, follows the elaboration approach. Translation approach: the functionality description is complete and expressed using languages with well-defined and realistic semantics => the functionality description is valid for the realisation, serve as documentation and is maintained Realisation is by (manual or automatic) translation of the functionality description. Deployment is orthogonal to the functionality (using the principle of distribution transparency). Most SDL use follow this approach. The UML ModelDrivenArchitecture (MDA) follows this approach too. “Model Driven” has now become a buzzword!

Science and Technology Norwegian University of NTNU Rolv Bræk, January Which is your favourite? Implementation oriented Design oriented The traditional The model driven

Science and Technology Norwegian University of NTNU Rolv Bræk, January Quality assurance Techniques: Corrective techniques: defect detection, with subsequent correction, e.g. formal verification, simulation, testing and inspection. Constructive techniques: defect avoidance, i.e. to avoid introducing errors in the first place, e.g. synthesis and automatic program generation, languages and methods that help to improve understanding and communication. Aspects Quality of functionality: related to the main purposes, i.e. the needs of the domain. Quality of realisation, i.e. way the functionality is realised. the most effective separated in the translation approach

Science and Technology Norwegian University of NTNU Rolv Bræk, January Planning and process management aspects Managemet issues time-schedule resources, costs control and decision making Models provide the key! Models define the quality! Baselines Milestones Concrete System (CS) Models time, cost Functional Requirements (FR) Functional Design (FD) Implementation Design (ID) Requirements Specification DesignImplementation Phases make FD make FR make ID Make CS CS FRFD ID Activities Revisions FD

Science and Technology Norwegian University of NTNU Rolv Bræk, January Documents vs. models Documents contain models and more Documents are deliverables Models live and evolve Documents contain snapshots of models Focus on models rather than documents! specify requirements design functionality design implementation implement system Functional design Documentation = Functional design + Implementation design User´s manual Operator´s manual Functional + non-functional requirements Project plan Test plan Quality plan Test documents