Non-functional and functional requirements: are they equally relevant? Herwig Mannaert.

Slides:



Advertisements
Similar presentations
Relating Problem & Solution Structures
Advertisements

Representations and Models: SysML and Beyond David Long Vitech Corporation SEDC
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Realizing OPM Philosophy in the Context of Full Life- Cycle Support Avi Soffer Technion, Israel Institute of Technology Thesis Advisor: Prof. Dov Dori.
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
The impact of lead time on the complex behavior of a single-echelon supply chain Chong Zhang Southeast University POMS 20th Annual Conference.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Mrs. Maninder Kaur 1Maninder Kaur
Understanding Entropy Generation during the Execution of Business Process Instantiations: An Illustration from Cost Accounting Peter De Bruyn, Philip Huysmans,
The Design Discipline.
Chapter 5CSA 217 Design in Construction Chapter 5 1.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Identify steps for understanding and solving the
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Software component evaluation A developer’s perspective Sony Corporation’s presentation for the 6 th International Common Criteria Conference.
Introduction To System Analysis and Design
Architectural Blueprints The “4+1” View Model of Software Architecture
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
1 Kuali Nervous System (KNS) Part 1 Presented by: Jerry Neal – KFS Development Manager Geoff McGregor – KC Lead Developer Brian McGough – KRice Project.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software component evaluation A developer’s perspective Sony Corporation’s presentation for the 6 th International Common Criteria Conference.
Tori Bowman CSSE 375, Rose-Hulman September 11, 2007.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Understanding and using patterns in software development EEL 6883 Software Engineering Vol. 1 Chapter 4 pp Presenter: Sorosh Olamaei.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Component Based Software Engineering Master of Software Engineering + Master of Information Technology 2010/2011 Conf.dr.ing. Ioana ora
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
On the design and development of program families Presented by: M. Deng and J. Zhang 4/15/2002 CSE870 Advanced Software Engineering, Spring 2002.
Systems Biology Markup Language Ranjit Randhawa Department of Computer Science Virginia Tech.
Getting to a NetConf Data Model Considerations Andrea Westerinen.
Focus on design principles and on a process for doing design = To produce a precise, complete, high- quality foundation for product implementation.
MACRO SOCIOLOGY. Macro Sociology: those theoretical approaches to the study of human behaviour that explain phenomena from the vantage point of the whole.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
3-tier System Design Recommendations. Recommendations Platform Capabilities & Restrictions Software Design Principles Requirement Specification (use cases)
4+1 View Model of Software Architecture
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Software Production ( ) Lecture 3: Dr. Samer Odeh Hanna (PhD) office: 318.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
CS223: Software Engineering Lecture 32: Software Maintenance.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
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.
SysML and Modelica Integration Working Group Meeting 3/11/09 Peter Fritzson Wladimir Schamai.
Section 6.2 Molar Mass and Percent Composition 1.To understand the definition of molar mass 2.To learn to convert between moles and mass 3.To learn to.
Review of last class Software Engineering Modeling Problem Solving
Distribution and components
SOFTWARE ARCHITECTURE AND DESIGN
Chapter 2 Software Processes
For University Use Only
Overview: Software and Software Engineering
Objectives To understand the definition of molar mass
Chapter 9 Architectural Design.
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Recommending Adaptive Changes for Framework Evolution
Introduction Software maintenance:
From Use Cases to Implementation
Presentation transcript:

Non-functional and functional requirements: are they equally relevant? Herwig Mannaert

1 Many Gaps in Software Engineering Business IT Theory Practice Industry Academics Architects Developers Functional Non-Functional … Is there a mother or root gap ? Can we build theory to bridge ?

2 The Dream: Doug Mc Ilroy “expect families of routines to be constructed on rational principles so that families fit together as building blocks” from: McIlroy, Mass Produced Software Components, 1968 NATO Conference on Software Engineering, Garmisch, Germany.

3 The Reality: Manny Lehman The Law of Increasing Complexity Manny Lehman “As an evolving program is continually changed, its complexity, reflecting deteriorating structure, increases unless work is done to maintain or reduce it.” Proceedings of the IEEE, vol. 68, nr. 9, september 1980, pp

4 Our Embryonic Theory: Stability Applying the concept of systems theoretic stability to software evolvability, we demand that a bounded amount of changes has a bounded impact for an infinite time period and an unlimited system evolution. This leads to stable design theorems: rational principles. In order to obtain stable building blocks, we propose the encapsulation of software entities into higher-level stable elements according to structures implied by the stability theorems.

5 1: Rational Principles  Performance Stability theorems -No stateless sync pipelines are allowed -Calling an action needs to exhibit state keeping -We do not have a theorem for this -No stateless sync pipelines are allowed -An action can only contain a single task OLTP commandments -Do not lock a system resource too long -Use transactions to clean up your mess -Reuse resources across clients -Come in, do your work, and get out -Deal with large number of small things

6 2: Building Blocks  Testing / Docs The structured composition of entities into the higher- level elements can be described as “design patterns”, that are detailed, unambiguous, and parametrized. Therefore: -Both unit and integration testing of such a stable building block should become a trivial thing. -The complete and unambiguous documentation of the building block should consist of the documentation of this design pattern and the expansion parameters. -Example: CRUDS In order to obtain stable building blocks, we propose the encapsulation of software entities into higher-level stable elements according to structures implied by the stability theorems