CompSci 280 S Introduction to Software Development

Slides:



Advertisements
Similar presentations
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
SWE Introduction to Software Engineering
SWE Introduction to Software Engineering
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Figure – Chapter 6. Figure 6.1 The architecture of a packing robot control system.
Chapter 6 – Architectural Design Edited by Dr. Issam Al-Azzoni Software Engineering - Sommerville 1Chapter 6 Architectural design.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Chapter 6 – Architectural Design CSE-411, Dr. Shamim H Ripon.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CSc 461/561 Software Engineering Lecture 7 – Architectural Design.
Chapter 6 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6 – Architectural Design 1Chapter 6 Architectural design CS 425 October 29, 2013 Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Chapter 6 Architectural design Chapter 6 – Architectural Design Lecture 1 1.
SE Fundamentals 4 – Architectural Design 1Chapter 6 Architectural design CS 791Z February 19, 2013 Ian Sommerville, Software Engineering, 9 th Edition.
CS223: Software Engineering
CS223: Software Engineering Lecture 14: Architectural Patterns.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Chapter 6 – Architectural Design 1Chapter 6 Architectural design CS 425 October 20, 2011 Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Lecture 6 – Architectural Design
Software architecture
Architecture Brief Pepper
Chapter 6 – Architectural Design
Chapter 5 – Design and Implementation
Architectural Design.
IS301 – Software Engineering Dept of Computer Information Systems
System Design and Modeling
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Part 3 Design What does design mean in different fields?
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Chapter 6 – Architectural Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS 425/625 Software Engineering Architectural Design
Chapter 6 – Architectural Design
Architectural Design.
Chapter 6 – Architectural Design
Design and Implementation
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
CS385 T&D Software Engineering Dr.Doaa Sami Khafaga
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Presentation transcript:

CompSci 280 S2 2107 Introduction to Software Development Software Design

Today’s Agenda Topics: Reading: Introduction Architectural design decisions Architectural patterns Application architectures Reading: Software Engineering 10th Edition, Ian Somerville Chapter 6: Architectural Design Lecture10

1.Introduction Design and implementation Software design and implementation is the stage in the software engineering process at which an executable software system is developed. Software design and implementation activities are invariably inter- leaved. Software design is a creative activity in which you identify software components and their relationships, based on a customer’s requirements. Implementation is the process of realizing the design as a program. Lecture10

1.Introduction Build or buy In a wide range of domains, it is now possible to buy off-the-shelf systems (COTS) that can be adapted and tailored to the users’ requirements. For example, if you want to implement a medical records system, you can buy a package that is already used in hospitals. It can be cheaper and faster to use this approach rather than developing a system in a conventional programming language. When you develop an application in this way, the design process becomes concerned with how to use the configuration features of that system to deliver the system requirements. Lecture10

1.Introduction The Design Process Any design may be modelled as a directed graph made up of entities with attributes which participate in relationships. The system should be described at several different levels of abstraction. Design takes place in overlapping stages. It is artificial to separate it into distinct phases but some separation is usually necessary. Lecture10

1.Introduction Design Phases Architectural design: Identify sub-systems. Abstract specification: Specify sub-systems. Interface design: Describe sub-system interfaces. Component design: Decompose sub-systems into components. Data structure design: Design data structures to hold problem data. Algorithm design: Design algorithms for problem functions. Lecture10

1.Introduction Characteristics of a Good Design The design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer. The design must be readable, understandable guide for those who generate code and for those who test and support the software. The design should provide a complete picture of the software, addressing the data, functional and behavioral domains from an implementation perspective. Behavioral model Other requirements Design Code Test Data design Architectural design Program modules Integrated & validated software Interface Lecture10

1.Introduction Architectural & Interface Design Objective is to develop a modular program structure and represent the control relationships between modules Derived from the system specification, the analysis model, and the interaction of subsystems defined within the analysis model. Interface Combines program and data structure by defining interfaces that allows data to flow throughout the program The interface design describes how the software communicates within itself, with systems that interoperate with it and with humans who use it. Data and control flow diagrams provides information required for interface design Lecture10

1.Introduction Components & Data Design Transforms structural elements of the software architecture into a procedural description of software components. After data & program structure have been established, it becomes necessary to specify procedural detail without ambiguity Information from process specification, control specification and STD serve as the basis for component design. Data Data design transforms the information domain model created during analysis into the data structures that will be required to implement the software. The data objects and relationships defined in ERD and the detailed data content depicted in the data dictionary provide the basis for the data design activities. Lecture10

2.Architectural Design Architectural design is concerned with understanding how a software system should be organized and designing the overall structure of that system. Architectural design is the critical link between design and requirements engineering, as it identifies the main structural components in a system and the relationships between them. The output of the architectural design process is an architectural model that describes how the system is organized as a set of communicating components. Architectural design is a creative process so the process differs depending on the type of system being developed. However, a number of common decisions span all design processes and these decisions affect the non-functional characteristics of the system. Lecture10

Example: The architecture of a packing robot control Lecture10

2.Architectural Design Architecture and System Characteristics Performance Localise critical operations and minimise communications. Use large rather than fine-grain components. Security Use a layered architecture with critical assets in the inner layers. Safety Localise safety-critical features in a small number of sub-systems. Availability Include redundant components and mechanisms for fault tolerance. Maintainability Use fine-grain, replaceable components. Lecture10

3.Architectural Patterns Patterns are a means of representing, sharing and reusing knowledge. An architectural pattern is a stylized description of good design practice, which has been tried and tested in different environments. Patterns should include information about when they are and when the are not useful. Patterns may be represented using tabular and graphical descriptions. Examples: The Model-View-Controller (MVC) pattern The Client–server pattern Lecture10

3.Architectural Patterns The Model-View-Controller (MVC) pattern Separates presentation and interaction from the system data. The system is structured into three logical components that interact with each other. The Model component manages the system data and associated operations on that data. The View component defines and manages how the data is presented to the user. The Controller component manages user interaction (e.g., key presses, mouse clicks, etc.) and passes these interactions to the View and the Model. Lecture10

Example: A Typical Model-View Application Many desktop applications provide multiple views of some data model. Invariant : all views should offer a mutually consistent representation of the model. JTable component instance Model JCombobox component Stats view Graphical view Change request Update notification Lecture10

3.Architectural Patterns The Model-View-Controller (MVC) pattern When used Used when there are multiple ways to view and interact with data. Also used when the future requirements for interaction and presentation of data are unknown Advantages Allows the data to change independently of its representation and vice versa. Supports presentation of the same data in different ways with changes made in one representation shown in all of them. Disadvantages Can involve additional code and code complexity when the data model and interactions are simple. Lecture10

3.Architectural Patterns Client-server architecture In a client–server architecture, the functionality of the system is organized into services, with each service delivered from a separate server. Clients are users of these services and access servers to make use of them. Set of stand-alone servers which provide specific services such as printing, data management, etc. Set of clients which call on these services. Network which allows clients to access servers. Lecture10

3.Architectural Patterns The Client–server pattern When used Used when data in a shared database has to be accessed from a range of locations. Because servers can be replicated, may also be used when the load on a system is variable. Advantages The principal advantage of this model is that servers can be distributed across a network. General functionality (e.g., a printing service) can be available to all clients and does not need to be implemented by all services. Disadvantages Each service is a single point of failure so susceptible to denial of service attacks or server failure. Performance may be unpredictable because it depends on the network as well as the system. May be management problems if servers are owned by different organizations. Lecture10

4.Application Architectures Application systems are designed to meet an organisational need. As businesses have much in common, their application systems also tend to have a common architecture that reflects the application requirements. A generic application architecture is an architecture for a type of software system that may be configured and adapted to create a system that meets specific requirements. A widely used generic application architectures is transaction processing systems. Process user requests for information from a database or requests to update the database. Example: E-commerce systems; Reservation systems. Lecture10

4.Application Architectures The software architecture of an ATM system Lecture10

4.Application Architectures Information systems architecture Information systems have a generic architecture that can be organised as a layered architecture. These are transaction-based systems as interaction with these systems generally involves database transactions. Layers include: The user interface User communications Information retrieval System database Lecture10

4.Application Architectures Web-based information systems Information and resource management systems are now usually web-based systems where the user interfaces are implemented using a web browser. For example, e-commerce systems are Internet-based resource management systems that accept electronic orders for goods or services and then arrange delivery of these goods or services to the customer. In an e-commerce system, the application-specific layer includes additional functionality supporting a ‘shopping cart’ in which users can place a number of items in separate transactions, then pay for them all together in a single transaction. Lecture10

Key points A software architecture is a description of how a software system is organized. Architectural design decisions include decisions on the type of application, the distribution of the system, the architectural styles to be used. Architectures may be documented from several different perspectives or views such as a conceptual view, a logical view, a process view, and a development view. Architectural patterns are a means of reusing knowledge about generic system architectures. They describe the architecture, explain when it may be used and describe its advantages and disadvantages. Lecture10