University of Southern California Center for Systems and Software Engineering Integrating Systems & Software Architecting Workshop Participants Problem.

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

A Systems Model for the Field of Informatics A. J. Cowling Department of Computer Science University of Sheffield.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
University of Southern California Center for Systems and Software Engineering USC CSSE Research Overview Barry Boehm Sue Koolmanojwong Jo Ann Lane Nupul.
University of Southern California Center for Systems and Software Engineering ©USC-CSSE1 3/18/08 (Systems and) Software Process Dynamics Ray Madachy USC.
University of Southern California Center for Systems and Software Engineering Issues and Recommendations Emanating from the Management Issues Group of.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
Site Skin Structure Services Space plan Stuff Software Architecture and Software Architecture Patterns (1)
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
University of Southern California Center for Systems and Software Engineering Why It’s Important to Integrate Hardware, Software, Human Factors, and Systems.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Process Synchronization Workshop Summary Report Jo Ann Lane University of Southern California Center for Software Engineering.
1 SWE Introduction to Software Engineering Lecture 5.
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software Architecture in Practice
Page 1 6/30/2015 Reconciling Systems, Software, and other Architectures Mark W. Maier, Ph.D. Distinguished Engineer The Aerospace Corporation © 2008 The.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
University of Southern California Center for Systems and Software Engineering Integrating Systems and Software Engineering: Complex Systems Workshop 29.
Chapter 10: Architectural Design
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Software Engineering Introduction. Why are you here? …alternatively, why do we think you need to be here? Why a course on software engineering? How is.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Design.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Chapter 10 Architectural Design
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Symposium 2001June 24, 2001 Curriculum Is Just the Beginning Chris Stephenson University of Waterloo.
Developing an IS/IT Strategy
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Risk Management for Technology Projects Geography 463 : GIS Workshop May
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
10 Software Architecture CSCU 411 Software Engineering.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
System Context and Domain Analysis Abbas Rasoolzadegan.
University of Southern California Center for Systems and Software Engineering 3/3/2010© USC-CSSE CSCI577B 2010 Light Weight Sw Engg for Off-the-Books.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
CSC480 Software Engineering Lecture 10 September 25, 2002.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
Copyright ⓒ 2005 SE Technology. Co.,Ltd. All rights reserved. What are the differences between the architectural description of large scale software development.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
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.
CS223: Software Engineering
Association of Enterprise Architects International Committee on Enterprise Architecture Standards Jan 23, Collaborative Expedition Workshop #57aeajournal.org.
Systems Architectures System Integration & Architecture.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Introduction to Project Management
Chapter 24: Architecture Competence
Requirements Analysis Scenes
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Lecture 17 ATAM Team Expertise
Chapter 22: Management and Governance
SOFTWARE ARCHITECTURE AND DESIGN
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Presentation transcript:

University of Southern California Center for Systems and Software Engineering Integrating Systems & Software Architecting Workshop Participants Problem space examples Followed JAL approach: two full pages of (20) issues –All Issues, refactored as appropriate –Issues with an incomplete list of proposed solutions Bottom line summary of Issues

University of Southern California Center for Systems and Software Engineering Architecture Workshop Participants Art Pyster, Stevens Inst. Tech (WDC) David Klappholz, Stevens Inst. Tech (NJ) Bruce Amato, OSD J. D. Baker, BAE Systems Pongtip Aroonvatanaporn, USC CSSE Ramin Moazini, Sun Microsystems & USC CSSE Itti Charoenthongtrakul, USCCSSE Clyde Chittister, SEI Ed Colbert, USC CSSE & Absolute Software Jinbo Chen, NGC A Winsor Brown, USC CSSE & ISTI Charles Driessnack, SAIC Barry Boehm, USC CSSE

University of Southern California Center for Systems and Software Engineering

University of Southern California Center for Systems and Software Engineering Problem Space by Examples From ARR WBS & Organizations Fractionated, incompatible sensor data management Domain-Specific Reference Architectures Effect of Software Underrepresentation

University of Southern California Center for Systems and Software Engineering 03/19/2008 ©USC-CSSE 5 Effect of Software Underrepresentation Software risks discovered too late Slow, buggy change management Recent large project reorganization SW (WBS-based) PM Sys EngrSoftwareC4ISR SensorsNetworks SW New

University of Southern California Center for Systems and Software Engineering 03/19/2008 ©USC-CSSE 6 Fractionated, incompatible sensor data management “Touch Football” interface definition earned value –Full earned value taken for defining interface dataflow –No earned value left for defining interface dynamics Joining/leaving network, publish-subscribe, interrupt handling, security protocols, exception handling, mode transitions –Result: all green EVMS turns red in integration Examples of Architecture Mismatches … Sensor 1 SDMS1 Sensor 2 SDMS2 Sensor 3 SDMS3 Sensor n SDMSn ……

University of Southern California Center for Systems and Software Engineering Domain-Specific Reference Architectures … Examples: ADAGE avionics reference architecture June 3, 20157

University of Southern California Center for Systems and Software Engineering © USC CSSE Workshop Issues, Goals, and Approach –Discuss architecting (system/SW; NDI legacy; concurrent requirements/architecture engineering) –Identify, prioritize key architecting issues –Discuss solution approaches for top-priority issues –Evaluate degree of payoff, difficulty of solution approaches on 0-10 scale –Prepare summary briefing

University of Southern California Center for Systems and Software Engineering 9 What is a software architecture? The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. - Len Bass, Paul Clements, Rick Kazman, SEI, 2003 The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. - Len Bass, Paul Clements, Rick Kazman, SEI, 2003 An architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution - IEEE , Recommended Practice for Architectural Description of Software-Intensive Systems An architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution - IEEE , Recommended Practice for Architectural Description of Software-Intensive Systems The system architecture is the fundamental and unifying system structure defined in terms of system elements, interfaces, processes, constraints, and behaviors. - INCOSE

University of Southern California Center for Systems and Software Engineering 03/19/2008 ©USC-CSSE 10 System/Software Architecture Mismatches - Maier, 2006 System Hierarchy –Part-of relationships; no shared parts –Function-centric; single data dictionary –Interface dataflows –Static functional-physical allocation Software Hierarchy –Uses relationships; layered multi-access –Data-centric; class-object data relations –Interface protocols; concurrency challenges –Dynamic functional- physical migration

University of Southern California Center for Systems and Software Engineering Top level issues (1/3) 1.(11) Inconsistent ways of viewing the entities – system architect looks at things thru functional allocation mentality – sw architect looks at things as reusable objects – a different perspective – different notations – makes it harder to move work from system architects to software architects. The sw and hw engineers use different notations/vocabularies – the way we discuss the logic of how we construct hw and sw are different. Hw and sw engineers have trouble communicating – use the same word to mean different things. Some se won’t use sw terms such as “class” (point of contention – some believe SEs shouldn’t deal with classes). We need ways to represent ideas about systems and their solutions for analysis and communication 2.(11) Too many people think of swe architecting and se architecting as separate disciplines 3.(8) How to decide in the first place what to have the hw do and what to have the sw do 03/19/2008 ©USC-CSSE 11

University of Southern California Center for Systems and Software Engineering Top level issues (2/3) 4.(6) Definition of terms from a domain perspective or discipline perspective - even system engineers use the same term differently and have trouble communicating among themselves – likewise for software engineers 5.(6) Chief engineers who come up the career ladder from hw and other traditional engineering disciplines don’t know or respect sw engineering 6.(6) Sw engineers are often not in the discussions from the beginning when requirements and architecture, etc. are established 7.(6) Sw architects and SE architects have different experiences – they grow up in different worlds – and so they see the world differently 03/19/2008 ©USC-CSSE 12

University of Southern California Center for Systems and Software Engineering Top level issues (3/3) 8.(4) Models are incompatible between SWE and SE 9.(3) SEs and SWEs focus on different levels of abstraction – what and how 10.(3) Change will happen to both system and sw architecture – how do we efficiently make sure the two architectures remain consistent 11.(2) Many SW Engineers aren’t “real” engineers 12.(1) SEs spend more time on paper than SWEs do – SWEs use more real models 13.(0) The way we talk about funding and testing is different between hw and sw 14.(0) With sw systems on generic ubiquitous hw, hardware/software integration is not an issue 03/19/2008 ©USC-CSSE 13

University of Southern California Center for Systems and Software Engineering Issue 1 Inconsistent ways of viewing the entities – system architect looks at things thru functional allocation mentality – sw architect looks at things as reusable objects – a different perspective – different notations – makes it harder to move work from system architects to software architects 1.We need compatible representations and terminology and models that cover both sw and se concepts and solutions that can be used for both analysis and communication 2.We need training on terminology, representations and models for both SEs and SWEs 3.We need to validate that the uniform representations, models, and terminology really work 4.There needs to be active on the job mentoring of SWEs on systems engineering – the goal is for a SWE to become a SE 5.SEs should know something about SWE – but don’t expect them to become SWEs – they need mentoring 6.Career path should encourage movement between SE and SWE 7.Controversial: SE and SWE should be combined into a single discipline 8.SE and SWEs should have an understanding of the other discipline 9.Establish an industry/government team to create uniform representations, etc. – include vendors – go beyond sysml 10.Rosetta stone between systems and software terminology 03/19/2008 ©USC-CSSE 14

University of Southern California Center for Systems and Software Engineering Issue 2 Too many people think of sw architecting and system architecting as separate (stovepiped) disciplines 1.Teach everyone to do both SWE and SE architecting 2.Achieving the last chart mitigates this issue as well. 03/19/2008 ©USC-CSSE 15

University of Southern California Center for Systems and Software Engineering Issue 3 How to decide in the first place what to have the hw do and what to have the sw do 1.Develop patterns and antipatterns to guide hw sw allocation. 2.Develop domain specific architectures 3.Integrating teams of SWEs and SEs 4.Propagating what is easy and what is hard for HW and SW to do 5.Having the common notations, etc. help achieve this 03/19/2008 ©USC-CSSE 16

University of Southern California Center for Systems and Software Engineering Issue 4 Definition of terms from a domain perspective or discipline perspective - even system engineers use the same term differently and have trouble communicating among themselves – likewise for software engineers 1.Training and mentoring the organization what the organization wants for systems engineering and software engineering 2.Get an industry/government team that is multi-discipline and multi- domain to identify and define terminology and taxonomies 3.Create domain architectures, domain models, reusable components, etc. that span software and systems engineering 4.Propagate through industry associations 5.Create “relatively” open architectures 03/19/2008 ©USC-CSSE 17

University of Southern California Center for Systems and Software Engineering Issue 5 Chief engineers who come up the career ladder from hw and other traditional engineering disciplines don’t know or respect sw engineering 1.Educate the chief engineers on software engineering 2.Make knowing software engineering a condition of becoming a chief engineer 3.If we “unify” the two subjects, then the problem goes away 4.Chief engineers should get a masters degree in software engineering 03/19/2008 ©USC-CSSE 18

University of Southern California Center for Systems and Software Engineering Issue 6 Sw engineers are often not in the discussions from the beginning when requirements and architecture, etc. are established 1.An organizational policy solution: no early stage system architecting activity be allowed to proceed without software architects being involved 2.Software architect should sign off on the system architecture 03/19/2008 ©USC-CSSE 19

University of Southern California Center for Systems and Software Engineering Issue 7 Sw architects and system architects have different experiences – they grow up in different worlds – and so they see the world differently 1.Encourage career moves that cross-train software and system architects 2.Encourage educational approaches that cross-train software and system architects 03/19/2008 ©USC-CSSE 20

University of Southern California Center for Systems and Software Engineering Bottom Line Summary 03/19/2008 ©USC-CSSE 21 Solutions 1.Workshop specifically focusing on issue of integrating system and software architecting Issues 1.Systems architecting and software architecting have grown up as separate disciplines and cultures, whereas to produce high quality products, they need to be unified either partially or completely. 2.Because of the separation, engineers on each side tend to be “ignorant”, “suspicious”, “disrespectful” of the other side. Most early career systems architects are from systems engineering and may not bring in software architects early enough with the result that their projects often get in trouble.