Computer Science 280:

Software Engineering

Gregory M. Kapfhammer


flickr photo by vpickering shared under a Creative Commons (BY-NC-ND) license

Color Scheme

Key Concept

Corresponding Diagram

In-Class Discussion

In-Class Activity

Details in SETP or MMM

Design and Architecture

Similarities and differences?

Ordering of these activities?

Most design work is "routine"

Consider design "cloning"!

Adapt a "reference model" for your design

Review the reference model for a compiler

Design

Feature-oriented

Data-oriented

Process-oriented

Event-oriented

Object-oriented

Which approach do you regularly use? Why?


flickr photo shared by I-5 Design & Manufacture under a Creative Commons ( BY-NC-ND ) license

Views

Decomposition and generalization

Module Dependencies

Program Execution

Implementation and Deployment

Work assignment

All of these views have their merits!


flickr photo shared by I-5 Design & Manufacture under a Creative Commons ( BY-NC-ND ) license

Review an architectural style catalogue!

Architectures

Pipe-and-filter

Client-server

Peer-to-peer

Publish-subscribe

Repository

Layering

Strengths? Weaknesses? Purpose? When to use? Why?

Refer to Slack for photographs of each architecture!

See Figure 5.10 for a way to combine architectures!

Attributes of Software Quality

Benefits of Self-Managing Systems

Performance

Response time

Throughput

Scalability

Load

What is the influence of a software architecture?

How can testing help to evaluate these attributes?


flickr photo shared by Cam Miller 2015 under a Creative Commons ( BY-NC-ND ) license

Other Attributes

Security

Reliability

Robustness

Usability

What is the influence of a software architecture?

How can testing help to evaluate these attributes?

Exploring Software Product Lines