Judy Stafford and Richard Hall COMP 250SA/DSS – Meeting 2 January 23, 2008 Course Sub-Topics.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Software Quality Assurance Plan
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
The Architecture Design Process
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
ICS 463, Intro to Human Computer Interaction Design: 3. Perception Dan Suthers.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Software Architecture in Practice
1 CS1001 Lecture Overview Object Oriented Design Object Oriented Design.
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
Domain-Specific Software Engineering Alex Adamec.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Reuse Standards Dr. Carma McClure Extended Intelligence, Inc. Copyright (c) 1998 by Extended Intelligence, Inc.
Chapter 2 The process Process, Methods, and Tools
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
An Introduction to Software Architecture
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Lecture 9: Chapter 9 Architectural Design
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
High-Level Design With Sequence Diagrams COMP314 (based on original slides by Mark Hall)
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Judy Stafford and Richard Hall COMP 250SA/DSS – Meeting 2 January 23, 2008 Research Topics.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Lecture 7: Requirements Engineering
1 Introduction to Software Engineering Lecture 1.
Illustrations and Answers for TDT4252 exam, June
1 The Modular Structure of Complex Systems Presented by: SeyedMasoud Sadjadi and Wei Zhu David L. Parnas, Paul C. Clement, and David M. Weiss ICSE 1984.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Design Principle & Patterns by A.Surasit Samaisut Copyrights : All Rights Reserved.
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.
Software Design Process
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
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.
CSE 303 – Software Design and Architecture
Basic Concepts and Definitions
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
Software Engineering Lecture 10: System Engineering.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Basic Characteristics of Object-Oriented Systems
Systems Architectures System Integration & Architecture.
CPSC 872 John D. McGregor Session 31 This is it..
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
 System Requirement Specification and System Planning.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
The Development Process of Web Applications
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Judy Stafford and Richard Hall
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Design Yaodong Bi.
Chapter 2 Software Processes
Presentation transcript:

Judy Stafford and Richard Hall COMP 250SA/DSS – Meeting 2 January 23, 2008 Course Sub-Topics

Getting started with Research  Finding Resources –Wayne Powell on using Tisch Resources –Internet resources »Google »Citeseer »Researcher home pages »Wikipedia only for ideas and leads  never for reference  Lifetime of Web references not generally guaranteed

Project Guidelines  May be hands-on or theoretical  If to be used as MS project then must –Be hands-on »(unless your job includes software development) –Include extended project report  Topic –Related to course goals –Submitted to Judy and Rick before February 3  Project Proposal to class on 2/6 or 2/13  Class Presentation/Demo on 4/16 or 4/23  See project guidelines for more details

Project Proposal  Description of the type of project –Hands-on or Theoretical  What problem are you investigating – what do you want to learn?  The end goal?  How you will show that the end goal has been achieved – How can you convince the class that you have learned what you wanted to?

Paper Presentation Guidelines  For Presenter –Read assigned paper two weeks before presentation date –Create question to use as a starting point for class discussion »have it posted to website by Judy or Rick one week in advance »should be answerable in no more than 250 words –Explore topic more deeply with focus on how it relates to course goals –Prepare 30 minute presentation for class »Overview of assigned reading »Your view of how it relates to course goals »Discussion of general topic area in as much as it relates to course goals –Present to Class –Lead Class Discussion on Topic  For rest of class –Read the paper and be prepared to answer question

Separation of Concerns and Modularity Meeting 5

Separation of Concerns “Identify, encapsulate, and manipulate only those parts of software that are relevant to a particular concept, goal, or purpose”  Underlying goal in modern software engineering  Not everything is important all the time –Importance depends on perspective –Often it is better to ignore some details  Separate concerns are related  For instance, topics in this class

Modularity  Early attempt at achieving separation of concerns  Programming-in-the-large vs. programming-in-the- small –Decompose »Divide system into concerns to be implemented –Structure »Create systems by connecting concerns (e.g., module interconnection languages)‏  Enables additional forms of expression and verification  Applies to both logical and physical entities

Relevance  Desire for separation of concerns created need for new abstractions and modeling –Modularity tried to address that need –AOP –Component Frameworks and Containers  Still not resolved –OSGi, JSR 277, & JSR 294 for Java –.NET has Assemblies, but still not sufficient

Product Line Architectures, Configuration Management, and Software Deployment Meeting 6

Product Lines “A software product line (SPL) is a set of software- intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.”  Supports improvements in time to market, cost, productivity, quality, and other business drivers.  Enables rapid market entry and flexible response.  Provides a capability for mass customization.

Products  Configuration of one or more products from a collection of related product families –Examples »32” Flat screen, HD TV with … »19” Tube TV/DVD player  When is code configured –Compile time? –Product ship time? –Ever…?  Run-time Configuration not finalized until set up in consumer’s home

Product Line Architectures  Elements of PLA –Components –Connectors –Variation points –Binding times  Support rapid product customization

Configuration Management  Managing evolution in software systems  Goal: –Keep software system in a well-defined state –Support long term maintenance and evolution  More than versioning –Models system components and structure –Manages development, people, and process

Software Deployment  A system isn't worth much if we don't get it in the hands of the customer –CM manages valid system configurations –Deployment makes a valid configuration usable  More than just getting the software there –Managing evolution of deployed configuration  Requires system modeling from a different perspective –Potentially the end user's perspective

 Lots of models being created –Separate, but related concerns –What the relationships among them? –How do we avoid research islands? Relevance

Architecture Description and Architectural Styles Meeting 7

Architecture Description  ADLs and other notations support description of –Elements –Configurations –A given ADL supports capturing a specific system abstraction  Documentation –Description »Elements »Configurations –Rationale –Related doc

Koala PL-ADL from Philips

Architecture Documentation  Describe –Abstractions useful to ensure requirements will be met by any system that implements the architecture »Code (Module view(s)) »Run-time (C&C view(s)) »Allocation  Rationale –Why where the elements selected? –Why are they configured the way they are?  Pointers to Related docs (requirements, standards, etc.)  Dictionary of terms and acronym list

Architectural Styles  Known solutions to recurring problems  Describe –Types of elements –Types of relations –Constraints on their interrelationships –Description of which quality attributes it is good for and which it is bad for –Example of its use  Ex: Layered Style (in Module category) –Elements are layers –Relations are “allowed to use” –Constraints »A module is allowed to use modules at lower level –Supports evolution, maintainability

Component-Oriented Architectures Meeting 8

Software Components  Software components –Commercial –Adapted from previously used software –In house development  Issues –Who’s in control –When is component bound –Mismatched assumptions »By component about environment »By environment about component

Relevance  What different types of software components exist?  What are the distinctions among them and what is the importance of the distinctions? –Architectural components –Commercial Components –Services

Service-Oriented Architecture Meeting 9

Service-Oriented Architecture  Commonly viewed as a specific approach –Generically, it is a style »Provider, consumer, registry  Functionality is abstracted into “services” –Units of functionality available to others  Provides –Implementation substitutability »Based on requirements –Loose coupling –Late binding –Location transparency  Fits nicely with components and dynamism

Relevance  Another model –For discovery and interaction  Implementation separation of concerns  Inversion of control/dependency injection has prospered under the “service” approach –Or specifically, “interface” approach

Autonomic Computing, Self-Healing Systems, and Context Awareness Meeting 10

Autonomic and Self-Healing Systems  Manage themselves –Self-configuring –Self-optimizing –Self-healing –Self-protecting  Given high-level objectives –Specify what is desired, not how to achieve it

Context Awareness  Pervasive computing – computers everywhere  Adapting to meet the needs/desires of the user at any given time with respect to –User task, environmental conditions, social conditions  High rates of dynamism  Requires sophisticated modeling –Dependent on semantics and behavior

Relevance  What are the correct models?  How do these models help the system self- evaluate?  How do these models fit with existing modeling techniques?

Project Brain-Storming  Online doc building on german proto  Hierarchical analysis  Data modeling withing the V&B approach  Product line architecture for biomedical research  Agile and architecture  Open source and architecture

What’s Next  Who’s up for paper presentations for Meeting 5?  Everyone else use paper preference form  Send project ideas to Rick and Judy by Feb 3 (So we can exert our veto power if necessary)  Prepare project proposal